Merge "Improve java doc about VehicleArea*" into rvc-dev
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java b/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java
index 156abd8..5b81c87 100644
--- a/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java
+++ b/EncryptionRunner/src/android/car/encryptionrunner/EncryptionRunnerFactory.java
@@ -16,6 +16,8 @@
 
 package android.car.encryptionrunner;
 
+import android.annotation.IntDef;
+
 import com.android.internal.annotations.VisibleForTesting;
 
 /**
@@ -27,11 +29,36 @@
         // prevent instantiation.
     }
 
+    @IntDef({EncryptionRunnerType.UKEY2, EncryptionRunnerType.OOB_UKEY2})
+    public @interface EncryptionRunnerType {
+        /** Use Ukey2 as underlying key exchange. */
+        int UKEY2 = 0;
+        /** Use Ukey2 and an out of band channel as underlying key exchange. */
+        int OOB_UKEY2 = 1;
+    }
+
+    /**
+     * Creates a new {@link EncryptionRunner} based on {@param type}.
+     */
+    public static EncryptionRunner newRunner(@EncryptionRunnerType int type) {
+        switch (type) {
+            case EncryptionRunnerType.UKEY2:
+                return new Ukey2EncryptionRunner();
+            case EncryptionRunnerType.OOB_UKEY2:
+                return new OobUkey2EncryptionRunner();
+            default:
+                throw new IllegalArgumentException("Unknown EncryptionRunnerType: " + type);
+        }
+    }
+
     /**
      * Creates a new {@link EncryptionRunner}.
+     *
+     * @deprecated Use {@link #newRunner(int)} instead.
      */
+    @Deprecated
     public static EncryptionRunner newRunner() {
-        return new Ukey2EncryptionRunner();
+        return newRunner(EncryptionRunnerType.UKEY2);
     }
 
     /**
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java b/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java
index fa6705d..e88d482 100644
--- a/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java
+++ b/EncryptionRunner/src/android/car/encryptionrunner/HandshakeMessage.java
@@ -17,6 +17,7 @@
 package android.car.encryptionrunner;
 
 import android.annotation.IntDef;
+import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.text.TextUtils;
 
@@ -34,7 +35,8 @@
      */
     @Retention(RetentionPolicy.SOURCE)
     @IntDef({HandshakeState.UNKNOWN, HandshakeState.IN_PROGRESS, HandshakeState.VERIFICATION_NEEDED,
-            HandshakeState.FINISHED, HandshakeState.INVALID, HandshakeState.RESUMING_SESSION,})
+            HandshakeState.FINISHED, HandshakeState.INVALID, HandshakeState.RESUMING_SESSION,
+            HandshakeState.OOB_VERIFICATION_NEEDED})
     public @interface HandshakeState {
         /**
          * The initial state, this value is not expected to be returned.
@@ -60,6 +62,10 @@
          * The handshake is complete, but extra verification is needed.
          */
         int RESUMING_SESSION = 5;
+        /**
+         * The handshake is complete, but out of band verification of the code is needed.
+         */
+        int OOB_VERIFICATION_NEEDED = 6;
     }
 
     @HandshakeState
@@ -67,6 +73,7 @@
     private final Key mKey;
     private final byte[] mNextMessage;
     private final String mVerificationCode;
+    private final byte[] mOobVerificationCode;
 
     /**
      * @return Returns a builder for {@link HandshakeMessage}.
@@ -82,11 +89,13 @@
             @HandshakeState int handshakeState,
             @Nullable Key key,
             @Nullable byte[] nextMessage,
-            @Nullable String verificationCode) {
+            @Nullable String verificationCode,
+            @Nullable byte[] oobVerificationCode) {
         mHandshakeState = handshakeState;
         mKey = key;
         mNextMessage = nextMessage;
         mVerificationCode = verificationCode;
+        mOobVerificationCode = oobVerificationCode;
     }
 
     /**
@@ -121,12 +130,22 @@
         return mVerificationCode;
     }
 
+    /**
+     * Returns a verification code to be encrypted using an out-of-band key and sent to the remote
+     * device.
+     */
+    @Nullable
+    public byte[] getOobVerificationCode() {
+        return mOobVerificationCode;
+    }
+
     static class Builder {
         @HandshakeState
         int mHandshakeState;
         Key mKey;
         byte[] mNextMessage;
         String mVerificationCode;
+        byte[] mOobVerificationCode;
 
         Builder setHandshakeState(@HandshakeState int handshakeState) {
             mHandshakeState = handshakeState;
@@ -148,6 +167,11 @@
             return this;
         }
 
+        Builder setOobVerificationCode(@NonNull byte[] oobVerificationCode) {
+            mOobVerificationCode = oobVerificationCode;
+            return this;
+        }
+
         HandshakeMessage build() {
             if (mHandshakeState == HandshakeState.UNKNOWN) {
                 throw new IllegalStateException("must set handshake state before calling build");
@@ -155,9 +179,15 @@
             if (mHandshakeState == HandshakeState.VERIFICATION_NEEDED
                     && TextUtils.isEmpty(mVerificationCode)) {
                 throw new IllegalStateException(
-                        "if state is verification needed, must have verification code");
+                        "State is verification needed, but verification code null.");
             }
-            return new HandshakeMessage(mHandshakeState, mKey, mNextMessage, mVerificationCode);
+            if (mHandshakeState == HandshakeState.OOB_VERIFICATION_NEEDED
+                    && (mOobVerificationCode == null || mOobVerificationCode.length == 0)) {
+                throw new IllegalStateException(
+                        "State is OOB verification needed, but OOB verification code null.");
+            }
+            return new HandshakeMessage(mHandshakeState, mKey, mNextMessage, mVerificationCode,
+                    mOobVerificationCode);
         }
 
     }
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/OobUkey2EncryptionRunner.java b/EncryptionRunner/src/android/car/encryptionrunner/OobUkey2EncryptionRunner.java
new file mode 100644
index 0000000..9474bd4
--- /dev/null
+++ b/EncryptionRunner/src/android/car/encryptionrunner/OobUkey2EncryptionRunner.java
@@ -0,0 +1,139 @@
+/*
+ * Copyright 2020 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 android.car.encryptionrunner;
+
+import com.google.security.cryptauth.lib.securegcm.Ukey2Handshake;
+
+/**
+ * An {@link EncryptionRunner} that uses Ukey2 as the underlying implementation, and generates a
+ * longer token for the out of band verification step.
+ *
+ * <p>To use this class:
+ *
+ * <p>1. As a client.
+ *
+ * <p>{@code
+ * HandshakeMessage initialClientMessage = clientRunner.initHandshake();
+ * sendToServer(initialClientMessage.getNextMessage());
+ * byte message = getServerResponse();
+ * HandshakeMessage message = clientRunner.continueHandshake(message);
+ * }
+ *
+ * <p>If it is a first-time connection,
+ *
+ * <p>{@code message.getHandshakeState()} should be OOB_VERIFICATION_NEEDED. Wait for an encrypted
+ * message sent from the server, and decrypt that message with an out of band key that was generated
+ * before the start of the handshake.
+ *
+ * <p>After confirming that the decrypted message matches the verification code, send an encrypted
+ * message back to the server, and call {@code HandshakeMessage lastMessage =
+ * clientRunner.verifyPin();} otherwise {@code clientRunner.invalidPin(); }
+ *
+ * <p>Use {@code lastMessage.getKey()} to get the key for encryption.
+ *
+ * <p>If it is a reconnection,
+ *
+ * <p>{@code message.getHandshakeState()} should be RESUMING_SESSION, PIN has been verified blindly,
+ * send the authentication message over to server, then authenticate the message from server.
+ *
+ * <p>{@code
+ * clientMessage = clientRunner.initReconnectAuthentication(previousKey)
+ * sendToServer(clientMessage.getNextMessage());
+ * HandshakeMessage lastMessage = clientRunner.authenticateReconnection(previousKey, message)
+ * }
+ *
+ * <p>{@code lastMessage.getHandshakeState()} should be FINISHED if reconnection handshake is done.
+ *
+ * <p>2. As a server.
+ *
+ * <p>{@code
+ * byte[] initialMessage = getClientMessageBytes();
+ * HandshakeMessage message = serverRunner.respondToInitRequest(initialMessage);
+ * sendToClient(message.getNextMessage());
+ * byte[] clientMessage = getClientResponse();
+ * HandshakeMessage message = serverRunner.continueHandshake(clientMessage);}
+ *
+ * <p>if it is a first-time connection,
+ *
+ * <p>{@code message.getHandshakeState()} should be OOB_VERIFICATION_NEEDED, send the verification
+ * code to the client, encrypted using an out of band key generated before the start of the
+ * handshake, and wait for a response from the client.
+ * If the decrypted message from the client matches the verification code, call {@code
+ * HandshakeMessage lastMessage = serverRunner.verifyPin}, otherwise
+ * {@code clientRunner.invalidPin(); }
+ * Use {@code lastMessage.getKey()} to get the key for encryption.
+ *
+ * <p>If it is a reconnection,
+ *
+ * <p>{@code message.getHandshakeState()} should be RESUMING_SESSION,PIN has been verified blindly,
+ * waiting for client message.
+ * After client message been received,
+ * {@code serverMessage = serverRunner.authenticateReconnection(previousKey, message);
+ * sendToClient(serverMessage.getNextMessage());}
+ * {@code serverMessage.getHandshakeState()} should be FINISHED if reconnection handshake is done.
+ *
+ * <p>Also see {@link EncryptionRunnerTest} for examples.
+ */
+public final class OobUkey2EncryptionRunner extends Ukey2EncryptionRunner {
+    // Choose max verification string length supported by Ukey2
+    private static final int VERIFICATION_STRING_LENGTH = 32;
+
+    @Override
+    public HandshakeMessage continueHandshake(byte[] response) throws HandshakeException {
+        checkInitialized();
+
+        Ukey2Handshake uKey2Client = getUkey2Client();
+
+        try {
+            if (uKey2Client.getHandshakeState() != Ukey2Handshake.State.IN_PROGRESS) {
+                throw new IllegalStateException(
+                        "handshake is not in progress, state =" + uKey2Client.getHandshakeState());
+            }
+            uKey2Client.parseHandshakeMessage(response);
+
+            // Not obvious from ukey2 api, but getting the next message can change the state.
+            // calling getNext message might go from in progress to verification needed, on
+            // the assumption that we already send this message to the peer.
+            byte[] nextMessage = null;
+            if (uKey2Client.getHandshakeState() == Ukey2Handshake.State.IN_PROGRESS) {
+                nextMessage = uKey2Client.getNextHandshakeMessage();
+            }
+
+            byte[] verificationCode = null;
+            if (uKey2Client.getHandshakeState() == Ukey2Handshake.State.VERIFICATION_NEEDED) {
+                // getVerificationString() needs to be called before notifyPinVerified().
+                verificationCode = uKey2Client.getVerificationString(VERIFICATION_STRING_LENGTH);
+                if (isReconnect()) {
+                    HandshakeMessage handshakeMessage = verifyPin();
+                    return HandshakeMessage.newBuilder()
+                            .setHandshakeState(handshakeMessage.getHandshakeState())
+                            .setNextMessage(nextMessage)
+                            .build();
+                }
+            }
+
+            return HandshakeMessage.newBuilder()
+                    .setHandshakeState(HandshakeMessage.HandshakeState.OOB_VERIFICATION_NEEDED)
+                    .setNextMessage(nextMessage)
+                    .setOobVerificationCode(verificationCode)
+                    .build();
+        } catch (com.google.security.cryptauth.lib.securegcm.HandshakeException
+                | Ukey2Handshake.AlertException e) {
+            throw new HandshakeException(e);
+        }
+    }
+}
diff --git a/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java b/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java
index 904d5c2..454a48b 100644
--- a/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java
+++ b/EncryptionRunner/src/android/car/encryptionrunner/Ukey2EncryptionRunner.java
@@ -323,6 +323,14 @@
         }
     }
 
+    protected final Ukey2Handshake getUkey2Client() {
+        return mUkey2client;
+    }
+
+    protected final boolean isReconnect() {
+        return mIsReconnect;
+    }
+
     @HandshakeMessage.HandshakeState
     private int getHandshakeState() {
         checkInitialized();
@@ -362,7 +370,7 @@
         return (UKey2Key) key;
     }
 
-    private void checkInitialized() {
+    protected void checkInitialized() {
         if (mUkey2client == null) {
             throw new IllegalStateException("runner not initialized");
         }
diff --git a/car-bugreportd/OWNERS b/car-bugreportd/OWNERS
new file mode 100644
index 0000000..335fc46
--- /dev/null
+++ b/car-bugreportd/OWNERS
@@ -0,0 +1,2 @@
+sgurun@google.com
+zhomart@google.com
diff --git a/car-bugreportd/README.md b/car-bugreportd/README.md
new file mode 100644
index 0000000..c6fae4c
--- /dev/null
+++ b/car-bugreportd/README.md
@@ -0,0 +1,9 @@
+# car-bugreportd
+
+Android Automotive OS only service. Please use `CarBugreportManager` API.
+
+It takes bugreport, appends car specific files and then proxies them to
+`CarBugreportManagerService`.
+
+To start, set the value of the system property `ctl.start` to `car-bugreportd`,
+e.g. `SystemProperties.set("ctl.start", "car-bugreportd");`
diff --git a/car-internal-lib/Android.bp b/car-internal-lib/Android.bp
new file mode 100644
index 0000000..cb68c66
--- /dev/null
+++ b/car-internal-lib/Android.bp
@@ -0,0 +1,26 @@
+// Copyright (C) 2020 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.
+
+// This project contains libraries that are used internally, mostly by
+// CarService and CarServiceHelperService.
+//
+// They're not meant to be used by other system apps and hence are not
+// supported.
+
+java_library {
+    name: "android.car.internal.event-log-tags",
+    srcs: [
+        "src/com/android/internal/car/EventLogTags.logtags",
+    ],
+}
diff --git a/car-internal-lib/src/com/android/internal/car/EventLogTags.logtags b/car-internal-lib/src/com/android/internal/car/EventLogTags.logtags
new file mode 100644
index 0000000..e082df8
--- /dev/null
+++ b/car-internal-lib/src/com/android/internal/car/EventLogTags.logtags
@@ -0,0 +1,102 @@
+# Copyright (C) 2020 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.
+#
+
+# See system/core/logcat/event.logtags for a description of the format of this file.
+
+option java_package com.android.internal.car
+
+####
+#### Tags used by CarServiceHelperService
+####
+#### It uses the 150000 - 160000 range
+####
+
+150000 car_helper_start (uses_hal|1)
+150001 car_helper_boot_phase (phase|1)
+150002 car_helper_user_starting (user_id|1)
+150003 car_helper_user_switching (from_user_id|1),(to_user_id|1)
+150004 car_helper_user_unlocking (user_id|1)
+150005 car_helper_user_unlocked (user_id|1)
+150006 car_helper_user_stopping (user_id|1)
+150007 car_helper_user_stopped (user_id|1)
+150008 car_helper_svc_connected (pending_operations|1)
+150009 car_helper_hal_request (request_type|1)
+150010 car_helper_hal_response (result_code|1)
+150011 car_helper_hal_default_behavior (fallback|1)
+150012 car_helper_hal_start_user (user_id|1)
+150013 car_helper_hal_create_user (flags|1), (safe_name|3)
+150014 car_helper_pre_creation_requested (number_users|1),(number_guests|1)
+150015 car_helper_pre_creation_status (number_existing_users|1),(number_users_to_add|1),(number_users_to_remove|1),(number_existing_guests|1),(number_guests_to_add|1),(number_guests_to_remove|1),(number_invalid_users_to_remove|1)
+
+####
+#### Tags used by ICarImpl / CarService
+####
+
+150050 car_service_init (number_services|1)
+150051 car_service_vhal_reconnected (number_services|1)
+150052 car_service_set_car_service_helper (pid|1)
+150053 car_service_on_user_lifecycle (type|1),(from_user_id|1),(to_user_id|1)
+150054 car_service_set_initial_user (user_id|1)
+150055 car_service_create (has_vhal|1)
+150056 car_service_connected (interface|3)
+150057 car_service_destroy (has_vhal|1)
+150058 car_service_vhal_died (cookie|2)
+
+####
+#### Tags used by CarService subsystems, like user and power management.
+####
+#### They must be prefixed by car_xxx_svc, car_xxx_hal, or car_xxx_mgr, each representing the
+#### respective component associated with the subsystem, and each subsystem should allocate a
+#### 100-tags range.
+####
+
+#### User-related tags (range 150100 - 150199)
+
+150100 car_user_svc_initial_user_info_req (request_type|1),(timeout|1)
+150101 car_user_svc_initial_user_info_resp (status|1),(action|1),(user_id|1),(flags|1),(safe_name|3)
+150103 car_user_svc_set_initial_user (user_id|1)
+150104 car_user_svc_set_lifecycle_listener (uid|1)
+150105 car_user_svc_reset_lifecycle_listener (uid|1)
+150106 car_user_svc_switch_user_req (user_id|1),(timeout|1)
+150107 car_user_svc_switch_user_resp (status|1),(result|1),(error_message|3)
+150108 car_user_svc_post_switch_user_req (target_user_id|1),(current_user_id|1)
+150109 car_user_svc_get_user_auth_req (uid|1),(user_id|1),(number_types|1)
+150110 car_user_svc_get_user_auth_resp (number_values|1)
+150111 car_user_svc_switch_user_ui_req (user_id|1)
+150112 car_user_svc_switch_user_from_hal_req (request_id|1),(uid|1)
+150113 car_user_svc_set_user_auth_req (uid|1),(user_id|1),(number_associations|1)
+150114 car_user_svc_set_user_auth_resp (number_values|1),(error_message|3)
+
+150140 car_user_hal_initial_user_info_req (request_id|1),(request_type|1),(timeout|1)
+150141 car_user_hal_initial_user_info_resp (request_id|1),(status|1),(action|1),(user_id|1),(flags|1),(safe_name|3)
+150142 car_user_hal_switch_user_req (request_id|1),(user_id|1),(timeout|1)
+150143 car_user_hal_switch_user_resp (request_id|1),(status|1),(result|1),(error_message|3)
+150144 car_user_hal_post_switch_user_req (request_id|1),(target_user_id|1),(current_user_id|1)
+150145 car_user_hal_get_user_auth_req (int32values|4)
+150146 car_user_hal_get_user_auth_resp (int32values|4),(error_message|3)
+150147 car_user_hal_legacy_switch_user_req (request_id|1),(target_user_id|1),(current_user_id|1)
+150148 car_user_hal_set_user_auth_req (int32values|4)
+150149 car_user_hal_set_user_auth_resp (int32values|4),(error_message|3)
+150150 car_user_hal_oem_switch_user_req (request_id|1),(target_user_id|1)
+
+150171 car_user_mgr_add_listener (uid|1)
+150172 car_user_mgr_remove_listener (uid|1)
+150173 car_user_mgr_disconnected (uid|1)
+150174 car_user_mgr_switch_user_request (uid|1),(user_id|1)
+150175 car_user_mgr_switch_user_response (uid|1),(status|1),(error_message|3)
+150176 car_user_mgr_get_user_auth_req (types|4)
+150177 car_user_mgr_get_user_auth_resp (values|4)
+150178 car_user_mgr_set_user_auth_req (types_and_values_pairs|4)
+150179 car_user_mgr_set_user_auth_resp (values|4)
diff --git a/car-lib/Android.bp b/car-lib/Android.bp
index df7c3b7..18a15c0 100644
--- a/car-lib/Android.bp
+++ b/car-lib/Android.bp
@@ -88,6 +88,7 @@
         "src/android/car/storagemonitoring/IoStatsEntry.aidl",
     ],
     static_libs: [
+        "android.car.internal.event-log-tags",
         "carwatchdog_aidl_interface-java",
     ],
     product_variables: {
@@ -138,9 +139,6 @@
 droidstubs {
     name: "android.car-stubs-docs",
     defaults: ["android.car-docs-default"],
-    api_tag_name: "ANDROID_CAR",
-    api_filename: "api.txt",
-    removed_api_filename: "removed.txt",
     args: "--hide UnavailableSymbol --no-docs --stub-packages android.car* ",
     installable: false,
     check_api: {
@@ -168,9 +166,6 @@
 droidstubs {
     name: "android.car-system-stubs-docs",
     defaults: ["android.car-docs-default"],
-    api_tag_name: "ANDROID_CAR_SYSTEM",
-    api_filename: "api.txt",
-    removed_api_filename: "removed.txt",
     args: "--hide UnavailableSymbol --no-docs --stub-packages android.car* " +
         "--show-annotation android.annotation.SystemApi ",
     installable: false,
@@ -199,9 +194,6 @@
 droidstubs {
     name: "android.car-test-stubs-docs",
     defaults: ["android.car-docs-default"],
-    api_tag_name: "ANDROID_CAR_SYSTEM",
-    api_filename: "api.txt",
-    removed_api_filename: "removed.txt",
     args: "--hide UnavailableSymbol --no-docs --stub-packages android.car* " +
         "--show-annotation android.annotation.TestApi ",
     installable: false,
@@ -224,7 +216,6 @@
     libs: [
         "android.car",
     ],
-    api_tag_name: "ANDROID_CAR_STUB",
     api_filename: "api.txt",
     args: "--hide UnavailableSymbol --no-docs --stub-packages android.car* ",
     installable: false,
diff --git a/car-lib/api/system-current.txt b/car-lib/api/system-current.txt
index 13b5939..4a966d4 100644
--- a/car-lib/api/system-current.txt
+++ b/car-lib/api/system-current.txt
@@ -895,113 +895,6 @@
 
 }
 
-package android.car.occupantawareness {
-
-  public final class DriverMonitoringDetection implements android.os.Parcelable {
-    ctor public DriverMonitoringDetection();
-    ctor public DriverMonitoringDetection(int, boolean, long);
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.car.occupantawareness.DriverMonitoringDetection> CREATOR;
-    field public final int confidenceLevel;
-    field public final long gazeDurationMillis;
-    field public final boolean isLookingOnRoad;
-  }
-
-  public final class GazeDetection implements android.os.Parcelable {
-    ctor public GazeDetection(int, @Nullable android.car.occupantawareness.Point3D, @Nullable android.car.occupantawareness.Point3D, @Nullable android.car.occupantawareness.Point3D, @Nullable android.car.occupantawareness.Point3D, int, long);
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.car.occupantawareness.GazeDetection> CREATOR;
-    field public static final int VEHICLE_REGION_CENTER_INSTRUMENT_CLUSTER = 1; // 0x1
-    field public static final int VEHICLE_REGION_FORWARD_ROADWAY = 5; // 0x5
-    field public static final int VEHICLE_REGION_HEAD_UNIT_DISPLAY = 8; // 0x8
-    field public static final int VEHICLE_REGION_LEFT_ROADWAY = 6; // 0x6
-    field public static final int VEHICLE_REGION_LEFT_SIDE_MIRROR = 3; // 0x3
-    field public static final int VEHICLE_REGION_REAR_VIEW_MIRROR = 2; // 0x2
-    field public static final int VEHICLE_REGION_RIGHT_ROADWAY = 7; // 0x7
-    field public static final int VEHICLE_REGION_RIGHT_SIDE_MIRROR = 4; // 0x4
-    field public static final int VEHICLE_REGION_UNKNOWN = 0; // 0x0
-    field public final int confidenceLevel;
-    field public final long durationOnTargetMillis;
-    field @Nullable public final android.car.occupantawareness.Point3D gazeAngleUnitVector;
-    field public final int gazeTarget;
-    field @Nullable public final android.car.occupantawareness.Point3D headAngleUnitVector;
-    field @Nullable public final android.car.occupantawareness.Point3D leftEyePosition;
-    field @Nullable public final android.car.occupantawareness.Point3D rightEyePosition;
-  }
-
-  public final class OccupantAwarenessDetection implements android.os.Parcelable {
-    ctor public OccupantAwarenessDetection(int, long, boolean, @Nullable android.car.occupantawareness.GazeDetection, @Nullable android.car.occupantawareness.DriverMonitoringDetection);
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field public static final int CONFIDENCE_LEVEL_HIGH = 2; // 0x2
-    field public static final int CONFIDENCE_LEVEL_LOW = 1; // 0x1
-    field public static final int CONFIDENCE_LEVEL_MAX = 3; // 0x3
-    field public static final int CONFIDENCE_LEVEL_NONE = 0; // 0x0
-    field @NonNull public static final android.os.Parcelable.Creator<android.car.occupantawareness.OccupantAwarenessDetection> CREATOR;
-    field public static final int VEHICLE_OCCUPANT_ALL_FRONT_OCCUPANTS = 6; // 0x6
-    field public static final int VEHICLE_OCCUPANT_ALL_OCCUPANTS = 510; // 0x1fe
-    field public static final int VEHICLE_OCCUPANT_ALL_ROW_2_OCCUPANTS = 56; // 0x38
-    field public static final int VEHICLE_OCCUPANT_ALL_ROW_3_OCCUPANTS = 448; // 0x1c0
-    field public static final int VEHICLE_OCCUPANT_DRIVER = 4; // 0x4
-    field public static final int VEHICLE_OCCUPANT_FRONT_PASSENGER = 2; // 0x2
-    field public static final int VEHICLE_OCCUPANT_NONE = 0; // 0x0
-    field public static final int VEHICLE_OCCUPANT_ROW_2_PASSENGER_CENTER = 16; // 0x10
-    field public static final int VEHICLE_OCCUPANT_ROW_2_PASSENGER_LEFT = 8; // 0x8
-    field public static final int VEHICLE_OCCUPANT_ROW_2_PASSENGER_RIGHT = 32; // 0x20
-    field public static final int VEHICLE_OCCUPANT_ROW_3_PASSENGER_CENTER = 128; // 0x80
-    field public static final int VEHICLE_OCCUPANT_ROW_3_PASSENGER_LEFT = 64; // 0x40
-    field public static final int VEHICLE_OCCUPANT_ROW_3_PASSENGER_RIGHT = 256; // 0x100
-    field @Nullable public final android.car.occupantawareness.DriverMonitoringDetection driverMonitoringDetection;
-    field @Nullable public final android.car.occupantawareness.GazeDetection gazeDetection;
-    field public final boolean isPresent;
-    field public final int role;
-    field public final long timestampMillis;
-  }
-
-  public class OccupantAwarenessManager {
-    method @RequiresPermission(android.car.Car.PERMISSION_READ_CAR_OCCUPANT_AWARENESS_STATE) public int getCapabilityForRole(int);
-    method @RequiresPermission(android.car.Car.PERMISSION_READ_CAR_OCCUPANT_AWARENESS_STATE) public void registerChangeCallback(@NonNull android.car.occupantawareness.OccupantAwarenessManager.ChangeCallback);
-    method @RequiresPermission(android.car.Car.PERMISSION_READ_CAR_OCCUPANT_AWARENESS_STATE) public void unregisterChangeCallback();
-  }
-
-  public abstract static class OccupantAwarenessManager.ChangeCallback {
-    ctor public OccupantAwarenessManager.ChangeCallback();
-    method public abstract void onDetectionEvent(@NonNull android.car.occupantawareness.OccupantAwarenessDetection);
-    method public abstract void onSystemStateChanged(@NonNull android.car.occupantawareness.SystemStatusEvent);
-  }
-
-  public final class Point3D implements android.os.Parcelable {
-    ctor public Point3D(double, double, double);
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.car.occupantawareness.Point3D> CREATOR;
-    field public final double x;
-    field public final double y;
-    field public final double z;
-  }
-
-  public final class SystemStatusEvent implements android.os.Parcelable {
-    ctor public SystemStatusEvent(int, int);
-    ctor public SystemStatusEvent();
-    method public int describeContents();
-    method public void writeToParcel(@NonNull android.os.Parcel, int);
-    field @NonNull public static final android.os.Parcelable.Creator<android.car.occupantawareness.SystemStatusEvent> CREATOR;
-    field public static final int DETECTION_TYPE_DRIVER_MONITORING = 4; // 0x4
-    field public static final int DETECTION_TYPE_GAZE = 2; // 0x2
-    field public static final int DETECTION_TYPE_NONE = 0; // 0x0
-    field public static final int DETECTION_TYPE_PRESENCE = 1; // 0x1
-    field public static final int SYSTEM_STATUS_NOT_READY = 2; // 0x2
-    field public static final int SYSTEM_STATUS_NOT_SUPPORTED = 1; // 0x1
-    field public static final int SYSTEM_STATUS_READY = 0; // 0x0
-    field public static final int SYSTEM_STATUS_SYSTEM_FAILURE = 3; // 0x3
-    field public final int detectionType;
-    field public final int systemStatus;
-  }
-
-}
-
 package android.car.projection {
 
   public class ProjectionOptions {
diff --git a/car-lib/api/system-released/system-1.txt b/car-lib/api/system-released/system-1.txt
deleted file mode 100644
index e58b9be..0000000
--- a/car-lib/api/system-released/system-1.txt
+++ /dev/null
@@ -1,787 +0,0 @@
-package android.car {
-
-  public final class Car {
-    method public void connect() throws java.lang.IllegalStateException;
-    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection, android.os.Handler);
-    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection);
-    method public void disconnect();
-    method public int getCarConnectionType();
-    method public java.lang.Object getCarManager(java.lang.String) throws android.car.CarNotConnectedException;
-    method public boolean isConnected();
-    method public boolean isConnecting();
-    field public static final java.lang.String APP_FOCUS_SERVICE = "app_focus";
-    field public static final java.lang.String AUDIO_SERVICE = "audio";
-    field public static final java.lang.String CABIN_SERVICE = "cabin";
-    field public static final java.lang.String CAMERA_SERVICE = "camera";
-    field public static final int CONNECTION_TYPE_EMBEDDED = 5; // 0x5
-    field public static final java.lang.String HVAC_SERVICE = "hvac";
-    field public static final java.lang.String INFO_SERVICE = "info";
-    field public static final java.lang.String PACKAGE_SERVICE = "package";
-    field public static final java.lang.String PERMISSION_CAR_CABIN = "android.car.permission.CAR_CABIN";
-    field public static final java.lang.String PERMISSION_CAR_CAMERA = "android.car.permission.CAR_CAMERA";
-    field public static final java.lang.String PERMISSION_CAR_CONTROL_AUDIO_VOLUME = "android.car.permission.CAR_CONTROL_AUDIO_VOLUME";
-    field public static final java.lang.String PERMISSION_CAR_HVAC = "android.car.permission.CAR_HVAC";
-    field public static final java.lang.String PERMISSION_CAR_PROJECTION = "android.car.permission.CAR_PROJECTION";
-    field public static final java.lang.String PERMISSION_CAR_RADIO = "android.car.permission.CAR_RADIO";
-    field public static final java.lang.String PERMISSION_CONTROL_APP_BLOCKING = "android.car.permission.CONTROL_APP_BLOCKING";
-    field public static final java.lang.String PERMISSION_FUEL = "android.car.permission.CAR_FUEL";
-    field public static final java.lang.String PERMISSION_MILEAGE = "android.car.permission.CAR_MILEAGE";
-    field public static final java.lang.String PERMISSION_MOCK_VEHICLE_HAL = "android.car.permission.CAR_MOCK_VEHICLE_HAL";
-    field public static final java.lang.String PERMISSION_SPEED = "android.car.permission.CAR_SPEED";
-    field public static final java.lang.String PERMISSION_VENDOR_EXTENSION = "android.car.permission.CAR_VENDOR_EXTENSION";
-    field public static final java.lang.String PROJECTION_SERVICE = "projection";
-    field public static final java.lang.String RADIO_SERVICE = "radio";
-    field public static final java.lang.String SENSOR_SERVICE = "sensor";
-    field public static final java.lang.String TEST_SERVICE = "car-service-test";
-    field public static final java.lang.String VENDOR_EXTENSION_SERVICE = "vendor_extension";
-    field public static final int VERSION = 1; // 0x1
-  }
-
-  public final class CarAppFocusManager {
-    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int);
-    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback);
-    method public void addFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int) throws android.car.CarNotConnectedException;
-    method public boolean isOwningFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int) throws android.car.CarNotConnectedException;
-    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int);
-    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener);
-    method public int requestAppFocus(int, android.car.CarAppFocusManager.OnAppFocusOwnershipCallback) throws android.car.CarNotConnectedException, java.lang.SecurityException;
-    field public static final int APP_FOCUS_REQUEST_FAILED = 0; // 0x0
-    field public static final int APP_FOCUS_REQUEST_SUCCEEDED = 1; // 0x1
-    field public static final int APP_FOCUS_TYPE_NAVIGATION = 1; // 0x1
-    field public static final int APP_FOCUS_TYPE_VOICE_COMMAND = 2; // 0x2
-  }
-
-  public static abstract interface CarAppFocusManager.OnAppFocusChangedListener {
-    method public abstract void onAppFocusChanged(int, boolean);
-  }
-
-  public static abstract interface CarAppFocusManager.OnAppFocusOwnershipCallback {
-    method public abstract void onAppFocusOwnershipGranted(int);
-    method public abstract void onAppFocusOwnershipLost(int);
-  }
-
-  public final class CarInfoManager {
-    method public java.lang.String getManufacturer() throws android.car.CarNotConnectedException;
-    method public java.lang.String getModel() throws android.car.CarNotConnectedException;
-    method public java.lang.String getModelYear() throws android.car.CarNotConnectedException;
-    method public java.lang.String getVehicleId() throws android.car.CarNotConnectedException;
-  }
-
-  public class CarNotConnectedException extends java.lang.Exception {
-    ctor public CarNotConnectedException();
-    ctor public CarNotConnectedException(java.lang.String);
-    ctor public CarNotConnectedException(java.lang.String, java.lang.Throwable);
-    ctor public CarNotConnectedException(java.lang.Exception);
-  }
-
-  public final class CarProjectionManager {
-    method public void onCarDisconnected();
-    method public void registerProjectionRunner(android.content.Intent) throws android.car.CarNotConnectedException;
-    method public void registerProjectionListener(android.car.CarProjectionManager.CarProjectionListener, int) throws android.car.CarNotConnectedException;
-    method public void unregisterProjectionRunner(android.content.Intent);
-    method public void unregisterProjectionListener();
-    field public static final int PROJECTION_LONG_PRESS_VOICE_SEARCH = 2; // 0x2
-    field public static final int PROJECTION_VOICE_SEARCH = 1; // 0x1
-  }
-
-  public static abstract interface CarProjectionManager.CarProjectionListener {
-    method public abstract void onVoiceAssistantRequest(boolean);
-  }
-
-  public final class VehicleAreaType {
-    field public static final int VEHICLE_AREA_TYPE_DOOR = 4; // 0x4
-    field public static final int VEHICLE_AREA_TYPE_MIRROR = 5; // 0x5
-    field public static final int VEHICLE_AREA_TYPE_NONE = 0; // 0x0
-    field public static final int VEHICLE_AREA_TYPE_SEAT = 3; // 0x3
-    field public static final int VEHICLE_AREA_TYPE_WINDOW = 2; // 0x2
-    field public static final int VEHICLE_AREA_TYPE_ZONE = 1; // 0x1
-  }
-
-  public final class VehicleDoor {
-    field public static final int DOOR_HOOD = 268435456; // 0x10000000
-    field public static final int DOOR_REAR = 536870912; // 0x20000000
-    field public static final int DOOR_ROW_1_LEFT = 1; // 0x1
-    field public static final int DOOR_ROW_1_RIGHT = 4; // 0x4
-    field public static final int DOOR_ROW_2_LEFT = 16; // 0x10
-    field public static final int DOOR_ROW_2_RIGHT = 64; // 0x40
-    field public static final int DOOR_ROW_3_LEFT = 256; // 0x100
-    field public static final int DOOR_ROW_3_RIGHT = 1024; // 0x400
-  }
-
-  public final class VehicleMirror {
-    field public static final int MIRROR_DRIVER_CENTER = 4; // 0x4
-    field public static final int MIRROR_DRIVER_LEFT = 1; // 0x1
-    field public static final int MIRROR_DRIVER_RIGHT = 2; // 0x2
-  }
-
-  public final class VehicleSeat {
-    field public static final int SEAT_ROW_1_CENTER = 2; // 0x2
-    field public static final int SEAT_ROW_1_LEFT = 1; // 0x1
-    field public static final int SEAT_ROW_1_RIGHT = 4; // 0x4
-    field public static final int SEAT_ROW_2_CENTER = 32; // 0x20
-    field public static final int SEAT_ROW_2_LEFT = 16; // 0x10
-    field public static final int SEAT_ROW_2_RIGHT = 64; // 0x40
-    field public static final int SEAT_ROW_3_CENTER = 512; // 0x200
-    field public static final int SEAT_ROW_3_LEFT = 256; // 0x100
-    field public static final int SEAT_ROW_3_RIGHT = 1024; // 0x400
-  }
-
-  public final class VehicleWindow {
-    field public static final int WINDOW_FRONT_WINDSHIELD = 1; // 0x1
-    field public static final int WINDOW_REAR_WINDSHIELD = 2; // 0x2
-    field public static final int WINDOW_ROOF_TOP = 4; // 0x4
-    field public static final int WINDOW_ROW_1_LEFT = 16; // 0x10
-    field public static final int WINDOW_ROW_1_RIGHT = 32; // 0x20
-    field public static final int WINDOW_ROW_2_LEFT = 256; // 0x100
-    field public static final int WINDOW_ROW_2_RIGHT = 512; // 0x200
-    field public static final int WINDOW_ROW_3_LEFT = 4096; // 0x1000
-    field public static final int WINDOW_ROW_3_RIGHT = 8192; // 0x2000
-  }
-
-  public final class VehicleZone {
-    field public static final int ZONE_ALL = -2147483648; // 0x80000000
-    field public static final int ZONE_ROW_1_ALL = 8; // 0x8
-    field public static final int ZONE_ROW_1_CENTER = 2; // 0x2
-    field public static final int ZONE_ROW_1_LEFT = 1; // 0x1
-    field public static final int ZONE_ROW_1_RIGHT = 4; // 0x4
-    field public static final int ZONE_ROW_2_ALL = 128; // 0x80
-    field public static final int ZONE_ROW_2_CENTER = 32; // 0x20
-    field public static final int ZONE_ROW_2_LEFT = 16; // 0x10
-    field public static final int ZONE_ROW_2_RIGHT = 64; // 0x40
-    field public static final int ZONE_ROW_3_ALL = 2048; // 0x800
-    field public static final int ZONE_ROW_3_CENTER = 512; // 0x200
-    field public static final int ZONE_ROW_3_LEFT = 256; // 0x100
-    field public static final int ZONE_ROW_3_RIGHT = 1024; // 0x400
-    field public static final int ZONE_ROW_4_ALL = 32768; // 0x8000
-    field public static final int ZONE_ROW_4_CENTER = 8192; // 0x2000
-    field public static final int ZONE_ROW_4_LEFT = 4096; // 0x1000
-    field public static final int ZONE_ROW_4_RIGHT = 16384; // 0x4000
-  }
-
-  public final class VehicleZoneUtil {
-    method public static int getFirstZone(int);
-    method public static int getNextZone(int, int) throws java.lang.IllegalArgumentException;
-    method public static int getNumberOfZones(int);
-    method public static int[] listAllZones(int);
-    method public static int zoneToIndex(int, int) throws java.lang.IllegalArgumentException;
-  }
-
-}
-
-package android.car.app.menu {
-
-  public abstract class CarMenuCallbacks {
-    ctor public CarMenuCallbacks();
-    method public abstract android.car.app.menu.RootMenu getRootMenu(android.os.Bundle);
-    method public abstract void onCarMenuClosed();
-    method public abstract void onCarMenuClosing();
-    method public abstract void onCarMenuOpened();
-    method public abstract void onCarMenuOpening();
-    method public abstract void onItemClicked(java.lang.String);
-    method public abstract boolean onItemLongClicked(java.lang.String);
-    method public abstract boolean onMenuClicked();
-    method public abstract void subscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
-    method public abstract void unsubscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
-  }
-
-  public class CarMenuConstants {
-    ctor public CarMenuConstants();
-  }
-
-  public static class CarMenuConstants.MenuItemConstants {
-    ctor public CarMenuConstants.MenuItemConstants();
-    field public static final int FLAG_BROWSABLE = 1; // 0x1
-    field public static final int FLAG_FIRSTITEM = 2; // 0x2
-    field public static final java.lang.String KEY_EMPTY_PLACEHOLDER = "android.car.app.menu.empty_placeholder";
-    field public static final java.lang.String KEY_FLAGS = "android.car.app.menu.flags";
-    field public static final java.lang.String KEY_ID = "android.car.app.menu.id";
-    field public static final java.lang.String KEY_LEFTICON = "android.car.app.menu.leftIcon";
-    field public static final java.lang.String KEY_REMOTEVIEWS = "android.car.app.menu.remoteViews";
-    field public static final java.lang.String KEY_RIGHTICON = "android.car.app.menu.rightIcon";
-    field public static final java.lang.String KEY_RIGHTTEXT = "android.car.app.menu.rightText";
-    field public static final java.lang.String KEY_TEXT = "android.car.app.menu.text";
-    field public static final java.lang.String KEY_TITLE = "android.car.app.menu.title";
-    field public static final java.lang.String KEY_WIDGET = "android.car.app.menu.widget";
-    field public static final java.lang.String KEY_WIDGET_STATE = "android.car.app.menu.widget_state";
-    field public static final int WIDGET_CHECKBOX = 1; // 0x1
-    field public static final int WIDGET_TEXT_VIEW = 2; // 0x2
-  }
-
-  public static abstract class CarMenuConstants.MenuItemConstants.MenuItemFlags implements java.lang.annotation.Annotation {
-  }
-
-  public static abstract class CarMenuConstants.MenuItemConstants.WidgetTypes implements java.lang.annotation.Annotation {
-  }
-
-  public abstract class CarUiEntry {
-    ctor public CarUiEntry(android.content.Context, android.content.Context);
-    method public abstract void closeDrawer();
-    method public abstract android.view.View getContentView();
-    method public abstract int getFragmentContainerId();
-    method public abstract java.lang.CharSequence getSearchBoxText();
-    method public abstract void hideMenuButton();
-    method public abstract void hideTitle();
-    method public abstract void onPause();
-    method public abstract void onRestoreInstanceState(android.os.Bundle);
-    method public abstract void onResume();
-    method public abstract void onSaveInstanceState(android.os.Bundle);
-    method public abstract void onStart();
-    method public abstract void onStop();
-    method public abstract void openDrawer();
-    method public abstract void restoreMenuDrawable();
-    method public abstract void setAutoLightDarkMode();
-    method public abstract void setBackground(android.graphics.Bitmap);
-    method public abstract void setCarMenuCallbacks(android.car.app.menu.CarMenuCallbacks);
-    method public abstract void setDarkMode();
-    method public abstract void setLightMode();
-    method public abstract void setMenuButtonBitmap(android.graphics.Bitmap);
-    method public abstract void setMenuButtonColor(int);
-    method public abstract void setScrimColor(int);
-    method public abstract void setSearchBoxColors(int, int, int, int);
-    method public abstract void setSearchBoxEditListener(android.car.app.menu.SearchBoxEditListener);
-    method public abstract void setSearchBoxEndView(android.view.View);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract void showMenu(java.lang.String, java.lang.String);
-    method public abstract void showSearchBox(android.view.View.OnClickListener);
-    method public abstract void showTitle();
-    method public abstract void showToast(java.lang.String, long);
-    method public abstract android.widget.EditText startInput(java.lang.String, android.view.View.OnClickListener);
-    method public abstract void stopInput();
-    field protected final android.content.Context mAppContext;
-    field protected final android.content.Context mUiLibContext;
-  }
-
-  public class RootMenu {
-    ctor public RootMenu(java.lang.String);
-    ctor public RootMenu(java.lang.String, android.os.Bundle);
-    method public android.os.Bundle getBundle();
-    method public java.lang.String getId();
-  }
-
-  public abstract class SearchBoxEditListener {
-    ctor public SearchBoxEditListener();
-    method public abstract void onEdit(java.lang.String);
-    method public abstract void onSearch(java.lang.String);
-  }
-
-  public abstract class SubscriptionCallbacks {
-    ctor public SubscriptionCallbacks();
-    method public abstract void onChildChanged(java.lang.String, android.os.Bundle);
-    method public abstract void onChildrenLoaded(java.lang.String, java.util.List<android.os.Bundle>);
-    method public abstract void onError(java.lang.String);
-  }
-
-}
-
-package android.car.cluster.renderer {
-
-  public class DisplayConfiguration implements android.os.Parcelable {
-    ctor public DisplayConfiguration(android.os.Parcel);
-    ctor public DisplayConfiguration(android.graphics.Rect);
-    ctor public DisplayConfiguration(android.graphics.Rect, android.graphics.Rect);
-    method public int describeContents();
-    method public android.graphics.Rect getPrimaryRegion();
-    method public android.graphics.Rect getSecondaryRegion();
-    method public boolean hasSecondaryRegion();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.cluster.renderer.DisplayConfiguration> CREATOR;
-  }
-
-  public abstract class InstrumentClusterRenderer {
-    ctor public InstrumentClusterRenderer();
-    method protected abstract android.car.cluster.renderer.NavigationRenderer createNavigationRenderer();
-    method public synchronized android.car.cluster.renderer.NavigationRenderer getNavigationRenderer();
-    method public final synchronized void initialize();
-    method public abstract void onCreate(android.content.Context);
-    method public abstract void onStart();
-    method public abstract void onStop();
-  }
-
-  public abstract class InstrumentClusterRenderingService extends android.app.Service {
-    ctor public InstrumentClusterRenderingService();
-    method protected abstract android.car.cluster.renderer.NavigationRenderer getNavigationRenderer();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method protected void onKeyEvent(android.view.KeyEvent);
-  }
-
-  public abstract class NavigationRenderer {
-    ctor public NavigationRenderer();
-    method public abstract android.car.navigation.CarNavigationInstrumentCluster getNavigationProperties();
-    method public abstract void onNextTurnChanged(int, java.lang.CharSequence, int, int, android.graphics.Bitmap, int);
-    method public abstract void onNextTurnDistanceChanged(int, int, int, int);
-    method public abstract void onStartNavigation();
-    method public abstract void onStopNavigation();
-  }
-
-}
-
-package android.car.content.pm {
-
-  public class AppBlockingPackageInfo implements android.os.Parcelable {
-    ctor public AppBlockingPackageInfo(java.lang.String, int, int, int, android.content.pm.Signature[], java.lang.String[]);
-    ctor public AppBlockingPackageInfo(android.os.Parcel);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.content.pm.AppBlockingPackageInfo> CREATOR;
-    field public static final int FLAG_SYSTEM_APP = 1; // 0x1
-    field public static final int FLAG_WHOLE_ACTIVITY = 2; // 0x2
-    field public final java.lang.String[] activities;
-    field public final int flags;
-    field public final int maxRevisionCode;
-    field public final int minRevisionCode;
-    field public final java.lang.String packageName;
-    field public final android.content.pm.Signature[] signatures;
-  }
-
-  public class CarAppBlockingPolicy implements android.os.Parcelable {
-    ctor public CarAppBlockingPolicy(android.car.content.pm.AppBlockingPackageInfo[], android.car.content.pm.AppBlockingPackageInfo[]);
-    ctor public CarAppBlockingPolicy(android.os.Parcel);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.content.pm.CarAppBlockingPolicy> CREATOR;
-    field public final android.car.content.pm.AppBlockingPackageInfo[] blacklists;
-    field public final android.car.content.pm.AppBlockingPackageInfo[] whitelists;
-  }
-
-  public abstract class CarAppBlockingPolicyService extends android.app.Service {
-    ctor public CarAppBlockingPolicyService();
-    method protected abstract android.car.content.pm.CarAppBlockingPolicy getAppBlockingPolicy();
-    method public android.os.IBinder onBind(android.content.Intent);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.car.content.pm.CarAppBlockingPolicyService";
-  }
-
-  public final class CarPackageManager {
-    method public boolean isActivityAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
-    method public boolean isActivityBackedBySafeActivity(android.content.ComponentName) throws android.car.CarNotConnectedException;
-    method public boolean isServiceAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
-    method public void setAppBlockingPolicy(java.lang.String, android.car.content.pm.CarAppBlockingPolicy, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException, java.lang.SecurityException;
-    field public static final int FLAG_SET_POLICY_ADD = 2; // 0x2
-    field public static final int FLAG_SET_POLICY_REMOVE = 4; // 0x4
-    field public static final int FLAG_SET_POLICY_WAIT_FOR_CHANGE = 1; // 0x1
-  }
-
-}
-
-package android.car.hardware {
-
-  public class CarPropertyConfig<T> implements android.os.Parcelable {
-    method public int describeContents();
-    method public int getAreaCount();
-    method public int[] getAreaIds();
-    method public int getAreaType();
-    method public int getFirstAndOnlyAreaId();
-    method public T getMaxValue(int);
-    method public T getMaxValue();
-    method public T getMinValue(int);
-    method public T getMinValue();
-    method public int getPropertyId();
-    method public java.lang.Class<T> getPropertyType();
-    method public boolean hasArea(int);
-    method public boolean isGlobalProperty();
-    method public static <T> android.car.hardware.CarPropertyConfig.Builder<T> newBuilder(java.lang.Class<T>, int, int, int);
-    method public static <T> android.car.hardware.CarPropertyConfig.Builder<T> newBuilder(java.lang.Class<T>, int, int);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyConfig> CREATOR;
-  }
-
-  public static class CarPropertyConfig.AreaConfig<T> implements android.os.Parcelable {
-    method public int describeContents();
-    method public T getMaxValue();
-    method public T getMinValue();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyConfig.AreaConfig<java.lang.Object>> CREATOR;
-  }
-
-  public static class CarPropertyConfig.Builder<T> {
-    method public android.car.hardware.CarPropertyConfig.Builder<T> addArea(int);
-    method public android.car.hardware.CarPropertyConfig.Builder<T> addAreaConfig(int, T, T);
-    method public android.car.hardware.CarPropertyConfig.Builder<T> addAreas(int[]);
-    method public android.car.hardware.CarPropertyConfig<T> build();
-  }
-
-  public class CarPropertyValue<T> implements android.os.Parcelable {
-    ctor public CarPropertyValue(int, T);
-    ctor public CarPropertyValue(int, int, T);
-    ctor public CarPropertyValue(android.os.Parcel);
-    method public int describeContents();
-    method public int getAreaId();
-    method public int getPropertyId();
-    method public T getValue();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyValue> CREATOR;
-  }
-
-  public class CarSensorEvent implements android.os.Parcelable {
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarSensorEvent> CREATOR;
-    field public static final int DRIVE_STATUS_FULLY_RESTRICTED = 31; // 0x1f
-    field public static final int DRIVE_STATUS_LIMIT_MESSAGE_LEN = 16; // 0x10
-    field public static final int DRIVE_STATUS_NO_CONFIG = 8; // 0x8
-    field public static final int DRIVE_STATUS_NO_KEYBOARD_INPUT = 2; // 0x2
-    field public static final int DRIVE_STATUS_NO_VIDEO = 1; // 0x1
-    field public static final int DRIVE_STATUS_NO_VOICE_INPUT = 4; // 0x4
-    field public static final int DRIVE_STATUS_UNRESTRICTED = 0; // 0x0
-    field public static final int GEAR_DRIVE = 100; // 0x64
-    field public static final int GEAR_EIGHTH = 8; // 0x8
-    field public static final int GEAR_FIFTH = 5; // 0x5
-    field public static final int GEAR_FIRST = 1; // 0x1
-    field public static final int GEAR_FOURTH = 4; // 0x4
-    field public static final int GEAR_NEUTRAL = 0; // 0x0
-    field public static final int GEAR_NINTH = 9; // 0x9
-    field public static final int GEAR_PARK = 101; // 0x65
-    field public static final int GEAR_REVERSE = 102; // 0x66
-    field public static final int GEAR_SECOND = 2; // 0x2
-    field public static final int GEAR_SEVENTH = 7; // 0x7
-    field public static final int GEAR_SIXTH = 6; // 0x6
-    field public static final int GEAR_TENTH = 10; // 0xa
-    field public static final int GEAR_THIRD = 3; // 0x3
-    field public static final int INDEX_ENVIRONMENT_PRESSURE = 1; // 0x1
-    field public static final int INDEX_ENVIRONMENT_TEMPERATURE = 0; // 0x0
-    field public static final int INDEX_FUEL_LEVEL_IN_DISTANCE = 1; // 0x1
-    field public static final int INDEX_FUEL_LEVEL_IN_PERCENTILE = 0; // 0x0
-    field public static final int INDEX_FUEL_LOW_WARNING = 0; // 0x0
-    field public final float[] floatValues;
-    field public final int[] intValues;
-    field public int sensorType;
-    field public long timestamp;
-  }
-
-  public static class CarSensorEvent.EnvironmentData {
-    field public float pressure;
-    field public float temperature;
-    field public long timestamp;
-  }
-
-  public final class CarSensorManager {
-    method public android.car.hardware.CarSensorEvent getLatestSensorEvent(int) throws android.car.CarNotConnectedException;
-    method public int[] getSupportedSensors() throws android.car.CarNotConnectedException;
-    method public boolean isSensorSupported(int) throws android.car.CarNotConnectedException;
-    method public static boolean isSensorSupported(int[], int);
-    method public boolean registerListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
-    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener);
-    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int);
-    field public static final int SENSOR_RATE_FAST = 1; // 0x1
-    field public static final int SENSOR_RATE_FASTEST = 0; // 0x0
-    field public static final int SENSOR_RATE_NORMAL = 3; // 0x3
-    field public static final int SENSOR_RATE_UI = 2; // 0x2
-    field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
-    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
-    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
-    field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
-    field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
-    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
-    field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
-    field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
-    field public static final int SENSOR_TYPE_RPM = 3; // 0x3
-    field public static final int SENSOR_TYPE_VENDOR_EXTENSION_END = 1879048191; // 0x6fffffff
-  }
-
-  public static abstract interface CarSensorManager.OnSensorChangedListener {
-    method public abstract void onSensorChanged(android.car.hardware.CarSensorEvent);
-  }
-
-  public final class CarVendorExtensionManager {
-    method public <E> E getGlobalProperty(java.lang.Class<E>, int) throws android.car.CarNotConnectedException;
-    method public java.util.List<android.car.hardware.CarPropertyConfig> getProperties() throws android.car.CarNotConnectedException;
-    method public <E> E getProperty(java.lang.Class<E>, int, int) throws android.car.CarNotConnectedException;
-    method public void registerCallback(android.car.hardware.CarVendorExtensionManager.CarVendorExtensionCallback) throws android.car.CarNotConnectedException;
-    method public <E> void setGlobalProperty(java.lang.Class<E>, int, E) throws android.car.CarNotConnectedException;
-    method public <E> void setProperty(java.lang.Class<E>, int, int, E) throws android.car.CarNotConnectedException;
-    method public void unregisterCallback(android.car.hardware.CarVendorExtensionManager.CarVendorExtensionCallback);
-  }
-
-  public static abstract interface CarVendorExtensionManager.CarVendorExtensionCallback {
-    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
-    method public abstract void onErrorEvent(int, int);
-  }
-
-}
-
-package android.car.hardware.cabin {
-
-  public final class CarCabinManager {
-    method public boolean getBooleanProperty(int, int) throws android.car.CarNotConnectedException;
-    method public float getFloatProperty(int, int) throws android.car.CarNotConnectedException;
-    method public int getIntProperty(int, int) throws android.car.CarNotConnectedException;
-    method public java.util.List<android.car.hardware.CarPropertyConfig> getPropertyList() throws android.car.CarNotConnectedException;
-    method public static boolean isZonedProperty(int);
-    method public synchronized void registerCallback(android.car.hardware.cabin.CarCabinManager.CarCabinEventCallback) throws android.car.CarNotConnectedException;
-    method public void setBooleanProperty(int, int, boolean) throws android.car.CarNotConnectedException;
-    method public void setFloatProperty(int, int, float) throws android.car.CarNotConnectedException;
-    method public void setIntProperty(int, int, int) throws android.car.CarNotConnectedException;
-    method public synchronized void unregisterCallback(android.car.hardware.cabin.CarCabinManager.CarCabinEventCallback);
-    field public static final int ID_DOOR_LOCK = 3; // 0x3
-    field public static final int ID_DOOR_MOVE = 2; // 0x2
-    field public static final int ID_DOOR_POS = 1; // 0x1
-    field public static final int ID_MIRROR_FOLD = 4102; // 0x1006
-    field public static final int ID_MIRROR_LOCK = 4101; // 0x1005
-    field public static final int ID_MIRROR_Y_MOVE = 4100; // 0x1004
-    field public static final int ID_MIRROR_Y_POS = 4099; // 0x1003
-    field public static final int ID_MIRROR_Z_MOVE = 4098; // 0x1002
-    field public static final int ID_MIRROR_Z_POS = 4097; // 0x1001
-    field public static final int ID_SEAT_BACKREST_ANGLE_1_MOVE = 8201; // 0x2009
-    field public static final int ID_SEAT_BACKREST_ANGLE_1_POS = 8200; // 0x2008
-    field public static final int ID_SEAT_BACKREST_ANGLE_2_MOVE = 8203; // 0x200b
-    field public static final int ID_SEAT_BACKREST_ANGLE_2_POS = 8202; // 0x200a
-    field public static final int ID_SEAT_BELT_BUCKLED = 8195; // 0x2003
-    field public static final int ID_SEAT_BELT_HEIGHT_MOVE = 8197; // 0x2005
-    field public static final int ID_SEAT_BELT_HEIGHT_POS = 8196; // 0x2004
-    field public static final int ID_SEAT_DEPTH_MOVE = 8207; // 0x200f
-    field public static final int ID_SEAT_DEPTH_POS = 8206; // 0x200e
-    field public static final int ID_SEAT_FORE_AFT_MOVE = 8199; // 0x2007
-    field public static final int ID_SEAT_FORE_AFT_POS = 8198; // 0x2006
-    field public static final int ID_SEAT_HEADREST_ANGLE_MOVE = 8217; // 0x2019
-    field public static final int ID_SEAT_HEADREST_ANGLE_POS = 8216; // 0x2018
-    field public static final int ID_SEAT_HEADREST_FORE_AFT_MOVE = 8219; // 0x201b
-    field public static final int ID_SEAT_HEADREST_FORE_AFT_POS = 8218; // 0x201a
-    field public static final int ID_SEAT_HEADREST_HEIGHT_MOVE = 8215; // 0x2017
-    field public static final int ID_SEAT_HEADREST_HEIGHT_POS = 8214; // 0x2016
-    field public static final int ID_SEAT_HEIGHT_MOVE = 8205; // 0x200d
-    field public static final int ID_SEAT_HEIGHT_POS = 8204; // 0x200c
-    field public static final int ID_SEAT_LUMBAR_FORE_AFT_MOVE = 8211; // 0x2013
-    field public static final int ID_SEAT_LUMBAR_FORE_AFT_POS = 8210; // 0x2012
-    field public static final int ID_SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 8213; // 0x2015
-    field public static final int ID_SEAT_LUMBAR_SIDE_SUPPORT_POS = 8212; // 0x2014
-    field public static final int ID_SEAT_MEMORY_SELECT = 8193; // 0x2001
-    field public static final int ID_SEAT_MEMORY_SET = 8194; // 0x2002
-    field public static final int ID_SEAT_TILT_MOVE = 8209; // 0x2011
-    field public static final int ID_SEAT_TILT_POS = 8208; // 0x2010
-    field public static final int ID_WINDOW_LOCK = 12293; // 0x3005
-    field public static final int ID_WINDOW_MOVE = 12290; // 0x3002
-    field public static final int ID_WINDOW_POS = 12289; // 0x3001
-    field public static final int ID_WINDOW_VENT_MOVE = 12292; // 0x3004
-    field public static final int ID_WINDOW_VENT_POS = 12291; // 0x3003
-  }
-
-  public static abstract interface CarCabinManager.CarCabinEventCallback {
-    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
-    method public abstract void onErrorEvent(int, int);
-  }
-
-}
-
-package android.car.hardware.camera {
-
-  public class CarCamera {
-    ctor public CarCamera(android.car.hardware.camera.ICarCamera, int);
-    method public android.graphics.Rect getCameraCrop() throws android.car.CarNotConnectedException;
-    method public android.graphics.Rect getCameraPosition() throws android.car.CarNotConnectedException;
-    method public android.car.hardware.camera.CarCameraState getCameraState() throws android.car.CarNotConnectedException;
-    method public int getCapabilities() throws android.car.CarNotConnectedException;
-    method public void setCameraCrop(android.graphics.Rect) throws android.car.CarNotConnectedException;
-    method public void setCameraPosition(android.graphics.Rect) throws android.car.CarNotConnectedException;
-    method public void setCameraState(android.car.hardware.camera.CarCameraState) throws android.car.CarNotConnectedException;
-    field public static final java.lang.String TAG;
-    field public final int mCameraType;
-  }
-
-  public final class CarCameraManager {
-    method public void closeCamera(android.car.hardware.camera.CarCamera);
-    method public int getCameraCapabilities(int) throws android.car.CarNotConnectedException;
-    method public int[] getCameraList() throws android.car.CarNotConnectedException;
-    method public android.car.hardware.camera.CarCamera openCamera(int) throws android.car.CarNotConnectedException;
-    field public static final int ANDROID_OVERLAY_SUPPORT_FLAG = 1; // 0x1
-    field public static final int CAMERA_CROP_SUPPORT_FLAG = 2; // 0x2
-    field public static final int CAMERA_POSITIONING_SUPPORT_FLAG = 4; // 0x4
-    field public static final int CAR_CAMERA_TYPE_NONE = 0; // 0x0
-    field public static final int CAR_CAMERA_TYPE_RVC = 1; // 0x1
-  }
-
-  public class CarCameraState implements android.os.Parcelable {
-    ctor public CarCameraState(android.car.hardware.camera.CarCameraState);
-    ctor public CarCameraState(boolean, boolean);
-    method public int describeContents();
-    method public boolean getCameraIsOn();
-    method public boolean getOverlayIsOn();
-    method public void setCameraIsOn(boolean);
-    method public void setOverlayIsOn(boolean);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.camera.CarCameraState> CREATOR;
-  }
-
-  public abstract interface ICarCamera implements android.os.IInterface {
-    method public abstract android.graphics.Rect getCameraCrop(int) throws android.os.RemoteException;
-    method public abstract int[] getCameraList() throws android.os.RemoteException;
-    method public abstract android.graphics.Rect getCameraPosition(int) throws android.os.RemoteException;
-    method public abstract android.car.hardware.camera.CarCameraState getCameraState(int) throws android.os.RemoteException;
-    method public abstract int getCapabilities(int) throws android.os.RemoteException;
-    method public abstract void setCameraCrop(int, android.graphics.Rect) throws android.os.RemoteException;
-    method public abstract void setCameraPosition(int, android.graphics.Rect) throws android.os.RemoteException;
-    method public abstract void setCameraState(int, android.car.hardware.camera.CarCameraState) throws android.os.RemoteException;
-  }
-
-}
-
-package android.car.hardware.hvac {
-
-  public final class CarHvacManager {
-    method public boolean getBooleanProperty(int, int) throws android.car.CarNotConnectedException;
-    method public float getFloatProperty(int, int) throws android.car.CarNotConnectedException;
-    method public int getIntProperty(int, int) throws android.car.CarNotConnectedException;
-    method public java.util.List<android.car.hardware.CarPropertyConfig> getPropertyList() throws android.car.CarNotConnectedException;
-    method public static boolean isZonedProperty(int);
-    method public synchronized void registerCallback(android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback) throws android.car.CarNotConnectedException;
-    method public void setBooleanProperty(int, int, boolean) throws android.car.CarNotConnectedException;
-    method public void setFloatProperty(int, int, float) throws android.car.CarNotConnectedException;
-    method public void setIntProperty(int, int, int) throws android.car.CarNotConnectedException;
-    method public synchronized void unregisterCallback(android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback);
-    field public static final int ID_MIRROR_DEFROSTER_ON = 1; // 0x1
-    field public static final int ID_OUTSIDE_AIR_TEMP = 3; // 0x3
-    field public static final int ID_STEERING_WHEEL_TEMP = 2; // 0x2
-    field public static final int ID_TEMPERATURE_UNITS = 4; // 0x4
-    field public static final int ID_WINDOW_DEFROSTER_ON = 20481; // 0x5001
-    field public static final int ID_ZONED_AC_ON = 16393; // 0x4009
-    field public static final int ID_ZONED_AIR_RECIRCULATION_ON = 16395; // 0x400b
-    field public static final int ID_ZONED_AUTOMATIC_MODE_ON = 16394; // 0x400a
-    field public static final int ID_ZONED_DUAL_ZONE_ON = 16397; // 0x400d
-    field public static final int ID_ZONED_FAN_DIRECTION = 16391; // 0x4007
-    field public static final int ID_ZONED_FAN_DIRECTION_AVAILABLE = 16390; // 0x4006
-    field public static final int ID_ZONED_FAN_SPEED_RPM = 16389; // 0x4005
-    field public static final int ID_ZONED_FAN_SPEED_SETPOINT = 16388; // 0x4004
-    field public static final int ID_ZONED_HVAC_POWER_ON = 16387; // 0x4003
-    field public static final int ID_ZONED_MAX_AC_ON = 16396; // 0x400c
-    field public static final int ID_ZONED_MAX_DEFROST_ON = 16398; // 0x400e
-    field public static final int ID_ZONED_SEAT_TEMP = 16392; // 0x4008
-    field public static final int ID_ZONED_TEMP_ACTUAL = 16386; // 0x4002
-    field public static final int ID_ZONED_TEMP_SETPOINT = 16385; // 0x4001
-  }
-
-  public static abstract interface CarHvacManager.CarHvacEventCallback {
-    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
-    method public abstract void onErrorEvent(int, int);
-  }
-
-}
-
-package android.car.hardware.radio {
-
-  public class CarRadioEvent implements android.os.Parcelable {
-    ctor public CarRadioEvent(int, android.car.hardware.radio.CarRadioPreset);
-    method public int describeContents();
-    method public int getEventType();
-    method public android.car.hardware.radio.CarRadioPreset getPreset();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.radio.CarRadioEvent> CREATOR;
-    field public static final int RADIO_PRESET = 0; // 0x0
-  }
-
-  public final class CarRadioManager {
-    method public android.car.hardware.radio.CarRadioPreset getPreset(int) throws android.car.CarNotConnectedException;
-    method public int getPresetCount() throws android.car.CarNotConnectedException;
-    method public synchronized void registerListener(android.car.hardware.radio.CarRadioManager.CarRadioEventListener) throws android.car.CarNotConnectedException;
-    method public boolean setPreset(android.car.hardware.radio.CarRadioPreset) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
-    method public synchronized void unregisterListener();
-  }
-
-  public static abstract interface CarRadioManager.CarRadioEventListener {
-    method public abstract void onEvent(android.car.hardware.radio.CarRadioEvent);
-  }
-
-  public class CarRadioPreset implements android.os.Parcelable {
-    ctor public CarRadioPreset(int, int, int, int);
-    method public int describeContents();
-    method public int getBand();
-    method public int getChannel();
-    method public int getPresetNumber();
-    method public int getSubChannel();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.radio.CarRadioPreset> CREATOR;
-  }
-
-}
-
-package android.car.input {
-
-  public abstract class CarInputHandlingService extends android.app.Service {
-    ctor protected CarInputHandlingService(android.car.input.CarInputHandlingService.InputFilter[]);
-    method public android.os.IBinder onBind(android.content.Intent);
-    method protected abstract void onKeyEvent(android.view.KeyEvent, int);
-    field public static final int INPUT_CALLBACK_BINDER_CODE = 1; // 0x1
-    field public static final java.lang.String INPUT_CALLBACK_BINDER_KEY = "callback_binder";
-  }
-
-  public static class CarInputHandlingService.InputFilter implements android.os.Parcelable {
-    ctor public CarInputHandlingService.InputFilter(int, int);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator CREATOR;
-    field public final int mKeyCode;
-    field public final int mTargetDisplay;
-  }
-
-}
-
-package android.car.media {
-
-  public final class CarAudioManager {
-    method public void abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
-    method public android.media.AudioAttributes getAudioAttributesForCarUsage(int) throws android.car.CarNotConnectedException;
-    method public int getStreamMaxVolume(int) throws android.car.CarNotConnectedException;
-    method public int getStreamMinVolume(int) throws android.car.CarNotConnectedException;
-    method public int getStreamVolume(int) throws android.car.CarNotConnectedException;
-    method public boolean isMediaMuted() throws android.car.CarNotConnectedException;
-    method public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
-    method public boolean setMediaMute(boolean) throws android.car.CarNotConnectedException;
-    method public void setStreamVolume(int, int, int) throws android.car.CarNotConnectedException;
-    method public void setVolumeController(android.media.IVolumeController) throws android.car.CarNotConnectedException;
-    field public static final int CAR_AUDIO_USAGE_ALARM = 6; // 0x6
-    field public static final int CAR_AUDIO_USAGE_DEFAULT = 0; // 0x0
-    field public static final int CAR_AUDIO_USAGE_MUSIC = 1; // 0x1
-    field public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3; // 0x3
-    field public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7; // 0x7
-    field public static final int CAR_AUDIO_USAGE_RADIO = 2; // 0x2
-    field public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9; // 0x9
-    field public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8; // 0x8
-    field public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4; // 0x4
-    field public static final int CAR_AUDIO_USAGE_VOICE_COMMAND = 5; // 0x5
-  }
-
-}
-
-package android.car.navigation {
-
-  public class CarNavigationInstrumentCluster implements android.os.Parcelable {
-    ctor public CarNavigationInstrumentCluster(android.car.navigation.CarNavigationInstrumentCluster);
-    method public static android.car.navigation.CarNavigationInstrumentCluster createCluster(int);
-    method public static android.car.navigation.CarNavigationInstrumentCluster createCustomImageCluster(int, int, int, int);
-    method public int describeContents();
-    method public int getImageColorDepthBits();
-    method public int getImageHeight();
-    method public int getImageWidth();
-    method public int getMinIntervalMillis();
-    method public int getType();
-    method public boolean supportsCustomImages();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final int CLUSTER_TYPE_CUSTOM_IMAGES_SUPPORTED = 1; // 0x1
-    field public static final int CLUSTER_TYPE_IMAGE_CODES_ONLY = 2; // 0x2
-    field public static final android.os.Parcelable.Creator<android.car.navigation.CarNavigationInstrumentCluster> CREATOR;
-  }
-
-}
-
-package android.car.settings {
-
-  public class CarSettings {
-    ctor public CarSettings();
-  }
-
-  public static final class CarSettings.Global {
-    ctor public CarSettings.Global();
-    field public static final java.lang.String KEY_GARAGE_MODE_ENABLED = "android.car.GARAGE_MODE_ENABLED";
-    field public static final java.lang.String KEY_GARAGE_MODE_MAINTENANCE_WINDOW = "android.car.GARAGE_MODE_MAINTENANCE_WINDOW";
-    field public static final java.lang.String KEY_GARAGE_MODE_WAKE_UP_TIME = "android.car.GARAGE_MODE_WAKE_UP_TIME";
-  }
-
-}
-
-package android.car.test {
-
-  public class CarTestManagerBinderWrapper {
-    ctor public CarTestManagerBinderWrapper(android.os.IBinder);
-    method public void onCarDisconnected();
-    field public final android.os.IBinder binder;
-  }
-
-}
-
diff --git a/car-lib/api/system-released/system-2.txt b/car-lib/api/system-released/system-2.txt
index 3a2f2de..e69de29 100644
--- a/car-lib/api/system-released/system-2.txt
+++ b/car-lib/api/system-released/system-2.txt
@@ -1,752 +0,0 @@
-package android.car {
-
-  public final class Car {
-    method public void connect() throws java.lang.IllegalStateException;
-    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection, android.os.Handler);
-    method public static android.car.Car createCar(android.content.Context, android.content.ServiceConnection);
-    method public void disconnect();
-    method public int getCarConnectionType();
-    method public java.lang.Object getCarManager(java.lang.String) throws android.car.CarNotConnectedException;
-    method public boolean isConnected();
-    method public boolean isConnecting();
-    field public static final java.lang.String APP_FOCUS_SERVICE = "app_focus";
-    field public static final java.lang.String AUDIO_SERVICE = "audio";
-    field public static final java.lang.String CABIN_SERVICE = "cabin";
-    field public static final int CONNECTION_TYPE_EMBEDDED = 5; // 0x5
-    field public static final java.lang.String DIAGNOSTIC_SERVICE = "diagnostic";
-    field public static final java.lang.String HVAC_SERVICE = "hvac";
-    field public static final java.lang.String INFO_SERVICE = "info";
-    field public static final java.lang.String PACKAGE_SERVICE = "package";
-    field public static final java.lang.String PERMISSION_CAR_CABIN = "android.car.permission.CAR_CABIN";
-    field public static final java.lang.String PERMISSION_CAR_CONTROL_AUDIO_VOLUME = "android.car.permission.CAR_CONTROL_AUDIO_VOLUME";
-    field public static final java.lang.String PERMISSION_CAR_DIAGNOSTIC_CLEAR = "android.car.permission.DIAGNOSTIC_CLEAR";
-    field public static final java.lang.String PERMISSION_CAR_DIAGNOSTIC_READ = "android.car.permission.DIAGNOSTIC_READ";
-    field public static final java.lang.String PERMISSION_CAR_HVAC = "android.car.permission.CAR_HVAC";
-    field public static final java.lang.String PERMISSION_CAR_PROJECTION = "android.car.permission.CAR_PROJECTION";
-    field public static final java.lang.String PERMISSION_CAR_RADIO = "android.car.permission.CAR_RADIO";
-    field public static final java.lang.String PERMISSION_CAR_TEST_SERVICE = "android.car.permission.CAR_TEST_SERVICE";
-    field public static final java.lang.String PERMISSION_CONTROL_APP_BLOCKING = "android.car.permission.CONTROL_APP_BLOCKING";
-    field public static final java.lang.String PERMISSION_FUEL = "android.car.permission.CAR_FUEL";
-    field public static final java.lang.String PERMISSION_MILEAGE = "android.car.permission.CAR_MILEAGE";
-    field public static final deprecated java.lang.String PERMISSION_MOCK_VEHICLE_HAL = "android.car.permission.CAR_MOCK_VEHICLE_HAL";
-    field public static final java.lang.String PERMISSION_SPEED = "android.car.permission.CAR_SPEED";
-    field public static final java.lang.String PERMISSION_VENDOR_EXTENSION = "android.car.permission.CAR_VENDOR_EXTENSION";
-    field public static final java.lang.String PERMISSION_VMS_PUBLISHER = "android.car.permission.VMS_PUBLISHER";
-    field public static final java.lang.String PERMISSION_VMS_SUBSCRIBER = "android.car.permission.VMS_SUBSCRIBER";
-    field public static final java.lang.String PROJECTION_SERVICE = "projection";
-    field public static final java.lang.String RADIO_SERVICE = "radio";
-    field public static final java.lang.String SENSOR_SERVICE = "sensor";
-    field public static final java.lang.String TEST_SERVICE = "car-service-test";
-    field public static final java.lang.String VENDOR_EXTENSION_SERVICE = "vendor_extension";
-    field public static final int VERSION = 2; // 0x2
-    field public static final java.lang.String VMS_SUBSCRIBER_SERVICE = "vehicle_map_subscriber_service";
-  }
-
-  public final class CarAppFocusManager {
-    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int);
-    method public void abandonAppFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback);
-    method public void addFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int) throws android.car.CarNotConnectedException;
-    method public boolean isOwningFocus(android.car.CarAppFocusManager.OnAppFocusOwnershipCallback, int) throws android.car.CarNotConnectedException;
-    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener, int);
-    method public void removeFocusListener(android.car.CarAppFocusManager.OnAppFocusChangedListener);
-    method public int requestAppFocus(int, android.car.CarAppFocusManager.OnAppFocusOwnershipCallback) throws android.car.CarNotConnectedException, java.lang.SecurityException;
-    field public static final int APP_FOCUS_REQUEST_FAILED = 0; // 0x0
-    field public static final int APP_FOCUS_REQUEST_SUCCEEDED = 1; // 0x1
-    field public static final int APP_FOCUS_TYPE_NAVIGATION = 1; // 0x1
-    field public static final int APP_FOCUS_TYPE_VOICE_COMMAND = 2; // 0x2
-  }
-
-  public static abstract interface CarAppFocusManager.OnAppFocusChangedListener {
-    method public abstract void onAppFocusChanged(int, boolean);
-  }
-
-  public static abstract interface CarAppFocusManager.OnAppFocusOwnershipCallback {
-    method public abstract void onAppFocusOwnershipGranted(int);
-    method public abstract void onAppFocusOwnershipLost(int);
-  }
-
-  public final class CarInfoManager {
-    method public java.lang.String getManufacturer() throws android.car.CarNotConnectedException;
-    method public java.lang.String getModel() throws android.car.CarNotConnectedException;
-    method public java.lang.String getModelYear() throws android.car.CarNotConnectedException;
-    method public java.lang.String getVehicleId() throws android.car.CarNotConnectedException;
-  }
-
-  public class CarNotConnectedException extends java.lang.Exception {
-    ctor public CarNotConnectedException();
-    ctor public CarNotConnectedException(java.lang.String);
-    ctor public CarNotConnectedException(java.lang.String, java.lang.Throwable);
-    ctor public CarNotConnectedException(java.lang.Exception);
-  }
-
-  public final class CarProjectionManager {
-    method public void onCarDisconnected();
-    method public void registerProjectionRunner(android.content.Intent) throws android.car.CarNotConnectedException;
-    method public void regsiterProjectionListener(android.car.CarProjectionManager.CarProjectionListener, int) throws android.car.CarNotConnectedException;
-    method public void unregisterProjectionRunner(android.content.Intent);
-    method public void unregsiterProjectionListener();
-    field public static final int PROJECTION_LONG_PRESS_VOICE_SEARCH = 2; // 0x2
-    field public static final int PROJECTION_VOICE_SEARCH = 1; // 0x1
-  }
-
-  public static abstract interface CarProjectionManager.CarProjectionListener {
-    method public abstract void onVoiceAssistantRequest(boolean);
-  }
-
-  public final class VehicleAreaType {
-    field public static final int VEHICLE_AREA_TYPE_DOOR = 4; // 0x4
-    field public static final int VEHICLE_AREA_TYPE_MIRROR = 5; // 0x5
-    field public static final int VEHICLE_AREA_TYPE_NONE = 0; // 0x0
-    field public static final int VEHICLE_AREA_TYPE_SEAT = 3; // 0x3
-    field public static final int VEHICLE_AREA_TYPE_WINDOW = 2; // 0x2
-    field public static final int VEHICLE_AREA_TYPE_ZONE = 1; // 0x1
-  }
-
-  public final class VehicleDoor {
-    field public static final int DOOR_HOOD = 268435456; // 0x10000000
-    field public static final int DOOR_REAR = 536870912; // 0x20000000
-    field public static final int DOOR_ROW_1_LEFT = 1; // 0x1
-    field public static final int DOOR_ROW_1_RIGHT = 4; // 0x4
-    field public static final int DOOR_ROW_2_LEFT = 16; // 0x10
-    field public static final int DOOR_ROW_2_RIGHT = 64; // 0x40
-    field public static final int DOOR_ROW_3_LEFT = 256; // 0x100
-    field public static final int DOOR_ROW_3_RIGHT = 1024; // 0x400
-  }
-
-  public final class VehicleMirror {
-    field public static final int MIRROR_DRIVER_CENTER = 4; // 0x4
-    field public static final int MIRROR_DRIVER_LEFT = 1; // 0x1
-    field public static final int MIRROR_DRIVER_RIGHT = 2; // 0x2
-  }
-
-  public final class VehicleSeat {
-    field public static final int SEAT_ROW_1_CENTER = 2; // 0x2
-    field public static final int SEAT_ROW_1_LEFT = 1; // 0x1
-    field public static final int SEAT_ROW_1_RIGHT = 4; // 0x4
-    field public static final int SEAT_ROW_2_CENTER = 32; // 0x20
-    field public static final int SEAT_ROW_2_LEFT = 16; // 0x10
-    field public static final int SEAT_ROW_2_RIGHT = 64; // 0x40
-    field public static final int SEAT_ROW_3_CENTER = 512; // 0x200
-    field public static final int SEAT_ROW_3_LEFT = 256; // 0x100
-    field public static final int SEAT_ROW_3_RIGHT = 1024; // 0x400
-  }
-
-  public final class VehicleWindow {
-    field public static final int WINDOW_FRONT_WINDSHIELD = 1; // 0x1
-    field public static final int WINDOW_REAR_WINDSHIELD = 2; // 0x2
-    field public static final int WINDOW_ROOF_TOP = 4; // 0x4
-    field public static final int WINDOW_ROW_1_LEFT = 16; // 0x10
-    field public static final int WINDOW_ROW_1_RIGHT = 32; // 0x20
-    field public static final int WINDOW_ROW_2_LEFT = 256; // 0x100
-    field public static final int WINDOW_ROW_2_RIGHT = 512; // 0x200
-    field public static final int WINDOW_ROW_3_LEFT = 4096; // 0x1000
-    field public static final int WINDOW_ROW_3_RIGHT = 8192; // 0x2000
-  }
-
-  public final class VehicleZone {
-    field public static final int ZONE_ALL = -2147483648; // 0x80000000
-    field public static final int ZONE_ROW_1_ALL = 8; // 0x8
-    field public static final int ZONE_ROW_1_CENTER = 2; // 0x2
-    field public static final int ZONE_ROW_1_LEFT = 1; // 0x1
-    field public static final int ZONE_ROW_1_RIGHT = 4; // 0x4
-    field public static final int ZONE_ROW_2_ALL = 128; // 0x80
-    field public static final int ZONE_ROW_2_CENTER = 32; // 0x20
-    field public static final int ZONE_ROW_2_LEFT = 16; // 0x10
-    field public static final int ZONE_ROW_2_RIGHT = 64; // 0x40
-    field public static final int ZONE_ROW_3_ALL = 2048; // 0x800
-    field public static final int ZONE_ROW_3_CENTER = 512; // 0x200
-    field public static final int ZONE_ROW_3_LEFT = 256; // 0x100
-    field public static final int ZONE_ROW_3_RIGHT = 1024; // 0x400
-    field public static final int ZONE_ROW_4_ALL = 32768; // 0x8000
-    field public static final int ZONE_ROW_4_CENTER = 8192; // 0x2000
-    field public static final int ZONE_ROW_4_LEFT = 4096; // 0x1000
-    field public static final int ZONE_ROW_4_RIGHT = 16384; // 0x4000
-  }
-
-  public final class VehicleZoneUtil {
-    method public static int getFirstZone(int);
-    method public static int getNextZone(int, int) throws java.lang.IllegalArgumentException;
-    method public static int getNumberOfZones(int);
-    method public static int[] listAllZones(int);
-    method public static int zoneToIndex(int, int) throws java.lang.IllegalArgumentException;
-  }
-
-}
-
-package android.car.app.menu {
-
-  public abstract class CarMenuCallbacks {
-    ctor public CarMenuCallbacks();
-    method public abstract android.car.app.menu.RootMenu getRootMenu(android.os.Bundle);
-    method public abstract void onCarMenuClosed();
-    method public abstract void onCarMenuClosing();
-    method public abstract void onCarMenuOpened();
-    method public abstract void onCarMenuOpening();
-    method public abstract void onItemClicked(java.lang.String);
-    method public abstract boolean onItemLongClicked(java.lang.String);
-    method public abstract boolean onMenuClicked();
-    method public abstract void subscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
-    method public abstract void unsubscribe(java.lang.String, android.car.app.menu.SubscriptionCallbacks);
-  }
-
-  public class CarMenuConstants {
-    ctor public CarMenuConstants();
-  }
-
-  public static class CarMenuConstants.MenuItemConstants {
-    ctor public CarMenuConstants.MenuItemConstants();
-    field public static final int FLAG_BROWSABLE = 1; // 0x1
-    field public static final int FLAG_FIRSTITEM = 2; // 0x2
-    field public static final java.lang.String KEY_EMPTY_PLACEHOLDER = "android.car.app.menu.empty_placeholder";
-    field public static final java.lang.String KEY_FLAGS = "android.car.app.menu.flags";
-    field public static final java.lang.String KEY_ID = "android.car.app.menu.id";
-    field public static final java.lang.String KEY_LEFTICON = "android.car.app.menu.leftIcon";
-    field public static final java.lang.String KEY_REMOTEVIEWS = "android.car.app.menu.remoteViews";
-    field public static final java.lang.String KEY_RIGHTICON = "android.car.app.menu.rightIcon";
-    field public static final java.lang.String KEY_RIGHTTEXT = "android.car.app.menu.rightText";
-    field public static final java.lang.String KEY_TEXT = "android.car.app.menu.text";
-    field public static final java.lang.String KEY_TITLE = "android.car.app.menu.title";
-    field public static final java.lang.String KEY_WIDGET = "android.car.app.menu.widget";
-    field public static final java.lang.String KEY_WIDGET_STATE = "android.car.app.menu.widget_state";
-    field public static final int WIDGET_CHECKBOX = 1; // 0x1
-    field public static final int WIDGET_TEXT_VIEW = 2; // 0x2
-  }
-
-  public static abstract class CarMenuConstants.MenuItemConstants.MenuItemFlags implements java.lang.annotation.Annotation {
-  }
-
-  public static abstract class CarMenuConstants.MenuItemConstants.WidgetTypes implements java.lang.annotation.Annotation {
-  }
-
-  public abstract class CarUiEntry {
-    ctor public CarUiEntry(android.content.Context, android.content.Context);
-    method public abstract void closeDrawer();
-    method public abstract android.view.View getContentView();
-    method public abstract int getFragmentContainerId();
-    method public abstract java.lang.CharSequence getSearchBoxText();
-    method public abstract void hideMenuButton();
-    method public abstract void hideTitle();
-    method public abstract void onPause();
-    method public abstract void onRestoreInstanceState(android.os.Bundle);
-    method public abstract void onResume();
-    method public abstract void onSaveInstanceState(android.os.Bundle);
-    method public abstract void onStart();
-    method public abstract void onStop();
-    method public abstract void openDrawer();
-    method public abstract void restoreMenuDrawable();
-    method public abstract void setAutoLightDarkMode();
-    method public abstract void setBackground(android.graphics.Bitmap);
-    method public abstract void setCarMenuCallbacks(android.car.app.menu.CarMenuCallbacks);
-    method public abstract void setDarkMode();
-    method public abstract void setLightMode();
-    method public abstract void setMenuButtonBitmap(android.graphics.Bitmap);
-    method public abstract void setMenuButtonColor(int);
-    method public abstract void setScrimColor(int);
-    method public abstract void setSearchBoxColors(int, int, int, int);
-    method public abstract void setSearchBoxEditListener(android.car.app.menu.SearchBoxEditListener);
-    method public abstract void setSearchBoxEndView(android.view.View);
-    method public abstract void setTitle(java.lang.CharSequence);
-    method public abstract void showMenu(java.lang.String, java.lang.String);
-    method public abstract void showSearchBox(android.view.View.OnClickListener);
-    method public abstract void showTitle();
-    method public abstract void showToast(java.lang.String, long);
-    method public abstract android.widget.EditText startInput(java.lang.String, android.view.View.OnClickListener);
-    method public abstract void stopInput();
-    field protected final android.content.Context mAppContext;
-    field protected final android.content.Context mUiLibContext;
-  }
-
-  public class RootMenu {
-    ctor public RootMenu(java.lang.String);
-    ctor public RootMenu(java.lang.String, android.os.Bundle);
-    method public android.os.Bundle getBundle();
-    method public java.lang.String getId();
-  }
-
-  public abstract class SearchBoxEditListener {
-    ctor public SearchBoxEditListener();
-    method public abstract void onEdit(java.lang.String);
-    method public abstract void onSearch(java.lang.String);
-  }
-
-  public abstract class SubscriptionCallbacks {
-    ctor public SubscriptionCallbacks();
-    method public abstract void onChildChanged(java.lang.String, android.os.Bundle);
-    method public abstract void onChildrenLoaded(java.lang.String, java.util.List<android.os.Bundle>);
-    method public abstract void onError(java.lang.String);
-  }
-
-}
-
-package android.car.cluster.renderer {
-
-  public class DisplayConfiguration implements android.os.Parcelable {
-    ctor public DisplayConfiguration(android.os.Parcel);
-    ctor public DisplayConfiguration(android.graphics.Rect);
-    ctor public DisplayConfiguration(android.graphics.Rect, android.graphics.Rect);
-    method public int describeContents();
-    method public android.graphics.Rect getPrimaryRegion();
-    method public android.graphics.Rect getSecondaryRegion();
-    method public boolean hasSecondaryRegion();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.cluster.renderer.DisplayConfiguration> CREATOR;
-  }
-
-  public abstract class InstrumentClusterRenderer {
-    ctor public InstrumentClusterRenderer();
-    method protected abstract android.car.cluster.renderer.NavigationRenderer createNavigationRenderer();
-    method public synchronized android.car.cluster.renderer.NavigationRenderer getNavigationRenderer();
-    method public final synchronized void initialize();
-    method public abstract void onCreate(android.content.Context);
-    method public abstract void onStart();
-    method public abstract void onStop();
-  }
-
-  public abstract class InstrumentClusterRenderingService extends android.app.Service {
-    ctor public InstrumentClusterRenderingService();
-    method protected abstract android.car.cluster.renderer.NavigationRenderer getNavigationRenderer();
-    method public android.os.IBinder onBind(android.content.Intent);
-    method protected void onKeyEvent(android.view.KeyEvent);
-  }
-
-  public abstract class NavigationRenderer {
-    ctor public NavigationRenderer();
-    method public abstract android.car.navigation.CarNavigationInstrumentCluster getNavigationProperties();
-    method public abstract void onNextTurnChanged(int, java.lang.CharSequence, int, int, android.graphics.Bitmap, int);
-    method public abstract void onNextTurnDistanceChanged(int, int, int, int);
-    method public abstract void onStartNavigation();
-    method public abstract void onStopNavigation();
-  }
-
-}
-
-package android.car.content.pm {
-
-  public class AppBlockingPackageInfo implements android.os.Parcelable {
-    ctor public AppBlockingPackageInfo(java.lang.String, int, int, int, android.content.pm.Signature[], java.lang.String[]);
-    ctor public AppBlockingPackageInfo(android.os.Parcel);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.content.pm.AppBlockingPackageInfo> CREATOR;
-    field public static final int FLAG_SYSTEM_APP = 1; // 0x1
-    field public static final int FLAG_WHOLE_ACTIVITY = 2; // 0x2
-    field public final java.lang.String[] activities;
-    field public final int flags;
-    field public final int maxRevisionCode;
-    field public final int minRevisionCode;
-    field public final java.lang.String packageName;
-    field public final android.content.pm.Signature[] signatures;
-  }
-
-  public class CarAppBlockingPolicy implements android.os.Parcelable {
-    ctor public CarAppBlockingPolicy(android.car.content.pm.AppBlockingPackageInfo[], android.car.content.pm.AppBlockingPackageInfo[]);
-    ctor public CarAppBlockingPolicy(android.os.Parcel);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.content.pm.CarAppBlockingPolicy> CREATOR;
-    field public final android.car.content.pm.AppBlockingPackageInfo[] blacklists;
-    field public final android.car.content.pm.AppBlockingPackageInfo[] whitelists;
-  }
-
-  public abstract class CarAppBlockingPolicyService extends android.app.Service {
-    ctor public CarAppBlockingPolicyService();
-    method protected abstract android.car.content.pm.CarAppBlockingPolicy getAppBlockingPolicy();
-    method public android.os.IBinder onBind(android.content.Intent);
-    field public static final java.lang.String SERVICE_INTERFACE = "android.car.content.pm.CarAppBlockingPolicyService";
-  }
-
-  public final class CarPackageManager {
-    method public boolean isActivityAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
-    method public boolean isActivityBackedBySafeActivity(android.content.ComponentName) throws android.car.CarNotConnectedException;
-    method public boolean isServiceAllowedWhileDriving(java.lang.String, java.lang.String) throws android.car.CarNotConnectedException;
-    method public void setAppBlockingPolicy(java.lang.String, android.car.content.pm.CarAppBlockingPolicy, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException, java.lang.SecurityException;
-    field public static final int FLAG_SET_POLICY_ADD = 2; // 0x2
-    field public static final int FLAG_SET_POLICY_REMOVE = 4; // 0x4
-    field public static final int FLAG_SET_POLICY_WAIT_FOR_CHANGE = 1; // 0x1
-  }
-
-}
-
-package android.car.hardware {
-
-  public class CarPropertyConfig<T> implements android.os.Parcelable {
-    method public int describeContents();
-    method public int getAreaCount();
-    method public int[] getAreaIds();
-    method public int getAreaType();
-    method public int getFirstAndOnlyAreaId();
-    method public T getMaxValue(int);
-    method public T getMaxValue();
-    method public T getMinValue(int);
-    method public T getMinValue();
-    method public int getPropertyId();
-    method public java.lang.Class<T> getPropertyType();
-    method public boolean hasArea(int);
-    method public boolean isGlobalProperty();
-    method public static <T> android.car.hardware.CarPropertyConfig.Builder<T> newBuilder(java.lang.Class<T>, int, int, int);
-    method public static <T> android.car.hardware.CarPropertyConfig.Builder<T> newBuilder(java.lang.Class<T>, int, int);
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyConfig> CREATOR;
-  }
-
-  public static class CarPropertyConfig.AreaConfig<T> implements android.os.Parcelable {
-    method public int describeContents();
-    method public T getMaxValue();
-    method public T getMinValue();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyConfig.AreaConfig<java.lang.Object>> CREATOR;
-  }
-
-  public static class CarPropertyConfig.Builder<T> {
-    method public android.car.hardware.CarPropertyConfig.Builder<T> addArea(int);
-    method public android.car.hardware.CarPropertyConfig.Builder<T> addAreaConfig(int, T, T);
-    method public android.car.hardware.CarPropertyConfig.Builder<T> addAreas(int[]);
-    method public android.car.hardware.CarPropertyConfig<T> build();
-  }
-
-  public class CarPropertyValue<T> implements android.os.Parcelable {
-    ctor public CarPropertyValue(int, T);
-    ctor public CarPropertyValue(int, int, T);
-    ctor public CarPropertyValue(android.os.Parcel);
-    method public int describeContents();
-    method public int getAreaId();
-    method public int getPropertyId();
-    method public T getValue();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarPropertyValue> CREATOR;
-  }
-
-  public class CarSensorEvent implements android.os.Parcelable {
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.CarSensorEvent> CREATOR;
-    field public static final int DRIVE_STATUS_FULLY_RESTRICTED = 31; // 0x1f
-    field public static final int DRIVE_STATUS_LIMIT_MESSAGE_LEN = 16; // 0x10
-    field public static final int DRIVE_STATUS_NO_CONFIG = 8; // 0x8
-    field public static final int DRIVE_STATUS_NO_KEYBOARD_INPUT = 2; // 0x2
-    field public static final int DRIVE_STATUS_NO_VIDEO = 1; // 0x1
-    field public static final int DRIVE_STATUS_NO_VOICE_INPUT = 4; // 0x4
-    field public static final int DRIVE_STATUS_UNRESTRICTED = 0; // 0x0
-    field public static final int GEAR_DRIVE = 100; // 0x64
-    field public static final int GEAR_EIGHTH = 8; // 0x8
-    field public static final int GEAR_FIFTH = 5; // 0x5
-    field public static final int GEAR_FIRST = 1; // 0x1
-    field public static final int GEAR_FOURTH = 4; // 0x4
-    field public static final int GEAR_NEUTRAL = 0; // 0x0
-    field public static final int GEAR_NINTH = 9; // 0x9
-    field public static final int GEAR_PARK = 101; // 0x65
-    field public static final int GEAR_REVERSE = 102; // 0x66
-    field public static final int GEAR_SECOND = 2; // 0x2
-    field public static final int GEAR_SEVENTH = 7; // 0x7
-    field public static final int GEAR_SIXTH = 6; // 0x6
-    field public static final int GEAR_TENTH = 10; // 0xa
-    field public static final int GEAR_THIRD = 3; // 0x3
-    field public static final int IGNITION_STATE_ACC = 3; // 0x3
-    field public static final int IGNITION_STATE_LOCK = 1; // 0x1
-    field public static final int IGNITION_STATE_OFF = 2; // 0x2
-    field public static final int IGNITION_STATE_ON = 4; // 0x4
-    field public static final int IGNITION_STATE_START = 5; // 0x5
-    field public static final int IGNITION_STATE_UNDEFINED = 0; // 0x0
-    field public static final int INDEX_ENVIRONMENT_PRESSURE = 1; // 0x1
-    field public static final int INDEX_ENVIRONMENT_TEMPERATURE = 0; // 0x0
-    field public static final int INDEX_FUEL_LEVEL_IN_DISTANCE = 1; // 0x1
-    field public static final int INDEX_FUEL_LEVEL_IN_PERCENTILE = 0; // 0x0
-    field public static final int INDEX_FUEL_LOW_WARNING = 0; // 0x0
-    field public final float[] floatValues;
-    field public final int[] intValues;
-    field public int sensorType;
-    field public long timestamp;
-  }
-
-  public static class CarSensorEvent.EnvironmentData {
-    field public float pressure;
-    field public float temperature;
-    field public long timestamp;
-  }
-
-  public final class CarSensorManager {
-    method public android.car.hardware.CarSensorEvent getLatestSensorEvent(int) throws android.car.CarNotConnectedException;
-    method public int[] getSupportedSensors() throws android.car.CarNotConnectedException;
-    method public boolean isSensorSupported(int) throws android.car.CarNotConnectedException;
-    method public static boolean isSensorSupported(int[], int);
-    method public boolean registerListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
-    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener);
-    method public void unregisterListener(android.car.hardware.CarSensorManager.OnSensorChangedListener, int);
-    field public static final int SENSOR_RATE_FAST = 1; // 0x1
-    field public static final int SENSOR_RATE_FASTEST = 0; // 0x0
-    field public static final int SENSOR_RATE_NORMAL = 3; // 0x3
-    field public static final int SENSOR_RATE_UI = 2; // 0x2
-    field public static final int SENSOR_TYPE_CAR_SPEED = 2; // 0x2
-    field public static final int SENSOR_TYPE_DRIVING_STATUS = 11; // 0xb
-    field public static final int SENSOR_TYPE_ENVIRONMENT = 12; // 0xc
-    field public static final int SENSOR_TYPE_FUEL_LEVEL = 5; // 0x5
-    field public static final int SENSOR_TYPE_GEAR = 7; // 0x7
-    field public static final int SENSOR_TYPE_IGNITION_STATE = 22; // 0x16
-    field public static final int SENSOR_TYPE_NIGHT = 9; // 0x9
-    field public static final int SENSOR_TYPE_ODOMETER = 4; // 0x4
-    field public static final int SENSOR_TYPE_PARKING_BRAKE = 6; // 0x6
-    field public static final int SENSOR_TYPE_RPM = 3; // 0x3
-    field public static final int SENSOR_TYPE_VENDOR_EXTENSION_END = 1879048191; // 0x6fffffff
-  }
-
-  public static abstract interface CarSensorManager.OnSensorChangedListener {
-    method public abstract void onSensorChanged(android.car.hardware.CarSensorEvent);
-  }
-
-  public final class CarVendorExtensionManager {
-    method public <E> E getGlobalProperty(java.lang.Class<E>, int) throws android.car.CarNotConnectedException;
-    method public java.util.List<android.car.hardware.CarPropertyConfig> getProperties() throws android.car.CarNotConnectedException;
-    method public <E> E getProperty(java.lang.Class<E>, int, int) throws android.car.CarNotConnectedException;
-    method public void registerCallback(android.car.hardware.CarVendorExtensionManager.CarVendorExtensionCallback) throws android.car.CarNotConnectedException;
-    method public <E> void setGlobalProperty(java.lang.Class<E>, int, E) throws android.car.CarNotConnectedException;
-    method public <E> void setProperty(java.lang.Class<E>, int, int, E) throws android.car.CarNotConnectedException;
-    method public void unregisterCallback(android.car.hardware.CarVendorExtensionManager.CarVendorExtensionCallback);
-  }
-
-  public static abstract interface CarVendorExtensionManager.CarVendorExtensionCallback {
-    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
-    method public abstract void onErrorEvent(int, int);
-  }
-
-}
-
-package android.car.hardware.cabin {
-
-  public final class CarCabinManager {
-    method public boolean getBooleanProperty(int, int) throws android.car.CarNotConnectedException;
-    method public float getFloatProperty(int, int) throws android.car.CarNotConnectedException;
-    method public int getIntProperty(int, int) throws android.car.CarNotConnectedException;
-    method public java.util.List<android.car.hardware.CarPropertyConfig> getPropertyList() throws android.car.CarNotConnectedException;
-    method public static boolean isZonedProperty(int);
-    method public synchronized void registerCallback(android.car.hardware.cabin.CarCabinManager.CarCabinEventCallback) throws android.car.CarNotConnectedException;
-    method public void setBooleanProperty(int, int, boolean) throws android.car.CarNotConnectedException;
-    method public void setFloatProperty(int, int, float) throws android.car.CarNotConnectedException;
-    method public void setIntProperty(int, int, int) throws android.car.CarNotConnectedException;
-    method public synchronized void unregisterCallback(android.car.hardware.cabin.CarCabinManager.CarCabinEventCallback);
-    field public static final int ID_DOOR_LOCK = 3; // 0x3
-    field public static final int ID_DOOR_MOVE = 2; // 0x2
-    field public static final int ID_DOOR_POS = 1; // 0x1
-    field public static final int ID_MIRROR_FOLD = 4102; // 0x1006
-    field public static final int ID_MIRROR_LOCK = 4101; // 0x1005
-    field public static final int ID_MIRROR_Y_MOVE = 4100; // 0x1004
-    field public static final int ID_MIRROR_Y_POS = 4099; // 0x1003
-    field public static final int ID_MIRROR_Z_MOVE = 4098; // 0x1002
-    field public static final int ID_MIRROR_Z_POS = 4097; // 0x1001
-    field public static final int ID_SEAT_BACKREST_ANGLE_1_MOVE = 8201; // 0x2009
-    field public static final int ID_SEAT_BACKREST_ANGLE_1_POS = 8200; // 0x2008
-    field public static final int ID_SEAT_BACKREST_ANGLE_2_MOVE = 8203; // 0x200b
-    field public static final int ID_SEAT_BACKREST_ANGLE_2_POS = 8202; // 0x200a
-    field public static final int ID_SEAT_BELT_BUCKLED = 8195; // 0x2003
-    field public static final int ID_SEAT_BELT_HEIGHT_MOVE = 8197; // 0x2005
-    field public static final int ID_SEAT_BELT_HEIGHT_POS = 8196; // 0x2004
-    field public static final int ID_SEAT_DEPTH_MOVE = 8207; // 0x200f
-    field public static final int ID_SEAT_DEPTH_POS = 8206; // 0x200e
-    field public static final int ID_SEAT_FORE_AFT_MOVE = 8199; // 0x2007
-    field public static final int ID_SEAT_FORE_AFT_POS = 8198; // 0x2006
-    field public static final int ID_SEAT_HEADREST_ANGLE_MOVE = 8217; // 0x2019
-    field public static final int ID_SEAT_HEADREST_ANGLE_POS = 8216; // 0x2018
-    field public static final int ID_SEAT_HEADREST_FORE_AFT_MOVE = 8219; // 0x201b
-    field public static final int ID_SEAT_HEADREST_FORE_AFT_POS = 8218; // 0x201a
-    field public static final int ID_SEAT_HEADREST_HEIGHT_MOVE = 8215; // 0x2017
-    field public static final int ID_SEAT_HEADREST_HEIGHT_POS = 8214; // 0x2016
-    field public static final int ID_SEAT_HEIGHT_MOVE = 8205; // 0x200d
-    field public static final int ID_SEAT_HEIGHT_POS = 8204; // 0x200c
-    field public static final int ID_SEAT_LUMBAR_FORE_AFT_MOVE = 8211; // 0x2013
-    field public static final int ID_SEAT_LUMBAR_FORE_AFT_POS = 8210; // 0x2012
-    field public static final int ID_SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 8213; // 0x2015
-    field public static final int ID_SEAT_LUMBAR_SIDE_SUPPORT_POS = 8212; // 0x2014
-    field public static final int ID_SEAT_MEMORY_SELECT = 8193; // 0x2001
-    field public static final int ID_SEAT_MEMORY_SET = 8194; // 0x2002
-    field public static final int ID_SEAT_TILT_MOVE = 8209; // 0x2011
-    field public static final int ID_SEAT_TILT_POS = 8208; // 0x2010
-    field public static final int ID_WINDOW_LOCK = 12293; // 0x3005
-    field public static final int ID_WINDOW_MOVE = 12290; // 0x3002
-    field public static final int ID_WINDOW_POS = 12289; // 0x3001
-    field public static final int ID_WINDOW_VENT_MOVE = 12292; // 0x3004
-    field public static final int ID_WINDOW_VENT_POS = 12291; // 0x3003
-  }
-
-  public static abstract interface CarCabinManager.CarCabinEventCallback {
-    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
-    method public abstract void onErrorEvent(int, int);
-  }
-
-}
-
-package android.car.hardware.hvac {
-
-  public final class CarHvacManager {
-    method public boolean getBooleanProperty(int, int) throws android.car.CarNotConnectedException;
-    method public float getFloatProperty(int, int) throws android.car.CarNotConnectedException;
-    method public int getIntProperty(int, int) throws android.car.CarNotConnectedException;
-    method public java.util.List<android.car.hardware.CarPropertyConfig> getPropertyList() throws android.car.CarNotConnectedException;
-    method public static boolean isZonedProperty(int);
-    method public synchronized void registerCallback(android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback) throws android.car.CarNotConnectedException;
-    method public void setBooleanProperty(int, int, boolean) throws android.car.CarNotConnectedException;
-    method public void setFloatProperty(int, int, float) throws android.car.CarNotConnectedException;
-    method public void setIntProperty(int, int, int) throws android.car.CarNotConnectedException;
-    method public synchronized void unregisterCallback(android.car.hardware.hvac.CarHvacManager.CarHvacEventCallback);
-    field public static final int FAN_DIRECTION_DEFROST = 4; // 0x4
-    field public static final int FAN_DIRECTION_DEFROST_AND_FLOOR = 5; // 0x5
-    field public static final int FAN_DIRECTION_FACE = 1; // 0x1
-    field public static final int FAN_DIRECTION_FACE_AND_FLOOR = 3; // 0x3
-    field public static final int FAN_DIRECTION_FLOOR = 2; // 0x2
-    field public static final int ID_MIRROR_DEFROSTER_ON = 1; // 0x1
-    field public static final int ID_OUTSIDE_AIR_TEMP = 3; // 0x3
-    field public static final int ID_STEERING_WHEEL_TEMP = 2; // 0x2
-    field public static final int ID_TEMPERATURE_UNITS = 4; // 0x4
-    field public static final int ID_WINDOW_DEFROSTER_ON = 20481; // 0x5001
-    field public static final int ID_ZONED_AC_ON = 16393; // 0x4009
-    field public static final int ID_ZONED_AIR_RECIRCULATION_ON = 16395; // 0x400b
-    field public static final int ID_ZONED_AUTOMATIC_MODE_ON = 16394; // 0x400a
-    field public static final int ID_ZONED_DUAL_ZONE_ON = 16397; // 0x400d
-    field public static final int ID_ZONED_FAN_DIRECTION = 16391; // 0x4007
-    field public static final int ID_ZONED_FAN_DIRECTION_AVAILABLE = 16390; // 0x4006
-    field public static final int ID_ZONED_FAN_SPEED_RPM = 16389; // 0x4005
-    field public static final int ID_ZONED_FAN_SPEED_SETPOINT = 16388; // 0x4004
-    field public static final int ID_ZONED_HVAC_POWER_ON = 16387; // 0x4003
-    field public static final int ID_ZONED_MAX_AC_ON = 16396; // 0x400c
-    field public static final int ID_ZONED_MAX_DEFROST_ON = 16398; // 0x400e
-    field public static final int ID_ZONED_SEAT_TEMP = 16392; // 0x4008
-    field public static final int ID_ZONED_TEMP_ACTUAL = 16386; // 0x4002
-    field public static final int ID_ZONED_TEMP_SETPOINT = 16385; // 0x4001
-  }
-
-  public static abstract interface CarHvacManager.CarHvacEventCallback {
-    method public abstract void onChangeEvent(android.car.hardware.CarPropertyValue);
-    method public abstract void onErrorEvent(int, int);
-  }
-
-}
-
-package android.car.hardware.radio {
-
-  public class CarRadioEvent implements android.os.Parcelable {
-    ctor public CarRadioEvent(int, android.car.hardware.radio.CarRadioPreset);
-    method public int describeContents();
-    method public int getEventType();
-    method public android.car.hardware.radio.CarRadioPreset getPreset();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.radio.CarRadioEvent> CREATOR;
-    field public static final int RADIO_PRESET = 0; // 0x0
-  }
-
-  public final class CarRadioManager {
-    method public android.car.hardware.radio.CarRadioPreset getPreset(int) throws android.car.CarNotConnectedException;
-    method public int getPresetCount() throws android.car.CarNotConnectedException;
-    method public synchronized void registerListener(android.car.hardware.radio.CarRadioManager.CarRadioEventListener) throws android.car.CarNotConnectedException;
-    method public boolean setPreset(android.car.hardware.radio.CarRadioPreset) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
-    method public synchronized void unregisterListener();
-  }
-
-  public static abstract interface CarRadioManager.CarRadioEventListener {
-    method public abstract void onEvent(android.car.hardware.radio.CarRadioEvent);
-  }
-
-  public class CarRadioPreset implements android.os.Parcelable {
-    ctor public CarRadioPreset(int, int, int, int);
-    method public int describeContents();
-    method public int getBand();
-    method public int getChannel();
-    method public int getPresetNumber();
-    method public int getSubChannel();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator<android.car.hardware.radio.CarRadioPreset> CREATOR;
-  }
-
-}
-
-package android.car.input {
-
-  public abstract class CarInputHandlingService extends android.app.Service {
-    ctor protected CarInputHandlingService(android.car.input.CarInputHandlingService.InputFilter[]);
-    method public android.os.IBinder onBind(android.content.Intent);
-    method protected abstract void onKeyEvent(android.view.KeyEvent, int);
-    field public static final int INPUT_CALLBACK_BINDER_CODE = 1; // 0x1
-    field public static final java.lang.String INPUT_CALLBACK_BINDER_KEY = "callback_binder";
-  }
-
-  public static class CarInputHandlingService.InputFilter implements android.os.Parcelable {
-    ctor public CarInputHandlingService.InputFilter(int, int);
-    method public int describeContents();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final android.os.Parcelable.Creator CREATOR;
-    field public final int mKeyCode;
-    field public final int mTargetDisplay;
-  }
-
-}
-
-package android.car.media {
-
-  public final class CarAudioManager {
-    method public void abandonAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes);
-    method public android.media.AudioAttributes getAudioAttributesForCarUsage(int) throws android.car.CarNotConnectedException;
-    method public int getStreamMaxVolume(int) throws android.car.CarNotConnectedException;
-    method public int getStreamMinVolume(int) throws android.car.CarNotConnectedException;
-    method public int getStreamVolume(int) throws android.car.CarNotConnectedException;
-    method public boolean isMediaMuted() throws android.car.CarNotConnectedException;
-    method public int requestAudioFocus(android.media.AudioManager.OnAudioFocusChangeListener, android.media.AudioAttributes, int, int) throws android.car.CarNotConnectedException, java.lang.IllegalArgumentException;
-    method public boolean setMediaMute(boolean) throws android.car.CarNotConnectedException;
-    method public void setStreamVolume(int, int, int) throws android.car.CarNotConnectedException;
-    method public void setVolumeController(android.media.IVolumeController) throws android.car.CarNotConnectedException;
-    field public static final int CAR_AUDIO_USAGE_ALARM = 6; // 0x6
-    field public static final int CAR_AUDIO_USAGE_DEFAULT = 0; // 0x0
-    field public static final int CAR_AUDIO_USAGE_MUSIC = 1; // 0x1
-    field public static final int CAR_AUDIO_USAGE_NAVIGATION_GUIDANCE = 3; // 0x3
-    field public static final int CAR_AUDIO_USAGE_NOTIFICATION = 7; // 0x7
-    field public static final int CAR_AUDIO_USAGE_RADIO = 2; // 0x2
-    field public static final int CAR_AUDIO_USAGE_SYSTEM_SAFETY_ALERT = 9; // 0x9
-    field public static final int CAR_AUDIO_USAGE_SYSTEM_SOUND = 8; // 0x8
-    field public static final int CAR_AUDIO_USAGE_VOICE_CALL = 4; // 0x4
-    field public static final int CAR_AUDIO_USAGE_VOICE_COMMAND = 5; // 0x5
-  }
-
-}
-
-package android.car.navigation {
-
-  public class CarNavigationInstrumentCluster implements android.os.Parcelable {
-    ctor public CarNavigationInstrumentCluster(android.car.navigation.CarNavigationInstrumentCluster);
-    method public static android.car.navigation.CarNavigationInstrumentCluster createCluster(int);
-    method public static android.car.navigation.CarNavigationInstrumentCluster createCustomImageCluster(int, int, int, int);
-    method public int describeContents();
-    method public int getImageColorDepthBits();
-    method public int getImageHeight();
-    method public int getImageWidth();
-    method public int getMinIntervalMillis();
-    method public int getType();
-    method public boolean supportsCustomImages();
-    method public void writeToParcel(android.os.Parcel, int);
-    field public static final int CLUSTER_TYPE_CUSTOM_IMAGES_SUPPORTED = 1; // 0x1
-    field public static final int CLUSTER_TYPE_IMAGE_CODES_ONLY = 2; // 0x2
-    field public static final android.os.Parcelable.Creator<android.car.navigation.CarNavigationInstrumentCluster> CREATOR;
-  }
-
-}
-
-package android.car.settings {
-
-  public class CarSettings {
-    ctor public CarSettings();
-  }
-
-  public static final class CarSettings.Global {
-    ctor public CarSettings.Global();
-    field public static final java.lang.String KEY_GARAGE_MODE_ENABLED = "android.car.GARAGE_MODE_ENABLED";
-    field public static final java.lang.String KEY_GARAGE_MODE_MAINTENANCE_WINDOW = "android.car.GARAGE_MODE_MAINTENANCE_WINDOW";
-    field public static final java.lang.String KEY_GARAGE_MODE_WAKE_UP_TIME = "android.car.GARAGE_MODE_WAKE_UP_TIME";
-  }
-
-}
-
-package android.car.test {
-
-  public class CarTestManagerBinderWrapper {
-    ctor public CarTestManagerBinderWrapper(android.os.IBinder);
-    method public void onCarDisconnected();
-    field public final android.os.IBinder binder;
-  }
-
-}
-
diff --git a/car-lib/api/test-current.txt b/car-lib/api/test-current.txt
index 3f1b205..49d4bb5 100644
--- a/car-lib/api/test-current.txt
+++ b/car-lib/api/test-current.txt
@@ -53,10 +53,8 @@
 
   public final class CarUserManager {
     method @RequiresPermission(anyOf={android.Manifest.permission.INTERACT_ACROSS_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void addListener(@NonNull java.util.concurrent.Executor, @NonNull android.car.user.CarUserManager.UserLifecycleListener);
-    method public int createUser(@Nullable String, boolean);
     method public static String lifecycleEventTypeToString(int);
     method @RequiresPermission(anyOf={android.Manifest.permission.INTERACT_ACROSS_USERS, android.Manifest.permission.INTERACT_ACROSS_USERS_FULL}) public void removeListener(@NonNull android.car.user.CarUserManager.UserLifecycleListener);
-    method public void removeUser(int);
     field public static final int USER_LIFECYCLE_EVENT_TYPE_STARTING = 1; // 0x1
     field public static final int USER_LIFECYCLE_EVENT_TYPE_STOPPED = 6; // 0x6
     field public static final int USER_LIFECYCLE_EVENT_TYPE_STOPPING = 5; // 0x5
diff --git a/car-lib/native/include/CarPowerManager.h b/car-lib/native/include/CarPowerManager.h
index 57bbd50..b02c886 100644
--- a/car-lib/native/include/CarPowerManager.h
+++ b/car-lib/native/include/CarPowerManager.h
@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef CAR_POWER_MANAGER
-#define CAR_POWER_MANAGER
+#ifndef CAR_LIB_NATIVE_INCLUDE_CARPOWERMANAGER_H_
+#define CAR_LIB_NATIVE_INCLUDE_CARPOWERMANAGER_H_
 
 #include <binder/Status.h>
 #include <utils/RefBase.h>
@@ -38,6 +38,7 @@
     //  NOTE:  The entries in this enum must match the ones in CarPowerStateListener located in
     //      packages/services/Car/car-lib/src/android/car/hardware/power/CarPowerManager.java
     enum class State {
+        kInvalid = 0,
         kWaitForVhal = 1,
         kSuspendEnter = 2,
         kSuspendExit = 3,
@@ -46,8 +47,7 @@
         kShutdownPrepare = 7,
         kShutdownCancelled = 8,
 
-
-        kFirst = kWaitForVhal,
+        kFirst = kInvalid,
         kLast = kShutdownCancelled,
     };
 
@@ -74,7 +74,7 @@
 private:
     class CarPowerStateListener final : public BnCarPowerStateListener {
     public:
-        explicit CarPowerStateListener(CarPowerManager* parent) : mParent(parent) {};
+        explicit CarPowerStateListener(CarPowerManager* parent) : mParent(parent) {}
 
         Status onStateChanged(int state) override {
             sp<CarPowerManager> parent = mParent;
@@ -102,9 +102,9 @@
     sp<CarPowerStateListener> mListenerToService;
 };
 
-} // namespace power
-} // namespace hardware
-} // namespace car
-} // namespace android
+}  // namespace power
+}  // namespace hardware
+}  // namespace car
+}  // namespace android
 
-#endif // CAR_POWER_MANAGER
+#endif  // CAR_LIB_NATIVE_INCLUDE_CARPOWERMANAGER_H_
diff --git a/car-lib/src/android/car/Car.java b/car-lib/src/android/car/Car.java
index 4623a1a..099d56a 100644
--- a/car-lib/src/android/car/Car.java
+++ b/car-lib/src/android/car/Car.java
@@ -81,6 +81,7 @@
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
 import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -160,7 +161,7 @@
     public static final String AUDIO_SERVICE = "audio";
 
     /** Service name for {@link CarNavigationStatusManager} */
-    @MandatoryFeature
+    @OptionalFeature
     public static final String CAR_NAVIGATION_SERVICE = "car_navigation_service";
 
     /** Service name for {@link CarOccupantZoneManager} */
@@ -596,6 +597,7 @@
      * @hide
      * @deprecated mocking vehicle HAL in car service is no longer supported.
      */
+    @Deprecated
     @SystemApi
     public static final String PERMISSION_MOCK_VEHICLE_HAL =
             "android.car.permission.CAR_MOCK_VEHICLE_HAL";
@@ -647,7 +649,7 @@
      */
     @SystemApi
     public static final String PERMISSION_CAR_DIAGNOSTIC_READ_ALL =
-        "android.car.permission.CAR_DIAGNOSTICS";
+            "android.car.permission.CAR_DIAGNOSTICS";
 
     /**
      * Permissions necessary to clear diagnostic information.
@@ -922,7 +924,7 @@
     };
 
     private final ServiceConnection mServiceConnectionListener =
-            new ServiceConnection () {
+            new ServiceConnection() {
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
             synchronized (mLock) {
@@ -986,6 +988,10 @@
 
     /**
      * A factory method that creates Car instance for all Car API access.
+     *
+     * <p>Instance created with this should be disconnected from car service by calling
+     * {@link #disconnect()} before the passed {code Context} is released.
+     *
      * @param context App's Context. This should not be null. If you are passing
      *                {@link ContextWrapper}, make sure that its base Context is non-null as well.
      *                Otherwise it will throw {@link java.lang.NullPointerException}.
@@ -1018,18 +1024,24 @@
      * A factory method that creates Car instance for all Car API access using main thread {@code
      * Looper}.
      *
+     * <p>Instance created with this should be disconnected from car service by calling
+     * {@link #disconnect()} before the passed {code Context} is released.
+     *
      * @see #createCar(Context, ServiceConnection, Handler)
      *
      * @deprecated use {@link #createCar(Context, Handler)} instead.
      */
     @Deprecated
     public static Car createCar(Context context, ServiceConnection serviceConnectionListener) {
-      return createCar(context, serviceConnectionListener, null);
+        return createCar(context, serviceConnectionListener, null);
     }
 
     /**
      * Creates new {@link Car} object which connected synchronously to Car Service and ready to use.
      *
+     * <p>Instance created with this should be disconnected from car service by calling
+     * {@link #disconnect()} before the passed {code Context} is released.
+     *
      * @param context application's context
      *
      * @return Car object if operation succeeded, otherwise null.
@@ -1042,6 +1054,9 @@
     /**
      * Creates new {@link Car} object which connected synchronously to Car Service and ready to use.
      *
+     * <p>Instance created with this should be disconnected from car service by calling
+     * {@link #disconnect()} before the passed {code Context} is released.
+     *
      * @param context App's Context. This should not be null. If you are passing
      *                {@link ContextWrapper}, make sure that its base Context is non-null as well.
      *                Otherwise it will throw {@link java.lang.NullPointerException}.
@@ -1109,6 +1124,9 @@
     /**
      * Creates new {@link Car} object with {@link CarServiceLifecycleListener}.
      *
+     * <p>Instance created with this should be disconnected from car service by calling
+     * {@link #disconnect()} before the passed {code Context} is released.
+     *
      * <p> If car service is ready inside this call and if the caller is running in the main thread,
      * {@link CarServiceLifecycleListener#onLifecycleChanged(Car, boolean)} will be called
      * with ready set to be true. Otherwise,
@@ -1563,12 +1581,14 @@
     }
 
     /** @hide */
-    Handler getEventHandler() {
+    @VisibleForTesting
+    public Handler getEventHandler() {
         return mEventHandler;
     }
 
     /** @hide */
-    <T> T handleRemoteExceptionFromCarService(RemoteException e, T returnValue) {
+    @VisibleForTesting
+    public <T> T handleRemoteExceptionFromCarService(RemoteException e, T returnValue) {
         handleRemoteExceptionFromCarService(e);
         return returnValue;
     }
@@ -1763,7 +1783,8 @@
             Constructor constructor = managerClass.getConstructor(Car.class, IBinder.class);
             CarManagerBase manager = (CarManagerBase) constructor.newInstance(this, binder);
             return manager;
-        } catch (Exception e) {
+        } catch (ClassNotFoundException | IllegalAccessException | NoSuchMethodException
+                | InstantiationException | InvocationTargetException e) {
             Log.e(TAG_CAR, "Cannot construct CarManager, class:" + className, e);
             return null;
         }
diff --git a/car-lib/src/android/car/CarAppFocusManager.java b/car-lib/src/android/car/CarAppFocusManager.java
index ef9ddf4..3d4d90d 100644
--- a/car-lib/src/android/car/CarAppFocusManager.java
+++ b/car-lib/src/android/car/CarAppFocusManager.java
@@ -21,6 +21,8 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.ref.WeakReference;
@@ -122,7 +124,8 @@
     /**
      * @hide
      */
-    CarAppFocusManager(Car car, IBinder service) {
+    @VisibleForTesting
+    public CarAppFocusManager(Car car, IBinder service) {
         super(car);
         mService = IAppFocus.Stub.asInterface(service);
     }
diff --git a/car-lib/src/android/car/CarOccupantZoneManager.java b/car-lib/src/android/car/CarOccupantZoneManager.java
index 1667a05..7a00029 100644
--- a/car-lib/src/android/car/CarOccupantZoneManager.java
+++ b/car-lib/src/android/car/CarOccupantZoneManager.java
@@ -403,6 +403,31 @@
         }
     }
 
+    /**
+     * Assigns the given profile {@code userId} to the {@code occupantZone}. Returns true when the
+     * request succeeds.
+     *
+     * <p>Note that only non-driver zone can be assigned with this call. Calling this for driver
+     * zone will lead into {@code IllegalArgumentException}.
+     *
+     * @param occupantZone Zone to assign user.
+     * @param userId profile user id to assign. Passing {@link UserHandle#USER_NULL} leads into
+     *               removing the current user assignment.
+     * @return true if the request succeeds or if the user is already assigned to the zone.
+     *
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_USERS)
+    public boolean assignProfileUserToOccupantZone(@NonNull OccupantZoneInfo occupantZone,
+            @UserIdInt int userId) {
+        assertNonNullOccupant(occupantZone);
+        try {
+            return mService.assignProfileUserToOccupantZone(occupantZone.zoneId, userId);
+        } catch (RemoteException e) {
+            return handleRemoteExceptionFromCarService(e, false);
+        }
+    }
+
     private void assertNonNullOccupant(OccupantZoneInfo occupantZone) {
         if (occupantZone == null) {
             throw new IllegalArgumentException("null OccupantZoneInfo");
diff --git a/car-lib/src/android/car/ICar.aidl b/car-lib/src/android/car/ICar.aidl
index 48fe5ca..5f548a6 100644
--- a/car-lib/src/android/car/ICar.aidl
+++ b/car-lib/src/android/car/ICar.aidl
@@ -44,8 +44,10 @@
      * @param userId - id of first non-system user locked
      * @param timestampMs - when the user was unlocked
      * @param duration - how long it took to unlock (from SystemServer start)
+     * @param halResponseTime - see CarServiceHelperService.mHalResponseTime
      */
-    oneway void onFirstUserUnlocked(int userId, long timestampMs, long duration) = 2;
+    oneway void onFirstUserUnlocked(int userId, long timestampMs, long duration,
+            int halResponseTime) = 2;
 
     /**
      * Calls User HAL to get the initial user info.
@@ -56,6 +58,15 @@
      */
     oneway void getInitialUserInfo(int requestType, int timeoutMs, in IBinder receiver) = 3;
 
+    /**
+     * Sets the initial user after boot.
+     *
+     * @param userId - the id of the initial user
+     */
+    // TODO(b/150413515): should pass UserInfo instead, but for some reason passing the whole
+    // UserInfo through a raw binder transaction on CarServiceHelper is not working.
+    oneway void setInitialUser(int userId) = 4;
+
     // Methods below start on 11 to make it easier to add more oneway methods above
     IBinder getCarService(in String serviceName) = 11;
     int getCarConnectionType() = 12;
diff --git a/car-lib/src/android/car/ICarOccupantZone.aidl b/car-lib/src/android/car/ICarOccupantZone.aidl
index 09335a7..463517e 100644
--- a/car-lib/src/android/car/ICarOccupantZone.aidl
+++ b/car-lib/src/android/car/ICarOccupantZone.aidl
@@ -32,4 +32,5 @@
     int getOccupantZoneIdForUserId(in int userId);
     void registerCallback(in ICarOccupantZoneCallback callback);
     void unregisterCallback(in ICarOccupantZoneCallback callback);
+    boolean assignProfileUserToOccupantZone(in int occupantZoneId, in int userId);
 }
diff --git a/car-lib/src/android/car/ICarUserService.aidl b/car-lib/src/android/car/ICarUserService.aidl
index d59c17b..b61b342 100644
--- a/car-lib/src/android/car/ICarUserService.aidl
+++ b/car-lib/src/android/car/ICarUserService.aidl
@@ -17,6 +17,9 @@
 package android.car;
 
 import android.content.pm.UserInfo;
+import android.car.user.UserIdentificationAssociationResponse;
+import android.car.user.UserSwitchResult;
+import com.android.internal.infra.AndroidFuture;
 import com.android.internal.os.IResultReceiver;
 
 /** @hide */
@@ -24,11 +27,16 @@
     UserInfo createDriver(in String name, boolean admin);
     UserInfo createPassenger(in String name, int driverId);
     boolean switchDriver(int driverId);
+    void switchUser(int tagerUserId, int timeoutMs, in AndroidFuture<UserSwitchResult> result);
     List<UserInfo> getAllDrivers();
     List<UserInfo> getPassengers(int driverId);
     boolean startPassenger(int passengerId, int zoneId);
     boolean stopPassenger(int passengerId);
-    oneway void setLifecycleListenerForUid(in IResultReceiver listener);
-    oneway void resetLifecycleListenerForUid();
-    oneway void getInitialUserInfo(int requestType, int timeoutMs, in IResultReceiver receiver);
+    void setLifecycleListenerForUid(in IResultReceiver listener);
+    void resetLifecycleListenerForUid();
+    void getInitialUserInfo(int requestType, int timeoutMs, in IResultReceiver receiver);
+    UserIdentificationAssociationResponse getUserIdentificationAssociation(in int[] types);
+    void setUserIdentificationAssociation(int timeoutMs, in int[] types, in int[] values,
+      in AndroidFuture<UserIdentificationAssociationResponse> result);
+    void setUserSwitchUiCallback(in IResultReceiver callback);
 }
diff --git a/car-lib/src/android/car/VehiclePropertyIds.java b/car-lib/src/android/car/VehiclePropertyIds.java
index 5a90069..b8a435e 100644
--- a/car-lib/src/android/car/VehiclePropertyIds.java
+++ b/car-lib/src/android/car/VehiclePropertyIds.java
@@ -942,6 +942,17 @@
      */
     public static final int SWITCH_USER = 299896584;
 
+    // TODO(b/150408921): add CREATE_USER = 299896585
+
+    // TODO(b/150409600): add REMOVE_USER = 299896586;
+
+    /**
+     *  TODO(b/150409351): javadoc, set pemission, etc...
+     *
+     * @hide
+     */
+    public static final int USER_IDENTIFICATION_ASSOCIATION = 299896587;
+
     /**
      * Gets a user-friendly representation of a property.
      */
@@ -1215,6 +1226,8 @@
                 return "INITIAL_USER_INFO";
             case SWITCH_USER:
                 return "SWITCH_USER";
+            case USER_IDENTIFICATION_ASSOCIATION:
+                return "USER_IDENTIFICATION_ASSOCIATION";
             default:
                 return "0x" + Integer.toHexString(property);
         }
diff --git a/car-lib/src/android/car/app/CarActivityView.java b/car-lib/src/android/car/app/CarActivityView.java
index efefbe1..a73cf45 100644
--- a/car-lib/src/android/car/app/CarActivityView.java
+++ b/car-lib/src/android/car/app/CarActivityView.java
@@ -39,6 +39,7 @@
     // volatile, since mUserActivityViewCallback can be accessed from Main and Binder thread.
     @Nullable private volatile StateCallback mUserActivityViewCallback;
 
+    @Nullable private Car mCar;
     @Nullable private CarUxRestrictionsManager mUxRestrictionsManager;
 
     private int mVirtualDisplayId = Display.INVALID_DISPLAY;
@@ -57,23 +58,8 @@
 
     public CarActivityView(
             Context context, AttributeSet attrs, int defStyle, boolean singleTaskInstance) {
-        super(context, attrs, defStyle, singleTaskInstance);
+        super(context, attrs, defStyle, singleTaskInstance, /*usePublicVirtualDisplay=*/ true);
         super.setCallback(new CarActivityViewCallback());
-        Car.createCar(mContext, /*handler=*/ null,
-                Car.CAR_WAIT_TIMEOUT_DO_NOT_WAIT,
-                (car, ready) -> {
-                    // Expect to be called in the main thread, since passed a 'null' handler
-                    // in Car.createCar().
-                    if (!ready) return;
-                    mUxRestrictionsManager = (CarUxRestrictionsManager) car.getCarManager(
-                            Car.CAR_UX_RESTRICTION_SERVICE);
-                    if (mVirtualDisplayId != Display.INVALID_DISPLAY) {
-                        // When the CarService is reconnected, we'd like to report the physical
-                        // display id again, since the previously reported mapping could be gone.
-                        reportPhysicalDisplayId(
-                                mUxRestrictionsManager, mVirtualDisplayId, mContext.getDisplayId());
-                    }
-                });
     }
 
     @Override
@@ -89,7 +75,8 @@
         Log.d(TAG, "reportPhysicalDisplayId: virtualDisplayId=" + virtualDisplayId
                 + ", physicalDisplayId=" + physicalDisplayId);
         if (virtualDisplayId == Display.INVALID_DISPLAY) {
-            throw new RuntimeException("Has no virtual display to report.");
+            Log.w(TAG, "No virtual display to report");
+            return;
         }
         if (manager == null) {
             Log.w(TAG, "CarUxRestrictionsManager is not ready yet");
@@ -153,4 +140,30 @@
             }
         }
     }
+
+    @Override
+    protected void onAttachedToWindow() {
+        super.onAttachedToWindow();
+        mCar = Car.createCar(mContext, /*handler=*/ null,
+                Car.CAR_WAIT_TIMEOUT_DO_NOT_WAIT,
+                (car, ready) -> {
+                    // Expect to be called in the main thread, since passed a 'null' handler
+                    // in Car.createCar().
+                    if (!ready) return;
+                    mUxRestrictionsManager = (CarUxRestrictionsManager) car.getCarManager(
+                            Car.CAR_UX_RESTRICTION_SERVICE);
+                    if (mVirtualDisplayId != Display.INVALID_DISPLAY) {
+                        // When the CarService is reconnected, we'd like to report the physical
+                        // display id again, since the previously reported mapping could be gone.
+                        reportPhysicalDisplayId(
+                                mUxRestrictionsManager, mVirtualDisplayId, mContext.getDisplayId());
+                    }
+                });
+    }
+
+    @Override
+    protected void onDetachedFromWindow() {
+        super.onDetachedFromWindow();
+        if (mCar != null) mCar.disconnect();
+    }
 }
diff --git a/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java b/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
index 95e1d48..afced45 100644
--- a/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
+++ b/car-lib/src/android/car/cluster/renderer/NavigationRenderer.java
@@ -39,15 +39,17 @@
      *
      * @removed Replaced by {@link #onNavigationStateChanged(Bundle)}
      */
-    public void onEvent(int eventType, Bundle bundle) {}
+    public void onEvent(int eventType, Bundle bundle) {
+    }
 
     /**
      * Called when a navigation state change is received.
      *
      * @param bundle {@link android.os.Bundle} containing the description of the navigation state
-     *               change. This information can be parsed using
-     *               <a href="https://developer.android.com/reference/androidx/car/cluster/navigation/NavigationState.html#toParcelable()">
-     *               androidx.car.cluster.navigation.NavigationState#fromParcelable(Parcelable)</a>
+     *               change as an array of bytes. This information can be parsed using
+     *               {@link android.car.cluster.navigation.NavigationState.NavigationStateProto
+     *                                        #parseFrom(protoBytes)}.
      */
-    public void onNavigationStateChanged(@Nullable Bundle bundle) {}
+    public void onNavigationStateChanged(@Nullable Bundle bundle) {
+    }
 }
diff --git a/car-lib/src/android/car/content/pm/CarAppBlockingPolicy.java b/car-lib/src/android/car/content/pm/CarAppBlockingPolicy.java
index 3ada352..3027d02 100644
--- a/car-lib/src/android/car/content/pm/CarAppBlockingPolicy.java
+++ b/car-lib/src/android/car/content/pm/CarAppBlockingPolicy.java
@@ -85,16 +85,19 @@
         payloadParcel.recycle();
     }
 
-    public static final Parcelable.Creator<CarAppBlockingPolicy> CREATOR
-            = new Parcelable.Creator<CarAppBlockingPolicy>() {
-        public CarAppBlockingPolicy createFromParcel(Parcel in) {
-            return new CarAppBlockingPolicy(in);
-        }
+    public static final Parcelable.Creator<CarAppBlockingPolicy> CREATOR =
+            new Parcelable.Creator<CarAppBlockingPolicy>() {
 
-        public CarAppBlockingPolicy[] newArray(int size) {
-            return new CarAppBlockingPolicy[size];
-        }
-    };
+                @Override
+                public CarAppBlockingPolicy createFromParcel(Parcel in) {
+                    return new CarAppBlockingPolicy(in);
+                }
+
+                @Override
+                public CarAppBlockingPolicy[] newArray(int size) {
+                    return new CarAppBlockingPolicy[size];
+                }
+            };
 
     @Override
     public int hashCode() {
diff --git a/car-lib/src/android/car/content/pm/CarPackageManager.java b/car-lib/src/android/car/content/pm/CarPackageManager.java
index 5d5936b..98c5822 100644
--- a/car-lib/src/android/car/content/pm/CarPackageManager.java
+++ b/car-lib/src/android/car/content/pm/CarPackageManager.java
@@ -108,8 +108,8 @@
     @SystemApi
     public void setAppBlockingPolicy(
             String packageName, CarAppBlockingPolicy policy, @SetPolicyFlags int flags) {
-        if ((flags & FLAG_SET_POLICY_WAIT_FOR_CHANGE) != 0 &&
-                Looper.getMainLooper().isCurrentThread()) {
+        if ((flags & FLAG_SET_POLICY_WAIT_FOR_CHANGE) != 0
+                && Looper.getMainLooper().isCurrentThread()) {
             throw new IllegalStateException(
                     "FLAG_SET_POLICY_WAIT_FOR_CHANGE cannot be used in main thread");
         }
diff --git a/car-lib/src/android/car/diagnostic/CarDiagnosticEvent.java b/car-lib/src/android/car/diagnostic/CarDiagnosticEvent.java
index 94abbb5..901d14e 100644
--- a/car-lib/src/android/car/diagnostic/CarDiagnosticEvent.java
+++ b/car-lib/src/android/car/diagnostic/CarDiagnosticEvent.java
@@ -50,13 +50,13 @@
      * Sparse array that contains the mapping of OBD2 diagnostic properties to their values for
      * integer valued properties
      */
-    private final SparseIntArray intValues;
+    private final SparseIntArray mIntValues;
 
     /**
      * Sparse array that contains the mapping of OBD2 diagnostic properties to their values for
      * float valued properties
      */
-    private final SparseArray<Float> floatValues;
+    private final SparseArray<Float> mFloatValues;
 
     /**
      * Diagnostic Troubleshooting Code (DTC) that was detected and caused this frame to be stored
@@ -68,18 +68,18 @@
         frameType = in.readInt();
         timestamp = in.readLong();
         int len = in.readInt();
-        floatValues = new SparseArray<>(len);
+        mFloatValues = new SparseArray<>(len);
         for (int i = 0; i < len; ++i) {
             int key = in.readInt();
             float value = in.readFloat();
-            floatValues.put(key, value);
+            mFloatValues.put(key, value);
         }
         len = in.readInt();
-        intValues = new SparseIntArray(len);
+        mIntValues = new SparseIntArray(len);
         for (int i = 0; i < len; ++i) {
             int key = in.readInt();
             int value = in.readInt();
-            intValues.put(key, value);
+            mIntValues.put(key, value);
         }
         dtc = (String) in.readValue(String.class.getClassLoader());
         // version 1 up to here
@@ -94,17 +94,17 @@
     public void writeToParcel(Parcel dest, int flags) {
         dest.writeInt(frameType);
         dest.writeLong(timestamp);
-        dest.writeInt(floatValues.size());
-        for (int i = 0; i < floatValues.size(); ++i) {
-            int key = floatValues.keyAt(i);
+        dest.writeInt(mFloatValues.size());
+        for (int i = 0; i < mFloatValues.size(); ++i) {
+            int key = mFloatValues.keyAt(i);
             dest.writeInt(key);
-            dest.writeFloat(floatValues.get(key));
+            dest.writeFloat(mFloatValues.get(key));
         }
-        dest.writeInt(intValues.size());
-        for (int i = 0; i < intValues.size(); ++i) {
-            int key = intValues.keyAt(i);
+        dest.writeInt(mIntValues.size());
+        for (int i = 0; i < mIntValues.size(); ++i) {
+            int key = mIntValues.keyAt(i);
             dest.writeInt(key);
-            dest.writeInt(intValues.get(key));
+            dest.writeInt(mIntValues.get(key));
         }
         dest.writeValue(dtc);
     }
@@ -141,19 +141,19 @@
         jsonWriter.name("timestamp").value(timestamp);
 
         jsonWriter.name("intValues").beginArray();
-        for (int i = 0; i < intValues.size(); ++i) {
+        for (int i = 0; i < mIntValues.size(); ++i) {
             jsonWriter.beginObject();
-            jsonWriter.name("id").value(intValues.keyAt(i));
-            jsonWriter.name("value").value(intValues.valueAt(i));
+            jsonWriter.name("id").value(mIntValues.keyAt(i));
+            jsonWriter.name("value").value(mIntValues.valueAt(i));
             jsonWriter.endObject();
         }
         jsonWriter.endArray();
 
         jsonWriter.name("floatValues").beginArray();
-        for (int i = 0; i < floatValues.size(); ++i) {
+        for (int i = 0; i < mFloatValues.size(); ++i) {
             jsonWriter.beginObject();
-            jsonWriter.name("id").value(floatValues.keyAt(i));
-            jsonWriter.name("value").value(floatValues.valueAt(i));
+            jsonWriter.name("id").value(mFloatValues.keyAt(i));
+            jsonWriter.name("value").value(mFloatValues.valueAt(i));
             jsonWriter.endObject();
         }
         jsonWriter.endArray();
@@ -184,8 +184,8 @@
             String dtc) {
         this.frameType = frameType;
         this.timestamp = timestamp;
-        this.floatValues = floatValues;
-        this.intValues = intValues;
+        mFloatValues = floatValues;
+        mIntValues = intValues;
         this.dtc = dtc;
     }
 
@@ -308,16 +308,16 @@
      * @hide
      */
     public CarDiagnosticEvent withVendorSensorsRemoved() {
-        SparseIntArray newIntValues = intValues.clone();
-        SparseArray<Float> newFloatValues = floatValues.clone();
-        for (int i = 0; i < intValues.size(); ++i) {
-            int key = intValues.keyAt(i);
+        SparseIntArray newIntValues = mIntValues.clone();
+        SparseArray<Float> newFloatValues = mFloatValues.clone();
+        for (int i = 0; i < mIntValues.size(); ++i) {
+            int key = mIntValues.keyAt(i);
             if (key >= android.car.diagnostic.IntegerSensorIndex.LAST_SYSTEM) {
                 newIntValues.delete(key);
             }
         }
-        for (int i = 0; i < floatValues.size(); ++i) {
-            int key = floatValues.keyAt(i);
+        for (int i = 0; i < mFloatValues.size(); ++i) {
+            int key = mFloatValues.keyAt(i);
             if (key >= android.car.diagnostic.FloatSensorIndex.LAST_SYSTEM) {
                 newFloatValues.delete(key);
             }
@@ -337,8 +337,8 @@
 
     /** @hide */
     public boolean isEmptyFrame() {
-        boolean empty = (0 == intValues.size());
-        empty &= (0 == floatValues.size());
+        boolean empty = (0 == mIntValues.size());
+        empty &= (0 == mFloatValues.size());
         if (isFreezeFrame()) empty &= dtc.isEmpty();
         return empty;
     }
@@ -372,37 +372,42 @@
         if (!(otherObject instanceof CarDiagnosticEvent)) {
             return false;
         }
-        CarDiagnosticEvent otherEvent = (CarDiagnosticEvent)otherObject;
-        if (otherEvent.frameType != frameType)
+        CarDiagnosticEvent otherEvent = (CarDiagnosticEvent) otherObject;
+        if (otherEvent.frameType != frameType) {
             return false;
-        if (otherEvent.timestamp != timestamp)
+        }
+        if (otherEvent.timestamp != timestamp) {
             return false;
-        if (otherEvent.intValues.size() != intValues.size())
+        }
+        if (otherEvent.mIntValues.size() != mIntValues.size()) {
             return false;
-        if (otherEvent.floatValues.size() != floatValues.size())
+        }
+        if (otherEvent.mFloatValues.size() != mFloatValues.size()) {
             return false;
-        if (!Objects.equals(dtc, otherEvent.dtc))
+        }
+        if (!Objects.equals(dtc, otherEvent.dtc)) {
             return false;
-        for (int i = 0; i < intValues.size(); ++i) {
-            int key = intValues.keyAt(i);
-            int otherKey = otherEvent.intValues.keyAt(i);
+        }
+        for (int i = 0; i < mIntValues.size(); ++i) {
+            int key = mIntValues.keyAt(i);
+            int otherKey = otherEvent.mIntValues.keyAt(i);
             if (key != otherKey) {
                 return false;
             }
-            int value = intValues.valueAt(i);
-            int otherValue = otherEvent.intValues.valueAt(i);
+            int value = mIntValues.valueAt(i);
+            int otherValue = otherEvent.mIntValues.valueAt(i);
             if (value != otherValue) {
                 return false;
             }
         }
-        for (int i = 0; i < floatValues.size(); ++i) {
-            int key = floatValues.keyAt(i);
-            int otherKey = otherEvent.floatValues.keyAt(i);
+        for (int i = 0; i < mFloatValues.size(); ++i) {
+            int key = mFloatValues.keyAt(i);
+            int otherKey = otherEvent.mFloatValues.keyAt(i);
             if (key != otherKey) {
                 return false;
             }
-            float value = floatValues.valueAt(i);
-            float otherValue = otherEvent.floatValues.valueAt(i);
+            float value = mFloatValues.valueAt(i);
+            float otherValue = otherEvent.mFloatValues.valueAt(i);
             if (value != otherValue) {
                 return false;
             }
@@ -412,22 +417,22 @@
 
     @Override
     public int hashCode() {
-        Integer[] intKeys = new Integer[intValues.size()];
-        Integer[] floatKeys = new Integer[floatValues.size()];
+        Integer[] intKeys = new Integer[mIntValues.size()];
+        Integer[] floatKeys = new Integer[mFloatValues.size()];
         Integer[] intValues = new Integer[intKeys.length];
         Float[] floatValues = new Float[floatKeys.length];
         for (int i = 0; i < intKeys.length; ++i) {
-            intKeys[i] = this.intValues.keyAt(i);
-            intValues[i] = this.intValues.valueAt(i);
+            intKeys[i] = mIntValues.keyAt(i);
+            intValues[i] = mIntValues.valueAt(i);
         }
         for (int i = 0; i < floatKeys.length; ++i) {
-            floatKeys[i] = this.floatValues.keyAt(i);
-            floatValues[i] = this.floatValues.valueAt(i);
+            floatKeys[i] = mFloatValues.keyAt(i);
+            floatValues[i] = mFloatValues.valueAt(i);
         }
-        int intKeysHash = Objects.hash((Object[])intKeys);
-        int intValuesHash = Objects.hash((Object[])intValues);
-        int floatKeysHash = Objects.hash((Object[])floatKeys);
-        int floatValuesHash = Objects.hash((Object[])floatValues);
+        int intKeysHash = Objects.hash((Object[]) intKeys);
+        int intValuesHash = Objects.hash((Object[]) intValues);
+        int floatKeysHash = Objects.hash((Object[]) floatKeys);
+        int floatValuesHash = Objects.hash((Object[]) floatValues);
         return Objects.hash(frameType,
                 timestamp,
                 dtc,
@@ -443,13 +448,13 @@
                 "%s diagnostic frame {\n"
                         + "\ttimestamp: %d, "
                         + "DTC: %s\n"
-                        + "\tintValues: %s\n"
-                        + "\tfloatValues: %s\n}",
+                        + "\tmIntValues: %s\n"
+                        + "\tmFloatValues: %s\n}",
                 isLiveFrame() ? "live" : "freeze",
                 timestamp,
                 dtc,
-                intValues.toString(),
-                floatValues.toString());
+                mIntValues.toString(),
+                mFloatValues.toString());
     }
 
     /**
@@ -458,7 +463,7 @@
      */
     public int getSystemIntegerSensor(
             @android.car.diagnostic.IntegerSensorIndex.SensorIndex int sensor, int defaultValue) {
-        return intValues.get(sensor, defaultValue);
+        return mIntValues.get(sensor, defaultValue);
     }
 
     /**
@@ -467,7 +472,7 @@
      */
     public float getSystemFloatSensor(
             @android.car.diagnostic.FloatSensorIndex.SensorIndex int sensor, float defaultValue) {
-        return floatValues.get(sensor, defaultValue);
+        return mFloatValues.get(sensor, defaultValue);
     }
 
     /**
@@ -475,7 +480,7 @@
      * Returns defaultValue otherwise.
      */
     public int getVendorIntegerSensor(int sensor, int defaultValue) {
-        return intValues.get(sensor, defaultValue);
+        return mIntValues.get(sensor, defaultValue);
     }
 
     /**
@@ -483,7 +488,7 @@
      * Returns defaultValue otherwise.
      */
     public float getVendorFloatSensor(int sensor, float defaultValue) {
-        return floatValues.get(sensor, defaultValue);
+        return mFloatValues.get(sensor, defaultValue);
     }
 
     /**
@@ -492,9 +497,9 @@
      */
     public @Nullable Integer getSystemIntegerSensor(
             @android.car.diagnostic.IntegerSensorIndex.SensorIndex int sensor) {
-        int index = intValues.indexOfKey(sensor);
+        int index = mIntValues.indexOfKey(sensor);
         if (index < 0) return null;
-        return intValues.valueAt(index);
+        return mIntValues.valueAt(index);
     }
 
     /**
@@ -503,9 +508,9 @@
      */
     public @Nullable Float getSystemFloatSensor(
             @android.car.diagnostic.FloatSensorIndex.SensorIndex int sensor) {
-        int index = floatValues.indexOfKey(sensor);
+        int index = mFloatValues.indexOfKey(sensor);
         if (index < 0) return null;
-        return floatValues.valueAt(index);
+        return mFloatValues.valueAt(index);
     }
 
     /**
@@ -513,9 +518,9 @@
      * Returns null otherwise.
      */
     public @Nullable Integer getVendorIntegerSensor(int sensor) {
-        int index = intValues.indexOfKey(sensor);
+        int index = mIntValues.indexOfKey(sensor);
         if (index < 0) return null;
-        return intValues.valueAt(index);
+        return mIntValues.valueAt(index);
     }
 
     /**
@@ -523,9 +528,9 @@
      * Returns null otherwise.
      */
     public @Nullable Float getVendorFloatSensor(int sensor) {
-        int index = floatValues.indexOfKey(sensor);
+        int index = mFloatValues.indexOfKey(sensor);
         if (index < 0) return null;
-        return floatValues.valueAt(index);
+        return mFloatValues.valueAt(index);
     }
 
     /**
@@ -658,6 +663,9 @@
                 mIncompleteBitmask = incompleteBitmask;
             }
 
+            /**
+             * Returns the {@link IgnitionMonitor} associated with the value passed as parameter.
+             */
             public IgnitionMonitor fromValue(int value) {
                 boolean available = (0 != (value & mAvailableBitmask));
                 boolean incomplete = (0 != (value & mIncompleteBitmask));
@@ -721,8 +729,9 @@
          * Returns null otherwise.
          */
         public @Nullable CompressionIgnitionMonitors asCompressionIgnitionMonitors() {
-            if (this instanceof CompressionIgnitionMonitors)
+            if (this instanceof CompressionIgnitionMonitors) {
                 return (CompressionIgnitionMonitors) this;
+            }
             return null;
         }
     }
@@ -907,7 +916,8 @@
      * Returns null otherwise.
      */
     public @Nullable @SecondaryAirStatus.Status Integer getSecondaryAirStatus() {
-        return getSystemIntegerSensor(android.car.diagnostic.IntegerSensorIndex.COMMANDED_SECONDARY_AIR_STATUS);
+        return getSystemIntegerSensor(
+            android.car.diagnostic.IntegerSensorIndex.COMMANDED_SECONDARY_AIR_STATUS);
     }
 
     /**
@@ -916,9 +926,11 @@
      */
     public @Nullable CommonIgnitionMonitors getIgnitionMonitors() {
         Integer ignitionMonitorsType =
-                getSystemIntegerSensor(android.car.diagnostic.IntegerSensorIndex.IGNITION_MONITORS_SUPPORTED);
+                getSystemIntegerSensor(
+                    android.car.diagnostic.IntegerSensorIndex.IGNITION_MONITORS_SUPPORTED);
         Integer ignitionMonitorsBitmask =
-                getSystemIntegerSensor(android.car.diagnostic.IntegerSensorIndex.IGNITION_SPECIFIC_MONITORS);
+                getSystemIntegerSensor(
+                    android.car.diagnostic.IntegerSensorIndex.IGNITION_SPECIFIC_MONITORS);
         if (null == ignitionMonitorsType) return null;
         if (null == ignitionMonitorsBitmask) return null;
         switch (ignitionMonitorsType) {
diff --git a/car-lib/src/android/car/diagnostic/CarDiagnosticManager.java b/car-lib/src/android/car/diagnostic/CarDiagnosticManager.java
index 8c2f8e3..9799707 100644
--- a/car-lib/src/android/car/diagnostic/CarDiagnosticManager.java
+++ b/car-lib/src/android/car/diagnostic/CarDiagnosticManager.java
@@ -54,7 +54,7 @@
     public @interface FrameType {}
 
     /** @hide */
-    public static final @FrameType int FRAME_TYPES[] = {
+    public static final @FrameType int[] FRAME_TYPES = {
         FRAME_TYPE_LIVE,
         FRAME_TYPE_FREEZE
     };
@@ -95,7 +95,7 @@
 
     @Override
     public void onCarDisconnected() {
-        synchronized(mActiveListeners) {
+        synchronized (mActiveListeners) {
             mActiveListeners.clear();
         }
     }
@@ -107,7 +107,7 @@
          *
          * @param carDiagnosticEvent
          */
-        void onDiagnosticEvent(final CarDiagnosticEvent carDiagnosticEvent);
+        void onDiagnosticEvent(CarDiagnosticEvent carDiagnosticEvent);
     }
 
     // OnDiagnosticEventListener registration
@@ -134,7 +134,7 @@
     public boolean registerListener(
             OnDiagnosticEventListener listener, @FrameType int frameType, int rate) {
         assertFrameType(frameType);
-        synchronized(mActiveListeners) {
+        synchronized (mActiveListeners) {
             boolean needsServerUpdate = false;
             CarDiagnosticListeners listeners = mActiveListeners.get(frameType);
             if (listeners == null) {
@@ -159,8 +159,8 @@
      * @param listener
      */
     public void unregisterListener(OnDiagnosticEventListener listener) {
-        synchronized(mActiveListeners) {
-            for(@FrameType int frameType : FRAME_TYPES) {
+        synchronized (mActiveListeners) {
+            for (@FrameType int frameType : FRAME_TYPES) {
                 doUnregisterListenerLocked(listener, frameType);
             }
         }
@@ -177,7 +177,7 @@
             if (listeners.isEmpty()) {
                 try {
                     mService.unregisterDiagnosticListener(frameType,
-                        mListenerToService);
+                            mListenerToService);
                 } catch (RemoteException e) {
                     handleRemoteExceptionFromCarService(e);
                     // continue for local clean-up
@@ -340,12 +340,12 @@
             extends Stub {
         private final WeakReference<CarDiagnosticManager> mManager;
 
-        public CarDiagnosticEventListenerToService(CarDiagnosticManager manager) {
+        CarDiagnosticEventListenerToService(CarDiagnosticManager manager) {
             mManager = new WeakReference<>(manager);
         }
 
         private void handleOnDiagnosticEvents(CarDiagnosticManager manager,
-            List<CarDiagnosticEvent> events) {
+                List<CarDiagnosticEvent> events) {
             manager.mHandlerCallback.sendEvents(events);
         }
 
@@ -372,8 +372,8 @@
             }
             mLastUpdateTime = updateTime;
             final boolean hasVendorExtensionPermission = mVendorExtensionPermission.checkGranted();
-            final CarDiagnosticEvent eventToDispatch = hasVendorExtensionPermission ?
-                    event :
+            final CarDiagnosticEvent eventToDispatch = hasVendorExtensionPermission
+                    ? event :
                     event.withVendorSensorsRemoved();
             List<OnDiagnosticEventListener> listeners;
             synchronized (mActiveListeners) {
diff --git a/car-lib/src/android/car/drivingstate/CarDrivingStateEvent.java b/car-lib/src/android/car/drivingstate/CarDrivingStateEvent.java
index bd553ce..db2cf55 100644
--- a/car-lib/src/android/car/drivingstate/CarDrivingStateEvent.java
+++ b/car-lib/src/android/car/drivingstate/CarDrivingStateEvent.java
@@ -84,16 +84,19 @@
         dest.writeLong(timeStamp);
     }
 
-    public static final Parcelable.Creator<CarDrivingStateEvent> CREATOR
-            = new Parcelable.Creator<CarDrivingStateEvent>() {
-        public CarDrivingStateEvent createFromParcel(Parcel in) {
-            return new CarDrivingStateEvent(in);
-        }
+    public static final Parcelable.Creator<CarDrivingStateEvent> CREATOR =
+            new Parcelable.Creator<CarDrivingStateEvent>() {
 
-        public CarDrivingStateEvent[] newArray(int size) {
-            return new CarDrivingStateEvent[size];
-        }
-    };
+                @Override
+                public CarDrivingStateEvent createFromParcel(Parcel in) {
+                    return new CarDrivingStateEvent(in);
+                }
+
+                @Override
+                public CarDrivingStateEvent[] newArray(int size) {
+                    return new CarDrivingStateEvent[size];
+                }
+            };
 
     public CarDrivingStateEvent(int value, long time) {
         eventValue = value;
diff --git a/car-lib/src/android/car/hardware/CarSensorConfig.java b/car-lib/src/android/car/hardware/CarSensorConfig.java
index 77f8dc5..4910def 100644
--- a/car-lib/src/android/car/hardware/CarSensorConfig.java
+++ b/car-lib/src/android/car/hardware/CarSensorConfig.java
@@ -19,7 +19,6 @@
 import android.os.Bundle;
 import android.os.Parcel;
 import android.os.Parcelable;
-import java.util.ArrayList;
 
 /**
  * A CarSensorConfig object corresponds to a single sensor type coming from the car.
@@ -28,20 +27,20 @@
 public class CarSensorConfig implements Parcelable {
     /** List of property specific mapped elements in bundle for WHEEL_TICK_DISTANCE sensor*/
     /** @hide */
-    public final static String WHEEL_TICK_DISTANCE_SUPPORTED_WHEELS =
-        "android.car.wheelTickDistanceSupportedWheels";
+    public static final String WHEEL_TICK_DISTANCE_SUPPORTED_WHEELS =
+            "android.car.wheelTickDistanceSupportedWheels";
     /** @hide */
-    public final static String WHEEL_TICK_DISTANCE_FRONT_LEFT_UM_PER_TICK =
-        "android.car.wheelTickDistanceFrontLeftUmPerTick";
+    public static final String WHEEL_TICK_DISTANCE_FRONT_LEFT_UM_PER_TICK =
+            "android.car.wheelTickDistanceFrontLeftUmPerTick";
     /** @hide */
-    public final static String WHEEL_TICK_DISTANCE_FRONT_RIGHT_UM_PER_TICK =
-        "android.car.wheelTickDistanceFrontRightUmPerTick";
+    public static final String WHEEL_TICK_DISTANCE_FRONT_RIGHT_UM_PER_TICK =
+            "android.car.wheelTickDistanceFrontRightUmPerTick";
     /** @hide */
-    public final static String WHEEL_TICK_DISTANCE_REAR_RIGHT_UM_PER_TICK =
-        "android.car.wheelTickDistanceRearRightUmPerTick";
+    public static final String WHEEL_TICK_DISTANCE_REAR_RIGHT_UM_PER_TICK =
+            "android.car.wheelTickDistanceRearRightUmPerTick";
     /** @hide */
-    public final static String WHEEL_TICK_DISTANCE_REAR_LEFT_UM_PER_TICK =
-        "android.car.wheelTickDistanceRearLeftUmPerTick";
+    public static final String WHEEL_TICK_DISTANCE_REAR_LEFT_UM_PER_TICK =
+            "android.car.wheelTickDistanceRearLeftUmPerTick";
 
     /** Config data stored in Bundle */
     private final Bundle mConfig;
@@ -67,16 +66,19 @@
     }
 
     /** @hide */
-    public static final Parcelable.Creator<CarSensorConfig> CREATOR
-    = new Parcelable.Creator<CarSensorConfig>() {
-        public CarSensorConfig createFromParcel(Parcel in) {
-            return new CarSensorConfig(in);
-        }
+    public static final Parcelable.Creator<CarSensorConfig> CREATOR =
+            new Parcelable.Creator<CarSensorConfig>() {
 
-        public CarSensorConfig[] newArray(int size) {
-            return new CarSensorConfig[size];
-        }
-    };
+            @Override
+            public CarSensorConfig createFromParcel(Parcel in) {
+                return new CarSensorConfig(in);
+            }
+
+            @Override
+            public CarSensorConfig[] newArray(int size) {
+                return new CarSensorConfig[size];
+            }
+        };
 
     /** @hide */
     public CarSensorConfig(int type, Bundle b) {
@@ -101,10 +103,9 @@
     public int getInt(String key) {
         if (mConfig.containsKey(key)) {
             return mConfig.getInt(key);
-        } else {
-            throw new IllegalArgumentException("SensorType " + mType +
-                " does not contain key: " + key);
         }
+        throw new IllegalArgumentException("SensorType " + mType
+            + " does not contain key: " + key);
     }
 
     /** @hide */
diff --git a/car-lib/src/android/car/hardware/power/CarPowerManager.java b/car-lib/src/android/car/hardware/power/CarPowerManager.java
index 7c2a323..d9ff33d 100644
--- a/car-lib/src/android/car/hardware/power/CarPowerManager.java
+++ b/car-lib/src/android/car/hardware/power/CarPowerManager.java
@@ -16,6 +16,7 @@
 
 package android.car.hardware.power;
 
+import android.annotation.RequiresPermission;
 import android.annotation.SystemApi;
 import android.car.Car;
 import android.car.CarManagerBase;
@@ -56,10 +57,15 @@
     public interface CarPowerStateListener {
         /**
          * onStateChanged() states.  These definitions must match the ones located in the native
-         * CarPowerManager:  packages/services/Car/car-lib/native/CarPowerManager/CarPowerManager.h
+         * CarPowerManager:  packages/services/Car/car-lib/native/include/CarPowerManager.h
          */
 
         /**
+         * The current power state is unavailable, unknown, or invalid
+         * @hide
+         */
+        int INVALID = 0;
+        /**
          * Android is up, but vendor is controlling the audio / display
          * @hide
          */
@@ -162,6 +168,20 @@
     }
 
     /**
+     * Returns the current power state
+     * @return One of the values defined in {@link CarPowerStateListener}
+     * @hide
+     */
+    @RequiresPermission(Car.PERMISSION_CAR_POWER)
+    public int getPowerState() {
+        try {
+            return mService.getPowerState();
+        } catch (RemoteException e) {
+            return handleRemoteExceptionFromCarService(e, CarPowerStateListener.INVALID);
+        }
+    }
+
+    /**
      * Sets a listener to receive power state changes. Only one listener may be set at a
      * time for an instance of CarPowerManager.
      * The listener is assumed to completely handle the 'onStateChanged' before returning.
diff --git a/car-lib/src/android/car/hardware/power/ICarPower.aidl b/car-lib/src/android/car/hardware/power/ICarPower.aidl
index 581e736..505b075 100644
--- a/car-lib/src/android/car/hardware/power/ICarPower.aidl
+++ b/car-lib/src/android/car/hardware/power/ICarPower.aidl
@@ -31,4 +31,6 @@
     void scheduleNextWakeupTime(int seconds) = 4;
 
     void registerListenerWithCompletion(in ICarPowerStateListener listener) = 5;
+
+    int getPowerState() = 6;
 }
diff --git a/car-lib/src/android/car/hardware/property/CarPropertyEvent.java b/car-lib/src/android/car/hardware/property/CarPropertyEvent.java
index c423c2f..4d5498d 100644
--- a/car-lib/src/android/car/hardware/property/CarPropertyEvent.java
+++ b/car-lib/src/android/car/hardware/property/CarPropertyEvent.java
@@ -42,12 +42,16 @@
     /**
      * @return EventType field
      */
-    public int getEventType() { return mEventType; }
+    public int getEventType() {
+        return mEventType;
+    }
 
     /**
      * Returns {@link CarPropertyValue} associated with this event.
      */
-    public CarPropertyValue<?> getCarPropertyValue() { return mCarPropertyValue; }
+    public CarPropertyValue<?> getCarPropertyValue() {
+        return mCarPropertyValue;
+    }
 
     @Override
     public int describeContents() {
@@ -61,16 +65,19 @@
         dest.writeParcelable(mCarPropertyValue, flags);
     }
 
-    public static final Parcelable.Creator<CarPropertyEvent> CREATOR
-            = new Parcelable.Creator<CarPropertyEvent>() {
+    public static final Parcelable.Creator<CarPropertyEvent> CREATOR =
+            new Parcelable.Creator<CarPropertyEvent>() {
+
+        @Override
         public CarPropertyEvent createFromParcel(Parcel in) {
             return new CarPropertyEvent(in);
         }
 
+        @Override
         public CarPropertyEvent[] newArray(int size) {
             return new CarPropertyEvent[size];
         }
-    };
+        };
 
     /**
      * Constructor for {@link CarPropertyEvent}.
diff --git a/car-lib/src/android/car/media/CarAudioManager.java b/car-lib/src/android/car/media/CarAudioManager.java
index 5b5f07b..31eb173 100644
--- a/car-lib/src/android/car/media/CarAudioManager.java
+++ b/car-lib/src/android/car/media/CarAudioManager.java
@@ -39,7 +39,9 @@
 import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
 
 /**
  * APIs for handling audio in a car.
@@ -75,6 +77,12 @@
     public static final int INVALID_AUDIO_ZONE = 0xffffffff;
 
     /**
+     * Volume Group ID when volume group not found.
+     * @hide
+     */
+    public static final int INVALID_VOLUME_GROUP_ID = -1;
+
+    /**
      * Extra for {@link android.media.AudioAttributes.Builder#addBundle(Bundle)}: when used in an
      * {@link android.media.AudioFocusRequest}, the requester should receive all audio focus events,
      * including {@link android.media.AudioManager#AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK}.
@@ -100,7 +108,7 @@
             "android.car.media.AUDIOFOCUS_EXTRA_REQUEST_ZONE_ID";
 
     private final ICarAudio mService;
-    private final List<CarVolumeCallback> mCarVolumeCallbacks;
+    private final CopyOnWriteArrayList<CarVolumeCallback> mCarVolumeCallbacks;
     private final AudioManager mAudioManager;
 
     private final ICarVolumeCallback mCarVolumeCallbackImpl = new ICarVolumeCallback.Stub() {
@@ -441,6 +449,24 @@
     }
 
     /**
+     * Gets array of {@link AudioAttributes} usages for a volume group in a zone.
+     *
+     * @param zoneId The zone id whose volume group is queried.
+     * @param groupId The volume group id whose associated audio usages is returned.
+     * @return Array of {@link AudioAttributes} usages for a given volume group id
+     * @hide
+     */
+    @SystemApi
+    @RequiresPermission(Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME)
+    public @NonNull int[] getUsagesForVolumeGroupId(int zoneId, int groupId) {
+        try {
+            return mService.getUsagesForVolumeGroupId(zoneId, groupId);
+        } catch (RemoteException e) {
+            return handleRemoteExceptionFromCarService(e, new int[0]);
+        }
+    }
+
+    /**
      * Gets the audio zones currently available
      *
      * @return audio zone ids
@@ -549,24 +575,6 @@
     }
 
     /**
-     * Gets array of {@link AudioAttributes} usages for a volume group in a zone.
-     *
-     * @param zoneId The zone id whose volume group is queried.
-     * @param groupId The volume group id whose associated audio usages is returned.
-     * @return Array of {@link AudioAttributes} usages for a given volume group id
-     * @hide
-     */
-    @SystemApi
-    @RequiresPermission(Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME)
-    public @NonNull int[] getUsagesForVolumeGroupId(int zoneId, int groupId) {
-        try {
-            return mService.getUsagesForVolumeGroupId(zoneId, groupId);
-        } catch (RemoteException e) {
-            return handleRemoteExceptionFromCarService(e, new int[0]);
-        }
-    }
-
-    /**
      * Gets the output device for a given {@link AudioAttributes} usage in zoneId.
      *
      * <p><b>Note:</b> To be used for routing to a specific device. Most applications should
@@ -627,11 +635,7 @@
     @Override
     public void onCarDisconnected() {
         if (mService != null) {
-            try {
-                mService.unregisterVolumeCallback(mCarVolumeCallbackImpl.asBinder());
-            } catch (RemoteException e) {
-                handleRemoteExceptionFromCarService(e);
-            }
+            unregisterVolumeCallback();
         }
     }
 
@@ -640,7 +644,39 @@
         super(car);
         mService = ICarAudio.Stub.asInterface(service);
         mAudioManager = getContext().getSystemService(AudioManager.class);
-        mCarVolumeCallbacks = new ArrayList<>();
+        mCarVolumeCallbacks = new CopyOnWriteArrayList<>();
+    }
+
+    /**
+     * Registers a {@link CarVolumeCallback} to receive volume change callbacks
+     * @param callback {@link CarVolumeCallback} instance, can not be null
+     * <p>
+     * Requires permission Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME
+     */
+    public void registerCarVolumeCallback(@NonNull CarVolumeCallback callback) {
+        Objects.requireNonNull(callback);
+
+        if (mCarVolumeCallbacks.isEmpty()) {
+            registerVolumeCallback();
+        }
+
+        mCarVolumeCallbacks.add(callback);
+    }
+
+    /**
+     * Unregisters a {@link CarVolumeCallback} from receiving volume change callbacks
+     * @param callback {@link CarVolumeCallback} instance previously registered, can not be null
+     * <p>
+     * Requires permission Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME
+     */
+    public void unregisterCarVolumeCallback(@NonNull CarVolumeCallback callback) {
+        Objects.requireNonNull(callback);
+        if (mCarVolumeCallbacks.remove(callback) && mCarVolumeCallbacks.isEmpty()) {
+            unregisterVolumeCallback();
+        }
+    }
+
+    private void registerVolumeCallback() {
         try {
             mService.registerVolumeCallback(mCarVolumeCallbackImpl.asBinder());
         } catch (RemoteException e) {
@@ -648,20 +684,12 @@
         }
     }
 
-    /**
-     * Registers a {@link CarVolumeCallback} to receive volume change callbacks
-     * @param callback {@link CarVolumeCallback} instance, can not be null
-     */
-    public void registerCarVolumeCallback(@NonNull CarVolumeCallback callback) {
-        mCarVolumeCallbacks.add(callback);
-    }
-
-    /**
-     * Unregisters a {@link CarVolumeCallback} from receiving volume change callbacks
-     * @param callback {@link CarVolumeCallback} instance previously registered, can not be null
-     */
-    public void unregisterCarVolumeCallback(@NonNull CarVolumeCallback callback) {
-        mCarVolumeCallbacks.remove(callback);
+    private void unregisterVolumeCallback() {
+        try {
+            mService.unregisterVolumeCallback(mCarVolumeCallbackImpl.asBinder());
+        } catch (RemoteException e) {
+            handleRemoteExceptionFromCarService(e);
+        }
     }
 
     private List<AudioDeviceInfo> convertInputDevicesToDeviceInfos(
diff --git a/car-lib/src/android/car/media/CarAudioPatchHandle.java b/car-lib/src/android/car/media/CarAudioPatchHandle.java
index 0ff5246..20fbab0 100644
--- a/car-lib/src/android/car/media/CarAudioPatchHandle.java
+++ b/car-lib/src/android/car/media/CarAudioPatchHandle.java
@@ -100,16 +100,16 @@
         out.writeString(mSinkAddress);
     }
 
-    public static final Parcelable.Creator<CarAudioPatchHandle> CREATOR
-            = new Parcelable.Creator<CarAudioPatchHandle>() {
-        public CarAudioPatchHandle createFromParcel(Parcel in) {
-            return new CarAudioPatchHandle(in);
-        }
+    public static final Parcelable.Creator<CarAudioPatchHandle> CREATOR =
+                new Parcelable.Creator<CarAudioPatchHandle>() {
+            public CarAudioPatchHandle createFromParcel(Parcel in) {
+                return new CarAudioPatchHandle(in);
+            }
 
-        public CarAudioPatchHandle[] newArray(int size) {
-            return new CarAudioPatchHandle[size];
-        }
-    };
+            public CarAudioPatchHandle[] newArray(int size) {
+                return new CarAudioPatchHandle[size];
+            }
+        };
 
     @Override
     public int describeContents() {
diff --git a/car-lib/src/android/car/navigation/CarNavigationInstrumentCluster.java b/car-lib/src/android/car/navigation/CarNavigationInstrumentCluster.java
index b41c7de..444f82a 100644
--- a/car-lib/src/android/car/navigation/CarNavigationInstrumentCluster.java
+++ b/car-lib/src/android/car/navigation/CarNavigationInstrumentCluster.java
@@ -57,25 +57,31 @@
 
     private final Bundle mExtra;
 
-    public static final Parcelable.Creator<CarNavigationInstrumentCluster> CREATOR
-            = new Parcelable.Creator<CarNavigationInstrumentCluster>() {
-        public CarNavigationInstrumentCluster createFromParcel(Parcel in) {
-            return new CarNavigationInstrumentCluster(in);
-        }
+    public static final Parcelable.Creator<CarNavigationInstrumentCluster> CREATOR =
+                new Parcelable.Creator<CarNavigationInstrumentCluster>() {
+            public CarNavigationInstrumentCluster createFromParcel(Parcel in) {
+                return new CarNavigationInstrumentCluster(in);
+            }
 
-        public CarNavigationInstrumentCluster[] newArray(int size) {
-            return new CarNavigationInstrumentCluster[size];
-        }
-    };
+            public CarNavigationInstrumentCluster[] newArray(int size) {
+                return new CarNavigationInstrumentCluster[size];
+            }
+        };
 
+    /**
+     * Creates a new {@link CarNavigationInstrumentCluster}.
+     */
     public static CarNavigationInstrumentCluster createCluster(int minIntervalMillis) {
         return new CarNavigationInstrumentCluster(minIntervalMillis, CLUSTER_TYPE_IMAGE_CODES_ONLY,
                 0, 0, 0);
     }
 
-    public static CarNavigationInstrumentCluster createCustomImageCluster(int minIntervalMs,
+    /**
+     * Creates a new {@link CarNavigationInstrumentCluster}.
+     */
+    public static CarNavigationInstrumentCluster createCustomImageCluster(int minIntervalMillis,
             int imageWidth, int imageHeight, int imageColorDepthBits) {
-        return new CarNavigationInstrumentCluster(minIntervalMs,
+        return new CarNavigationInstrumentCluster(minIntervalMillis,
                 CLUSTER_TYPE_CUSTOM_IMAGES_SUPPORTED,
                 imageWidth, imageHeight, imageColorDepthBits);
     }
@@ -108,7 +114,9 @@
      * Contains extra information about instrument cluster.
      * @hide
      */
-    public Bundle getExtra() { return mExtra; }
+    public Bundle getExtra() {
+        return mExtra;
+    }
 
     /**
      * If instrument cluster is image, number of bits of colour depth it supports (8, 16, or 32).
@@ -127,10 +135,9 @@
 
     /**
      * Whether cluster support custom image or not.
-     * @return
      */
     public boolean supportsCustomImages() {
-      return mType == CLUSTER_TYPE_CUSTOM_IMAGES_SUPPORTED;
+        return mType == CLUSTER_TYPE_CUSTOM_IMAGES_SUPPORTED;
     }
 
     private CarNavigationInstrumentCluster(
@@ -174,12 +181,12 @@
     /** Converts to string for debug purpose */
     @Override
     public String toString() {
-        return CarNavigationInstrumentCluster.class.getSimpleName() + "{ " +
-                "minIntervalMillis: " + mMinIntervalMillis + ", " +
-                "type: " + mType + ", " +
-                "imageWidth: " + mImageWidth + ", " +
-                "imageHeight: " + mImageHeight + ", " +
-                "imageColourDepthBits: " + mImageColorDepthBits +
-                "extra: " + mExtra + " }";
+        return CarNavigationInstrumentCluster.class.getSimpleName() + "{ "
+                + "minIntervalMillis: " + mMinIntervalMillis + ", "
+                + "type: " + mType + ", "
+                + "imageWidth: " + mImageWidth + ", "
+                + "imageHeight: " + mImageHeight + ", "
+                + "imageColourDepthBits: " + mImageColorDepthBits
+                + "extra: " + mExtra + " }";
     }
 }
diff --git a/car-lib/src/android/car/occupantawareness/DriverMonitoringDetection.java b/car-lib/src/android/car/occupantawareness/DriverMonitoringDetection.java
index 043204e..bbac2cb 100644
--- a/car-lib/src/android/car/occupantawareness/DriverMonitoringDetection.java
+++ b/car-lib/src/android/car/occupantawareness/DriverMonitoringDetection.java
@@ -17,7 +17,6 @@
 package android.car.occupantawareness;
 
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.car.occupantawareness.OccupantAwarenessDetection.ConfidenceLevel;
 import android.os.Parcel;
 import android.os.Parcelable;
@@ -27,7 +26,6 @@
  *
  * @hide
  */
-@SystemApi
 public final class DriverMonitoringDetection implements Parcelable {
 
     /** {@link OccupantAwarenessDetection.ConfidenceLevel} for the driver monitoring detection. */
diff --git a/car-lib/src/android/car/occupantawareness/GazeDetection.java b/car-lib/src/android/car/occupantawareness/GazeDetection.java
index 3724a76..54494a4 100644
--- a/car-lib/src/android/car/occupantawareness/GazeDetection.java
+++ b/car-lib/src/android/car/occupantawareness/GazeDetection.java
@@ -21,7 +21,6 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -32,7 +31,6 @@
  *
  * @hide
  */
-@SystemApi
 public final class GazeDetection implements Parcelable {
 
     /** A unknown gaze region, not otherwise specified. */
diff --git a/car-lib/src/android/car/occupantawareness/OccupantAwarenessDetection.java b/car-lib/src/android/car/occupantawareness/OccupantAwarenessDetection.java
index d449128..19009a8 100644
--- a/car-lib/src/android/car/occupantawareness/OccupantAwarenessDetection.java
+++ b/car-lib/src/android/car/occupantawareness/OccupantAwarenessDetection.java
@@ -21,7 +21,6 @@
 import android.annotation.IntDef;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.annotation.SystemApi;
 import android.car.Car;
 import android.car.annotation.RequiredFeature;
 import android.os.Parcel;
@@ -37,7 +36,6 @@
  *
  * @hide
  */
-@SystemApi
 @RequiredFeature(Car.OCCUPANT_AWARENESS_SERVICE)
 public final class OccupantAwarenessDetection implements Parcelable {
     /** Empty occupant flag. */
diff --git a/car-lib/src/android/car/occupantawareness/OccupantAwarenessManager.java b/car-lib/src/android/car/occupantawareness/OccupantAwarenessManager.java
index 690d6cc..671bf0e 100644
--- a/car-lib/src/android/car/occupantawareness/OccupantAwarenessManager.java
+++ b/car-lib/src/android/car/occupantawareness/OccupantAwarenessManager.java
@@ -18,7 +18,6 @@
 
 import android.annotation.NonNull;
 import android.annotation.RequiresPermission;
-import android.annotation.SystemApi;
 import android.car.Car;
 import android.car.CarManagerBase;
 import android.car.annotation.RequiredFeature;
@@ -44,7 +43,6 @@
  * @hide
  */
 @RequiredFeature(Car.OCCUPANT_AWARENESS_SERVICE)
-@SystemApi
 public class OccupantAwarenessManager extends CarManagerBase {
     private static final String TAG = "OAS.Manager";
     private static final boolean DBG = false;
diff --git a/car-lib/src/android/car/occupantawareness/Point3D.java b/car-lib/src/android/car/occupantawareness/Point3D.java
index 3af0f37..b3f026d 100644
--- a/car-lib/src/android/car/occupantawareness/Point3D.java
+++ b/car-lib/src/android/car/occupantawareness/Point3D.java
@@ -17,7 +17,6 @@
 package android.car.occupantawareness;
 
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -26,7 +25,6 @@
  *
  * @hide
  */
-@SystemApi
 public final class Point3D implements Parcelable {
     /** The x-component of the point. */
     public final double x;
diff --git a/car-lib/src/android/car/occupantawareness/SystemStatusEvent.java b/car-lib/src/android/car/occupantawareness/SystemStatusEvent.java
index 802db59..64fffcd 100644
--- a/car-lib/src/android/car/occupantawareness/SystemStatusEvent.java
+++ b/car-lib/src/android/car/occupantawareness/SystemStatusEvent.java
@@ -20,7 +20,6 @@
 
 import android.annotation.IntDef;
 import android.annotation.NonNull;
-import android.annotation.SystemApi;
 import android.os.Parcel;
 import android.os.Parcelable;
 
@@ -33,7 +32,6 @@
  *
  * @hide
  */
-@SystemApi
 public final class SystemStatusEvent implements Parcelable {
     /** The system is ready to provide data. */
     public static final int SYSTEM_STATUS_READY = 0;
diff --git a/car-lib/src/android/car/settings/CarSettings.java b/car-lib/src/android/car/settings/CarSettings.java
index e9af8eb..ef78ff6 100644
--- a/car-lib/src/android/car/settings/CarSettings.java
+++ b/car-lib/src/android/car/settings/CarSettings.java
@@ -1,17 +1,17 @@
 /*
  * 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
+ * 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
+ *      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.
+ * 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 android.car.settings;
diff --git a/car-lib/src/android/car/storagemonitoring/IoStats.java b/car-lib/src/android/car/storagemonitoring/IoStats.java
index d620169..5154196 100644
--- a/car-lib/src/android/car/storagemonitoring/IoStats.java
+++ b/car-lib/src/android/car/storagemonitoring/IoStats.java
@@ -70,7 +70,7 @@
         mUptimeTimestamp = in.getInt("uptime");
         JSONArray statsArray = in.getJSONArray("stats");
         mStats = new ArrayList<>();
-        for(int i = 0; i < statsArray.length(); ++i) {
+        for (int i = 0; i < statsArray.length(); ++i) {
             mStats.add(new IoStatsEntry(statsArray.getJSONObject(i)));
         }
     }
@@ -113,6 +113,11 @@
         return Objects.hash(mStats, mUptimeTimestamp);
     }
 
+    /**
+     * Returns user's stats ({@link IoStatsEntry}).
+     *
+     * @param uid Android's user id
+     */
     public IoStatsEntry getUserIdStats(int uid) {
         for (IoStatsEntry stats : getStats()) {
             if (stats.uid == uid) {
@@ -123,6 +128,10 @@
         return null;
     }
 
+    /**
+     * Returns the following foreground total metrics: bytes written and read, bytes read from and
+     * written to storage, and number of sync calls.
+     */
     public IoStatsEntry.Metrics getForegroundTotals() {
         long bytesRead = 0;
         long bytesWritten = 0;
@@ -145,6 +154,10 @@
                 fsyncCalls);
     }
 
+    /**
+     * Returns the following background total metrics: bytes written and read, bytes read from and
+     * written to storage, and number of sync calls.
+     */
     public IoStatsEntry.Metrics getBackgroundTotals() {
         long bytesRead = 0;
         long bytesWritten = 0;
@@ -167,6 +180,10 @@
             fsyncCalls);
     }
 
+    /**
+     * Returns the sum of all foreground and background metrics (bytes written, bytes read from
+     * storage, bytes written to storage and number of sync calls).
+     */
     public IoStatsEntry.Metrics getTotals() {
         IoStatsEntry.Metrics foreground = getForegroundTotals();
         IoStatsEntry.Metrics background = getBackgroundTotals();
@@ -181,9 +198,9 @@
     @Override
     public boolean equals(Object other) {
         if (other instanceof IoStats) {
-            IoStats delta = (IoStats)other;
-            return delta.getTimestamp() == getTimestamp() &&
-                delta.getStats().equals(getStats());
+            IoStats delta = (IoStats) other;
+            return delta.getTimestamp() == getTimestamp()
+                && delta.getStats().equals(getStats());
         }
         return false;
     }
diff --git a/car-lib/src/android/car/user/CarUserManager.java b/car-lib/src/android/car/user/CarUserManager.java
index 5dc561c..c7fab76 100644
--- a/car-lib/src/android/car/user/CarUserManager.java
+++ b/car-lib/src/android/car/user/CarUserManager.java
@@ -18,7 +18,6 @@
 
 import static android.Manifest.permission.INTERACT_ACROSS_USERS;
 import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
-import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.os.Process.myUid;
 
 import android.annotation.CallbackExecutor;
@@ -32,23 +31,30 @@
 import android.car.Car;
 import android.car.CarManagerBase;
 import android.car.ICarUserService;
-import android.content.Context;
 import android.content.pm.UserInfo;
 import android.os.Bundle;
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.sysprop.CarProperties;
 import android.util.ArrayMap;
+import android.util.EventLog;
 import android.util.Log;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.car.EventLogTags;
+import com.android.internal.infra.AndroidFuture;
 import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.Preconditions;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Objects;
 import java.util.concurrent.Executor;
 
 /**
@@ -61,12 +67,13 @@
 public final class CarUserManager extends CarManagerBase {
 
     private static final String TAG = CarUserManager.class.getSimpleName();
+    private static final int HAL_TIMEOUT_MS = CarProperties.user_hal_timeout().orElse(5_000);
 
-    // TODO(b/144120654): STOPSHIP - set to false
-    private static final boolean DBG = true;
+    private static final boolean DBG = false;
 
     /**
-     * {@link UserLifecycleEvent} called when the user is starting.
+     * {@link UserLifecycleEvent} called when the user is starting, for components to initialize
+     * any per-user state they maintain for running users.
      *
      * @hide
      */
@@ -75,7 +82,13 @@
     public static final int USER_LIFECYCLE_EVENT_TYPE_STARTING = 1;
 
     /**
-     * {@link UserLifecycleEvent} called when the user is switching.
+     * {@link UserLifecycleEvent} called when switching to a different foreground user, for
+     * components that have special behavior for whichever user is currently in the foreground.
+     *
+     * <p>This is called before any application processes are aware of the new user.
+     *
+     * <p>Notice that internal system services might not have handled user switching yet, so be
+     * careful with interaction with them.
      *
      * @hide
      */
@@ -84,7 +97,13 @@
     public static final int USER_LIFECYCLE_EVENT_TYPE_SWITCHING = 2;
 
     /**
-     * {@link UserLifecycleEvent} called whe the user is unlocking.
+     * {@link UserLifecycleEvent} called when an existing user is in the process of being unlocked.
+     *
+     * <p>This means the credential-encrypted storage for that user is now available, and
+     * encryption-aware component filtering is no longer in effect.
+     *
+     * <p>Notice that internal system services might not have handled unlock yet, so most components
+     * should ignore this callback and rely on {@link #USER_LIFECYCLE_EVENT_TYPE_UNLOCKED} instead.
      *
      * @hide
      */
@@ -93,7 +112,7 @@
     public static final int USER_LIFECYCLE_EVENT_TYPE_UNLOCKING = 3;
 
     /**
-     * {@link UserLifecycleEvent} called after the user was unlocked.
+     * {@link UserLifecycleEvent} called after an existing user is unlocked.
      *
      * @hide
      */
@@ -102,7 +121,15 @@
     public static final int USER_LIFECYCLE_EVENT_TYPE_UNLOCKED = 4;
 
     /**
-     * {@link UserLifecycleEvent} called when the user is stopping.
+     * {@link UserLifecycleEvent} called when an existing user is stopping, for components to
+     * finalize any per-user state they maintain for running users.
+     *
+     * <p>This is called prior to sending the {@code SHUTDOWN} broadcast to the user; it is a good
+     * place to stop making use of any resources of that user (such as binding to a service running
+     * in the user).
+     *
+     * <p><b>Note:</b> this is the last callback where the callee may access the target user's CE
+     * storage.
      *
      * @hide
      */
@@ -111,7 +138,9 @@
     public static final int USER_LIFECYCLE_EVENT_TYPE_STOPPING = 5;
 
     /**
-     * {@link UserLifecycleEvent} called after the user stoppped.
+     * {@link UserLifecycleEvent} called after an existing user is stopped.
+     *
+     * <p>This is called after all application process teardown of the user is complete.
      *
      * @hide
      */
@@ -136,65 +165,6 @@
     /** @hide */
     public static final String BUNDLE_PARAM_PREVIOUS_USER_ID = "previous_user";
 
-    /**
-     * {@code int} extra used to represent the user switch status {@link IResultReceiver}
-     * response.
-     *
-     * @hide
-     */
-    public static final String BUNDLE_USER_SWITCH_STATUS = "user_switch.status";
-    /**
-     * {@code int} extra used to represent the user switch message type {@link IResultReceiver}
-     * response.
-     *
-     * @hide
-     */
-    public static final String BUNDLE_USER_SWITCH_MSG_TYPE = "user_switch.messageType";
-    /**
-     * {@code string} extra used to represent the user switch error {@link IResultReceiver}
-     * response.
-     *
-     * @hide
-     */
-    public static final String BUNDLE_USER_SWITCH_ERROR_MSG = "user_switch.errorMessage";
-
-    /**
-     * {@link UserSwitchStatus} called user switch status is unknown.
-     *
-     * @hide
-     */
-    public static final int USER_SWICTH_STATUS_UNKNOWN = 0;
-    /**
-     * {@link UserSwitchStatus} called when user switch is successful for both HAL and Android.
-     *
-     * @hide
-     */
-    public static final int USER_SWICTH_STATUS_SUCCESSFUL = 1;
-    /**
-     * {@link UserSwitchStatus} called when user switch is only successful for Hal but not for
-     * Android. Hal user switch rollover message have been sent.
-     *
-     * @hide
-     */
-    public static final int USER_SWICTH_STATUS_ANDROID_FAILURE = 2;
-    /**
-     * {@link UserSwitchStatus} called when user switch is failed for HAL.
-     * Andrid user switch is not called.
-     *
-     * @hide
-     */
-    public static final int USER_SWICTH_STATUS_HAL_FAILURE = 3;
-
-    /** @hide */
-    @IntDef(prefix = { "USER_SWICTH_STATUS_" }, value = {
-            USER_SWICTH_STATUS_UNKNOWN,
-            USER_SWICTH_STATUS_SUCCESSFUL,
-            USER_SWICTH_STATUS_ANDROID_FAILURE,
-            USER_SWICTH_STATUS_HAL_FAILURE,
-    })
-    @Retention(RetentionPolicy.SOURCE)
-    public @interface UserSwitchStatus{}
-
     private final Object mLock = new Object();
     private final ICarUserService mService;
     private final UserManager mUserManager;
@@ -211,22 +181,58 @@
      * @hide
      */
     public CarUserManager(@NonNull Car car, @NonNull IBinder service) {
-        this(car, service, UserManager.get(car.getContext()));
+        this(car, ICarUserService.Stub.asInterface(service), UserManager.get(car.getContext()));
     }
 
     /**
      * @hide
      */
     @VisibleForTesting
-    public CarUserManager(@NonNull Car car, @NonNull IBinder service,
+    public CarUserManager(@NonNull Car car, @NonNull ICarUserService service,
             @NonNull UserManager userManager) {
         super(car);
-        mService = ICarUserService.Stub.asInterface(service);
+        mService = service;
         mUserManager = userManager;
     }
+
+    /**
+     * Switches the foreground user to the given target user.
+     *
+     * @hide
+     */
+    @RequiresPermission(android.Manifest.permission.MANAGE_USERS)
+    public AndroidFuture<UserSwitchResult> switchUser(@UserIdInt int targetUserId) {
+        // TODO(b/155311595): add permission check integration test
+        int uid = myUid();
+        try {
+            AndroidFuture<UserSwitchResult> future = new AndroidFuture<UserSwitchResult>() {
+                @Override
+                protected void onCompleted(UserSwitchResult result, Throwable err) {
+                    if (result != null) {
+                        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SWITCH_USER_RESPONSE, uid,
+                                result.getStatus(), result.getErrorMessage());
+                    } else {
+                        Log.w(TAG, "switchUser(" + targetUserId + ") failed: " + err);
+                    }
+                    super.onCompleted(result, err);
+                };
+            };
+            EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SWITCH_USER_REQUEST, uid, targetUserId);
+            mService.switchUser(targetUserId, HAL_TIMEOUT_MS, future);
+            return future;
+        } catch (RemoteException e) {
+            AndroidFuture<UserSwitchResult> future = new AndroidFuture<>();
+            future.complete(
+                    new UserSwitchResult(UserSwitchResult.STATUS_HAL_INTERNAL_FAILURE, null));
+            return handleRemoteExceptionFromCarService(e, future);
+        }
+    }
+
     /**
      * Adds a listener for {@link UserLifecycleEvent user lifecycle events}.
      *
+     * @throws IllegalStateException if the listener was already added.
+     *
      * @hide
      */
     @SystemApi
@@ -234,24 +240,24 @@
     @RequiresPermission(anyOf = {INTERACT_ACROSS_USERS, INTERACT_ACROSS_USERS_FULL})
     public void addListener(@NonNull @CallbackExecutor Executor executor,
             @NonNull UserLifecycleListener listener) {
-        checkInteractAcrossUsersPermission();
+        Objects.requireNonNull(executor, "executor cannot be null");
+        Objects.requireNonNull(listener, "listener cannot be null");
 
-        // TODO(b/144120654): add unit tests to validate input
-        // - executor cannot be null
-        // - listener cannot be null
-        // - listener must not be added before
-
+        int uid = myUid();
         synchronized (mLock) {
+            Preconditions.checkState(mListeners == null || !mListeners.containsKey(listener),
+                    "already called for this listener");
             if (mReceiver == null) {
                 mReceiver = new LifecycleResultReceiver();
                 try {
-                    Log.i(TAG, "Setting lifecycle receiver for uid " + myUid());
+                    EventLog.writeEvent(EventLogTags.CAR_USER_MGR_ADD_LISTENER, uid);
+                    if (DBG) Log.d(TAG, "Setting lifecycle receiver for uid " + uid);
                     mService.setLifecycleListenerForUid(mReceiver);
                 } catch (RemoteException e) {
                     handleRemoteExceptionFromCarService(e);
                 }
             } else {
-                if (DBG) Log.d(TAG, "Already set receiver for uid " + myUid());
+                if (DBG) Log.d(TAG, "Already set receiver for uid " + uid);
             }
 
             if (mListeners == null) {
@@ -265,23 +271,20 @@
     /**
      * Removes a listener for {@link UserLifecycleEvent user lifecycle events}.
      *
+     * @throws IllegalStateException if the listener was not added beforehand.
+     *
      * @hide
      */
     @SystemApi
     @TestApi
     @RequiresPermission(anyOf = {INTERACT_ACROSS_USERS, INTERACT_ACROSS_USERS_FULL})
     public void removeListener(@NonNull UserLifecycleListener listener) {
-        checkInteractAcrossUsersPermission();
+        Objects.requireNonNull(listener, "listener cannot be null");
 
-        // TODO(b/144120654): add unit tests to validate input
-        // - listener cannot be null
-        // - listener must not be added before
+        int uid = myUid();
         synchronized (mLock) {
-            if (mListeners == null) {
-                Log.w(TAG, "removeListener(): no listeners for uid " + myUid());
-                return;
-            }
-
+            Preconditions.checkState(mListeners != null && mListeners.containsKey(listener),
+                    "not called for this listener yet");
             mListeners.remove(listener);
 
             if (!mListeners.isEmpty()) {
@@ -295,7 +298,8 @@
                 return;
             }
 
-            Log.i(TAG, "Removing lifecycle receiver for uid=" + myUid());
+            EventLog.writeEvent(EventLogTags.CAR_USER_MGR_REMOVE_LISTENER, uid);
+            if (DBG) Log.d(TAG, "Removing lifecycle receiver for uid=" + uid);
             try {
                 mService.resetLifecycleListenerForUid();
                 mReceiver = null;
@@ -305,27 +309,117 @@
         }
     }
 
-    /** @hide */
-    @TestApi
-    // TODO(b/144120654): temp method used by CTS; will eventually be refactored to take a listener
-    @UserIdInt
-    public int createUser(@Nullable String name, boolean isGuestUser) {
-        Log.i(TAG, "createUser()"); // name is PII
-
-        if (isGuestUser) {
-            return mUserManager.createUser(name, UserManager.USER_TYPE_FULL_GUEST, /* flags= */ 0)
-                    .id;
+    /**
+     * Gets the user authentication types associated with this manager's user.
+     *
+     * @hide
+     */
+    @NonNull
+    @RequiresPermission(android.Manifest.permission.MANAGE_USERS)
+    public UserIdentificationAssociationResponse getUserIdentificationAssociation(
+            @NonNull int... types) {
+        // TODO(b/155311595): add permission check integration test
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(types), "must have at least one type");
+        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_GET_USER_AUTH_REQ, types.length);
+        try {
+            UserIdentificationAssociationResponse response =
+                    mService.getUserIdentificationAssociation(types);
+            if (response != null) {
+                EventLog.writeEvent(EventLogTags.CAR_USER_MGR_GET_USER_AUTH_RESP,
+                        response.getValues().length);
+            }
+            return response;
+        } catch (RemoteException e) {
+            return handleRemoteExceptionFromCarService(e, null);
         }
-
-        return mUserManager.createUser(name, /* flags= */ 0).id;
     }
 
-    /** @hide */
-    @TestApi
-    // TODO(b/144120654): temp method used by CTS; will eventually be refactored to take a listener
-    public void removeUser(@UserIdInt int userId) {
-        Log.i(TAG, "removeUser(" + userId + ")");
-        mUserManager.removeUser(userId);
+    /**
+     * Sets the user authentication types associated with this manager's user.
+     *
+     * @hide
+     */
+    @NonNull
+    public AndroidFuture<UserIdentificationAssociationResponse> setUserIdentificationAssociation(
+            @NonNull int[] types, @NonNull int[] values) {
+        // TODO(b/155311595): add permission check integration test
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(types), "must have at least one type");
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(values), "must have at least one value");
+        if (types.length != values.length) {
+            throw new IllegalArgumentException("types (" + Arrays.toString(types) + ") and values ("
+                    + Arrays.toString(values) + ") should have the same length");
+        }
+        // TODO(b/153900032): move this logic to a common helper
+        Object[] loggedValues = new Integer[types.length * 2];
+        for (int i = 0; i < types.length; i++) {
+            loggedValues[i * 2] = types[i];
+            loggedValues[i * 2 + 1 ] = values[i];
+        }
+        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SET_USER_AUTH_REQ, loggedValues);
+
+        try {
+            AndroidFuture<UserIdentificationAssociationResponse> future =
+                    new AndroidFuture<UserIdentificationAssociationResponse>() {
+                @Override
+                protected void onCompleted(UserIdentificationAssociationResponse result,
+                        Throwable err) {
+                    if (result != null) {
+                        int[] rawValues = result.getValues();
+                        // TODO(b/153900032): move this logic to a common helper
+                        Object[] loggedValues = new Object[rawValues.length];
+                        for (int i = 0; i < rawValues.length; i++) {
+                            loggedValues[i] = rawValues[i];
+                        }
+                        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SET_USER_AUTH_RESP,
+                                loggedValues);
+                    } else {
+                        Log.w(TAG, "setUserIdentificationAssociation(" + Arrays.toString(types)
+                                + ", " + Arrays.toString(values) + ") failed: " + err);
+                    }
+                    super.onCompleted(result, err);
+                };
+            };
+            mService.setUserIdentificationAssociation(HAL_TIMEOUT_MS, types, values, future);
+            return future;
+        } catch (RemoteException e) {
+            AndroidFuture<UserIdentificationAssociationResponse> future = new AndroidFuture<>();
+            future.complete(UserIdentificationAssociationResponse.forFailure());
+            return handleRemoteExceptionFromCarService(e, future);
+        }
+    }
+
+    /**
+     * Sets a callback to be notified before user switch. It should only be used by Car System UI.
+     *
+     * @hide
+     */
+    public void setUserSwitchUiCallback(@NonNull UserSwitchUiCallback callback) {
+        Preconditions.checkArgument(callback != null, "Null callback");
+        UserSwitchUiCallbackReceiver userSwitchUiCallbackReceiver =
+                new UserSwitchUiCallbackReceiver(callback);
+        try {
+            mService.setUserSwitchUiCallback(userSwitchUiCallbackReceiver);
+        } catch (RemoteException e) {
+            handleRemoteExceptionFromCarService(e);
+        }
+    }
+
+    /**
+     * {@code IResultReceiver} used to receive user switch UI Callback.
+     */
+    // TODO(b/154958003): use mReceiver instead as now there are two binder objects
+    private final class UserSwitchUiCallbackReceiver extends IResultReceiver.Stub {
+
+        private final UserSwitchUiCallback mUserSwitchUiCallback;
+
+        UserSwitchUiCallbackReceiver(UserSwitchUiCallback callback) {
+            mUserSwitchUiCallback = callback;
+        }
+
+        @Override
+        public void send(int userId, Bundle unused) throws RemoteException {
+            mUserSwitchUiCallback.showUserSwitchDialog(userId);
+        }
     }
 
     /**
@@ -388,20 +482,6 @@
         }
     }
 
-    private void checkInteractAcrossUsersPermission() {
-        checkInteractAcrossUsersPermission(getContext());
-    }
-
-    private static void checkInteractAcrossUsersPermission(Context context) {
-        if (context.checkSelfPermission(INTERACT_ACROSS_USERS) != PERMISSION_GRANTED
-                && context.checkSelfPermission(INTERACT_ACROSS_USERS_FULL) != PERMISSION_GRANTED) {
-            throw new SecurityException(
-                    "Must have either " + android.Manifest.permission.INTERACT_ACROSS_USERS + " or "
-                            + android.Manifest.permission.INTERACT_ACROSS_USERS_FULL
-                            + " permission");
-        }
-    }
-
     // NOTE: this method is called by ExperimentalCarUserManager, so it can get the mService.
     // "Real" ExperimentalCarUserManager instances should be obtained through
     //    ExperimentalCarUserManager.from(mCarUserManager)
@@ -551,4 +631,20 @@
          */
         void onEvent(@NonNull UserLifecycleEvent event);
     }
+
+    /**
+     * Callback for notifying user switch before switch started.
+     *
+     * <p> It should only be user by Car System UI. The purpose of this callback is notify the
+     * Car System UI to display the user switch UI.
+     *
+     * @hide
+     */
+    public interface UserSwitchUiCallback {
+
+        /**
+         * Called to notify that user switch dialog should be shown now.
+         */
+        void showUserSwitchDialog(@UserIdInt int userId);
+    }
 }
diff --git a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java b/car-lib/src/android/car/user/UserIdentificationAssociationResponse.aidl
similarity index 73%
copy from tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
copy to car-lib/src/android/car/user/UserIdentificationAssociationResponse.aidl
index 22b460e..9e292d4 100644
--- a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
+++ b/car-lib/src/android/car/user/UserIdentificationAssociationResponse.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -13,10 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.google.android.car.garagemode.testapp;
 
-import androidx.fragment.app.Fragment;
+package android.car.user;
 
-public class IncarTestingFragment extends Fragment {
-
-}
+parcelable UserIdentificationAssociationResponse;
diff --git a/car-lib/src/android/car/user/UserIdentificationAssociationResponse.java b/car-lib/src/android/car/user/UserIdentificationAssociationResponse.java
new file mode 100644
index 0000000..d2cdb44
--- /dev/null
+++ b/car-lib/src/android/car/user/UserIdentificationAssociationResponse.java
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2020 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 android.car.user;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.os.Parcelable;
+
+import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.DataClass;
+import com.android.internal.util.Preconditions;
+
+import java.util.Objects;
+
+/**
+ * Results of a {@link CarUserManager#getUserIdentificationAssociation(int[]) request.
+ *
+ * @hide
+ */
+@DataClass(
+        genToString = true,
+        genHiddenConstructor = false,
+        genHiddenConstDefs = true)
+public final class UserIdentificationAssociationResponse implements Parcelable {
+
+    /**
+     * Whether the request was successful.
+     *
+     * <p>A successful option has non-null {@link #getValues()}
+     */
+    private final boolean mSuccess;
+
+    /**
+     * Gets the error message returned by the HAL.
+     */
+    @Nullable
+    private final String mErrorMessage;
+
+    /**
+     * Gets the list of values associated with the request.
+     *
+     * <p><b>NOTE: </b>It's only set when the response is {@link #isSuccess() successful}.
+     *
+     * <p>For {@link CarUserManager#getUserIdentificationAssociation(int...)}, the values are
+     * defined on
+     * {@link android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue}.
+     *
+     * <p>For {@link CarUserManager#setUserIdentificationAssociation(int...)}, the values are
+     * defined on
+     * {@link android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue}.
+     */
+    @Nullable
+    private final int[] mValues;
+
+    private UserIdentificationAssociationResponse(
+            boolean success,
+            @Nullable String errorMessage,
+            @Nullable int[] values) {
+        this.mSuccess = success;
+        this.mErrorMessage = errorMessage;
+        this.mValues = values;
+    }
+
+    /**
+     * Factory method for failed UserIdentificationAssociationResponse requests.
+     */
+    @NonNull
+    public static UserIdentificationAssociationResponse forFailure() {
+        return forFailure(/* errorMessage= */ null);
+    }
+
+    /**
+     * Factory method for failed UserIdentificationAssociationResponse requests.
+     */
+    @NonNull
+    public static UserIdentificationAssociationResponse forFailure(@Nullable String errorMessage) {
+        return new UserIdentificationAssociationResponse(/* success= */ false,
+                errorMessage, /* values= */ null);
+    }
+
+    /**
+     * Factory method for successful UserIdentificationAssociationResponse requests.
+     */
+    @NonNull
+    public static UserIdentificationAssociationResponse forSuccess(@NonNull int[] values) {
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(values), "must have at least one value");
+        return new UserIdentificationAssociationResponse(/* success= */ true,
+                /* errorMessage= */ null, Objects.requireNonNull(values));
+    }
+
+    /**
+     * Factory method for successful UserIdentificationAssociationResponse requests.
+     */
+    @NonNull
+    public static UserIdentificationAssociationResponse forSuccess(@NonNull int[] values,
+            @Nullable String errorMessage) {
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(values), "must have at least one value");
+        return new UserIdentificationAssociationResponse(/* success= */ true,
+                errorMessage, Objects.requireNonNull(values));
+    }
+
+
+
+    // Code below generated by codegen v1.0.15.
+    //
+    // DO NOT MODIFY!
+    // CHECKSTYLE:OFF Generated code
+    //
+    // To regenerate run:
+    // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/user/UserIdentificationAssociationResponse.java
+    //
+    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
+    //   Settings > Editor > Code Style > Formatter Control
+    //@formatter:off
+
+
+    /**
+     * Whether the request was successful.
+     *
+     * <p>A successful option has non-null {@link #getValues()}
+     */
+    @DataClass.Generated.Member
+    public boolean isSuccess() {
+        return mSuccess;
+    }
+
+    /**
+     * Gets the error message returned by the HAL.
+     */
+    @DataClass.Generated.Member
+    public @Nullable String getErrorMessage() {
+        return mErrorMessage;
+    }
+
+    /**
+     * Gets the list of values associated with the request.
+     *
+     * <p><b>NOTE: </b>It's only set when the response is {@link #isSuccess() successful}.
+     *
+     * <p>For {@link CarUserManager#getUserIdentificationAssociation(int...)}, the values are
+     * defined on
+     * {@link android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue}.
+     *
+     * <p>For {@link CarUserManager#setUserIdentificationAssociation(int...)}, the values are
+     * defined on
+     * {@link android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue}.
+     */
+    @DataClass.Generated.Member
+    public @Nullable int[] getValues() {
+        return mValues;
+    }
+
+    @Override
+    @DataClass.Generated.Member
+    public String toString() {
+        // You can override field toString logic by defining methods like:
+        // String fieldNameToString() { ... }
+
+        return "UserIdentificationAssociationResponse { " +
+                "success = " + mSuccess + ", " +
+                "errorMessage = " + mErrorMessage + ", " +
+                "values = " + java.util.Arrays.toString(mValues) +
+        " }";
+    }
+
+    @Override
+    @DataClass.Generated.Member
+    public void writeToParcel(@NonNull android.os.Parcel dest, int flags) {
+        // You can override field parcelling by defining methods like:
+        // void parcelFieldName(Parcel dest, int flags) { ... }
+
+        byte flg = 0;
+        if (mSuccess) flg |= 0x1;
+        if (mErrorMessage != null) flg |= 0x2;
+        if (mValues != null) flg |= 0x4;
+        dest.writeByte(flg);
+        if (mErrorMessage != null) dest.writeString(mErrorMessage);
+        if (mValues != null) dest.writeIntArray(mValues);
+    }
+
+    @Override
+    @DataClass.Generated.Member
+    public int describeContents() { return 0; }
+
+    /** @hide */
+    @SuppressWarnings({"unchecked", "RedundantCast"})
+    @DataClass.Generated.Member
+    /* package-private */ UserIdentificationAssociationResponse(@NonNull android.os.Parcel in) {
+        // You can override field unparcelling by defining methods like:
+        // static FieldType unparcelFieldName(Parcel in) { ... }
+
+        byte flg = in.readByte();
+        boolean success = (flg & 0x1) != 0;
+        String errorMessage = (flg & 0x2) == 0 ? null : in.readString();
+        int[] values = (flg & 0x4) == 0 ? null : in.createIntArray();
+
+        this.mSuccess = success;
+        this.mErrorMessage = errorMessage;
+        this.mValues = values;
+
+        // onConstructed(); // You can define this method to get a callback
+    }
+
+    @DataClass.Generated.Member
+    public static final @NonNull Parcelable.Creator<UserIdentificationAssociationResponse> CREATOR
+            = new Parcelable.Creator<UserIdentificationAssociationResponse>() {
+        @Override
+        public UserIdentificationAssociationResponse[] newArray(int size) {
+            return new UserIdentificationAssociationResponse[size];
+        }
+
+        @Override
+        public UserIdentificationAssociationResponse createFromParcel(@NonNull android.os.Parcel in) {
+            return new UserIdentificationAssociationResponse(in);
+        }
+    };
+
+    @DataClass.Generated(
+            time = 1588982917194L,
+            codegenVersion = "1.0.15",
+            sourceFile = "packages/services/Car/car-lib/src/android/car/user/UserIdentificationAssociationResponse.java",
+            inputSignatures = "private final  boolean mSuccess\nprivate final @android.annotation.Nullable java.lang.String mErrorMessage\nprivate final @android.annotation.Nullable int[] mValues\npublic static @android.annotation.NonNull android.car.user.UserIdentificationAssociationResponse forFailure()\npublic static @android.annotation.NonNull android.car.user.UserIdentificationAssociationResponse forFailure(java.lang.String)\npublic static @android.annotation.NonNull android.car.user.UserIdentificationAssociationResponse forSuccess(int[])\npublic static @android.annotation.NonNull android.car.user.UserIdentificationAssociationResponse forSuccess(int[],java.lang.String)\nclass UserIdentificationAssociationResponse extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstructor=false, genHiddenConstDefs=true)")
+    @Deprecated
+    private void __metadata() {}
+
+
+    //@formatter:on
+    // End of generated code
+
+}
diff --git a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java b/car-lib/src/android/car/user/UserSwitchResult.aidl
similarity index 73%
rename from tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
rename to car-lib/src/android/car/user/UserSwitchResult.aidl
index 22b460e..10241c1 100644
--- a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
+++ b/car-lib/src/android/car/user/UserSwitchResult.aidl
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -13,10 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.google.android.car.garagemode.testapp;
 
-import androidx.fragment.app.Fragment;
+package android.car.user;
 
-public class IncarTestingFragment extends Fragment {
-
-}
+parcelable UserSwitchResult;
diff --git a/car-lib/src/android/car/user/UserSwitchResult.java b/car-lib/src/android/car/user/UserSwitchResult.java
new file mode 100644
index 0000000..5d3e50f
--- /dev/null
+++ b/car-lib/src/android/car/user/UserSwitchResult.java
@@ -0,0 +1,280 @@
+/*
+ * Copyright (C) 2020 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 android.car.user;
+
+import android.annotation.IntDef;
+import android.annotation.Nullable;
+import android.os.Parcelable;
+
+import com.android.internal.util.DataClass;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * User switch results.
+ *
+ * @hide
+ */
+@DataClass(
+        genToString = true,
+        genHiddenConstructor = true,
+        genHiddenConstDefs = true)
+public final class UserSwitchResult implements Parcelable {
+
+    /**
+     * {@link UserSwitchStatus} called when user switch is successful for both HAL and Android.
+     *
+     * @hide
+     */
+    public static final int STATUS_SUCCESSFUL = 1;
+    /**
+     * {@link UserSwitchStatus} called when user switch is only successful for Hal but not for
+     * Android. Hal user switch rollover message have been sent.
+     *
+     * @hide
+     */
+    public static final int STATUS_ANDROID_FAILURE = 2;
+    /**
+     * {@link UserSwitchStatus} called when user switch is failed for HAL. User switch for Android
+     * is not called.
+     *
+     * @hide
+     */
+    public static final int STATUS_HAL_FAILURE = 3;
+    /**
+     * {@link UserSwitchStatus} called when user switch is failed for HAL for some internal error.
+     * User switch for Android is not called.
+     *
+     * @hide
+     */
+    public static final int STATUS_HAL_INTERNAL_FAILURE = 4;
+    /**
+     * {@link UserSwitchStatus} called when target user is same as current user.
+     *
+     * @hide
+     */
+    public static final int STATUS_ALREADY_REQUESTED_USER = 5;
+    /**
+     * {@link UserSwitchStatus} called when another user switch request for the same target user is
+     * in process.
+     *
+     * @hide
+     */
+    public static final int STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO = 6;
+
+    /**
+     * {@link UserSwitchStatus} called when another user switch request for a new different target
+     * user is received. Previous request is abandoned.
+     *
+     * @hide
+     */
+    public static final int STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST = 7;
+
+    /**
+     * Gets the user switch result status.
+     *
+     * @return either {@link UserSwitchResult#STATUS_SUCCESSFUL},
+     *         {@link UserSwitchResult#STATUS_ANDROID_FAILURE},
+     *         {@link UserSwitchResult#STATUS_HAL_FAILURE},
+     *         {@link UserSwitchResult#STATUS_HAL_INTERNAL_FAILURE},
+     *         {@link UserSwitchResult#STATUS_ALREADY_REQUESTED_USER},
+     *         {@link UserSwitchResult#STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO}, or
+     *         {@link UserSwitchResult#STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST}.
+     */
+    private final int mStatus;
+
+    /**
+     * Gets the error message, if any.
+     */
+    @Nullable
+    private final String mErrorMessage;
+
+
+    // Code below generated by codegen v1.0.15.
+    //
+    // DO NOT MODIFY!
+    // CHECKSTYLE:OFF Generated code
+    //
+    // To regenerate run:
+    // $ codegen $ANDROID_BUILD_TOP/packages/services/Car/car-lib/src/android/car/user/UserSwitchResult.java
+    //
+    // To exclude the generated code from IntelliJ auto-formatting enable (one-time):
+    //   Settings > Editor > Code Style > Formatter Control
+    //@formatter:off
+
+
+    /** @hide */
+    @IntDef(prefix = "STATUS_", value = {
+        STATUS_SUCCESSFUL,
+        STATUS_ANDROID_FAILURE,
+        STATUS_HAL_FAILURE,
+        STATUS_HAL_INTERNAL_FAILURE,
+        STATUS_ALREADY_REQUESTED_USER,
+        STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO,
+        STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST
+    })
+    @Retention(RetentionPolicy.SOURCE)
+    @DataClass.Generated.Member
+    public @interface Status {}
+
+    /** @hide */
+    @DataClass.Generated.Member
+    public static String statusToString(@Status int value) {
+        switch (value) {
+            case STATUS_SUCCESSFUL:
+                    return "STATUS_SUCCESSFUL";
+            case STATUS_ANDROID_FAILURE:
+                    return "STATUS_ANDROID_FAILURE";
+            case STATUS_HAL_FAILURE:
+                    return "STATUS_HAL_FAILURE";
+            case STATUS_HAL_INTERNAL_FAILURE:
+                    return "STATUS_HAL_INTERNAL_FAILURE";
+            case STATUS_ALREADY_REQUESTED_USER:
+                    return "STATUS_ALREADY_REQUESTED_USER";
+            case STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO:
+                    return "STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO";
+            case STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST:
+                    return "STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST";
+            default: return Integer.toHexString(value);
+        }
+    }
+
+    /**
+     * Creates a new UserSwitchResult.
+     *
+     * @param status
+     *   Gets the user switch result status.
+     *
+     *   @return either {@link UserSwitchResult#STATUS_SUCCESSFUL},
+     *           {@link UserSwitchResult#STATUS_ANDROID_FAILURE},
+     *           {@link UserSwitchResult#STATUS_HAL_FAILURE},
+     *           {@link UserSwitchResult#STATUS_HAL_INTERNAL_FAILURE},
+     *           {@link UserSwitchResult#STATUS_ALREADY_REQUESTED_USER},
+     *           {@link UserSwitchResult#STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO}, or
+     *           {@link UserSwitchResult#STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST}.
+     * @param errorMessage
+     *   Gets the error message, if any.
+     * @hide
+     */
+    @DataClass.Generated.Member
+    public UserSwitchResult(
+            int status,
+            @Nullable String errorMessage) {
+        this.mStatus = status;
+        this.mErrorMessage = errorMessage;
+
+        // onConstructed(); // You can define this method to get a callback
+    }
+
+    /**
+     * Gets the user switch result status.
+     *
+     * @return either {@link UserSwitchResult#STATUS_SUCCESSFUL},
+     *         {@link UserSwitchResult#STATUS_ANDROID_FAILURE},
+     *         {@link UserSwitchResult#STATUS_HAL_FAILURE},
+     *         {@link UserSwitchResult#STATUS_HAL_INTERNAL_FAILURE},
+     *         {@link UserSwitchResult#STATUS_ALREADY_REQUESTED_USER},
+     *         {@link UserSwitchResult#STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO}, or
+     *         {@link UserSwitchResult#STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST}.
+     */
+    @DataClass.Generated.Member
+    public int getStatus() {
+        return mStatus;
+    }
+
+    /**
+     * Gets the error message, if any.
+     */
+    @DataClass.Generated.Member
+    public @Nullable String getErrorMessage() {
+        return mErrorMessage;
+    }
+
+    @Override
+    @DataClass.Generated.Member
+    public String toString() {
+        // You can override field toString logic by defining methods like:
+        // String fieldNameToString() { ... }
+
+        return "UserSwitchResult { " +
+                "status = " + mStatus + ", " +
+                "errorMessage = " + mErrorMessage +
+        " }";
+    }
+
+    @Override
+    @DataClass.Generated.Member
+    public void writeToParcel(@android.annotation.NonNull android.os.Parcel dest, int flags) {
+        // You can override field parcelling by defining methods like:
+        // void parcelFieldName(Parcel dest, int flags) { ... }
+
+        byte flg = 0;
+        if (mErrorMessage != null) flg |= 0x2;
+        dest.writeByte(flg);
+        dest.writeInt(mStatus);
+        if (mErrorMessage != null) dest.writeString(mErrorMessage);
+    }
+
+    @Override
+    @DataClass.Generated.Member
+    public int describeContents() { return 0; }
+
+    /** @hide */
+    @SuppressWarnings({"unchecked", "RedundantCast"})
+    @DataClass.Generated.Member
+    /* package-private */ UserSwitchResult(@android.annotation.NonNull android.os.Parcel in) {
+        // You can override field unparcelling by defining methods like:
+        // static FieldType unparcelFieldName(Parcel in) { ... }
+
+        byte flg = in.readByte();
+        int status = in.readInt();
+        String errorMessage = (flg & 0x2) == 0 ? null : in.readString();
+
+        this.mStatus = status;
+        this.mErrorMessage = errorMessage;
+
+        // onConstructed(); // You can define this method to get a callback
+    }
+
+    @DataClass.Generated.Member
+    public static final @android.annotation.NonNull Parcelable.Creator<UserSwitchResult> CREATOR
+            = new Parcelable.Creator<UserSwitchResult>() {
+        @Override
+        public UserSwitchResult[] newArray(int size) {
+            return new UserSwitchResult[size];
+        }
+
+        @Override
+        public UserSwitchResult createFromParcel(@android.annotation.NonNull android.os.Parcel in) {
+            return new UserSwitchResult(in);
+        }
+    };
+
+    @DataClass.Generated(
+            time = 1587768100440L,
+            codegenVersion = "1.0.15",
+            sourceFile = "packages/services/Car/car-lib/src/android/car/user/UserSwitchResult.java",
+            inputSignatures = "public static final  int STATUS_SUCCESSFUL\npublic static final  int STATUS_ANDROID_FAILURE\npublic static final  int STATUS_HAL_FAILURE\npublic static final  int STATUS_HAL_INTERNAL_FAILURE\npublic static final  int STATUS_ALREADY_REQUESTED_USER\npublic static final  int STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO\npublic static final  int STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST\nprivate final  int mStatus\nprivate final @android.annotation.Nullable java.lang.String mErrorMessage\nclass UserSwitchResult extends java.lang.Object implements [android.os.Parcelable]\n@com.android.internal.util.DataClass(genToString=true, genHiddenConstructor=true, genHiddenConstDefs=true)")
+    @Deprecated
+    private void __metadata() {}
+
+
+    //@formatter:on
+    // End of generated code
+
+}
diff --git a/car-lib/src/android/car/watchdog/CarWatchdogManager.java b/car-lib/src/android/car/watchdog/CarWatchdogManager.java
index 45732a4..fff1283 100644
--- a/car-lib/src/android/car/watchdog/CarWatchdogManager.java
+++ b/car-lib/src/android/car/watchdog/CarWatchdogManager.java
@@ -16,6 +16,8 @@
 
 package android.car.watchdog;
 
+import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
+
 import android.annotation.CallbackExecutor;
 import android.annotation.IntDef;
 import android.annotation.NonNull;
@@ -52,6 +54,8 @@
     private static final boolean DEBUG = true; // STOPSHIP if true (b/151474489)
     private static final int INVALID_SESSION_ID = -1;
     private static final int NUMBER_OF_CONDITIONS_TO_BE_MET = 2;
+    // Message ID representing main thread activeness checking.
+    private static final int WHAT_CHECK_MAIN_THREAD = 1;
 
     /** Timeout for services which should be responsive. The length is 3,000 milliseconds. */
     public static final int TIMEOUT_CRITICAL = 0;
@@ -86,27 +90,14 @@
     @GuardedBy("mLock")
     private int mRemainingConditions;
 
-    private Runnable mMainThreadCheck = () -> {
-        int sessionId;
-        boolean shouldReport;
-        synchronized (mLock) {
-            mRemainingConditions--;
-            sessionId = mSession.currentId;
-            shouldReport = checkConditionLocked();
-        }
-        if (shouldReport) {
-            reportToService(sessionId);
-        }
-    };
-
     /**
      * CarWatchdogClientCallback is implemented by the clients which want to be health-checked by
      * car watchdog server. Every time onCheckHealthStatus is called, they are expected to
      * respond by calling {@link CarWatchdogManager.tellClientAlive} within timeout. If they don't
      * respond, car watchdog server reports the current state and kills them.
      *
-     * <p>Before car watchdog server kills the client, it calls onPrepareProcessKill to allow them
-     * to prepare the termination. They will be killed in 1 second.
+     * <p>Before car watchdog server kills the client, it calls onPrepareProcessTermination to allow
+     * them to prepare the termination. They will be killed in 1 second.
      */
     public abstract static class CarWatchdogClientCallback {
         /**
@@ -133,8 +124,6 @@
          * <p>The callback method is called at the Executor which is specifed in {@link
          * #registerClient}.
          */
-        // TODO(b/150006093): After adding a callback to ICarWatchdogClient, subsequent
-        // implementation should be done in CarWatchdogService and CarWatchdogManager.
         public void onPrepareProcessTermination() {}
     }
 
@@ -250,7 +239,7 @@
     private void checkClientStatus(int sessionId, int timeout) {
         CarWatchdogClientCallback client;
         Executor executor;
-        mMainHandler.removeCallbacks(mMainThreadCheck);
+        mMainHandler.removeMessages(WHAT_CHECK_MAIN_THREAD);
         synchronized (mLock) {
             if (mRegisteredClient == null) {
                 Log.w(TAG, "Cannot check client status. The client has not been registered.");
@@ -264,8 +253,8 @@
         // For a car watchdog client to be active, 1) its main thread is active and 2) the client
         // responds within timeout. When each condition is met, the remaining task counter is
         // decreased. If the remaining task counter is zero, the client is considered active.
-        // TODO(ericjeong): use a pooled-lambda.
-        mMainHandler.post(mMainThreadCheck);
+        mMainHandler.sendMessage(obtainMessage(CarWatchdogManager::checkMainThread, this)
+                .setWhat(WHAT_CHECK_MAIN_THREAD));
         // Call the client callback to check if the client is active.
         executor.execute(() -> {
             boolean checkDone = client.onCheckHealthStatus(sessionId, timeout);
@@ -286,6 +275,19 @@
         });
     }
 
+    private void checkMainThread() {
+        int sessionId;
+        boolean shouldReport;
+        synchronized (mLock) {
+            mRemainingConditions--;
+            sessionId = mSession.currentId;
+            shouldReport = checkConditionLocked();
+        }
+        if (shouldReport) {
+            reportToService(sessionId);
+        }
+    }
+
     private boolean checkConditionLocked() {
         if (mRemainingConditions < 0) {
             Log.wtf(TAG, "Remaining condition is less than zero: should not happen");
@@ -301,6 +303,20 @@
         }
     }
 
+    private void notifyProcessTermination() {
+        CarWatchdogClientCallback client;
+        Executor executor;
+        synchronized (mLock) {
+            if (mRegisteredClient == null) {
+                Log.w(TAG, "Cannot notify the client. The client has not been registered.");
+                return;
+            }
+            client = mRegisteredClient;
+            executor = mCallbackExecutor;
+        }
+        executor.execute(() -> client.onPrepareProcessTermination());
+    }
+
     /** @hide */
     private static final class ICarWatchdogClientImpl extends ICarWatchdogClient.Stub {
         private final WeakReference<CarWatchdogManager> mManager;
@@ -316,6 +332,24 @@
                 manager.checkClientStatus(sessionId, timeout);
             }
         }
+
+        @Override
+        public void prepareProcessTermination() {
+            CarWatchdogManager manager = mManager.get();
+            if (manager != null) {
+                manager.notifyProcessTermination();
+            }
+        }
+
+        @Override
+        public int getInterfaceVersion() {
+            return this.VERSION;
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return this.HASH;
+        }
     }
 
     private final class SessionInfo {
diff --git a/car-maps-placeholder/res/values-ne/strings.xml b/car-maps-placeholder/res/values-ne/strings.xml
index a2aef6c..03412e9 100644
--- a/car-maps-placeholder/res/values-ne/strings.xml
+++ b/car-maps-placeholder/res/values-ne/strings.xml
@@ -17,5 +17,5 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="6575346965016311017">"नक्सा"</string>
-    <string name="error_text" msgid="5575174711944349180">"नक्सासम्बन्धी कुनै पनि अनुप्रयोगहरू स्थापना गरिएको छैन। कृपया आफ्नो कार निर्मातालाई सम्पर्क गर्नुहोस्‌।"</string>
+    <string name="error_text" msgid="5575174711944349180">"नक्सासम्बन्धी कुनै पनि एपहरू स्थापना गरिएको छैन। कृपया आफ्नो कार निर्मातालाई सम्पर्क गर्नुहोस्‌।"</string>
 </resources>
diff --git a/car-test-lib/Android.bp b/car-test-lib/Android.bp
index 7113348..965ea7b 100644
--- a/car-test-lib/Android.bp
+++ b/car-test-lib/Android.bp
@@ -15,7 +15,7 @@
 java_library {
     name: "android.car.testapi",
     srcs: [
-        "src/**/*.java",
+        "src/android/car/testapi/*.java",
     ],
     product_variables: {
         pdk: {
@@ -34,3 +34,14 @@
         targets: ["dist_files"],
     }
 }
+
+java_library {
+    name: "android.car.test.utils",
+    srcs: [
+        "src/android/car/test/**/*.java",
+    ],
+    libs: [
+        "android.hardware.automotive.vehicle-V2.0-java",
+        "mockito-target-extended",
+    ],
+}
diff --git a/car-test-lib/src/android/car/test/mocks/AbstractExtendedMockitoTestCase.java b/car-test-lib/src/android/car/test/mocks/AbstractExtendedMockitoTestCase.java
new file mode 100644
index 0000000..ce96060
--- /dev/null
+++ b/car-test-lib/src/android/car/test/mocks/AbstractExtendedMockitoTestCase.java
@@ -0,0 +1,483 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.mocks;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.notNull;
+import static org.mockito.Mockito.when;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.os.Trace;
+import android.os.UserManager;
+import android.provider.Settings;
+import android.util.Log;
+import android.util.Slog;
+import android.util.TimingsTraceLog;
+
+import com.android.dx.mockito.inline.extended.StaticMockitoSessionBuilder;
+import com.android.internal.util.Preconditions;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+import org.mockito.MockitoSession;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.quality.Strictness;
+import org.mockito.session.MockitoSessionBuilder;
+import org.mockito.stubbing.Answer;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+
+/**
+ * Base class for tests that must use {@link com.android.dx.mockito.inline.extended.ExtendedMockito}
+ * to mock static classes and final methods.
+ *
+ * <p><b>Note: </b> this class automatically spy on {@link Log} and {@link Slog} and fail tests that
+ * all any of their {@code wtf()} methods. If a test is expect to call {@code wtf()}, it should be
+ * annotated with {@link ExpectWtf}.
+ *
+ * <p><b>Note: </b>when using this class, you must include the following
+ * dependencies on {@code Android.bp} (or {@code Android.mk}:
+ * <pre><code>
+    jni_libs: [
+        "libdexmakerjvmtiagent",
+        "libstaticjvmtiagent",
+    ],
+
+   LOCAL_JNI_SHARED_LIBRARIES := \
+      libdexmakerjvmtiagent \
+      libstaticjvmtiagent \
+ *  </code></pre>
+ */
+public abstract class AbstractExtendedMockitoTestCase {
+
+    private static final boolean VERBOSE = false;
+    private static final String TAG = AbstractExtendedMockitoTestCase.class.getSimpleName();
+
+    private final List<Class<?>> mStaticSpiedClasses = new ArrayList<>();
+
+    // Tracks (S)Log.wtf() calls made during code execution, then used on verifyWtfNeverLogged()
+    private final List<RuntimeException> mWtfs = new ArrayList<>();
+
+    private MockitoSession mSession;
+    private MockSettings mSettings;
+
+    @Nullable
+    private final TimingsTraceLog mTracer;
+
+    @Rule
+    public final WtfCheckerRule mWtfCheckerRule = new WtfCheckerRule();
+
+    protected AbstractExtendedMockitoTestCase() {
+        mTracer = VERBOSE ? new TimingsTraceLog(TAG, Trace.TRACE_TAG_APP) : null;
+    }
+
+    @Before
+    public final void startSession() {
+        beginTrace("startSession()");
+
+        beginTrace("startMocking()");
+        mSession = newSessionBuilder().startMocking();
+        endTrace();
+
+        beginTrace("MockSettings()");
+        mSettings = new MockSettings();
+        endTrace();
+
+        beginTrace("interceptWtfCalls()");
+        interceptWtfCalls();
+        endTrace();
+
+        endTrace(); // startSession
+    }
+
+    @After
+    public final void finishSession() {
+        beginTrace("finishSession()");
+        if (mSession != null) {
+            beginTrace("finishMocking()");
+            mSession.finishMocking();
+            endTrace();
+        }
+        endTrace();
+    }
+
+    /**
+     * Adds key-value(int) pair in mocked Settings.Global and Settings.Secure
+     */
+    protected void putSettingsInt(@NonNull String key, int value) {
+        mSettings.insertObject(key, value);
+    }
+
+    /**
+     * Gets value(int) from mocked Settings.Global and Settings.Secure
+     */
+    protected int getSettingsInt(@NonNull String key) {
+        return mSettings.getInt(key);
+    }
+
+    /**
+     * Adds key-value(String) pair in mocked Settings.Global and Settings.Secure
+     */
+    protected void putSettingsString(@NonNull String key, @NonNull String value) {
+        mSettings.insertObject(key, value);
+    }
+
+    /**
+     * Gets value(String) from mocked Settings.Global and Settings.Secure
+     */
+    protected String getSettingsString(@NonNull String key) {
+        return mSettings.getString(key);
+    }
+
+    /**
+     * Subclasses can use this method to initialize the Mockito session that's started before every
+     * test on {@link #startSession()}.
+     *
+     * <p>Typically, it should be overridden when mocking static methods.
+     */
+    protected void onSessionBuilder(@NonNull CustomMockitoSessionBuilder session) {
+        if (VERBOSE) Log.v(TAG, getLogPrefix() + "onSessionBuilder()");
+    }
+
+    /**
+     * Changes the value of the session created by
+     * {@link #onSessionBuilder(CustomMockitoSessionBuilder)}.
+     *
+     * <p>By default it's set to {@link Strictness.LENIENT}, but subclasses can overwrite this
+     * method to change the behavior.
+     */
+    @NonNull
+    protected Strictness getSessionStrictness() {
+        return Strictness.LENIENT;
+    }
+
+    /**
+     * Mocks a call to {@link ActivityManager#getCurrentUser()}.
+     *
+     * @param userId result of such call
+     *
+     * @throws IllegalStateException if class didn't override {@link #newSessionBuilder()} and
+     * called {@code spyStatic(ActivityManager.class)} on the session passed to it.
+     */
+    protected final void mockGetCurrentUser(@UserIdInt int userId) {
+        if (VERBOSE) Log.v(TAG, getLogPrefix() + "mockGetCurrentUser(" + userId + ")");
+        assertSpied(ActivityManager.class);
+
+        beginTrace("mockAmGetCurrentUser-" + userId);
+        AndroidMockitoHelper.mockAmGetCurrentUser(userId);
+        endTrace();
+    }
+
+    /**
+     * Mocks a call to {@link UserManager#isHeadlessSystemUserMode()}.
+     *
+     * @param mode result of such call
+     *
+     * @throws IllegalStateException if class didn't override {@link #newSessionBuilder()} and
+     * called {@code spyStatic(UserManager.class)} on the session passed to it.
+     */
+    protected final void mockIsHeadlessSystemUserMode(boolean mode) {
+        if (VERBOSE) Log.v(TAG, getLogPrefix() + "mockIsHeadlessSystemUserMode(" + mode + ")");
+        assertSpied(UserManager.class);
+
+        beginTrace("mockUmIsHeadlessSystemUserMode");
+        AndroidMockitoHelper.mockUmIsHeadlessSystemUserMode(mode);
+        endTrace();
+    }
+
+    /**
+     * Starts a tracing message.
+     *
+     * <p>MUST be followed by a {@link #endTrace()} calls.
+     *
+     * <p>Ignored if {@value #VERBOSE} is {@code false}.
+     */
+    protected final void beginTrace(@NonNull String message) {
+        if (mTracer == null) return;
+
+        Log.d(TAG, getLogPrefix() + message);
+        mTracer.traceBegin(message);
+    }
+
+    /**
+     * Ends a tracing call.
+     *
+     * <p>MUST be called after {@link #beginTrace(String)}.
+     *
+     * <p>Ignored if {@value #VERBOSE} is {@code false}.
+     */
+    protected final void endTrace() {
+        if (mTracer == null) return;
+
+        mTracer.traceEnd();
+    }
+
+
+
+    private void interceptWtfCalls() {
+        doAnswer((invocation) -> {
+            return addWtf(invocation);
+        }).when(() -> Log.wtf(anyString(), anyString()));
+        doAnswer((invocation) -> {
+            return addWtf(invocation);
+        }).when(() -> Log.wtf(anyString(), anyString(), notNull()));
+        doAnswer((invocation) -> {
+            return addWtf(invocation);
+        }).when(() -> Slog.wtf(anyString(), anyString()));
+        doAnswer((invocation) -> {
+            return addWtf(invocation);
+        }).when(() -> Slog.wtf(anyString(), anyString(), notNull()));
+    }
+
+    private Object addWtf(InvocationOnMock invocation) {
+        String message = "Called " + invocation;
+        Log.d(TAG, message); // Log always, as some test expect it
+        mWtfs.add(new IllegalStateException(message));
+        return null;
+    }
+
+    private void verifyWtfLogged() {
+        Preconditions.checkState(!mWtfs.isEmpty(), "no wtf() called");
+    }
+
+    private void verifyWtfNeverLogged() {
+        int size = mWtfs.size();
+
+        switch (size) {
+            case 0:
+                return;
+            case 1:
+                throw mWtfs.get(0);
+            default:
+                StringBuilder msg = new StringBuilder("wtf called ").append(size).append(" times")
+                        .append(": ").append(mWtfs);
+                throw new AssertionError(msg.toString());
+        }
+    }
+
+    @NonNull
+    private MockitoSessionBuilder newSessionBuilder() {
+        // TODO (b/155523104): change from mock to spy
+        StaticMockitoSessionBuilder builder = mockitoSession()
+                .strictness(getSessionStrictness())
+                .mockStatic(Settings.Global.class)
+                .mockStatic(Settings.System.class)
+                .mockStatic(Settings.Secure.class);
+
+        CustomMockitoSessionBuilder customBuilder =
+                new CustomMockitoSessionBuilder(builder, mStaticSpiedClasses)
+                    .spyStatic(Log.class)
+                    .spyStatic(Slog.class);
+
+        onSessionBuilder(customBuilder);
+
+        if (VERBOSE) Log.v(TAG, "spied classes" + customBuilder.mStaticSpiedClasses);
+
+        return builder.initMocks(this);
+    }
+
+    private String getLogPrefix() {
+        return getClass().getSimpleName() + ".";
+    }
+
+    private void assertSpied(Class<?> clazz) {
+        Preconditions.checkArgument(mStaticSpiedClasses.contains(clazz),
+                "did not call spyStatic() on %s", clazz.getName());
+    }
+
+    /**
+     * Custom {@code MockitoSessionBuilder} used to make sure some pre-defined mock stations
+     * (like {@link AbstractExtendedMockitoTestCase#mockGetCurrentUser(int)} fail if the test case
+     * didn't explicitly set it to spy / mock the required classes.
+     *
+     * <p><b>NOTE: </b>for now it only provides simple {@link #spyStatic(Class)}, but more methods
+     * (as provided by {@link StaticMockitoSessionBuilder}) could be provided as needed.
+     */
+    public static final class CustomMockitoSessionBuilder {
+        private final StaticMockitoSessionBuilder mBuilder;
+        private final List<Class<?>> mStaticSpiedClasses;
+
+        private CustomMockitoSessionBuilder(StaticMockitoSessionBuilder builder,
+                List<Class<?>> staticSpiedClasses) {
+            mBuilder = builder;
+            mStaticSpiedClasses = staticSpiedClasses;
+        }
+
+        /**
+         * Same as {@link StaticMockitoSessionBuilder#spyStatic(Class)}.
+         */
+        public <T> CustomMockitoSessionBuilder spyStatic(Class<T> clazz) {
+            Preconditions.checkState(!mStaticSpiedClasses.contains(clazz),
+                    "already called spyStatic() on " + clazz);
+            mStaticSpiedClasses.add(clazz);
+            mBuilder.spyStatic(clazz);
+            return this;
+        }
+    }
+
+    private final class WtfCheckerRule implements TestRule {
+
+        @Override
+        public Statement apply(Statement base, Description description) {
+            return new Statement() {
+                @Override
+                public void evaluate() throws Throwable {
+                    String testName = description.getMethodName();
+                    if (VERBOSE) Log.v(TAG, "running " + testName);
+                    beginTrace("evaluate-" + testName);
+                    base.evaluate();
+                    endTrace();
+
+                    Method testMethod = AbstractExtendedMockitoTestCase.this.getClass()
+                            .getMethod(testName);
+                    ExpectWtf expectWtfAnnotation = testMethod.getAnnotation(ExpectWtf.class);
+
+                    beginTrace("verify-wtfs");
+                    try {
+                        if (expectWtfAnnotation != null) {
+                            if (VERBOSE) Log.v(TAG, "expecting wtf()");
+                            verifyWtfLogged();
+                        } else {
+                            if (VERBOSE) Log.v(TAG, "NOT expecting wtf()");
+                            verifyWtfNeverLogged();
+                        }
+                    } finally {
+                        endTrace();
+                    }
+                }
+            };
+        }
+    }
+
+    // TODO (b/155523104): Add log
+    // TODO (b/156033195): Clean settings API
+    private static final class MockSettings {
+        private static final int INVALID_DEFAULT_INDEX = -1;
+        private HashMap<String, Object> mSettingsMapping = new HashMap<>();
+
+        MockSettings() {
+
+            Answer<Object> insertObjectAnswer =
+                    invocation -> insertObjectFromInvocation(invocation, 1, 2);
+            Answer<Integer> getIntAnswer = invocation ->
+                    getAnswer(invocation, Integer.class, 1, 2);
+            Answer<String> getStringAnswer = invocation ->
+                    getAnswer(invocation, String.class, 1, INVALID_DEFAULT_INDEX);
+
+
+            when(Settings.Global.putInt(any(), any(), anyInt())).thenAnswer(insertObjectAnswer);
+
+            when(Settings.Global.getInt(any(), any(), anyInt())).thenAnswer(getIntAnswer);
+
+            when(Settings.Secure.putIntForUser(any(), any(), anyInt(), anyInt()))
+                    .thenAnswer(insertObjectAnswer);
+
+            when(Settings.Secure.getIntForUser(any(), any(), anyInt(), anyInt()))
+                    .thenAnswer(getIntAnswer);
+
+            when(Settings.Global.putString(any(), any(), any()))
+                    .thenAnswer(insertObjectAnswer);
+
+            when(Settings.Global.getString(any(), any())).thenAnswer(getStringAnswer);
+
+            when(Settings.System.putIntForUser(any(), any(), anyInt(), anyInt()))
+                    .thenAnswer(insertObjectAnswer);
+
+            when(Settings.System.getIntForUser(any(), any(), anyInt(), anyInt()))
+                    .thenAnswer(getIntAnswer);
+        }
+
+        private Object insertObjectFromInvocation(InvocationOnMock invocation,
+                int keyIndex, int valueIndex) {
+            String key = (String) invocation.getArguments()[keyIndex];
+            Object value = invocation.getArguments()[valueIndex];
+            insertObject(key, value);
+            return null;
+        }
+
+        private void insertObject(String key, Object value) {
+            if (VERBOSE) Log.v(TAG, "Inserting Setting " + key + ": " + value);
+            mSettingsMapping.put(key, value);
+        }
+
+        private <T> T getAnswer(InvocationOnMock invocation, Class<T> clazz,
+                int keyIndex, int defaultValueIndex) {
+            String key = (String) invocation.getArguments()[keyIndex];
+            T defaultValue = null;
+            if (defaultValueIndex > INVALID_DEFAULT_INDEX) {
+                defaultValue = safeCast(invocation.getArguments()[defaultValueIndex], clazz);
+            }
+            return get(key, defaultValue, clazz);
+        }
+
+        @Nullable
+        private <T> T get(String key, T defaultValue, Class<T> clazz) {
+            if (VERBOSE) Log.v(TAG, "Getting Setting " + key);
+            Object value = mSettingsMapping.get(key);
+            if (value == null) {
+                return defaultValue;
+            }
+            return safeCast(value, clazz);
+        }
+
+        private static <T> T safeCast(Object value, Class<T> clazz) {
+            if (value == null) {
+                return null;
+            }
+            Preconditions.checkArgument(value.getClass() == clazz,
+                    "Setting value has class %s but requires class %s",
+                    value.getClass(), clazz);
+            return clazz.cast(value);
+        }
+
+        private String getString(String key) {
+            return get(key, null, String.class);
+        }
+
+        public int getInt(String key) {
+            return get(key, null, Integer.class);
+        }
+    }
+
+    /**
+     * Annotation used on test methods that are expect to call {@code wtf()} methods on {@link Log}
+     * or {@link Slog} - if such methods are not annotated with this annotation, they will fail.
+     */
+    @Retention(RUNTIME)
+    @Target({METHOD})
+    public static @interface ExpectWtf {
+    }
+}
diff --git a/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java b/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
new file mode 100644
index 0000000..cd6028c
--- /dev/null
+++ b/car-test-lib/src/android/car/test/mocks/AndroidMockitoHelper.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.mocks;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Mockito.when;
+
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.car.test.util.UserTestingHelper;
+import android.content.pm.UserInfo;
+import android.content.pm.UserInfo.UserInfoFlag;
+import android.os.IBinder;
+import android.os.IInterface;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+/**
+ * Provides common Mockito calls for core Android classes.
+ */
+public final class AndroidMockitoHelper {
+
+    /**
+     * Mocks a call to {@link ActivityManager#getCurrentUser()}.
+     *
+     * <p><b>Note: </b>it must be made inside a
+     * {@link com.android.dx.mockito.inline.extended.StaticMockitoSession} built with
+     * {@code spyStatic(ActivityManager.class)}.
+     *
+     * @param userId result of such call
+     */
+    public static void mockAmGetCurrentUser(@UserIdInt int userId) {
+        doReturn(userId).when(() -> ActivityManager.getCurrentUser());
+    }
+
+    /**
+     * Mocks a call to {@link UserManager#isHeadlessSystemUserMode()}.
+     *
+     * <p><b>Note: </b>it must be made inside a
+     * {@linkcom.android.dx.mockito.inline.extended.StaticMockitoSession} built with
+     * {@code spyStatic(UserManager.class)}.
+     *
+     * @param mode result of such call
+     */
+    public static void mockUmIsHeadlessSystemUserMode(boolean mode) {
+        doReturn(mode).when(() -> UserManager.isHeadlessSystemUserMode());
+    }
+
+    /**
+     * Mocks {@code UserManager.getUserInfo(userId)} to return a {@link UserInfo} with the given
+     * {@code flags}.
+     */
+    @NonNull
+    public static UserInfo mockUmGetUserInfo(@NonNull UserManager um, @UserIdInt int userId,
+            @UserInfoFlag int flags) {
+        Objects.requireNonNull(um);
+        UserInfo user = new UserTestingHelper.UserInfoBuilder(userId).setFlags(flags).build();
+        mockUmGetUserInfo(um, user);
+        return user;
+    }
+
+    /**
+     * Mocks {@code UserManager.getUserInfo(userId)} to return the given {@link UserInfo}.
+     */
+    @NonNull
+    public static void mockUmGetUserInfo(@NonNull UserManager um, @NonNull UserInfo user) {
+        when(um.getUserInfo(user.id)).thenReturn(user);
+    }
+
+    /**
+     * Mocks {@code UserManager.getUserInfo(userId)} when the {@code userId} is the system user's.
+     */
+    @NonNull
+    public static void mockUmGetSystemUser(@NonNull UserManager um) {
+        UserInfo user = new UserTestingHelper.UserInfoBuilder(UserHandle.USER_SYSTEM)
+                .setFlags(UserInfo.FLAG_SYSTEM).build();
+        when(um.getUserInfo(UserHandle.USER_SYSTEM)).thenReturn(user);
+    }
+
+    /**
+     * Mocks {@code UserManager.getUsers(excludeDying)} to return the given users.
+     */
+    public static void mockUmGetUsers(@NonNull UserManager um, @NonNull UserInfo... users) {
+        Objects.requireNonNull(um);
+        List<UserInfo> testUsers = Arrays.stream(users).collect(Collectors.toList());
+        when(um.getUsers(/* excludeDying= */ true)).thenReturn(testUsers);
+    }
+
+    /**
+     * Mocks {@code UserManager.getUsers(excludeDying)} to return simple users with the given ids.
+     */
+    public static void mockUmGetUsers(@NonNull UserManager um, @NonNull @UserIdInt int... userIds) {
+        List<UserInfo> users = UserTestingHelper.newUsers(userIds);
+        when(um.getUsers(/* excludeDying= */ true)).thenReturn(users);
+    }
+
+    /**
+     * Mocks a call to {@code UserManager.getUsers()}.
+     */
+    public static void mockUmGetUsers(@NonNull UserManager um, @NonNull List<UserInfo> userInfos) {
+        when(um.getUsers()).thenReturn(userInfos);
+    }
+
+    /**
+     * Mocks a call to {@code UserManager.isUserRunning(userId)}.
+     */
+    public static void mockUmIsUserRunning(@NonNull UserManager um, @UserIdInt int userId,
+            boolean isRunning) {
+        when(um.isUserRunning(userId)).thenReturn(isRunning);
+    }
+
+    /**
+     * Mocks a call to {@link ServiceManager#getService(name)}.
+     *
+     * <p><b>Note: </b>it must be made inside a
+     * {@link com.android.dx.mockito.inline.extended.StaticMockitoSession} built with
+     * {@code spyStatic(ServiceManager.class)}.
+     *
+     * @param name interface name of the service
+     * @param binder result of such call
+     */
+    public static void mockSmGetService(@NonNull String name, @NonNull IBinder binder) {
+        doReturn(binder).when(() -> ServiceManager.getService(name));
+    }
+
+    /**
+     * Returns mocked binder implementation from the given interface name.
+     *
+     * <p><b>Note: </b>it must be made inside a
+     * {@link com.android.dx.mockito.inline.extended.StaticMockitoSession} built with
+     * {@code spyStatic(ServiceManager.class)}.
+     *
+     * @param name interface name of the service
+     * @param binder mocked return of ServiceManager.getService
+     * @param service binder implementation
+     */
+    public static <T extends IInterface> void mockQueryService(@NonNull String name,
+            @NonNull IBinder binder, @NonNull T service) {
+        doReturn(binder).when(() -> ServiceManager.getService(name));
+        when(binder.queryLocalInterface(anyString())).thenReturn(service);
+    }
+
+    private AndroidMockitoHelper() {
+        throw new UnsupportedOperationException("contains only static methods");
+    }
+}
diff --git a/car-test-lib/src/android/car/test/mocks/BlockingAnswer.java b/car-test-lib/src/android/car/test/mocks/BlockingAnswer.java
new file mode 100644
index 0000000..c0594cc
--- /dev/null
+++ b/car-test-lib/src/android/car/test/mocks/BlockingAnswer.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.mocks;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.car.test.util.Visitor;
+import android.util.Log;
+
+import com.android.internal.util.FunctionalUtils;
+
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * Custom Mockito {@link Answer} that blocks until a condition is unblocked by the test case.
+ *
+ * <p>Example:
+ *
+ * <pre><code>
+ *
+ *  BlockingAnswer<Void> blockingAnswer = BlockingAnswer.forVoidReturn(10_000, (invocation) -> {
+ *     MyObject obj = (MyObject) invocation.getArguments()[0];
+ *     obj.doSomething();
+ *  });
+ *  doAnswer(blockingAnswer).when(mMock).mockSomething();
+ *  doSomethingOnTest();
+ *  blockingAnswer.unblock();
+ *
+ * </code></pre>
+ */
+public final class BlockingAnswer<T> implements Answer<T> {
+
+    private static final String TAG = BlockingAnswer.class.getSimpleName();
+
+    private final CountDownLatch mLatch = new CountDownLatch(1);
+
+    private final long mTimeoutMs;
+
+    @NonNull
+    private final Visitor<InvocationOnMock> mInvocator;
+
+    @Nullable
+    private final T mValue;
+
+    private BlockingAnswer(long timeoutMs, @NonNull Visitor<InvocationOnMock> invocator,
+            @Nullable T value) {
+        mTimeoutMs = timeoutMs;
+        mInvocator = invocator;
+        mValue = value;
+    }
+
+    /**
+     * Unblocks the answer so the test case can continue.
+     */
+    public void unblock() {
+        Log.v(TAG, "Unblocking " + mLatch);
+        mLatch.countDown();
+    }
+
+    /**
+     * Creates a {@link BlockingAnswer} for a {@code void} method.
+     *
+     * @param timeoutMs maximum time the answer would block.
+     *
+     * @param invocator code executed after the answer is unblocked.
+     */
+    public static BlockingAnswer<Void> forVoidReturn(long timeoutMs,
+            @NonNull Visitor<InvocationOnMock> invocator) {
+        return new BlockingAnswer<Void>(timeoutMs, invocator, /* value= */ null);
+    }
+
+    /**
+     * Creates a {@link BlockingAnswer} for a method that returns type {@code T}
+     *
+     * @param timeoutMs maximum time the answer would block.
+     * @param invocator code executed after the answer is unblocked.
+     *
+     * @return what the answer should return
+     */
+    public static <T> BlockingAnswer<T> forReturn(long timeoutMs,
+            @NonNull Visitor<InvocationOnMock> invocator, @Nullable T value) {
+        return new BlockingAnswer<T>(timeoutMs, invocator, value);
+    }
+
+    @Override
+    public T answer(InvocationOnMock invocation) throws Throwable {
+        String threadName = "BlockingAnswerThread";
+        Log.d(TAG, "Starting thread " + threadName);
+
+        new Thread(() -> {
+            JavaMockitoHelper.silentAwait(mLatch, mTimeoutMs);
+            Log.d(TAG, "Invocating " + FunctionalUtils.getLambdaName(mInvocator));
+            mInvocator.visit(invocation);
+        }, threadName).start();
+        Log.d(TAG, "Returning " + mValue);
+        return mValue;
+    }
+}
diff --git a/car-test-lib/src/android/car/test/mocks/CarArgumentMatchers.java b/car-test-lib/src/android/car/test/mocks/CarArgumentMatchers.java
new file mode 100644
index 0000000..1d1c399
--- /dev/null
+++ b/car-test-lib/src/android/car/test/mocks/CarArgumentMatchers.java
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.mocks;
+
+import static org.mockito.ArgumentMatchers.argThat;
+
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.content.pm.UserInfo;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
+import android.os.UserHandle;
+import android.util.Log;
+
+import org.mockito.ArgumentMatcher;
+
+import java.util.Arrays;
+
+/**
+ * Provides custom mockito matcher for Android / Car objects.
+ *
+ */
+public final class CarArgumentMatchers {
+
+    private static final String TAG = CarArgumentMatchers.class.getSimpleName();
+
+    /**
+     * Matches if a {@link UserInfo} has the given {@code userId}.
+     */
+    public static UserInfo isUserInfo(@UserIdInt int userId) {
+        return argThat(new UserInfoMatcher(userId));
+    }
+
+    /**
+     * Matches if a {@link UserHandle} has the given {@code userId}.
+     */
+    public static UserHandle isUserHandle(@UserIdInt int userId) {
+        return argThat(new UserHandleMatcher(userId));
+    }
+
+    /**
+     * Matches if a {@link VehiclePropValue} has the given {@code prop}.
+     */
+    public static VehiclePropValue isProperty(int prop) {
+        return argThat(new PropertyIdMatcher(prop));
+    }
+
+    /**
+     * Matches if a {@link VehiclePropValue} has the given {@code prop} and {@code int32} values.
+     */
+    public static VehiclePropValue isPropertyWithValues(int prop, int...values) {
+        return argThat(new PropertyIdMatcher(prop, values));
+    }
+
+    private static class UserInfoMatcher implements ArgumentMatcher<UserInfo> {
+
+        public final @UserIdInt int userId;
+
+        private UserInfoMatcher(@UserIdInt int userId) {
+            this.userId = userId;
+        }
+
+        @Override
+        public boolean matches(@Nullable UserInfo argument) {
+            if (argument == null) {
+                Log.w(TAG, "isUserInfo(): null argument");
+                return false;
+            }
+            if (argument.id != userId) {
+                Log.w(TAG, "isUserInfo(): argument mismatch (expected " + userId
+                        + ", got " + argument.id);
+                return false;
+            }
+            return true;
+        }
+
+        @Override
+        public String toString() {
+            return "isUserInfo(userId=" + userId + ")";
+        }
+    }
+
+    private static class UserHandleMatcher implements ArgumentMatcher<UserHandle> {
+
+        public final @UserIdInt int userId;
+
+        private UserHandleMatcher(@UserIdInt int userId) {
+            this.userId = userId;
+        }
+
+        @Override
+        public boolean matches(UserHandle argument) {
+            if (argument == null) {
+                Log.w(TAG, "isUserHandle(): null argument");
+                return false;
+            }
+            if (argument.getIdentifier() != userId) {
+                Log.w(TAG, "isUserHandle(): argument mismatch (expected " + userId
+                        + ", got " + argument.getIdentifier());
+                return false;
+            }
+            return true;
+        }
+
+        @Override
+        public String toString() {
+            return "isUserHandle(userId=" + userId + ")";
+        }
+    }
+
+    private static class PropertyIdMatcher implements ArgumentMatcher<VehiclePropValue> {
+
+        final int mProp;
+        private final int[] mValues;
+
+        private PropertyIdMatcher(int prop) {
+            this(prop, null);
+        }
+
+        private PropertyIdMatcher(int prop, int[] values) {
+            mProp = prop;
+            mValues = values;
+        }
+
+        @Override
+        public boolean matches(VehiclePropValue argument) {
+            Log.v(TAG, "PropertyIdMatcher: argument=" + argument);
+            if (argument.prop != mProp) {
+                Log.w(TAG, "PropertyIdMatcher: Invalid prop on " + argument);
+                return false;
+            }
+            if (mValues == null) return true;
+            // Make sure values match
+            if (mValues.length != argument.value.int32Values.size()) {
+                Log.w(TAG, "PropertyIdMatcher: number of values (expected " + mValues.length
+                        + ") mismatch on " + argument);
+                return false;
+            }
+
+            for (int i = 0; i < mValues.length; i++) {
+                if (mValues[i] != argument.value.int32Values.get(i)) {
+                    Log.w(TAG, "PropertyIdMatcher: value mismatch at index " + i + " on " + argument
+                            + ": expected " + Arrays.toString(mValues));
+                    return false;
+                }
+            }
+            return true;
+        }
+
+        @Override
+        public String toString() {
+            return "prop: " + mProp + " values: " + Arrays.toString(mValues);
+        }
+    }
+
+    private CarArgumentMatchers() {
+        throw new UnsupportedOperationException("contains only static methods");
+    }
+}
diff --git a/car-test-lib/src/android/car/test/mocks/JavaMockitoHelper.java b/car-test-lib/src/android/car/test/mocks/JavaMockitoHelper.java
new file mode 100644
index 0000000..ab772a9
--- /dev/null
+++ b/car-test-lib/src/android/car/test/mocks/JavaMockitoHelper.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.mocks;
+
+import android.annotation.NonNull;
+import android.util.Log;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Provides common Mockito calls for core Java classes.
+ */
+public final class JavaMockitoHelper {
+
+    private static final String TAG = JavaMockitoHelper.class.getSimpleName();
+
+    /**
+     * Waits for a latch to be counted down.
+     *
+     * @param timeoutMs how long to wait for
+     *
+     * @throws {@link IllegalStateException} if it times out.
+     */
+    public static void await(@NonNull CountDownLatch latch, long timeoutMs)
+            throws InterruptedException {
+        if (!latch.await(timeoutMs, TimeUnit.MILLISECONDS)) {
+            throw new IllegalStateException(latch + " not called in " + timeoutMs + " ms");
+        }
+    }
+
+    /**
+     * Waits for a semaphore.
+     *
+     * @param timeoutMs how long to wait for
+     *
+     * @throws {@link IllegalStateException} if it times out.
+     */
+    public static void await(@NonNull Semaphore semaphore, long timeoutMs)
+            throws InterruptedException {
+        if (!semaphore.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
+            throw new IllegalStateException(semaphore + " not released in " + timeoutMs + " ms");
+        }
+    }
+
+    /**
+     * Silently waits for a latch to be counted down, without throwing any exception if it isn't.
+     *
+     * @param timeoutMs how long to wait for
+     *
+     * @return whether the latch was counted down.
+     */
+    public static boolean silentAwait(@NonNull CountDownLatch latch, long timeoutMs) {
+        boolean called;
+        try {
+            called = latch.await(timeoutMs, TimeUnit.MILLISECONDS);
+            if (!called) {
+                Log.w(TAG, latch + " not called in " + timeoutMs + " ms");
+            }
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            Log.w(TAG, latch + " interrupted", e);
+            return false;
+        }
+        return called;
+    }
+
+    private JavaMockitoHelper() {
+        throw new UnsupportedOperationException("contains only static methods");
+    }
+}
diff --git a/car-test-lib/src/android/car/test/mocks/SyncAnswer.java b/car-test-lib/src/android/car/test/mocks/SyncAnswer.java
new file mode 100644
index 0000000..3e885b3
--- /dev/null
+++ b/car-test-lib/src/android/car/test/mocks/SyncAnswer.java
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.mocks;
+
+import android.annotation.NonNull;
+import android.util.Log;
+
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
+
+import java.util.concurrent.CountDownLatch;
+
+/**
+ * Custom Mockito {@link Answer} used to block the test until it's invoked.
+ *
+ * <p>Example:
+ *
+ * <pre><code>
+ *
+ * SyncAnswer<UserInfo> syncUserInfo = SyncAnswer.forReturn(user);
+ * when(mMock.preCreateUser(userType)).thenAnswer(syncUserInfo);
+ * objectUnderTest.preCreate();
+ * syncUserInfo.await(100);
+ *
+ * </code></pre>
+ */
+public final class SyncAnswer<T> implements Answer<T> {
+
+    private static final String TAG = SyncAnswer.class.getSimpleName();
+
+    private final CountDownLatch mLatch = new CountDownLatch(1);
+    private final T mAnswer;
+    private final Throwable mException;
+
+    private SyncAnswer(T answer, Throwable exception) {
+        mAnswer = answer;
+        mException = exception;
+    }
+
+    /**
+     * Creates an answer that returns a value.
+     */
+    @NonNull
+    public static <T> SyncAnswer<T> forReturn(@NonNull T value) {
+        return new SyncAnswer<T>(value, /* exception= */ null);
+    }
+
+    /**
+     * Creates an answer that throws an exception.
+     */
+    @NonNull
+    public static <T> SyncAnswer<T> forException(@NonNull Throwable t) {
+        return new SyncAnswer<T>(/* value= */ null, t);
+    }
+
+    /**
+     * Wait until the answer is invoked, or times out.
+     */
+    public void await(long timeoutMs) throws InterruptedException {
+        JavaMockitoHelper.await(mLatch, timeoutMs);
+    }
+
+    @Override
+    public T answer(InvocationOnMock invocation) throws Throwable {
+        Log.v(TAG, "answering " + invocation);
+        mLatch.countDown();
+        if (mException != null) {
+            throw mException;
+        }
+        return mAnswer;
+    }
+
+}
diff --git a/car-test-lib/src/android/car/test/util/BlockingResultReceiver.java b/car-test-lib/src/android/car/test/util/BlockingResultReceiver.java
new file mode 100644
index 0000000..cdf01fb
--- /dev/null
+++ b/car-test-lib/src/android/car/test/util/BlockingResultReceiver.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.util;
+
+import android.annotation.Nullable;
+import android.os.Bundle;
+import android.util.Log;
+
+import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.Preconditions;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Implementation of {@link IResultReceiver} that blocks waiting for the result.
+ */
+public final class BlockingResultReceiver extends IResultReceiver.Stub {
+
+    private static final String TAG = BlockingResultReceiver.class.getSimpleName();
+
+    private final CountDownLatch mLatch = new CountDownLatch(1);
+    private final long mTimeoutMs;
+
+    private int mResultCode;
+    @Nullable private Bundle mResultData;
+
+    /**
+     * Default constructor.
+     *
+     * @param timeoutMs how long to wait for before failing.
+     */
+    public BlockingResultReceiver(long timeoutMs) {
+        mTimeoutMs = timeoutMs;
+    }
+
+    @Override
+    public void send(int resultCode, Bundle resultData) {
+        Log.d(TAG, "send() received: code=" + resultCode + ", data=" + resultData + ", count="
+                + mLatch.getCount());
+        Preconditions.checkState(mLatch.getCount() == 1,
+                "send() already called (code=" + mResultCode + ", data=" + mResultData);
+        mResultCode = resultCode;
+        mResultData = resultData;
+        mLatch.countDown();
+    }
+
+    private void assertCalled() throws InterruptedException {
+        boolean called = mLatch.await(mTimeoutMs, TimeUnit.MILLISECONDS);
+        Log.d(TAG, "assertCalled(): " + called);
+        Preconditions.checkState(called, "receiver not called in " + mTimeoutMs + " ms");
+    }
+
+    /**
+     * Gets the {@code resultCode} or fails if it times out before {@code send()} is called.
+     */
+    public int getResultCode() throws InterruptedException {
+        assertCalled();
+        return mResultCode;
+    }
+
+    /**
+     * Gets the {@code resultData} or fails if it times out before {@code send()} is called.
+     */
+    @Nullable
+    public Bundle getResultData() throws InterruptedException {
+        assertCalled();
+        return mResultData;
+    }
+}
diff --git a/car-test-lib/src/android/car/test/util/UserTestingHelper.java b/car-test-lib/src/android/car/test/util/UserTestingHelper.java
new file mode 100644
index 0000000..92a612c
--- /dev/null
+++ b/car-test-lib/src/android/car/test/util/UserTestingHelper.java
@@ -0,0 +1,219 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.util;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.content.pm.UserInfo;
+import android.content.pm.UserInfo.UserInfoFlag;
+import android.os.UserManager;
+
+import com.android.internal.util.Preconditions;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * Provides utilities for Android User related tasks.
+ */
+public final class UserTestingHelper {
+
+    /**
+     * Creates a simple {@link UserInfo}, containing just the given {@code userId}.
+     */
+    @NonNull
+    public static UserInfo newUser(@UserIdInt int userId) {
+        return new UserInfoBuilder(userId).build();
+    }
+
+    /**
+     * Creates a list of {@link UserInfo UserInfos}, each containing just the given user ids.
+     */
+    @NonNull
+    public static List<UserInfo> newUsers(@UserIdInt int... userIds) {
+        return Arrays.stream(userIds)
+                .mapToObj(id -> newUser(id))
+                .collect(Collectors.toList());
+    }
+
+    /**
+     * Creates a {@link UserInfo} with the type explicitly set and with the given {@code userId}.
+     */
+    @NonNull
+    public static UserInfo newSecondaryUser(@UserIdInt int userId) {
+        return new UserInfoBuilder(userId).setType(UserManager.USER_TYPE_FULL_SECONDARY).build();
+    }
+
+    /**
+     * Creates a new guest with the given {@code userId} and proper flags and types set.
+     */
+    @NonNull
+    public static UserInfo newGuestUser(@UserIdInt int userId, boolean ephemeral) {
+        return new UserInfoBuilder(userId).setGuest(true).setEphemeral(ephemeral).build();
+    }
+
+    /**
+     * Creates a new guest with the given {@code userId} and without any flag..
+     */
+    @NonNull
+    public static UserInfo newGuestUser(@UserIdInt int userId) {
+        return new UserInfoBuilder(userId).setGuest(true).build();
+    }
+
+    /**
+     * Gets the default {@link UserInfo#userType} for a guest / regular user.
+     */
+    @NonNull
+    public static String getDefaultUserType(boolean isGuest) {
+        return isGuest ? UserManager.USER_TYPE_FULL_GUEST : UserManager.USER_TYPE_FULL_SECONDARY;
+    }
+
+    /**
+     * Builder for {@link UserInfo} objects.
+     */
+    public static final class UserInfoBuilder {
+
+        @UserIdInt
+        private final int mUserId;
+
+        @UserInfoFlag
+        private int mFlags;
+
+        @Nullable
+        private String mName;
+
+        @Nullable
+        private String mType;
+
+        private boolean mGuest;
+        private boolean mEphemeral;
+        private boolean mAdmin;
+        private boolean mPreCreated;
+        private boolean mInitialized;
+
+        /**
+         * Default constructor.
+         */
+        public UserInfoBuilder(@UserIdInt int userId) {
+            mUserId = userId;
+        }
+
+        /**
+         * Sets the user name.
+         */
+        @NonNull
+        public UserInfoBuilder setName(@Nullable String name) {
+            mName = name;
+            return this;
+        }
+
+        /**
+         * Sets the user type.
+         */
+        @NonNull
+        public UserInfoBuilder setType(@Nullable String type) {
+            Preconditions.checkState(!mGuest, "cannot set type (" + mType + ") after setting it as "
+                    + "guest");
+            mType = type;
+            return this;
+        }
+
+        /**
+         * Sets whether the user is a guest.
+         */
+        @NonNull
+        public UserInfoBuilder setGuest(boolean guest) {
+            Preconditions.checkState(mType == null, "cannot set guest after setting type (" + mType
+                    + ")");
+            mGuest = guest;
+            return this;
+        }
+
+        /**
+         * Sets the user flags
+         */
+        @NonNull
+        public UserInfoBuilder setFlags(@UserInfoFlag int flags) {
+            mFlags = flags;
+            return this;
+        }
+
+        /**
+         * Sets whether the user is ephemeral.
+         */
+        @NonNull
+        public UserInfoBuilder setEphemeral(boolean ephemeral) {
+            mEphemeral = ephemeral;
+            return this;
+        }
+
+        /**
+         * Sets whether the user is an admin.
+         */
+        @NonNull
+        public UserInfoBuilder setAdmin(boolean admin) {
+            mAdmin = admin;
+            return this;
+        }
+
+        /**
+         * Sets whether the user is an pre-created.
+         */
+        @NonNull
+        public UserInfoBuilder setPreCreated(boolean preCreated) {
+            mPreCreated = preCreated;
+            return this;
+        }
+
+        /**
+         * Sets whether the user is initialized.
+         */
+        @NonNull
+        public UserInfoBuilder setInitialized(boolean initialized) {
+            mInitialized = initialized;
+            return this;
+        }
+
+        /**
+         * Creates a new {@link UserInfo}.
+         */
+        @NonNull
+        public UserInfo build() {
+            int flags = mFlags;
+            if (mEphemeral) {
+                flags |= UserInfo.FLAG_EPHEMERAL;
+            }
+            if (mAdmin) {
+                flags |= UserInfo.FLAG_ADMIN;
+            }
+            if (mInitialized) {
+                flags |= UserInfo.FLAG_INITIALIZED;
+            }
+            if (mGuest) {
+                mType = UserManager.USER_TYPE_FULL_GUEST;
+            }
+            UserInfo info = new UserInfo(mUserId, mName, /* iconPath= */ null, flags, mType);
+            info.preCreated = mPreCreated;
+            return info;
+        }
+    }
+
+    private UserTestingHelper() {
+        throw new UnsupportedOperationException("contains only static methods");
+    }
+}
diff --git a/car-test-lib/src/android/car/test/util/VehicleHalTestingHelper.java b/car-test-lib/src/android/car/test/util/VehicleHalTestingHelper.java
new file mode 100644
index 0000000..7c94d33
--- /dev/null
+++ b/car-test-lib/src/android/car/test/util/VehicleHalTestingHelper.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2020 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 android.car.test.util;
+
+import android.hardware.automotive.vehicle.V2_0.VehiclePropConfig;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropertyAccess;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropertyChangeMode;
+
+/**
+ * Provides utilities for Vehicle HAL related tasks.
+ */
+public final class VehicleHalTestingHelper {
+
+    /**
+     * Creates an empty config for the given property.
+     */
+    public static VehiclePropConfig newConfig(int prop) {
+        VehiclePropConfig config = new VehiclePropConfig();
+        config.prop = prop;
+        return config;
+    }
+
+    /**
+     * Creates a config for the given property that passes the
+     * {@link VehicleHal#isPropertySubscribable(VehiclePropConfig)} criteria.
+     */
+    public static VehiclePropConfig newSubscribableConfig(int prop) {
+        VehiclePropConfig config = newConfig(prop);
+        config.access = VehiclePropertyAccess.READ_WRITE;
+        config.changeMode = VehiclePropertyChangeMode.ON_CHANGE;
+        return config;
+    }
+
+    private VehicleHalTestingHelper() {
+        throw new UnsupportedOperationException("contains only static methods");
+    }
+}
diff --git a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java b/car-test-lib/src/android/car/test/util/Visitor.java
similarity index 68%
copy from tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
copy to car-test-lib/src/android/car/test/util/Visitor.java
index 22b460e..8faf5d0 100644
--- a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
+++ b/car-test-lib/src/android/car/test/util/Visitor.java
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2020 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.
@@ -13,10 +13,17 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.google.android.car.garagemode.testapp;
+package android.car.test.util;
 
-import androidx.fragment.app.Fragment;
+/**
+ * Visitor design pattern.
+ *
+ * @param <T> type of visited object
+ */
+public interface Visitor<T> {
 
-public class IncarTestingFragment extends Fragment {
-
+    /**
+     * Visits an object.
+     */
+    void visit(T t);
 }
diff --git a/car-test-lib/src/android/car/testapi/BlockingUserLifecycleListener.java b/car-test-lib/src/android/car/testapi/BlockingUserLifecycleListener.java
new file mode 100644
index 0000000..f50d80a
--- /dev/null
+++ b/car-test-lib/src/android/car/testapi/BlockingUserLifecycleListener.java
@@ -0,0 +1,225 @@
+/*
+ * Copyright (C) 2020 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 android.car.testapi;
+
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.car.user.CarUserManager;
+import android.car.user.CarUserManager.UserLifecycleEvent;
+import android.car.user.CarUserManager.UserLifecycleEventType;
+import android.car.user.CarUserManager.UserLifecycleListener;
+import android.os.UserHandle;
+import android.util.Log;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
+
+/**
+ * UserLifecycleListener that blocks until an event is received.
+ */
+public final class BlockingUserLifecycleListener implements UserLifecycleListener {
+
+    private static final String TAG = BlockingUserLifecycleListener.class.getSimpleName();
+
+    private static final long DEFAULT_TIMEOUT_MS = 2_000;
+
+    private final CountDownLatch mLatch = new CountDownLatch(1);
+    private final List<UserLifecycleEvent> mAllReceivedEvents = new ArrayList<>();
+    private final List<UserLifecycleEvent> mExpectedEventsReceived = new ArrayList<>();
+
+    @UserLifecycleEventType
+    private final List<Integer> mExpectedEventTypes;
+
+    @UserIdInt
+    private final int mForUserId;
+
+    private final long mTimeoutMs;
+
+    private BlockingUserLifecycleListener(Builder builder) {
+        mExpectedEventTypes = builder.mExpectedEventTypes;
+        mTimeoutMs = builder.mTimeoutMs;
+        mForUserId = builder.mForUserId;
+    }
+
+    /**
+     * Builds a new instance with default timeout of {@value #DEFAULT_TIMEOUT_MS} and
+     * which waits for one - and any one - event.
+     */
+    @NonNull
+    public static BlockingUserLifecycleListener newDefaultListener() {
+        return new Builder().build();
+    }
+
+    /**
+     * Builder for a customized {@link BlockingUserLifecycleListener} instance.
+     */
+    public static final class Builder {
+        private long mTimeoutMs = DEFAULT_TIMEOUT_MS;
+
+        @UserLifecycleEventType
+        private List<Integer> mExpectedEventTypes = new ArrayList<>();
+
+        @UserIdInt
+        private int mForUserId = UserHandle.USER_NULL;
+
+        /**
+         * Sets the timeout.
+         */
+        public Builder setTimeout(long timeoutMs) {
+            mTimeoutMs = timeoutMs;
+            return this;
+        }
+
+        /**
+         * Sets the expected type - once the given event is received, the listener will unblock.
+         */
+        public Builder addExpectedEvent(@UserLifecycleEventType int eventType) {
+            mExpectedEventTypes.add(eventType);
+            return this;
+        }
+
+        /**
+         * Filters received events just for the given user.
+         */
+        public Builder forUser(@UserIdInt int userId) {
+            mForUserId = userId;
+            return this;
+        }
+
+        /**
+         * Builds a new instance.
+         */
+        @NonNull
+        public BlockingUserLifecycleListener build() {
+            return new BlockingUserLifecycleListener(Builder.this);
+        }
+
+    }
+
+    @Override
+    public void onEvent(UserLifecycleEvent event) {
+        Log.d(TAG, "onEvent(): expecting=" + expectedEventsToString()
+                + ", received=" + event);
+        mAllReceivedEvents.add(event);
+
+        if (expectingSpecificUser() && event.getUserId() != mForUserId) {
+            Log.w(TAG, "ignoring event for different user");
+            return;
+        }
+
+        Integer actualType = event.getEventType();
+        boolean removed = mExpectedEventTypes.remove(actualType);
+        if (removed) {
+            Log.v(TAG, "event removed; still expecting for " + expectedEventsToString());
+            mExpectedEventsReceived.add(event);
+        } else {
+            Log.v(TAG, "event not removed");
+        }
+
+        if (mExpectedEventTypes.isEmpty()) {
+            Log.d(TAG, "all expected events received, counting down " + mLatch);
+            mLatch.countDown();
+        }
+    }
+
+    /**
+     * Helper method for {@link #waitForEvents()} when caller is expecting just one event.
+     */
+    @Nullable
+    public UserLifecycleEvent waitForEvent() throws InterruptedException {
+        List<UserLifecycleEvent> receivedEvents = waitForEvents();
+        UserLifecycleEvent event = receivedEvents.isEmpty() ? null : receivedEvents.get(0);
+        Log.v(TAG, "waitForEvent(): returning " + event);
+        return event;
+    }
+
+    /**
+     * Blocks until all expected {@link #onEvent(UserLifecycleEvent)} are received.
+     *
+     * @throws IllegalStateException if it times out before all events are received.
+     * @throws InterruptedException if interrupted before all events are received.
+     */
+    @NonNull
+    public List<UserLifecycleEvent> waitForEvents() throws InterruptedException {
+        if (!mLatch.await(mTimeoutMs, TimeUnit.MILLISECONDS)) {
+            String errorMessage = "did not receive all events in " + mTimeoutMs + " seconds; "
+                    + "received only " + allReceivedEventsToString() + ", still waiting for "
+                    + expectedEventsToString();
+            Log.e(TAG, errorMessage);
+            throw new IllegalStateException(errorMessage);
+        }
+        Log.v(TAG, "waitForEvents(): returning " + mAllReceivedEvents);
+        return getAllReceivedEvents();
+    }
+
+    /**
+     * Gets a list with all received events.
+     */
+    @NonNull
+    public List<UserLifecycleEvent> getAllReceivedEvents() {
+        return mAllReceivedEvents;
+    }
+
+    /**
+     * Gets a list with just the received events set by the builder.
+     */
+    @NonNull
+    public List<UserLifecycleEvent> getExpectedEventsReceived() {
+        return mExpectedEventsReceived;
+    }
+
+    @Override
+    public String toString() {
+        return "[" + getClass().getSimpleName() + ": "
+                + "timeout=" + mTimeoutMs + "ms, "
+                + (expectingSpecificUser() ? "forUser=" + mForUserId : "")
+                + ",received=" + allReceivedEventsToString()
+                + ", waiting=" + expectedEventsToString()
+                + "]";
+    }
+
+    private String allReceivedEventsToString() {
+        String receivedEvents = mAllReceivedEvents
+                .stream()
+                .map((e) -> CarUserManager.lifecycleEventTypeToString(e.getEventType()))
+                .collect(Collectors.toList())
+                .toString();
+        return expectingSpecificUser()
+                ? "{user=" + mForUserId + ", events=" + receivedEvents + "}"
+                : receivedEvents;
+    }
+
+    private String expectedEventsToString() {
+        String expectedTypes = mExpectedEventTypes
+                .stream()
+                .map((type) -> CarUserManager.lifecycleEventTypeToString(type))
+                .collect(Collectors.toList())
+                .toString();
+        return expectingSpecificUser()
+                ? "{user=" + mForUserId + ", types=" + expectedTypes + "}"
+                : expectedTypes;
+    }
+
+    private boolean expectingSpecificUser() {
+        return mForUserId != UserHandle.USER_NULL;
+    }
+
+}
diff --git a/car-test-lib/src/android/car/testapi/CarMockitoHelper.java b/car-test-lib/src/android/car/testapi/CarMockitoHelper.java
new file mode 100644
index 0000000..13c5361
--- /dev/null
+++ b/car-test-lib/src/android/car/testapi/CarMockitoHelper.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2020 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 android.car.testapi;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.isA;
+import static org.mockito.Mockito.doAnswer;
+
+import android.annotation.NonNull;
+import android.car.Car;
+import android.os.RemoteException;
+import android.util.Log;
+
+/**
+ * Provides common Mockito calls for Car-specific classes.
+ */
+public final class CarMockitoHelper {
+
+    private static final String TAG = CarMockitoHelper.class.getSimpleName();
+
+    /**
+     * Mocks a call to {@link Car#handleRemoteExceptionFromCarService(RemoteException, Object)} so
+     * it returns the passed as 2nd argument.
+     */
+    public static void mockHandleRemoteExceptionFromCarServiceWithDefaultValue(
+            @NonNull Car car) {
+        doAnswer((invocation) -> {
+            Object returnValue = invocation.getArguments()[1];
+            Log.v(TAG, "mocking handleRemoteExceptionFromCarService(): " + returnValue);
+            return returnValue;
+        }).when(car).handleRemoteExceptionFromCarService(isA(RemoteException.class), any());
+    }
+
+    private CarMockitoHelper() {
+        throw new UnsupportedOperationException("contains only static methods");
+    }
+}
diff --git a/car-test-lib/src/android/car/testapi/FakeCar.java b/car-test-lib/src/android/car/testapi/FakeCar.java
index 98c79ee..1bb4d57 100644
--- a/car-test-lib/src/android/car/testapi/FakeCar.java
+++ b/car-test-lib/src/android/car/testapi/FakeCar.java
@@ -167,7 +167,8 @@
         }
 
         @Override
-        public void onFirstUserUnlocked(int userId, long timestampMs, long duration) {
+        public void onFirstUserUnlocked(int userId, long timestampMs, long duration,
+                int halResponseTime) {
             // Nothing to do yet.
         }
 
@@ -177,6 +178,11 @@
         }
 
         @Override
+        public void setInitialUser(int userId) {
+            // Nothing to do yet.
+        }
+
+        @Override
         public IBinder getCarService(String serviceName) throws RemoteException {
             switch (serviceName) {
                 case Car.AUDIO_SERVICE:
diff --git a/car-usb-handler/AndroidManifest.xml b/car-usb-handler/AndroidManifest.xml
index caa93bd..bcd9975 100644
--- a/car-usb-handler/AndroidManifest.xml
+++ b/car-usb-handler/AndroidManifest.xml
@@ -14,22 +14,36 @@
      limitations under the License.
 -->
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
-        xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
-        package="android.car.usb.handler">
-    <uses-sdk android:minSdkVersion="25" />
-    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
-    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
-    <uses-permission android:name="android.permission.MANAGE_USB" />
-    <uses-permission android:name="android.permission.MANAGE_USERS" />
-    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
-    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher"
-                 android:directBootAware="true">
+          xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
+          package="android.car.usb.handler">
+    <uses-sdk
+        android:minSdkVersion="25"
+        android:targetSdkVersion="29"/>
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
+    <uses-permission android:name="android.permission.MANAGE_USB"/>
+    <uses-permission android:name="android.permission.MANAGE_USERS"/>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+
+    <!-- "queries" to specify what car-usb-handler will query for due to  Android 11's
+         package visibility update. -->
+    <queries>
+        <intent>
+            <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/>
+        </intent>
+    </queries>
+
+    <application
+        android:label="@string/app_name"
+        android:icon="@drawable/ic_launcher"
+        android:directBootAware="true">
         <activity android:name=".UsbHostManagementActivity"
                   android:theme="@android:style/Theme.DeviceDefault.Dialog"
                   android:launchMode="standard">
             <meta-data
                 android:name="distractionOptimized"
-                android:value="true" />
+                android:value="true"/>
         </activity>
         <service android:name=".BootUsbService"
                  android:exported="false"
@@ -38,7 +52,7 @@
         <receiver android:name=".BootUsbScanner"
                   android:directBootAware="true">
             <intent-filter>
-                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED" />
+                <action android:name="android.intent.action.LOCKED_BOOT_COMPLETED"/>
             </intent-filter>
         </receiver>
     </application>
diff --git a/car-usb-handler/res/values-ne/strings.xml b/car-usb-handler/res/values-ne/strings.xml
index a181597..806be7c 100644
--- a/car-usb-handler/res/values-ne/strings.xml
+++ b/car-usb-handler/res/values-ne/strings.xml
@@ -18,8 +18,8 @@
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="6963366455471441257">"USB ह्यान्ड्लर"</string>
     <string name="usb_saved_devices" msgid="2829442070749964872">"सुरक्षित गरिएका यन्त्रहरू"</string>
-    <string name="usb_pref_delete_title" msgid="3885061814853467483">"USB यन्त्रको व्यवस्थापन गर्ने अनुप्रयोग हटाउनुहोस्‌"</string>
-    <string name="usb_pref_delete_message" msgid="5849493572520646218">"तपाईंले %1$s को व्यवस्थापन गर्ने पूर्वनिर्धारित अनुप्रयोग मेट्न खोज्नुभएकै हो?"</string>
+    <string name="usb_pref_delete_title" msgid="3885061814853467483">"USB यन्त्रको व्यवस्थापन गर्ने एप हटाउनुहोस्‌"</string>
+    <string name="usb_pref_delete_message" msgid="5849493572520646218">"तपाईंले %1$s को व्यवस्थापन गर्ने पूर्वनिर्धारित एप मेट्न खोज्नुभएकै हो?"</string>
     <string name="usb_pref_delete_yes" msgid="7803356145103146036">"हो"</string>
     <string name="usb_pref_delete_cancel" msgid="5999791462730255929">"रद्द गर्नुहोस्"</string>
     <string name="usb_resolving_handlers" msgid="1943100136172948686">"समर्थित ह्यान्ड्लरहरू प्राप्त गर्दै"</string>
diff --git a/car-usb-handler/src/android/car/usb/handler/UsbDeviceHandlerResolver.java b/car-usb-handler/src/android/car/usb/handler/UsbDeviceHandlerResolver.java
index c562c72..8b2f425 100644
--- a/car-usb-handler/src/android/car/usb/handler/UsbDeviceHandlerResolver.java
+++ b/car-usb-handler/src/android/car/usb/handler/UsbDeviceHandlerResolver.java
@@ -30,6 +30,7 @@
 import android.hardware.usb.UsbDevice;
 import android.hardware.usb.UsbDeviceConnection;
 import android.hardware.usb.UsbManager;
+import android.os.Build;
 import android.os.Handler;
 import android.os.HandlerThread;
 import android.os.Looper;
@@ -41,6 +42,8 @@
 import org.xmlpull.v1.XmlPullParser;
 
 import java.io.IOException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -195,7 +198,9 @@
             Log.e(TAG, "Failed to connect to usb device.");
             return;
         }
+
         try {
+            String hashedSerial =  getHashed(Build.getSerial());
             UsbUtil.sendAoapAccessoryStart(
                     connection,
                     filter.mAoapManufacturer,
@@ -203,13 +208,23 @@
                     filter.mAoapDescription,
                     filter.mAoapVersion,
                     filter.mAoapUri,
-                    filter.mAoapSerial);
+                    hashedSerial);
         } catch (IOException e) {
             Log.w(TAG, "Failed to switch device into AOAP mode", e);
         }
+
         connection.close();
     }
 
+    private String getHashed(String serial) {
+        try {
+            return MessageDigest.getInstance("MD5").digest(serial.getBytes()).toString();
+        } catch (NoSuchAlgorithmException e) {
+            Log.w(TAG, "could not create MD5 for serial number: " + serial);
+            return Integer.toString(serial.hashCode());
+        }
+    }
+
     private void deviceProbingComplete(UsbDevice device, List<UsbDeviceSettings> settings) {
         if (LOCAL_LOGD) {
             Log.d(TAG, "deviceProbingComplete");
diff --git a/car_product/build/car.mk b/car_product/build/car.mk
index f87c869..64d6bec 100644
--- a/car_product/build/car.mk
+++ b/car_product/build/car.mk
@@ -22,6 +22,7 @@
 PRODUCT_PACKAGES += \
     Bluetooth \
     CarDeveloperOptions \
+    CompanionDeviceSupport \
     OneTimeInitializer \
     Provision \
     SystemUpdater
@@ -37,8 +38,6 @@
 PRODUCT_PACKAGES += \
     DefaultStorageMonitoringCompanionApp \
     EmbeddedKitchenSinkApp \
-    VmsPublisherClientSample \
-    VmsSubscriberClientSample \
     DirectRenderingCluster \
     GarageModeTestApp \
     ExperimentalCarService \
diff --git a/car_product/build/preinstalled-packages-product-car-base.xml b/car_product/build/preinstalled-packages-product-car-base.xml
index b15007f..e888eb5 100644
--- a/car_product/build/preinstalled-packages-product-car-base.xml
+++ b/car_product/build/preinstalled-packages-product-car-base.xml
@@ -66,12 +66,6 @@
         <install-in user-type="SYSTEM" />
     </install-in-user-type>
 
-    <!-- Mainline Wi-fi stack, it's needed for all users -->
-    <install-in-user-type package="com.android.wifi">
-        <install-in user-type="SYSTEM" />
-        <install-in user-type="FULL" />
-    </install-in-user-type>
-
     <!-- Provides Settings. Secure for SYSTEM, which are used in places such as SUW -->
     <install-in-user-type package="com.android.providers.settings">
         <install-in user-type="FULL" />
@@ -124,18 +118,6 @@
         <install-in user-type="SYSTEM" />
     </install-in-user-type>
 
-    <!-- Uses system user id -->
-    <install-in-user-type package="com.android.incremental.nativeadb">
-        <install-in user-type="FULL" />
-        <install-in user-type="SYSTEM" />
-    </install-in-user-type>
-
-    <!-- Uses system user id -->
-    <install-in-user-type package="com.android.networkstack.inprocess">
-        <install-in user-type="FULL" />
-        <install-in user-type="SYSTEM" />
-    </install-in-user-type>
-
     <!-- Required StorageManagerService to bind to the ExternalStorageService -->
     <install-in-user-type package="com.android.providers.media.module">
         <install-in user-type="FULL" />
@@ -191,9 +173,6 @@
     <install-in-user-type package="com.android.htmlviewer">
         <install-in user-type="FULL" />
     </install-in-user-type>
-    <install-in-user-type package="com.android.protips">
-        <install-in user-type="FULL" />
-    </install-in-user-type>
     <install-in-user-type package="com.android.inputdevices">
         <install-in user-type="FULL" />
     </install-in-user-type>
@@ -239,9 +218,6 @@
     <install-in-user-type package="com.android.bluetoothmidiservice">
         <install-in user-type="FULL" />
     </install-in-user-type>
-    <install-in-user-type package="com.android.smspush">
-        <install-in user-type="FULL" />
-    </install-in-user-type>
     <install-in-user-type package="com.android.statementservice">
         <install-in user-type="FULL" />
     </install-in-user-type>
@@ -299,9 +275,6 @@
     <install-in-user-type package="com.android.storagemanager">
         <install-in user-type="FULL" />
     </install-in-user-type>
-    <install-in-user-type package="android.autoinstalls.config.google.car">
-        <install-in user-type="FULL" />
-    </install-in-user-type>
     <install-in-user-type package="com.android.carrierconfig">
         <install-in user-type="FULL" />
     </install-in-user-type>
@@ -323,4 +296,7 @@
     <install-in-user-type package="com.android.externalstorage">
         <install-in user-type="FULL" />
     </install-in-user-type>
+    <install-in-user-type package="com.android.hotspot2.osulogin">
+        <install-in user-type="FULL" />
+    </install-in-user-type>
 </config>
diff --git a/car_product/overlay/frameworks/base/core/res/res/values/config.xml b/car_product/overlay/frameworks/base/core/res/res/values/config.xml
index a38a437..4ba64f0 100644
--- a/car_product/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/car_product/overlay/frameworks/base/core/res/res/values/config.xml
@@ -91,6 +91,8 @@
 
     <string name="config_dataUsageSummaryComponent">com.android.car.settings/com.android.car.settings.datausage.DataWarningAndLimitActivity</string>
 
+    <string name="config_defaultTrustAgent" translatable="false">com.android.car.companiondevicesupport/.feature.trust.TrustedDeviceAgentService</string>
+
     <!-- Controls whether system buttons use all caps for text -->
     <bool name="config_buttonTextAllCaps">false</bool>
 
diff --git a/car_product/overlay/packages/apps/SettingsIntelligence/res/values/configs.xml b/car_product/overlay/packages/apps/SettingsIntelligence/res/values/configs.xml
new file mode 100644
index 0000000..4e8539a
--- /dev/null
+++ b/car_product/overlay/packages/apps/SettingsIntelligence/res/values/configs.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<resources>
+    <!-- Fully-qualified class name for the implementation of the FeatureFactory to be instantiated in SettingsIntelligence. -->
+    <string name="config_featureFactory" translatable="false">
+        com.android.settings.intelligence.search.car.CarFeatureFactoryImpl
+    </string>
+</resources>
\ No newline at end of file
diff --git a/car_product/sepolicy/private/carservice_app.te b/car_product/sepolicy/private/carservice_app.te
index 2e831ba..de8d874 100644
--- a/car_product/sepolicy/private/carservice_app.te
+++ b/car_product/sepolicy/private/carservice_app.te
@@ -30,6 +30,7 @@
     input_method_service
     input_service
     location_service
+    lock_settings_service
     media_session_service
     network_management_service
     power_service
diff --git a/car_product/sepolicy/test/experimentalcarservice_app.te b/car_product/sepolicy/test/experimentalcarservice_app.te
index 082f326..6bfe3b3 100644
--- a/car_product/sepolicy/test/experimentalcarservice_app.te
+++ b/car_product/sepolicy/test/experimentalcarservice_app.te
@@ -23,6 +23,7 @@
     input_method_service
     input_service
     location_service
+    lock_settings_service
     media_session_service
     network_management_service
     power_service
diff --git a/computepipe/OWNERS b/computepipe/OWNERS
index 323a0bc..284dba0 100644
--- a/computepipe/OWNERS
+++ b/computepipe/OWNERS
@@ -1,2 +1,5 @@
 hanumantsingh@google.com
 ankitarora@google.com
+kathan@google.com
+nyogeshwar@google.com
+michaelkeller@google.com
diff --git a/computepipe/aidl/Android.bp b/computepipe/aidl/Android.bp
index 31378b4..749fd5b 100644
--- a/computepipe/aidl/Android.bp
+++ b/computepipe/aidl/Android.bp
@@ -17,6 +17,7 @@
             enabled: false,
         },
     },
+    versions: ["1"],
 }
 
 aidl_interface {
@@ -36,4 +37,5 @@
             enabled: false,
         },
     },
+    versions: ["1"],
 }
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/.hash b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/.hash
new file mode 100644
index 0000000..d5b2102
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/.hash
@@ -0,0 +1 @@
+9d1bf5f9568165514a5f8777ce77155ba87dc3f0
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IClientInfo.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IClientInfo.aidl
new file mode 100644
index 0000000..c37657e
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IClientInfo.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.registry;
+@VintfStability
+interface IClientInfo {
+  @utf8InCpp String getClientName();
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IPipeQuery.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IPipeQuery.aidl
new file mode 100644
index 0000000..06f7fd6
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IPipeQuery.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.registry;
+@VintfStability
+interface IPipeQuery {
+  @utf8InCpp String[] getGraphList();
+  android.automotive.computepipe.runner.IPipeRunner getPipeRunner(in @utf8InCpp String graphName, in android.automotive.computepipe.registry.IClientInfo info);
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IPipeRegistration.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IPipeRegistration.aidl
new file mode 100644
index 0000000..b16da98
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.registry/1/android/automotive/computepipe/registry/IPipeRegistration.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.registry;
+@VintfStability
+interface IPipeRegistration {
+  void registerPipeRunner(in @utf8InCpp String graphName, android.automotive.computepipe.runner.IPipeRunner graphRunner);
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/.hash b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/.hash
new file mode 100644
index 0000000..18c726e
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/.hash
@@ -0,0 +1 @@
+693de9d1b1839f3c90076d78c8f2380b93bafe41
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeDebugger.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeDebugger.aidl
new file mode 100644
index 0000000..80a4581
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeDebugger.aidl
@@ -0,0 +1,26 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+interface IPipeDebugger {
+  void setPipeProfileOptions(in android.automotive.computepipe.runner.PipeProfilingType type);
+  void startPipeProfiling();
+  void stopPipeProfiling();
+  android.automotive.computepipe.runner.ProfilingData getPipeProfilingInfo();
+  void releaseDebugger();
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeRunner.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeRunner.aidl
new file mode 100644
index 0000000..827d220
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeRunner.aidl
@@ -0,0 +1,34 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+interface IPipeRunner {
+  void init(in android.automotive.computepipe.runner.IPipeStateCallback statecb);
+  android.automotive.computepipe.runner.PipeDescriptor getPipeDescriptor();
+  void setPipeInputSource(in int configId);
+  void setPipeOffloadOptions(in int configId);
+  void setPipeTermination(in int configId);
+  void setPipeOutputConfig(in int configId, in int maxInFlightCount, in android.automotive.computepipe.runner.IPipeStream handler);
+  void applyPipeConfigs();
+  void resetPipeConfigs();
+  void startPipe();
+  void stopPipe();
+  void doneWithPacket(in int bufferId, in int streamId);
+  android.automotive.computepipe.runner.IPipeDebugger getPipeDebugger();
+  void releaseRunner();
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeStateCallback.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeStateCallback.aidl
new file mode 100644
index 0000000..54dba9b
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeStateCallback.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+interface IPipeStateCallback {
+  oneway void handleState(in android.automotive.computepipe.runner.PipeState state);
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeStream.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeStream.aidl
new file mode 100644
index 0000000..6fc01f8
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/IPipeStream.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+interface IPipeStream {
+  oneway void deliverPacket(in android.automotive.computepipe.runner.PacketDescriptor packet);
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PacketDescriptor.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PacketDescriptor.aidl
new file mode 100644
index 0000000..581a0c7
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PacketDescriptor.aidl
@@ -0,0 +1,28 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PacketDescriptor {
+  int bufId;
+  android.automotive.computepipe.runner.PacketDescriptorPacketType type;
+  int size;
+  android.hardware.graphics.common.HardwareBuffer handle;
+  ParcelFileDescriptor[] dataFds;
+  long sourceTimeStampMillis;
+  byte[] data;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PacketDescriptorPacketType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PacketDescriptorPacketType.aidl
new file mode 100644
index 0000000..4070d78
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PacketDescriptorPacketType.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PacketDescriptorPacketType {
+  SEMANTIC_DATA = 0,
+  PIXEL_DATA = 1,
+  SEMANTIC_ZERO_COPY_DATA = 2,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeDescriptor.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeDescriptor.aidl
new file mode 100644
index 0000000..679d315
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeDescriptor.aidl
@@ -0,0 +1,25 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeDescriptor {
+  android.automotive.computepipe.runner.PipeInputConfig[] inputConfig;
+  android.automotive.computepipe.runner.PipeOffloadConfig[] offloadConfig;
+  android.automotive.computepipe.runner.PipeTerminationConfig[] terminationConfig;
+  android.automotive.computepipe.runner.PipeOutputConfig[] outputConfig;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfig.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfig.aidl
new file mode 100644
index 0000000..6d59d47
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfig.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeInputConfig {
+  android.automotive.computepipe.runner.PipeInputConfigInputSourceDesc[] inputSources;
+  int configId;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigCameraDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigCameraDesc.aidl
new file mode 100644
index 0000000..7bd5309
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigCameraDesc.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeInputConfigCameraDesc {
+  android.automotive.computepipe.runner.PipeInputConfigCameraType type;
+  @utf8InCpp String camId;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigCameraType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigCameraType.aidl
new file mode 100644
index 0000000..604ba77
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigCameraType.aidl
@@ -0,0 +1,25 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeInputConfigCameraType {
+  DRIVER_VIEW_CAMERA = 0,
+  OCCUPANT_VIEW_CAMERA = 1,
+  EXTERNAL_CAMERA = 2,
+  SURROUND_VIEW_CAMERA = 3,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigFormatType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigFormatType.aidl
new file mode 100644
index 0000000..509c31a
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigFormatType.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeInputConfigFormatType {
+  RGB = 0,
+  NIR = 1,
+  NIR_DEPTH = 2,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigImageFileDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigImageFileDesc.aidl
new file mode 100644
index 0000000..e8f258e
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigImageFileDesc.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeInputConfigImageFileDesc {
+  android.automotive.computepipe.runner.PipeInputConfigImageFileType fileType;
+  @utf8InCpp String filePath;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigImageFileType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigImageFileType.aidl
new file mode 100644
index 0000000..966c2ad
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigImageFileType.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeInputConfigImageFileType {
+  JPEG = 0,
+  PNG = 1,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigInputSourceDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigInputSourceDesc.aidl
new file mode 100644
index 0000000..7caee90
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigInputSourceDesc.aidl
@@ -0,0 +1,29 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeInputConfigInputSourceDesc {
+  android.automotive.computepipe.runner.PipeInputConfigInputType type;
+  android.automotive.computepipe.runner.PipeInputConfigFormatType format;
+  int width;
+  int height;
+  int stride;
+  android.automotive.computepipe.runner.PipeInputConfigCameraDesc camDesc;
+  android.automotive.computepipe.runner.PipeInputConfigVideoFileDesc videoDesc;
+  android.automotive.computepipe.runner.PipeInputConfigImageFileDesc imageDesc;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigInputType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigInputType.aidl
new file mode 100644
index 0000000..a67f6e5
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigInputType.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeInputConfigInputType {
+  CAMERA = 0,
+  VIDEO_FILE = 1,
+  IMAGE_FILES = 2,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigVideoFileDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigVideoFileDesc.aidl
new file mode 100644
index 0000000..fa79a8b
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigVideoFileDesc.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeInputConfigVideoFileDesc {
+  android.automotive.computepipe.runner.PipeInputConfigVideoFileType fileType;
+  @utf8InCpp String filePath;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigVideoFileType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigVideoFileType.aidl
new file mode 100644
index 0000000..29a1b55
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeInputConfigVideoFileType.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeInputConfigVideoFileType {
+  MPEG = 0,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfig.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfig.aidl
new file mode 100644
index 0000000..7e9f29c
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfig.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeOffloadConfig {
+  android.automotive.computepipe.runner.PipeOffloadConfigOffloadDesc desc;
+  String configId;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfigOffloadDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfigOffloadDesc.aidl
new file mode 100644
index 0000000..6a99bec
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfigOffloadDesc.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeOffloadConfigOffloadDesc {
+  android.automotive.computepipe.runner.PipeOffloadConfigOffloadType[] type;
+  boolean[] isVirtual;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfigOffloadType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfigOffloadType.aidl
new file mode 100644
index 0000000..40f3a7d
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOffloadConfigOffloadType.aidl
@@ -0,0 +1,25 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeOffloadConfigOffloadType {
+  CPU = 0,
+  GPU = 1,
+  NEURAL_ENGINE = 2,
+  CV_ENGINE = 3,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfig.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfig.aidl
new file mode 100644
index 0000000..8f2b27f
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfig.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeOutputConfig {
+  android.automotive.computepipe.runner.PipeOutputConfigOutputDesc output;
+  int outputId;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfigOutputDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfigOutputDesc.aidl
new file mode 100644
index 0000000..a396dc7
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfigOutputDesc.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeOutputConfigOutputDesc {
+  String name;
+  android.automotive.computepipe.runner.PipeOutputConfigPacketType type;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfigPacketType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfigPacketType.aidl
new file mode 100644
index 0000000..df206bc
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeOutputConfigPacketType.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeOutputConfigPacketType {
+  SEMANTIC_DATA = 0,
+  PIXEL_DATA = 1,
+  PIXEL_ZERO_COPY_DATA = 2,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeProfilingType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeProfilingType.aidl
new file mode 100644
index 0000000..43b4146
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeProfilingType.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeProfilingType {
+  LATENCY = 0,
+  TRACE_EVENTS = 1,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeState.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeState.aidl
new file mode 100644
index 0000000..67793e9
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeState.aidl
@@ -0,0 +1,26 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeState {
+  RESET = 0,
+  CONFIG_DONE = 1,
+  RUNNING = 2,
+  DONE = 3,
+  ERR_HALT = 4,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfig.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfig.aidl
new file mode 100644
index 0000000..e93c2f9
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfig.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeTerminationConfig {
+  android.automotive.computepipe.runner.PipeTerminationConfigTerminationDesc desc;
+  int configId;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfigTerminationDesc.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfigTerminationDesc.aidl
new file mode 100644
index 0000000..3a3f7f5
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfigTerminationDesc.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable PipeTerminationConfigTerminationDesc {
+  android.automotive.computepipe.runner.PipeTerminationConfigTerminationType type;
+  int qualifier;
+  android.automotive.computepipe.runner.PipeOutputConfig streamConfig;
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfigTerminationType.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfigTerminationType.aidl
new file mode 100644
index 0000000..4c4dafc
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/PipeTerminationConfigTerminationType.aidl
@@ -0,0 +1,25 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@Backing(type="int") @VintfStability
+enum PipeTerminationConfigTerminationType {
+  CLIENT_STOP = 0,
+  MIN_PACKET_COUNT = 1,
+  MAX_RUN_TIME = 2,
+  EVENT = 3,
+}
diff --git a/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/ProfilingData.aidl b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/ProfilingData.aidl
new file mode 100644
index 0000000..1cc898f
--- /dev/null
+++ b/computepipe/aidl/aidl_api/android.automotive.computepipe.runner/1/android/automotive/computepipe/runner/ProfilingData.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.computepipe.runner;
+@VintfStability
+parcelable ProfilingData {
+  android.automotive.computepipe.runner.PipeProfilingType type;
+  int size;
+  ParcelFileDescriptor[] dataFds;
+}
diff --git a/computepipe/example/Runner.cpp b/computepipe/example/Runner.cpp
index b46345e..bbea0b1 100644
--- a/computepipe/example/Runner.cpp
+++ b/computepipe/example/Runner.cpp
@@ -52,10 +52,11 @@
 
 int main(int /* argc */, char** /* argv */) {
     std::shared_ptr<RunnerEngine> engine =
-        sEngineFactory.createRunnerEngine(RunnerEngineFactory::kDefault, "");
+            sEngineFactory.createRunnerEngine(RunnerEngineFactory::kDefault, "");
 
     std::unique_ptr<PrebuiltGraph> graph;
-    graph.reset(PrebuiltGraph::GetPrebuiltGraphFromLibrary("libfacegraph.so", engine));
+    graph.reset(android::automotive::computepipe::graph::GetLocalGraphFromLibrary("libfacegraph.so",
+                                                                                  engine));
 
     Options options = graph->GetSupportedGraphConfigs();
     engine->setPrebuiltGraph(std::move(graph));
diff --git a/computepipe/example/lib_arm/libfacegraph.so b/computepipe/example/lib_arm/libfacegraph.so
index 3988416..3420932 100644
--- a/computepipe/example/lib_arm/libfacegraph.so
+++ b/computepipe/example/lib_arm/libfacegraph.so
Binary files differ
diff --git a/computepipe/example/lib_arm64/libfacegraph.so b/computepipe/example/lib_arm64/libfacegraph.so
index c890bde..9784a5b 100644
--- a/computepipe/example/lib_arm64/libfacegraph.so
+++ b/computepipe/example/lib_arm64/libfacegraph.so
Binary files differ
diff --git a/computepipe/example/lib_x86/libfacegraph.so b/computepipe/example/lib_x86/libfacegraph.so
index f77fe74..2777595 100644
--- a/computepipe/example/lib_x86/libfacegraph.so
+++ b/computepipe/example/lib_x86/libfacegraph.so
Binary files differ
diff --git a/computepipe/example/lib_x86_64/libfacegraph.so b/computepipe/example/lib_x86_64/libfacegraph.so
index cc52bc2..c400257 100644
--- a/computepipe/example/lib_x86_64/libfacegraph.so
+++ b/computepipe/example/lib_x86_64/libfacegraph.so
Binary files differ
diff --git a/computepipe/products/init.computepipe.rc b/computepipe/products/init.computepipe.rc
new file mode 100644
index 0000000..2892877
--- /dev/null
+++ b/computepipe/products/init.computepipe.rc
@@ -0,0 +1,8 @@
+service computepipe_router_service /system/bin/android.automotive.computepipe.router@1.0
+   class main
+   user system
+   group system
+   disabled
+
+on boot
+   start computepipe_router_service
diff --git a/computepipe/proto/Android.bp b/computepipe/proto/Android.bp
index 68eab52..27087b7 100644
--- a/computepipe/proto/Android.bp
+++ b/computepipe/proto/Android.bp
@@ -44,9 +44,9 @@
             static_libs: [
                 "libprotobuf-cpp-lite",
             ],
-            shared: {
-                enabled: false,
-            },
+            shared_libs: [
+                "liblog",
+            ],
         },
     },
 }
diff --git a/computepipe/proto/ClientConfig.proto b/computepipe/proto/ClientConfig.proto
index 38b6cde..9678ac3 100644
--- a/computepipe/proto/ClientConfig.proto
+++ b/computepipe/proto/ClientConfig.proto
@@ -2,9 +2,12 @@
 
 package android.automotive.computepipe.proto;
 
+import "packages/services/Car/computepipe/proto/ProfilingType.proto";
+
 message ClientConfig {
   optional int32 input_config_id = 1;
   optional int32 offload_id = 2;
   map<int32, int32> output_options = 3;
   optional int32 termination_id = 4;
+  optional ProfilingType profiling_type = 5;
 }
diff --git a/computepipe/proto/ConfigurationCommand.proto b/computepipe/proto/ConfigurationCommand.proto
index 88dc038..46839d2 100644
--- a/computepipe/proto/ConfigurationCommand.proto
+++ b/computepipe/proto/ConfigurationCommand.proto
@@ -2,6 +2,8 @@
 
 package android.automotive.computepipe.proto;
 
+import "packages/services/Car/computepipe/proto/ProfilingType.proto";
+
 message SetInputSource {
   optional int32 source_id = 1;
 }
@@ -19,9 +21,14 @@
   optional int32 max_inflight_packets_count = 2;
 }
 
+message SetProfileOptions {
+  optional ProfilingType profile_type = 1;
+}
+
 message ConfigurationCommand {
   optional SetInputSource set_input_source = 1;
   optional SetOffloadOptions set_offload_offload = 2;
   optional SetTerminationOptions set_termination_option = 3;
   optional SetOutputStream set_output_stream = 4;
+  optional SetProfileOptions set_profile_options = 5;
 }
diff --git a/computepipe/proto/ControlCommand.proto b/computepipe/proto/ControlCommand.proto
index d6ae34a..ac27e32 100644
--- a/computepipe/proto/ControlCommand.proto
+++ b/computepipe/proto/ControlCommand.proto
@@ -22,10 +22,30 @@
   // No member fields yet.
 }
 
+message StartPipeProfile {
+  // No member fields yet.
+}
+
+message StopPipeProfile {
+  // No member fields yet.
+}
+
+message ReleaseDebugger {
+  // No member fields yet.
+}
+
+message ReadDebugData {
+  // No member fields yet.
+}
+
 message ControlCommand {
   optional StartGraph start_graph = 1;
   optional StopGraph stop_graph = 2;
   optional ApplyConfigs apply_configs = 3;
   optional DeathNotification death_notification = 4;
   optional ResetConfigs reset_configs = 5;
+  optional StartPipeProfile start_pipe_profile = 6;
+  optional StopPipeProfile stop_pipe_profile = 7;
+  optional ReleaseDebugger release_debugger = 8;
+  optional ReadDebugData read_debug_data = 9;
 }
diff --git a/computepipe/proto/InputConfig.proto b/computepipe/proto/InputConfig.proto
index 0381e1a..2d82706 100644
--- a/computepipe/proto/InputConfig.proto
+++ b/computepipe/proto/InputConfig.proto
@@ -69,6 +69,26 @@
   optional VideoFileConfig video_config = 8;
 
   optional int32 stream_id = 9;
+
+  enum PixelLayout {
+    UNKNOWN = 0;
+
+    // one byte for R, then one byte for G, then one byte for B for each pixel.
+    RGB24 = 1;
+
+    // one byte for R, one byte for G, one byte for B, one byte for alpha or
+    // unused.
+    RGBA32 = 2;
+
+    // Grayscale, one byte per pixel.
+    GRAY8 = 3;
+
+    // Grayscale, one uint16 per pixel.
+    GRAY16 = 4;
+  }
+
+  // Represent pixel layout of image expected by graph.
+  optional PixelLayout pixel_layout = 10 [default = RGB24];
 }
 
 // A graph could require streams from multiple cameras simultaneously, so each possible input
diff --git a/computepipe/proto/ProfilingType.proto b/computepipe/proto/ProfilingType.proto
new file mode 100644
index 0000000..f2215a7
--- /dev/null
+++ b/computepipe/proto/ProfilingType.proto
@@ -0,0 +1,9 @@
+syntax = "proto2";
+
+package android.automotive.computepipe.proto;
+
+enum ProfilingType {
+  DISABLED = 0;
+  LATENCY = 1;
+  TRACE_EVENTS = 2;
+}
diff --git a/computepipe/runner/RunnerComponent.cpp b/computepipe/runner/RunnerComponent.cpp
index 755379a..d3d1482 100644
--- a/computepipe/runner/RunnerComponent.cpp
+++ b/computepipe/runner/RunnerComponent.cpp
@@ -49,6 +49,7 @@
     config.set_input_config_id(mInputConfigId);
     config.set_termination_id(mTerminationId);
     config.set_offload_id(mOffloadId);
+    config.set_profiling_type(mProfilingType);
     for (auto it : mOutputConfigs) {
         (*config.mutable_output_options())[it.first] = it.second;
     }
@@ -95,6 +96,11 @@
     return Status::SUCCESS;
 }
 
+Status ClientConfig::getProfilingType(proto::ProfilingType* profilingType) const {
+    *profilingType = mProfilingType;
+    return Status::SUCCESS;
+}
+
 /**
  * Methods for ComponentInterface
  */
diff --git a/computepipe/runner/client_interface/AidlClient.cpp b/computepipe/runner/client_interface/AidlClient.cpp
index d8bfa61..73543ae 100644
--- a/computepipe/runner/client_interface/AidlClient.cpp
+++ b/computepipe/runner/client_interface/AidlClient.cpp
@@ -12,8 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#define LOG_TAG "RunnerIpcInterface"
-
 #include <string>
 
 #include "AidlClient.h"
@@ -62,13 +60,22 @@
         return Status::ILLEGAL_STATE;
     }
 
-    mPipeRunner = ndk::SharedRefBase::make<AidlClientImpl>(
-        mGraphOptions, mRunnerEngine);
+    mPipeRunner = ndk::SharedRefBase::make<AidlClientImpl>(mGraphOptions, mRunnerEngine);
+    mPipeDebugger = ndk::SharedRefBase::make<DebuggerImpl>(mGraphOptions, mRunnerEngine);
+    mPipeRunner->setPipeDebugger(mPipeDebugger);
+
     std::thread t(&AidlClient::tryRegisterPipeRunner, this);
     t.detach();
     return Status::SUCCESS;
 }
 
+Status AidlClient::deliverGraphDebugInfo(const std::string& debugData) {
+    if (mPipeDebugger) {
+        return mPipeDebugger->deliverGraphDebugInfo(debugData);
+    }
+    return Status::SUCCESS;
+}
+
 void AidlClient::routerDied() {
     std::thread t(&AidlClient::tryRegisterPipeRunner, this);
     t.detach();
@@ -121,6 +128,10 @@
     if (e.isTransitionComplete()) {
         mPipeRunner->stateUpdateNotification(GraphState::RESET);
     }
+
+    if (mPipeDebugger) {
+        mPipeDebugger->handleResetPhase(e);
+    }
     return SUCCESS;
 }
 
@@ -133,6 +144,10 @@
     } else if (e.isAborted()) {
         mPipeRunner->stateUpdateNotification(GraphState::ERR_HALT);
     }
+    if (mPipeDebugger) {
+        mPipeDebugger->handleConfigPhase(e);
+    }
+
     return SUCCESS;
 }
 
@@ -145,6 +160,9 @@
     } else if (e.isAborted()) {
         mPipeRunner->stateUpdateNotification(GraphState::ERR_HALT);
     }
+    if (mPipeDebugger) {
+        mPipeDebugger->handleExecutionPhase(e);
+    }
     return SUCCESS;
 }
 
@@ -155,6 +173,9 @@
     if (e.isTransitionComplete()) {
         mPipeRunner->stateUpdateNotification(GraphState::DONE);
     }
+    if (mPipeDebugger) {
+        mPipeDebugger->handleStopWithFlushPhase(e);
+    }
     return SUCCESS;
 }
 
@@ -165,6 +186,9 @@
     if (e.isTransitionComplete()) {
         mPipeRunner->stateUpdateNotification(GraphState::ERR_HALT);
     }
+    if (mPipeDebugger) {
+        mPipeDebugger->handleStopImmediatePhase(e);
+    }
     return SUCCESS;
 }
 
diff --git a/computepipe/runner/client_interface/AidlClient.h b/computepipe/runner/client_interface/AidlClient.h
index 8dd6ad6..7b7d54c 100644
--- a/computepipe/runner/client_interface/AidlClient.h
+++ b/computepipe/runner/client_interface/AidlClient.h
@@ -12,13 +12,14 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDL_CLIENT_H
-#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDL_CLIENT_H
+#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDLCLIENT_H_
+#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDLCLIENT_H_
 
 #include <memory>
 
 #include "ClientInterface.h"
 #include "AidlClientImpl.h"
+#include "DebuggerImpl.h"
 
 namespace android {
 namespace automotive {
@@ -38,6 +39,7 @@
     Status dispatchPacketToClient(int32_t streamId,
                                   const std::shared_ptr<MemHandle> packet) override;
     Status activate() override;
+    Status deliverGraphDebugInfo(const std::string& debugData) override;
     /**
      * Override RunnerComponentInterface function
      */
@@ -52,13 +54,13 @@
     virtual ~AidlClient() = default;
 
   private:
-
     // Attempt to register pipe runner with router. Returns true on success.
     // This is a blocking API, calling thread will be blocked until router connection is
     // established or max attempts are made without success.
     void tryRegisterPipeRunner();
     const proto::Options mGraphOptions;
     std::shared_ptr<AidlClientImpl> mPipeRunner = nullptr;
+    std::shared_ptr<DebuggerImpl> mPipeDebugger = nullptr;
     std::shared_ptr<ClientEngineInterface> mRunnerEngine;
 };
 
@@ -68,4 +70,4 @@
 }  // namespace computepipe
 }  // namespace automotive
 }  // namespace android
-#endif
+#endif  // COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDLCLIENT_H_
diff --git a/computepipe/runner/client_interface/AidlClientImpl.cpp b/computepipe/runner/client_interface/AidlClientImpl.cpp
index 14ebe03..f8157dc 100644
--- a/computepipe/runner/client_interface/AidlClientImpl.cpp
+++ b/computepipe/runner/client_interface/AidlClientImpl.cpp
@@ -12,8 +12,6 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.c
 
-#define LOG_TAG "RunnerIpcInterface"
-
 #include "AidlClientImpl.h"
 
 #include <vector>
@@ -21,6 +19,7 @@
 #include "OutputConfig.pb.h"
 #include "PacketDescriptor.pb.h"
 #include "PipeOptionsConverter.h"
+#include "StatusUtil.h"
 
 #include <aidl/android/automotive/computepipe/runner/PacketDescriptor.h>
 #include <aidl/android/automotive/computepipe/runner/PacketDescriptorPacketType.h>
@@ -43,20 +42,6 @@
 using ::aidl::android::automotive::computepipe::runner::PipeState;
 using ::ndk::ScopedAStatus;
 
-ScopedAStatus ToNdkStatus(Status status) {
-    switch (status) {
-        case SUCCESS:
-            return ScopedAStatus::ok();
-        case INTERNAL_ERROR:
-            return ScopedAStatus::fromExceptionCode(EX_TRANSACTION_FAILED);
-        case INVALID_ARGUMENT:
-            return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
-        case FATAL_ERROR:
-        default:
-            return ScopedAStatus::fromExceptionCode(EX_TRANSACTION_FAILED);
-    }
-}
-
 PipeState ToAidlState(GraphState state) {
     switch (state) {
         case RESET:
@@ -194,6 +179,12 @@
     return Status::SUCCESS;
 }
 
+void AidlClientImpl::setPipeDebugger(
+        const std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeDebugger>&
+        pipeDebugger) {
+    mPipeDebugger = pipeDebugger;
+}
+
 Status AidlClientImpl::stateUpdateNotification(const GraphState newState) {
     if (mClientStateChangeCallback) {
         (void)mClientStateChangeCallback->handleState(ToAidlState(newState));
@@ -287,7 +278,7 @@
     proto::ConfigurationCommand configurationCommand;
     configurationCommand.mutable_set_output_stream()->set_stream_id(streamId);
     configurationCommand.mutable_set_output_stream()->set_max_inflight_packets_count(
-        maxInFlightCount);
+            maxInFlightCount);
     Status status = mEngine->processClientConfigUpdate(configurationCommand);
 
     if (status != SUCCESS) {
@@ -347,14 +338,20 @@
     return ToNdkStatus(mEngine->freePacket(bufferId, streamId));
 }
 
-ndk::ScopedAStatus AidlClientImpl::getPipeDebugger(
+ScopedAStatus AidlClientImpl::getPipeDebugger(
     std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeDebugger>*
-    /* _aidl_return */ ) {
-    // TODO(146464281) implement.
+    _aidl_return) {
+    if (_aidl_return == nullptr) {
+        return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+    }
+    if (mPipeDebugger == nullptr) {
+        return ScopedAStatus::fromExceptionCode(EX_TRANSACTION_FAILED);
+    }
+    *_aidl_return = mPipeDebugger;
     return ScopedAStatus::ok();
 }
 
-ndk::ScopedAStatus AidlClientImpl::releaseRunner() {
+ScopedAStatus AidlClientImpl::releaseRunner() {
     proto::ControlCommand controlCommand;
     *controlCommand.mutable_death_notification() = proto::DeathNotification();
 
diff --git a/computepipe/runner/client_interface/AidlClientImpl.h b/computepipe/runner/client_interface/AidlClientImpl.h
index f239bd6..594d2cb 100644
--- a/computepipe/runner/client_interface/AidlClientImpl.h
+++ b/computepipe/runner/client_interface/AidlClientImpl.h
@@ -12,9 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_CLIENTINTERFACE_AIDLCLIENTIMPL_H
-#define COMPUTEPIPE_RUNNER_CLIENTINTERFACE_AIDLCLIENTIMPL_H
+#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDLCLIENTIMPL_H_
+#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDLCLIENTIMPL_H_
 #include <aidl/android/automotive/computepipe/runner/BnPipeRunner.h>
+#include <aidl/android/automotive/computepipe/runner/BnPipeDebugger.h>
 
 #include <map>
 #include <memory>
@@ -46,6 +47,9 @@
     }
 
     Status dispatchPacketToClient(int32_t streamId, const std::shared_ptr<MemHandle>& packetHandle);
+    void setPipeDebugger(
+        const std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeDebugger>&
+        pipeDebugger);
 
     Status stateUpdateNotification(const GraphState newState);
 
@@ -69,8 +73,8 @@
     ndk::ScopedAStatus doneWithPacket(int32_t bufferId, int32_t streamId) override;
 
     ndk::ScopedAStatus getPipeDebugger(
-        std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeDebugger>* _aidl_return)
-        override;
+        std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeDebugger>*
+        _aidl_return) override;
 
     ndk::ScopedAStatus releaseRunner() override;
 
@@ -97,6 +101,9 @@
 
     std::map<int, std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeStream>>
         mPacketHandlers;
+
+    std::shared_ptr<aidl::android::automotive::computepipe::runner::IPipeDebugger> mPipeDebugger =
+        nullptr;
 };
 
 }  // namespace aidl_client
@@ -106,4 +113,4 @@
 }  // namespace automotive
 }  // namespace android
 
-#endif  // COMPUTEPIPE_RUNNER_CLIENTINTERFACE_AIDLCLIENTIMPL_H
+#endif  // COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_AIDLCLIENTIMPL_H_
diff --git a/computepipe/runner/client_interface/Android.bp b/computepipe/runner/client_interface/Android.bp
index 02da2d2..588aa5c 100644
--- a/computepipe/runner/client_interface/Android.bp
+++ b/computepipe/runner/client_interface/Android.bp
@@ -17,8 +17,10 @@
     srcs: [
         "AidlClient.cpp",
         "AidlClientImpl.cpp",
+        "DebuggerImpl.cpp",
         "Factory.cpp",
         "PipeOptionsConverter.cpp",
+        "StatusUtil.cpp",
     ],
     export_include_dirs: ["include"],
     header_libs: [
@@ -32,7 +34,7 @@
         "libbase",
         "libbinder_ndk",
         "liblog",
-	"libnativewindow",
+        "libnativewindow",
         "libutils",
         "android.automotive.computepipe.runner-ndk_platform",
         "android.automotive.computepipe.registry-ndk_platform",
@@ -41,4 +43,5 @@
     include_dirs: [
         "packages/services/Car/computepipe",
     ],
+    cflags: ["-DLOG_TAG=\"RunnerIpcInterface\""],
 }
diff --git a/computepipe/runner/client_interface/DebuggerImpl.cpp b/computepipe/runner/client_interface/DebuggerImpl.cpp
new file mode 100644
index 0000000..67d516a
--- /dev/null
+++ b/computepipe/runner/client_interface/DebuggerImpl.cpp
@@ -0,0 +1,261 @@
+// Copyright (C) 2020 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.
+
+#include "DebuggerImpl.h"
+#include "ProfilingType.pb.h"
+#include "ConfigurationCommand.pb.h"
+#include "StatusUtil.h"
+
+#include <android-base/logging.h>
+#include <android-base/file.h>
+#include <binder/ParcelFileDescriptor.h>
+
+#include <errno.h>
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace runner {
+namespace client_interface {
+namespace aidl_client {
+namespace {
+
+using ::std::literals::chrono_literals::operator""ms;
+using ::aidl::android::automotive::computepipe::runner::PipeProfilingType;
+using ::aidl::android::automotive::computepipe::runner::ProfilingData;
+
+using ::ndk::ScopedAStatus;
+
+constexpr std::chrono::milliseconds kProfilingDataReadTimeout = 50ms;
+
+proto::ProfilingType ToProtoProfilingType(PipeProfilingType type) {
+    switch (type) {
+        case PipeProfilingType::LATENCY:
+            return proto::ProfilingType::LATENCY;
+        case PipeProfilingType::TRACE_EVENTS:
+            return proto::ProfilingType::TRACE_EVENTS;
+    }
+}
+
+PipeProfilingType ToAidlProfilingType(proto::ProfilingType type) {
+    switch (type) {
+        case proto::ProfilingType::LATENCY:
+            return PipeProfilingType::LATENCY;
+        case proto::ProfilingType::TRACE_EVENTS:
+            return PipeProfilingType::TRACE_EVENTS;
+        case proto::ProfilingType::DISABLED:
+            LOG(ERROR) << "Attempt to convert invalid profiling type to aidl type.";
+            return PipeProfilingType::LATENCY;
+    }
+}
+
+Status RecursiveCreateDir(const std::string& dirName) {
+    if (dirName == "/") {
+        return Status::SUCCESS;
+    }
+
+    DIR *directory = opendir(dirName.c_str());
+    // Check if directory exists.
+    if (directory) {
+        closedir(directory);
+        return Status::SUCCESS;
+    }
+
+    std::string parentDirName = android::base::Dirname(dirName);
+    if (!parentDirName.empty()) {
+        Status status = RecursiveCreateDir(parentDirName);
+        if (status != Status::SUCCESS) {
+            return status;
+        }
+    }
+
+    // mkdir expects the flag as bits it is essential to send 0777 which is
+    // interpreted in octal rather than 777 which is interpreted in decimal.
+    if (!mkdir(dirName.c_str(), 0777)) {
+        return Status::SUCCESS;
+    } else {
+        LOG(ERROR) << "Failed to create directory - " << errno;
+        return Status::INTERNAL_ERROR;
+    }
+}
+
+}  // namespace
+
+ndk::ScopedAStatus DebuggerImpl::setPipeProfileOptions(PipeProfilingType in_type) {
+    mProfilingType = in_type;
+    proto::ConfigurationCommand command;
+    command.mutable_set_profile_options()->set_profile_type(ToProtoProfilingType(mProfilingType));
+    std::shared_ptr<ClientEngineInterface> engineSp = mEngine.lock();
+    if (!engineSp) {
+        return ToNdkStatus(Status::INTERNAL_ERROR);
+    }
+    Status status = engineSp->processClientConfigUpdate(command);
+    return ToNdkStatus(status);
+}
+
+ScopedAStatus DebuggerImpl::startPipeProfiling() {
+    if (mGraphState != GraphState::RUNNING) {
+        LOG(ERROR) << "Attempting to start profiling when the graph is not in the running state.";
+        return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
+    }
+    proto::ControlCommand controlCommand;
+    *controlCommand.mutable_start_pipe_profile() = proto::StartPipeProfile();
+    std::shared_ptr<ClientEngineInterface> engineSp = mEngine.lock();
+    if (!engineSp) {
+        return ToNdkStatus(Status::INTERNAL_ERROR);
+    }
+    Status status = engineSp->processClientCommand(controlCommand);
+    return ToNdkStatus(status);
+}
+
+ScopedAStatus DebuggerImpl::stopPipeProfiling() {
+    proto::ControlCommand controlCommand;
+    *controlCommand.mutable_stop_pipe_profile() = proto::StopPipeProfile();
+    std::shared_ptr<ClientEngineInterface> engineSp = mEngine.lock();
+    if (!engineSp) {
+        return ToNdkStatus(Status::INTERNAL_ERROR);
+    }
+    Status status = engineSp->processClientCommand(controlCommand);
+    if (status != Status::SUCCESS) {
+        return ToNdkStatus(status);
+    }
+
+    proto::ControlCommand controlCommand2;
+    *controlCommand2.mutable_read_debug_data() = proto::ReadDebugData();
+    status = engineSp->processClientCommand(controlCommand2);
+    if (status != Status::SUCCESS) {
+        return ToNdkStatus(status);
+    }
+    return ScopedAStatus::ok();
+}
+
+ScopedAStatus DebuggerImpl::getPipeProfilingInfo(ProfilingData* _aidl_return) {
+    if (!_aidl_return) {
+        return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+    }
+
+    std::unique_lock<std::mutex> lk(mLock);
+    if (!mWait.wait_for(lk, kProfilingDataReadTimeout, [this]() {
+                    return mProfilingData.size != 0;
+                })) {
+        LOG(ERROR) << "No profiling data was found.";
+        proto::ProfilingType profilingType = ToProtoProfilingType(mProfilingType);
+        if (profilingType == proto::ProfilingType::DISABLED) {
+            LOG(ERROR) << "Profiling was disabled.";
+            return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
+        }
+        _aidl_return->type = ToAidlProfilingType(profilingType);
+        _aidl_return->size = 0;
+        return ScopedAStatus::ok();
+    }
+
+    _aidl_return->type = mProfilingData.type;
+    _aidl_return->size = mProfilingData.size;
+    _aidl_return->dataFds = std::move(mProfilingData.dataFds);
+    return ScopedAStatus::ok();
+}
+
+ScopedAStatus DebuggerImpl::releaseDebugger() {
+    if (mGraphState == GraphState::RUNNING || mGraphState == GraphState::RESET) {
+        return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_STATE);
+    }
+
+    proto::ControlCommand controlCommand;
+    *controlCommand.mutable_release_debugger() = proto::ReleaseDebugger();
+    std::shared_ptr<ClientEngineInterface> engineSp = mEngine.lock();
+    if (!engineSp) {
+        return ToNdkStatus(Status::INTERNAL_ERROR);
+    }
+    Status status = engineSp->processClientCommand(controlCommand);
+
+    std::lock_guard<std::mutex> lk(mLock);
+    mProfilingData.size = 0;
+    mProfilingData.dataFds.clear();
+    return ToNdkStatus(status);
+}
+
+Status DebuggerImpl::handleConfigPhase(const ClientConfig& e) {
+    if (e.isTransitionComplete()) {
+        mGraphState = GraphState::CONFIG_DONE;
+    }
+    return Status::SUCCESS;
+}
+
+Status DebuggerImpl::handleExecutionPhase(const RunnerEvent& e) {
+    if (e.isTransitionComplete()) {
+        mGraphState = GraphState::RUNNING;
+    }
+    if (e.isAborted()) {
+        mGraphState = GraphState::ERR_HALT;
+    }
+    return Status::SUCCESS;
+}
+
+Status DebuggerImpl::handleStopWithFlushPhase(const RunnerEvent& e) {
+    if (e.isTransitionComplete()) {
+        mGraphState = GraphState::DONE;
+    }
+    if (e.isAborted()) {
+        mGraphState = GraphState::ERR_HALT;
+    }
+    return Status::SUCCESS;
+}
+
+Status DebuggerImpl::handleStopImmediatePhase(const RunnerEvent& e) {
+    if (e.isTransitionComplete() || e.isAborted()) {
+        mGraphState = GraphState::ERR_HALT;
+    }
+    return Status::SUCCESS;
+}
+
+Status DebuggerImpl::handleResetPhase(const RunnerEvent& e) {
+    if (e.isPhaseEntry()) {
+        mGraphState = GraphState::RESET;
+    }
+    return Status::SUCCESS;
+}
+
+Status DebuggerImpl::deliverGraphDebugInfo(const std::string& debugData) {
+    Status status = RecursiveCreateDir(mProfilingDataDirName);
+    if (status != Status::SUCCESS) {
+        return status;
+    }
+
+    std::string profilingDataFilePath = mProfilingDataDirName + "/" + mGraphOptions.graph_name();
+    std::string fileRemoveError;
+    if (!android::base::RemoveFileIfExists(profilingDataFilePath, &fileRemoveError)) {
+        LOG(ERROR) << "Failed to remove file " << profilingDataFilePath << ", error: "
+            << fileRemoveError;
+        return Status::INTERNAL_ERROR;
+    }
+    if (!android::base::WriteStringToFile(debugData, profilingDataFilePath)) {
+        LOG(ERROR) << "Failed to write profiling data to file at path " << profilingDataFilePath;
+        return Status::INTERNAL_ERROR;
+    }
+
+    std::lock_guard<std::mutex> lk(mLock);
+    mProfilingData.type = mProfilingType;
+    mProfilingData.size = debugData.size();
+    mProfilingData.dataFds.emplace_back(
+        ndk::ScopedFileDescriptor(open(profilingDataFilePath.c_str(), O_CREAT, O_RDWR)));
+    mWait.notify_one();
+    return Status::SUCCESS;
+}
+
+}  // namespace aidl_client
+}  // namespace client_interface
+}  // namespace runner
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
diff --git a/computepipe/runner/client_interface/DebuggerImpl.h b/computepipe/runner/client_interface/DebuggerImpl.h
new file mode 100644
index 0000000..d1daf42
--- /dev/null
+++ b/computepipe/runner/client_interface/DebuggerImpl.h
@@ -0,0 +1,84 @@
+// Copyright (C) 2020 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.
+
+#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_DEBUGGERIMPL_H_
+#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_DEBUGGERIMPL_H_
+#include <aidl/android/automotive/computepipe/runner/BnPipeDebugger.h>
+
+#include <condition_variable>
+#include <memory>
+#include <mutex>
+
+#include "ClientEngineInterface.h"
+#include "RunnerComponent.h"
+#include "types/GraphState.h"
+#include "types/Status.h"
+#include "Options.pb.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace runner {
+namespace client_interface {
+namespace aidl_client {
+
+// RunnerInterface registers an IPipeRunner interface with computepipe router.
+// RunnerInterface handles binder IPC calls and invokes appropriate callbacks.
+class DebuggerImpl : public aidl::android::automotive::computepipe::runner::BnPipeDebugger,
+                     public RunnerComponentInterface  {
+  public:
+    explicit DebuggerImpl(const proto::Options graphOptions,
+                          const std::shared_ptr<ClientEngineInterface>& engine)
+            : mEngine(engine), mGraphOptions(graphOptions) {}
+
+    // Methods from android::automotive::computepipe::runner::BnPipeDebugger
+    ndk::ScopedAStatus setPipeProfileOptions(
+        aidl::android::automotive::computepipe::runner::PipeProfilingType in_type) override;
+    ndk::ScopedAStatus startPipeProfiling() override;
+    ndk::ScopedAStatus stopPipeProfiling() override;
+    ndk::ScopedAStatus getPipeProfilingInfo(
+        aidl::android::automotive::computepipe::runner::ProfilingData* _aidl_return) override;
+    ndk::ScopedAStatus releaseDebugger() override;
+
+    // Methods from RunnerComponentInterface
+    Status handleConfigPhase(const ClientConfig& e) override;
+    Status handleExecutionPhase(const RunnerEvent& e) override;
+    Status handleStopWithFlushPhase(const RunnerEvent& e) override;
+    Status handleStopImmediatePhase(const RunnerEvent& e) override;
+    Status handleResetPhase(const RunnerEvent& e) override;
+
+    Status deliverGraphDebugInfo(const std::string& debugData);
+
+  private:
+    std::weak_ptr<ClientEngineInterface> mEngine;
+
+    GraphState mGraphState = GraphState::RESET;
+    aidl::android::automotive::computepipe::runner::PipeProfilingType mProfilingType;
+    proto::Options mGraphOptions;
+    aidl::android::automotive::computepipe::runner::ProfilingData mProfilingData;
+
+    // Lock for mProfilingData.
+    std::mutex mLock;
+    std::condition_variable mWait;
+    const std::string mProfilingDataDirName = "/data/computepipe/profiling";
+};
+
+}  // namespace aidl_client
+}  // namespace client_interface
+}  // namespace runner
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
+
+#endif  // COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_DEBUGGERIMPL_H_
diff --git a/computepipe/runner/client_interface/PipeOptionsConverter.cpp b/computepipe/runner/client_interface/PipeOptionsConverter.cpp
index c53da46..12b2b3e 100644
--- a/computepipe/runner/client_interface/PipeOptionsConverter.cpp
+++ b/computepipe/runner/client_interface/PipeOptionsConverter.cpp
@@ -41,66 +41,66 @@
 
 namespace {
 
-PipeInputConfigInputType ConvertInputType(proto::InputStreamConfig_InputType type) {
+PipeInputConfigInputType ConvertInputType(proto::InputStreamConfig::InputType type) {
     switch (type) {
-        case proto::InputStreamConfig_InputType_CAMERA:
+        case proto::InputStreamConfig::CAMERA:
             return PipeInputConfigInputType::CAMERA;
-        case proto::InputStreamConfig_InputType_VIDEO_FILE:
+        case proto::InputStreamConfig::VIDEO_FILE:
             return PipeInputConfigInputType::VIDEO_FILE;
-        case proto::InputStreamConfig_InputType_IMAGE_FILES:
+        case proto::InputStreamConfig::IMAGE_FILES:
             return PipeInputConfigInputType::IMAGE_FILES;
     }
 }
 
-PipeInputConfigCameraType ConvertCameraType(proto::CameraConfig_CameraType type) {
+PipeInputConfigCameraType ConvertCameraType(proto::CameraConfig::CameraType type) {
     switch (type) {
-        case proto::CameraConfig_CameraType_DRIVER_VIEW_CAMERA:
+        case proto::CameraConfig::DRIVER_VIEW_CAMERA:
             return PipeInputConfigCameraType::DRIVER_VIEW_CAMERA;
-        case proto::CameraConfig_CameraType_OCCUPANT_VIEW_CAMERA:
+        case proto::CameraConfig::OCCUPANT_VIEW_CAMERA:
             return PipeInputConfigCameraType::OCCUPANT_VIEW_CAMERA;
-        case proto::CameraConfig_CameraType_EXTERNAL_CAMERA:
+        case proto::CameraConfig::EXTERNAL_CAMERA:
             return PipeInputConfigCameraType::EXTERNAL_CAMERA;
-        case proto::CameraConfig_CameraType_SURROUND_VIEW_CAMERA:
+        case proto::CameraConfig::SURROUND_VIEW_CAMERA:
             return PipeInputConfigCameraType::SURROUND_VIEW_CAMERA;
     }
 }
 
-PipeInputConfigImageFileType ConvertImageFileType(proto::ImageFileConfig_ImageFileType type) {
+PipeInputConfigImageFileType ConvertImageFileType(proto::ImageFileConfig::ImageFileType type) {
     switch (type) {
-        case proto::ImageFileConfig_ImageFileType_JPEG:
+        case proto::ImageFileConfig::JPEG:
             return PipeInputConfigImageFileType::JPEG;
-        case proto::ImageFileConfig_ImageFileType_PNG:
+        case proto::ImageFileConfig::PNG:
             return PipeInputConfigImageFileType::PNG;
     }
 }
 
-PipeInputConfigVideoFileType ConvertVideoFileType(proto::VideoFileConfig_VideoFileType type) {
+PipeInputConfigVideoFileType ConvertVideoFileType(proto::VideoFileConfig::VideoFileType type) {
     switch (type) {
-        case proto::VideoFileConfig_VideoFileType_MPEG:
+        case proto::VideoFileConfig::MPEG:
             return PipeInputConfigVideoFileType::MPEG;
     }
 }
 
-PipeInputConfigFormatType ConvertInputFormat(proto::InputStreamConfig_FormatType type) {
+PipeInputConfigFormatType ConvertInputFormat(proto::InputStreamConfig::FormatType type) {
     switch (type) {
-        case proto::InputStreamConfig_FormatType_RGB:
+        case proto::InputStreamConfig::RGB:
             return PipeInputConfigFormatType::RGB;
-        case proto::InputStreamConfig_FormatType_NIR:
+        case proto::InputStreamConfig::NIR:
             return PipeInputConfigFormatType::NIR;
-        case proto::InputStreamConfig_FormatType_NIR_DEPTH:
+        case proto::InputStreamConfig::NIR_DEPTH:
             return PipeInputConfigFormatType::NIR_DEPTH;
     }
 }
 
-PipeOffloadConfigOffloadType ConvertOffloadType(proto::OffloadOption_OffloadType type) {
+PipeOffloadConfigOffloadType ConvertOffloadType(proto::OffloadOption::OffloadType type) {
     switch (type) {
-        case proto::OffloadOption_OffloadType_CPU:
+        case proto::OffloadOption::CPU:
             return PipeOffloadConfigOffloadType::CPU;
-        case proto::OffloadOption_OffloadType_GPU:
+        case proto::OffloadOption::GPU:
             return PipeOffloadConfigOffloadType::GPU;
-        case proto::OffloadOption_OffloadType_NEURAL_ENGINE:
+        case proto::OffloadOption::NEURAL_ENGINE:
             return PipeOffloadConfigOffloadType::NEURAL_ENGINE;
-        case proto::OffloadOption_OffloadType_CV_ENGINE:
+        case proto::OffloadOption::CV_ENGINE:
             return PipeOffloadConfigOffloadType::CV_ENGINE;
     }
 }
@@ -117,15 +117,15 @@
 }
 
 PipeTerminationConfigTerminationType ConvertTerminationType(
-    proto::TerminationOption_TerminationType type) {
+    proto::TerminationOption::TerminationType type) {
     switch (type) {
-        case proto::TerminationOption_TerminationType_CLIENT_STOP:
+        case proto::TerminationOption::CLIENT_STOP:
             return PipeTerminationConfigTerminationType::CLIENT_STOP;
-        case proto::TerminationOption_TerminationType_MIN_PACKET_COUNT:
+        case proto::TerminationOption::MIN_PACKET_COUNT:
             return PipeTerminationConfigTerminationType::MIN_PACKET_COUNT;
-        case proto::TerminationOption_TerminationType_MAX_RUN_TIME:
+        case proto::TerminationOption::MAX_RUN_TIME:
             return PipeTerminationConfigTerminationType::MAX_RUN_TIME;
-        case proto::TerminationOption_TerminationType_EVENT:
+        case proto::TerminationOption::EVENT:
             return PipeTerminationConfigTerminationType::EVENT;
     }
 }
@@ -141,7 +141,8 @@
         aidlInputDesc.height = inputStreamConfig.height();
         aidlInputDesc.stride = inputStreamConfig.stride();
         aidlInputDesc.camDesc.camId = inputStreamConfig.cam_config().cam_id();
-        aidlInputDesc.camDesc.type = ConvertCameraType(inputStreamConfig.cam_config().camera_type());
+        aidlInputDesc.camDesc.type =
+                ConvertCameraType(inputStreamConfig.cam_config().camera_type());
         aidlInputDesc.imageDesc.fileType =
             ConvertImageFileType(inputStreamConfig.image_config().file_type());
         aidlInputDesc.imageDesc.filePath = inputStreamConfig.image_config().image_dir();
diff --git a/computepipe/runner/client_interface/StatusUtil.cpp b/computepipe/runner/client_interface/StatusUtil.cpp
new file mode 100644
index 0000000..7cc4fae
--- /dev/null
+++ b/computepipe/runner/client_interface/StatusUtil.cpp
@@ -0,0 +1,47 @@
+// Copyright (C) 2019 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.
+
+#include "StatusUtil.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace runner {
+namespace client_interface {
+namespace aidl_client {
+
+using ndk::ScopedAStatus;
+
+ScopedAStatus ToNdkStatus(Status status) {
+    switch (status) {
+        case SUCCESS:
+            return ScopedAStatus::ok();
+        case INTERNAL_ERROR:
+            return ScopedAStatus::fromExceptionCode(EX_TRANSACTION_FAILED);
+        case INVALID_ARGUMENT:
+            return ScopedAStatus::fromExceptionCode(EX_ILLEGAL_ARGUMENT);
+        case FATAL_ERROR:
+        default:
+            return ScopedAStatus::fromExceptionCode(EX_TRANSACTION_FAILED);
+    }
+}
+
+
+}  // namespace aidl_client
+}  // namespace client_interface
+}  // namespace runner
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
+
diff --git a/computepipe/runner/client_interface/StatusUtil.h b/computepipe/runner/client_interface/StatusUtil.h
new file mode 100644
index 0000000..4b9b2d1
--- /dev/null
+++ b/computepipe/runner/client_interface/StatusUtil.h
@@ -0,0 +1,36 @@
+// Copyright (C) 2019 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.
+
+#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_STATUSUTIL_H_
+#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_STATUSUTIL_H_
+#include <android/binder_auto_utils.h>
+
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace runner {
+namespace client_interface {
+namespace aidl_client {
+
+ndk::ScopedAStatus ToNdkStatus(Status status);
+
+}  // namespace aidl_client
+}  // namespace client_interface
+}  // namespace runner
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
+#endif  // COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_STATUSUTIL_H_
diff --git a/computepipe/runner/client_interface/include/ClientEngineInterface.h b/computepipe/runner/client_interface/include/ClientEngineInterface.h
index d75a1f9..bc551d8 100644
--- a/computepipe/runner/client_interface/include/ClientEngineInterface.h
+++ b/computepipe/runner/client_interface/include/ClientEngineInterface.h
@@ -12,10 +12,11 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_CLIENT_ENGINE_INTERFACE_H
-#define COMPUTEPIPE_RUNNER_CLIENT_ENGINE_INTERFACE_H
+#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_INCLUDE_CLIENTENGINEINTERFACE_H_
+#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_INCLUDE_CLIENTENGINEINTERFACE_H_
 
 #include <memory>
+#include <string>
 
 #include "ConfigurationCommand.pb.h"
 #include "ControlCommand.pb.h"
@@ -55,4 +56,4 @@
 }  // namespace automotive
 }  // namespace android
 
-#endif  // COMPUTEPIPE_RUNNER_CLIENT_ENGINE_INTERFACE_H
+#endif  // COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_INCLUDE_CLIENTENGINEINTERFACE_H_
diff --git a/computepipe/runner/client_interface/include/ClientInterface.h b/computepipe/runner/client_interface/include/ClientInterface.h
index b84e264..617b004 100644
--- a/computepipe/runner/client_interface/include/ClientInterface.h
+++ b/computepipe/runner/client_interface/include/ClientInterface.h
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_H
-#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_H
+#ifndef COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_INCLUDE_CLIENTINTERFACE_H_
+#define COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_INCLUDE_CLIENTINTERFACE_H_
 
 #include <memory>
 
@@ -45,6 +45,11 @@
      * external clients
      */
     virtual Status activate() = 0;
+
+    /*
+     *
+     */
+    virtual Status deliverGraphDebugInfo(const std::string& debugData) = 0;
     virtual ~ClientInterface() = default;
 };
 
@@ -64,4 +69,4 @@
 }  // namespace automotive
 }  // namespace android
 
-#endif
+#endif  // COMPUTEPIPE_RUNNER_CLIENT_INTERFACE_INCLUDE_CLIENTINTERFACE_H_
diff --git a/computepipe/runner/engine/Android.bp b/computepipe/runner/engine/Android.bp
index 4980afe..8e5c21a 100644
--- a/computepipe/runner/engine/Android.bp
+++ b/computepipe/runner/engine/Android.bp
@@ -16,8 +16,8 @@
     name: "computepipe_runner_engine",
     srcs: [
         "ConfigBuilder.cpp",
-	"DefaultEngine.cpp",
-	"Factory.cpp",
+        "DefaultEngine.cpp",
+        "Factory.cpp",
     ],
     export_include_dirs: ["include"],
     header_libs: [
diff --git a/computepipe/runner/engine/ConfigBuilder.cpp b/computepipe/runner/engine/ConfigBuilder.cpp
index a47b588..c4995e2 100644
--- a/computepipe/runner/engine/ConfigBuilder.cpp
+++ b/computepipe/runner/engine/ConfigBuilder.cpp
@@ -57,8 +57,14 @@
     return *this;
 }
 
+ConfigBuilder& ConfigBuilder::updateProfilingType(proto::ProfilingType profilingType) {
+    mProfilingType = profilingType;
+    return *this;
+}
+
 ClientConfig ConfigBuilder::emitClientOptions() {
-    return ClientConfig(mInputConfigId, mOffloadId, mTerminationId, mOutputConfig, mOptionalConfig);
+    return ClientConfig(mInputConfigId, mOffloadId, mTerminationId, mOutputConfig, mProfilingType,
+            mOptionalConfig);
 }
 
 ConfigBuilder& ConfigBuilder::reset() {
@@ -66,6 +72,7 @@
     mTerminationId = ClientConfig::kInvalidId;
     mOffloadId = ClientConfig::kInvalidId;
     mOutputConfig.clear();
+    mProfilingType = proto::ProfilingType::DISABLED;
     if (mDisplayStream != ClientConfig::kInvalidId) {
         mOutputConfig.emplace(mDisplayStream, 1);
     }
diff --git a/computepipe/runner/engine/ConfigBuilder.h b/computepipe/runner/engine/ConfigBuilder.h
index 35442ad..b45ba8d 100644
--- a/computepipe/runner/engine/ConfigBuilder.h
+++ b/computepipe/runner/engine/ConfigBuilder.h
@@ -12,8 +12,10 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_CONFIG_BUILDER_H
-#define COMPUTEPIPE_RUNNER_CONFIG_BUILDER_H
+#ifndef COMPUTEPIPE_RUNNER_ENGINE_CONFIGBUILDER_H_
+#define COMPUTEPIPE_RUNNER_ENGINE_CONFIGBUILDER_H_
+
+#include "ProfilingType.pb.h"
 
 #include "RunnerComponent.h"
 #include "types/Status.h"
@@ -55,6 +57,10 @@
      */
     ConfigBuilder& updateOptionalConfig(std::string options);
     /**
+     * Update profiling Config
+     */
+    ConfigBuilder& updateProfilingType(proto::ProfilingType profilingType);
+    /**
      * Emit Options
      */
     ClientConfig emitClientOptions();
@@ -68,6 +74,7 @@
     int mInputConfigId = ClientConfig::kInvalidId;
     int mOffloadId = ClientConfig::kInvalidId;
     int mTerminationId = ClientConfig::kInvalidId;
+    proto::ProfilingType mProfilingType = proto::ProfilingType::DISABLED;
     bool mConfigHasDisplayStream = false;
     std::map<int, int> mOutputConfig;
     std::string mOptionalConfig;
@@ -79,4 +86,4 @@
 }  // namespace automotive
 }  // namespace android
 
-#endif
+#endif  // COMPUTEPIPE_RUNNER_ENGINE_CONFIGBUILDER_H_
diff --git a/computepipe/runner/engine/DefaultEngine.cpp b/computepipe/runner/engine/DefaultEngine.cpp
index 3f33cc4..f10f74a 100644
--- a/computepipe/runner/engine/DefaultEngine.cpp
+++ b/computepipe/runner/engine/DefaultEngine.cpp
@@ -57,6 +57,9 @@
 void DefaultEngine::setPrebuiltGraph(std::unique_ptr<PrebuiltGraph>&& graph) {
     mGraph = std::move(graph);
     mGraphDescriptor = mGraph->GetSupportedGraphConfigs();
+    if (mGraph->GetGraphType() == graph::PrebuiltGraphType::REMOTE) {
+        mIgnoreInputManager = true;
+    }
 }
 
 Status DefaultEngine::setArgs(std::string engine_args) {
@@ -100,6 +103,9 @@
     } else if (command.has_set_offload_offload()) {
         mConfigBuilder =
             mConfigBuilder.updateOffloadOption(command.set_offload_offload().offload_option_id());
+    } else if (command.has_set_profile_options()) {
+        mConfigBuilder =
+            mConfigBuilder.updateProfilingType(command.set_profile_options().profile_type());
     } else {
         return SUCCESS;
     }
@@ -146,6 +152,41 @@
         mWakeLooper.notify_all();
         return Status::SUCCESS;
     }
+    if (command.has_reset_configs()) {
+        if (mCurrentPhase != kConfigPhase) {
+            return Status::ILLEGAL_STATE;
+        }
+        queueCommand("ClientInterface", EngineCommand::Type::RESET_CONFIG);
+        return Status::SUCCESS;
+    }
+    if (command.has_start_pipe_profile()) {
+        if (mCurrentPhase != kRunPhase) {
+            return Status::ILLEGAL_STATE;
+        }
+        if (mGraph) {
+            return mGraph->StartGraphProfiling();
+        }
+        return Status::SUCCESS;
+    }
+    if (command.has_stop_pipe_profile()) {
+        if (mCurrentPhase != kRunPhase) {
+            return Status::SUCCESS;
+        }
+        if (mGraph) {
+            return mGraph->StopGraphProfiling();
+        }
+        return Status::SUCCESS;
+    }
+    if (command.has_release_debugger()) {
+        if (mCurrentPhase != kConfigPhase && mCurrentPhase != kResetPhase) {
+            return Status::ILLEGAL_STATE;
+        }
+        queueCommand("ClientInterface", EngineCommand::Type::RELEASE_DEBUGGER);
+    }
+    if (command.has_read_debug_data()) {
+        queueCommand("ClientInterface", EngineCommand::Type::READ_PROFILING);
+        return Status::SUCCESS;
+    }
     return Status::SUCCESS;
 }
 
@@ -172,7 +213,8 @@
 }
 
 void DefaultEngine::DispatchSerializedData(int streamId, int64_t timestamp, std::string&& output) {
-    LOG(DEBUG) << "Engine::Received data for stream  " << streamId << " with timestamp " << timestamp;
+    LOG(DEBUG) << "Engine::Received data for stream  " << streamId << " with timestamp "
+            << timestamp;
     if (mStreamManagers.find(streamId) == mStreamManagers.end()) {
         LOG(ERROR) << "Engine::Received bad stream id from prebuilt graph";
         return;
@@ -519,8 +561,7 @@
     if (mConfigBuilder.clientConfigEnablesDisplayStream()) {
         if (mStreamManagers.find(streamId) == mStreamManagers.end()) {
             displayMgrPacket = nullptr;
-        }
-        else {
+        } else {
             displayMgrPacket = mStreamManagers[streamId]->clonePacket(dataHandle);
         }
         Status status = mClient->dispatchPacketToClient(streamId, dataHandle);
@@ -595,34 +636,62 @@
         mCommandQueue.pop();
         switch (ec.cmdType) {
             case EngineCommand::Type::BROADCAST_CONFIG:
-                LOG(INFO) << "Engine::Received broacast config request";
+                LOG(INFO) << "Engine::Received broadcast config request";
                 (void)broadcastClientConfig();
                 break;
             case EngineCommand::Type::BROADCAST_START_RUN:
-                LOG(INFO) << "Engine::Received broacast run request";
+                LOG(INFO) << "Engine::Received broadcast run request";
                 (void)broadcastStartRun();
                 break;
             case EngineCommand::Type::BROADCAST_INITIATE_STOP:
                 if (ec.source.find("ClientInterface") != std::string::npos) {
                     mStopFromClient = true;
                 }
-                LOG(INFO) << "Engine::Received broacast stop with flush request";
+                LOG(INFO) << "Engine::Received broadcast stop with flush request";
                 broadcastStopWithFlush();
                 break;
             case EngineCommand::Type::POLL_COMPLETE:
                 LOG(INFO) << "Engine::Received Poll stream managers for completion request";
-                int id = getStreamIdFromSource(ec.source);
-                bool all_done = true;
-                for (auto& it : mStreamManagers) {
-                    if (it.first == id) {
-                        continue;
+                {
+                    int id = getStreamIdFromSource(ec.source);
+                    bool all_done = true;
+                    for (auto& it : mStreamManagers) {
+                        if (it.first == id) {
+                            continue;
+                        }
+                        if (it.second->getState() != StreamManager::State::STOPPED) {
+                            all_done = false;
+                        }
                     }
-                    if (it.second->getState() != StreamManager::State::STOPPED) {
-                        all_done = false;
+                    if (all_done) {
+                        broadcastStopComplete();
                     }
                 }
-                if (all_done) {
-                    broadcastStopComplete();
+                break;
+            case EngineCommand::Type::RESET_CONFIG:
+                (void)broadcastReset();
+                break;
+            case EngineCommand::Type::RELEASE_DEBUGGER:
+                {
+                    // broadcastReset() resets the previous copy, so save a copy of the old config.
+                    ConfigBuilder previousConfig = mConfigBuilder;
+                    (void)broadcastReset();
+                    mConfigBuilder =
+                            previousConfig.updateProfilingType(proto::ProfilingType::DISABLED);
+                    (void)broadcastClientConfig();
+                }
+                break;
+            case EngineCommand::Type::READ_PROFILING:
+                std::string debugData;
+                if (mGraph && (mCurrentPhase == kConfigPhase || mCurrentPhase == kRunPhase
+                                || mCurrentPhase == kStopPhase)) {
+                    debugData = mGraph->GetDebugInfo();
+                }
+                if (mClient) {
+                    Status status = mClient->deliverGraphDebugInfo(debugData);
+                    if (status != Status::SUCCESS) {
+                        LOG(ERROR) << "Failed to deliver graph debug info to client.";
+                    }
                 }
                 break;
         }
diff --git a/computepipe/runner/engine/DefaultEngine.h b/computepipe/runner/engine/DefaultEngine.h
index 3fc1d23..d4eaa5e 100644
--- a/computepipe/runner/engine/DefaultEngine.h
+++ b/computepipe/runner/engine/DefaultEngine.h
@@ -12,13 +12,14 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_ENGINE_DEFAULT_H
-#define COMPUTEPIPE_RUNNER_ENGINE_DEFAULT_H
+#ifndef COMPUTEPIPE_RUNNER_ENGINE_DEFAULTENGINE_H_
+#define COMPUTEPIPE_RUNNER_ENGINE_DEFAULTENGINE_H_
 
 #include <condition_variable>
 #include <functional>
 #include <mutex>
 #include <queue>
+#include <string>
 #include <thread>
 #include <vector>
 
@@ -48,6 +49,9 @@
         BROADCAST_START_RUN,
         BROADCAST_INITIATE_STOP,
         POLL_COMPLETE,
+        RESET_CONFIG,
+        RELEASE_DEBUGGER,
+        READ_PROFILING,
     };
     std::string source;
     Type cmdType;
@@ -328,4 +332,4 @@
 }  // namespace automotive
 }  // namespace android
 
-#endif
+#endif  // COMPUTEPIPE_RUNNER_ENGINE_DEFAULTENGINE_H_
diff --git a/computepipe/runner/graph/Android.bp b/computepipe/runner/graph/Android.bp
index 589c00f..614eabc 100644
--- a/computepipe/runner/graph/Android.bp
+++ b/computepipe/runner/graph/Android.bp
@@ -25,7 +25,41 @@
     export_include_dirs: ["include"],
     static_libs: [
         "computepipe_runner_component",
+    ],
+
+    header_libs: ["computepipe_runner_includes"],
+    include_dirs: [
+          "packages/services/Car/computepipe",
+          "packages/services/Car/computepipe/runner/graph",
+    ],
+
+    shared_libs: [
         "libcomputepipeprotos",
+        "libbase",
+        "libdl",
+        "liblog",
+        "libutils",
+    ],
+
+    srcs: [
+        "LocalPrebuiltGraph.cpp",
+    ],
+}
+
+cc_library {
+    name: "computepipe_grpc_graph",
+
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wextra",
+        "-Wno-unused-parameter",
+    ],
+
+    export_include_dirs: ["include"],
+    static_libs: [
+        "computepipe_runner_component",
+        "computepipe_grpc_graph_proto",
     ],
 
     header_libs: ["computepipe_runner_includes"],
@@ -36,13 +70,16 @@
 
     shared_libs: [
         "libbase",
+        "libcomputepipeprotos",
         "libdl",
+        "libgrpc++",
         "liblog",
         "libutils",
-        "libprotobuf-cpp-lite",
+        "libprotobuf-cpp-full",
     ],
 
     srcs: [
-        "PrebuiltGraph.cpp",
+        "GrpcGraph.cpp",
+        "StreamSetObserver.cpp",
     ],
 }
diff --git a/computepipe/runner/graph/GrpcGraph.cpp b/computepipe/runner/graph/GrpcGraph.cpp
new file mode 100644
index 0000000..6967230
--- /dev/null
+++ b/computepipe/runner/graph/GrpcGraph.cpp
@@ -0,0 +1,464 @@
+// Copyright (C) 2020 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.
+
+#include "GrpcGraph.h"
+
+#include <cstdlib>
+
+#include <android-base/logging.h>
+#include <grpcpp/grpcpp.h>
+
+#include "ClientConfig.pb.h"
+#include "GrpcGraph.h"
+#include "InputFrame.h"
+#include "RunnerComponent.h"
+#include "prebuilt_interface.h"
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+namespace {
+constexpr int64_t kRpcDeadlineMilliseconds = 100;
+
+template <class ResponseType, class RpcType>
+std::pair<Status, std::string> FinishRpcAndGetResult(
+        ::grpc::ClientAsyncResponseReader<RpcType>* rpc, ::grpc::CompletionQueue* cq,
+        ResponseType* response) {
+    int random_tag = rand();
+    ::grpc::Status grpcStatus;
+    rpc->Finish(response, &grpcStatus, reinterpret_cast<void*>(random_tag));
+    bool ok = false;
+    void* got_tag;
+    if (!cq->Next(&got_tag, &ok)) {
+        LOG(ERROR) << "Unexpected shutdown of the completion queue";
+        return std::pair(Status::FATAL_ERROR, "Unexpected shutdown of the completion queue");
+    }
+
+    if (!ok) {
+        LOG(ERROR) << "Unable to complete RPC request";
+        return std::pair(Status::FATAL_ERROR, "Unable to complete RPC request");
+    }
+
+    CHECK_EQ(got_tag, reinterpret_cast<void*>(random_tag));
+    if (!grpcStatus.ok()) {
+        std::string error_message =
+                std::string("Grpc failed with error: ") + grpcStatus.error_message();
+        LOG(ERROR) << error_message;
+        return std::pair(Status::FATAL_ERROR, std::move(error_message));
+    }
+
+    return std::pair(Status::SUCCESS, std::string(""));
+}
+
+}  // namespace
+
+PrebuiltGraphState GrpcGraph::GetGraphState() const {
+    std::lock_guard lock(mLock);
+    return mGraphState;
+}
+
+Status GrpcGraph::GetStatus() const {
+    std::lock_guard lock(mLock);
+    return mStatus;
+}
+
+std::string GrpcGraph::GetErrorMessage() const {
+    std::lock_guard lock(mLock);
+    return mErrorMessage;
+}
+
+Status GrpcGraph::initialize(const std::string& address,
+                             std::weak_ptr<PrebuiltEngineInterface> engineInterface) {
+    std::shared_ptr<::grpc::ChannelCredentials> creds = ::grpc::InsecureChannelCredentials();
+    std::shared_ptr<::grpc::Channel> channel = ::grpc::CreateChannel(address, creds);
+    mGraphStub = proto::GrpcGraphService::NewStub(channel);
+    mEngineInterface = engineInterface;
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+    ::grpc::CompletionQueue cq;
+
+    proto::GraphOptionsRequest getGraphOptionsRequest;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::GraphOptionsResponse>> rpc(
+            mGraphStub->AsyncGetGraphOptions(&context, getGraphOptionsRequest, &cq));
+
+    proto::GraphOptionsResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to get graph options: " << mErrorMessage;
+        return Status::FATAL_ERROR;
+    }
+
+    std::string serialized_options = response.serialized_options();
+    if (!mGraphConfig.ParseFromString(serialized_options)) {
+        mErrorMessage = "Failed to parse graph options";
+        LOG(ERROR) << "Failed to parse graph options";
+        return Status::FATAL_ERROR;
+    }
+
+    mGraphState = PrebuiltGraphState::STOPPED;
+    return Status::SUCCESS;
+}
+
+// Function to confirm that there would be no further changes to the graph configuration. This
+// needs to be called before starting the graph.
+Status GrpcGraph::handleConfigPhase(const runner::ClientConfig& e) {
+    std::lock_guard lock(mLock);
+    if (mGraphState == PrebuiltGraphState::UNINITIALIZED) {
+        mStatus = Status::ILLEGAL_STATE;
+        return Status::ILLEGAL_STATE;
+    }
+
+    // handleConfigPhase is a blocking call, so abort call is pointless for this RunnerEvent.
+    if (e.isAborted()) {
+        mStatus = Status::INVALID_ARGUMENT;
+        return mStatus;
+    } else if (e.isTransitionComplete()) {
+        mStatus = Status::SUCCESS;
+        return mStatus;
+    }
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+    ::grpc::CompletionQueue cq;
+
+    std::string serializedConfig = e.getSerializedClientConfig();
+    proto::SetGraphConfigRequest setGraphConfigRequest;
+    setGraphConfigRequest.set_serialized_config(std::move(serializedConfig));
+
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncSetGraphConfig(&context, setGraphConfigRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Rpc failed while trying to set configuration";
+        return mStatus;
+    }
+
+    if (response.code() != proto::RemoteGraphStatusCode::SUCCESS) {
+        LOG(ERROR) << "Failed to cofngure remote graph. " << response.message();
+    }
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+
+    mStreamSetObserver = std::make_unique<StreamSetObserver>(e, this);
+
+    return mStatus;
+}
+
+// Starts the graph.
+Status GrpcGraph::handleExecutionPhase(const runner::RunnerEvent& e) {
+    std::lock_guard lock(mLock);
+    if (mGraphState != PrebuiltGraphState::STOPPED) {
+        mStatus = Status::ILLEGAL_STATE;
+        return mStatus;
+    }
+
+    if (e.isAborted()) {
+        // Starting the graph is a blocking call and cannot be aborted in between.
+        mStatus = Status::INVALID_ARGUMENT;
+        return mStatus;
+    } else if (e.isTransitionComplete()) {
+        mStatus = Status::SUCCESS;
+        return mStatus;
+    }
+
+    // Start observing the output streams
+    mStatus = mStreamSetObserver->startObservingStreams();
+    if (mStatus != Status::SUCCESS) {
+        mErrorMessage = "Failed to observe output streams";
+        return mStatus;
+    }
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::StartGraphExecutionRequest startExecutionRequest;
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncStartGraphExecution(&context, startExecutionRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to start graph execution";
+        return mStatus;
+    }
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+
+    if (mStatus == Status::SUCCESS) {
+        mGraphState = PrebuiltGraphState::RUNNING;
+    }
+
+    return mStatus;
+}
+
+// Stops the graph while letting the graph flush output packets in flight.
+Status GrpcGraph::handleStopWithFlushPhase(const runner::RunnerEvent& e) {
+    std::lock_guard lock(mLock);
+    if (mGraphState != PrebuiltGraphState::RUNNING) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::StopGraphExecutionRequest stopExecutionRequest;
+    stopExecutionRequest.set_stop_immediate(false);
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncStopGraphExecution(&context, stopExecutionRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to stop graph execution";
+        return Status::FATAL_ERROR;
+    }
+
+    // Stop observing streams immendiately.
+    mStreamSetObserver->stopObservingStreams(false);
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+
+    if (mStatus == Status::SUCCESS) {
+        mGraphState = PrebuiltGraphState::FLUSHING;
+    }
+
+    return mStatus;
+}
+
+// Stops the graph and cancels all the output packets.
+Status GrpcGraph::handleStopImmediatePhase(const runner::RunnerEvent& e) {
+    std::lock_guard lock(mLock);
+    if (mGraphState != PrebuiltGraphState::RUNNING) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::StopGraphExecutionRequest stopExecutionRequest;
+    stopExecutionRequest.set_stop_immediate(true);
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncStopGraphExecution(&context, stopExecutionRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to stop graph execution";
+        return Status::FATAL_ERROR;
+    }
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+
+    // Stop observing streams immendiately.
+    mStreamSetObserver->stopObservingStreams(true);
+
+    if (mStatus == Status::SUCCESS) {
+        mGraphState = PrebuiltGraphState::STOPPED;
+    }
+    return mStatus;
+}
+
+Status GrpcGraph::handleResetPhase(const runner::RunnerEvent& e) {
+    std::lock_guard lock(mLock);
+    if (mGraphState != PrebuiltGraphState::STOPPED) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::ResetGraphRequest resetGraphRequest;
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncResetGraph(&context, resetGraphRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to stop graph execution";
+        return Status::FATAL_ERROR;
+    }
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+    mStreamSetObserver.reset();
+
+    return mStatus;
+}
+
+Status GrpcGraph::SetInputStreamData(int /*streamIndex*/, int64_t /*timestamp*/,
+                                     const std::string& /*streamData*/) {
+    LOG(ERROR) << "Cannot set input stream for remote graphs";
+    return Status::FATAL_ERROR;
+}
+
+Status GrpcGraph::SetInputStreamPixelData(int /*streamIndex*/, int64_t /*timestamp*/,
+                                          const runner::InputFrame& /*inputFrame*/) {
+    LOG(ERROR) << "Cannot set input streams for remote graphs";
+    return Status::FATAL_ERROR;
+}
+
+Status GrpcGraph::StartGraphProfiling() {
+    std::lock_guard lock(mLock);
+    if (mGraphState != PrebuiltGraphState::RUNNING) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::StartGraphProfilingRequest startProfilingRequest;
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncStartGraphProfiling(&context, startProfilingRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to start graph profiling";
+        return Status::FATAL_ERROR;
+    }
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+
+    return mStatus;
+}
+
+Status GrpcGraph::StopGraphProfiling() {
+    // Stopping profiling after graph has already stopped can be a no-op
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::StopGraphProfilingRequest stopProfilingRequest;
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::StatusResponse>> rpc(
+            mGraphStub->AsyncStopGraphProfiling(&context, stopProfilingRequest, &cq));
+
+    proto::StatusResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to stop graph profiling";
+        return Status::FATAL_ERROR;
+    }
+
+    mStatus = static_cast<Status>(static_cast<int>(response.code()));
+    mErrorMessage = response.message();
+
+    return mStatus;
+}
+
+std::string GrpcGraph::GetDebugInfo() {
+    ::grpc::ClientContext context;
+    context.set_deadline(std::chrono::system_clock::now() +
+                         std::chrono::milliseconds(kRpcDeadlineMilliseconds));
+
+    proto::ProfilingDataRequest profilingDataRequest;
+    ::grpc::CompletionQueue cq;
+    std::unique_ptr<::grpc::ClientAsyncResponseReader<proto::ProfilingDataResponse>> rpc(
+            mGraphStub->AsyncGetProfilingData(&context, profilingDataRequest, &cq));
+
+    proto::ProfilingDataResponse response;
+    auto [mStatus, mErrorMessage] = FinishRpcAndGetResult(rpc.get(), &cq, &response);
+    if (mStatus != Status::SUCCESS) {
+        LOG(ERROR) << "Failed to get profiling info";
+        return "";
+    }
+
+    return response.data();
+}
+
+void GrpcGraph::dispatchPixelData(int streamId, int64_t timestamp_us,
+                                  const runner::InputFrame& frame) {
+    std::shared_ptr<PrebuiltEngineInterface> engineInterface = mEngineInterface.lock();
+    if (engineInterface) {
+        return engineInterface->DispatchPixelData(streamId, timestamp_us, frame);
+    }
+}
+
+void GrpcGraph::dispatchSerializedData(int streamId, int64_t timestamp_us,
+                                       std::string&& serialized_data) {
+    std::shared_ptr<PrebuiltEngineInterface> engineInterface = mEngineInterface.lock();
+    if (engineInterface) {
+        return engineInterface->DispatchSerializedData(streamId, timestamp_us,
+                                                       std::move(serialized_data));
+    }
+}
+
+void GrpcGraph::dispatchGraphTerminationMessage(Status status, std::string&& errorMessage) {
+    std::lock_guard lock(mLock);
+    mErrorMessage = std::move(errorMessage);
+    mStatus = status;
+    mGraphState = PrebuiltGraphState::STOPPED;
+    std::shared_ptr<PrebuiltEngineInterface> engineInterface = mEngineInterface.lock();
+    if (engineInterface) {
+        std::string errorMessageTmp = mErrorMessage;
+        engineInterface->DispatchGraphTerminationMessage(mStatus, std::move(errorMessageTmp));
+    }
+}
+
+std::unique_ptr<PrebuiltGraph> GetRemoteGraphFromAddress(
+        const std::string& address, std::weak_ptr<PrebuiltEngineInterface> engineInterface) {
+    auto prebuiltGraph = std::make_unique<GrpcGraph>();
+    Status status = prebuiltGraph->initialize(address, engineInterface);
+    if (status != Status::SUCCESS) {
+        return nullptr;
+    }
+
+    return prebuiltGraph;
+}
+
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
diff --git a/computepipe/runner/graph/GrpcGraph.h b/computepipe/runner/graph/GrpcGraph.h
new file mode 100644
index 0000000..d833dd2
--- /dev/null
+++ b/computepipe/runner/graph/GrpcGraph.h
@@ -0,0 +1,134 @@
+// Copyright (C) 2020 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.
+
+#ifndef COMPUTEPIPE_RUNNER_GRAPH_INCLUDE_LOCALPREBUILTGRAPH_H
+#define COMPUTEPIPE_RUNNER_GRAPH_INCLUDE_LOCALPREBUILTGRAPH_H
+
+#include <condition_variable>
+#include <functional>
+#include <map>
+#include <memory>
+#include <shared_mutex>
+#include <string>
+#include <thread>
+
+#include "ClientConfig.pb.h"
+#include "GrpcPrebuiltGraphService.grpc.pb.h"
+#include "GrpcPrebuiltGraphService.pb.h"
+#include "InputFrame.h"
+#include "Options.pb.h"
+#include "OutputConfig.pb.h"
+#include "PrebuiltEngineInterface.h"
+#include "PrebuiltGraph.h"
+#include "RunnerComponent.h"
+#include "StreamSetObserver.h"
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+
+class GrpcGraph : public PrebuiltGraph, public StreamGraphInterface {
+
+  public:
+    GrpcGraph() {}
+
+    virtual ~GrpcGraph() {}
+
+    Status initialize(const std::string& address,
+                      std::weak_ptr<PrebuiltEngineInterface> engineInterface);
+
+    // No copy or move constructors or operators are available.
+    GrpcGraph(const GrpcGraph&) = delete;
+    GrpcGraph& operator=(const GrpcGraph&) = delete;
+
+    // Override RunnerComponent interface functions for applying configs,
+    // starting the graph and stopping the graph.
+    Status handleConfigPhase(const runner::ClientConfig& e) override;
+    Status handleExecutionPhase(const runner::RunnerEvent& e) override;
+    Status handleStopWithFlushPhase(const runner::RunnerEvent& e) override;
+    Status handleStopImmediatePhase(const runner::RunnerEvent& e) override;
+    Status handleResetPhase(const runner::RunnerEvent& e) override;
+
+    PrebuiltGraphType GetGraphType() const override {
+        return PrebuiltGraphType::REMOTE;
+    }
+
+    PrebuiltGraphState GetGraphState() const override;
+    Status GetStatus() const override;
+    std::string GetErrorMessage() const override;
+
+    // Gets the supported graph config options.
+    const proto::Options& GetSupportedGraphConfigs() const override {
+        return mGraphConfig;
+    }
+
+    // Sets input stream data. The string is expected to be a serialized proto
+    // the definition of which is known to the graph.
+    Status SetInputStreamData(int streamIndex, int64_t timestamp,
+                              const std::string& streamData) override;
+
+    // Sets pixel data to the specified input stream index.
+    Status SetInputStreamPixelData(int streamIndex, int64_t timestamp,
+                                   const runner::InputFrame& inputFrame) override;
+
+    // Starts graph profiling at some point after starting the graph with profiling enabled.
+    Status StartGraphProfiling() override;
+
+    // Stops graph profiling.
+    Status StopGraphProfiling() override;
+
+    // Collects debugging and profiling information for the graph. The graph
+    // needs to be started with debugging enabled in order to get valid info.
+    std::string GetDebugInfo() override;
+
+    // Stream Graph interface
+    proto::GrpcGraphService::Stub* getServiceStub() override {
+        return mGraphStub.get();
+    }
+
+    void dispatchPixelData(int streamId, int64_t timestamp_us,
+                           const runner::InputFrame& frame) override;
+
+    void dispatchSerializedData(int streamId, int64_t timestamp_us,
+                                std::string&& serialized_data) override;
+
+    void dispatchGraphTerminationMessage(Status, std::string&&) override;
+  private:
+    mutable std::mutex mLock;
+
+    PrebuiltGraphState mGraphState = PrebuiltGraphState::UNINITIALIZED;
+
+    Status mStatus = Status::SUCCESS;
+
+    std::string mErrorMessage = "";
+
+    // Cached callback interface that is passed in from the runner.
+    std::weak_ptr<PrebuiltEngineInterface> mEngineInterface;
+
+    // Cached graph config.
+    proto::Options mGraphConfig;
+
+    std::unique_ptr<proto::GrpcGraphService::Stub> mGraphStub;
+
+    std::unique_ptr<StreamSetObserver> mStreamSetObserver;
+};
+
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
+
+#endif  // #define COMPUTEPIPE_RUNNER_GRAPH_INCLUDE_LOCALPREBUILTGRAPH_H
diff --git a/computepipe/runner/graph/LocalPrebuiltGraph.cpp b/computepipe/runner/graph/LocalPrebuiltGraph.cpp
new file mode 100644
index 0000000..ae4cc8c
--- /dev/null
+++ b/computepipe/runner/graph/LocalPrebuiltGraph.cpp
@@ -0,0 +1,419 @@
+// Copyright (C) 2020 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.
+
+#include "LocalPrebuiltGraph.h"
+
+#include <android-base/logging.h>
+#include <dlfcn.h>
+
+#include <functional>
+#include <iostream>
+#include <mutex>
+#include <shared_mutex>
+#include <string>
+#include <vector>
+
+#include "ClientConfig.pb.h"
+#include "InputFrame.h"
+#include "PrebuiltGraph.h"
+#include "RunnerComponent.h"
+#include "prebuilt_interface.h"
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+
+#define LOAD_FUNCTION(name)                                                        \
+    {                                                                              \
+        std::string func_name = std::string("PrebuiltComputepipeRunner_") + #name; \
+        mPrebuiltGraphInstance->mFn##name =                                        \
+                dlsym(mPrebuiltGraphInstance->mHandle, func_name.c_str());         \
+        if (mPrebuiltGraphInstance->mFn##name == nullptr) {                        \
+            initialized = false;                                                   \
+            LOG(ERROR) << std::string(dlerror()) << std::endl;                     \
+        }                                                                          \
+    }
+
+std::mutex LocalPrebuiltGraph::mCreationMutex;
+LocalPrebuiltGraph* LocalPrebuiltGraph::mPrebuiltGraphInstance = nullptr;
+
+// Function to confirm that there would be no further changes to the graph configuration. This
+// needs to be called before starting the graph.
+Status LocalPrebuiltGraph::handleConfigPhase(const runner::ClientConfig& e) {
+    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    // handleConfigPhase is a blocking call, so abort call is pointless for this RunnerEvent.
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    std::string config = e.getSerializedClientConfig();
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(const unsigned char*,
+                                                            size_t))mFnUpdateGraphConfig;
+    PrebuiltComputepipeRunner_ErrorCode errorCode =
+            mappedFn(reinterpret_cast<const unsigned char*>(config.c_str()), config.length());
+    if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+        return static_cast<Status>(static_cast<int>(errorCode));
+    }
+
+    // Set the pixel stream callback function. The same function will be called for all requested
+    // pixel output streams.
+    if (mEngineInterface.lock() != nullptr) {
+        auto pixelCallbackFn = (PrebuiltComputepipeRunner_ErrorCode(*)(
+                void (*)(void* cookie, int, int64_t, const uint8_t* pixels, int width, int height,
+                         int step, int format)))mFnSetOutputPixelStreamCallback;
+        PrebuiltComputepipeRunner_ErrorCode errorCode =
+                pixelCallbackFn(LocalPrebuiltGraph::OutputPixelStreamCallbackFunction);
+        if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+            return static_cast<Status>(static_cast<int>(errorCode));
+        }
+
+        // Set the serialized stream callback function. The same callback function will be invoked
+        // for all requested serialized output streams.
+        auto streamCallbackFn = (PrebuiltComputepipeRunner_ErrorCode(*)(
+                void (*)(void* cookie, int, int64_t, const unsigned char*,
+                         size_t)))mFnSetOutputStreamCallback;
+        errorCode = streamCallbackFn(LocalPrebuiltGraph::OutputStreamCallbackFunction);
+        if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+            return static_cast<Status>(static_cast<int>(errorCode));
+        }
+
+        // Set the callback function for when the graph terminates.
+        auto terminationCallback = (PrebuiltComputepipeRunner_ErrorCode(*)(
+                void (*)(void* cookie, const unsigned char*,
+                         size_t)))mFnSetGraphTerminationCallback;
+        errorCode = terminationCallback(LocalPrebuiltGraph::GraphTerminationCallbackFunction);
+        if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+            return static_cast<Status>(static_cast<int>(errorCode));
+        }
+    }
+
+    return Status::SUCCESS;
+}
+
+// Starts the graph.
+Status LocalPrebuiltGraph::handleExecutionPhase(const runner::RunnerEvent& e) {
+    if (mGraphState.load() != PrebuiltGraphState::STOPPED) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        // Starting the graph is a blocking call and cannot be aborted in between.
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(void*))mFnStartGraphExecution;
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(reinterpret_cast<void*>(this));
+    if (errorCode == PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+        mGraphState.store(PrebuiltGraphState::RUNNING);
+    }
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+// Stops the graph while letting the graph flush output packets in flight.
+Status LocalPrebuiltGraph::handleStopWithFlushPhase(const runner::RunnerEvent& e) {
+    if (mGraphState.load() != PrebuiltGraphState::RUNNING) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    return StopGraphExecution(/* flushOutputFrames = */ true);
+}
+
+// Stops the graph and cancels all the output packets.
+Status LocalPrebuiltGraph::handleStopImmediatePhase(const runner::RunnerEvent& e) {
+    if (mGraphState.load() != PrebuiltGraphState::RUNNING) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    return StopGraphExecution(/* flushOutputFrames = */ false);
+}
+
+Status LocalPrebuiltGraph::handleResetPhase(const runner::RunnerEvent& e) {
+    if (mGraphState.load() != PrebuiltGraphState::STOPPED) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    if (e.isAborted()) {
+        return Status::INVALID_ARGUMENT;
+    } else if (e.isTransitionComplete()) {
+        return Status::SUCCESS;
+    }
+
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)())mFnResetGraph;
+    mappedFn();
+    return Status::SUCCESS;
+}
+
+LocalPrebuiltGraph* LocalPrebuiltGraph::GetPrebuiltGraphFromLibrary(
+        const std::string& prebuilt_library,
+        std::weak_ptr<PrebuiltEngineInterface> engineInterface) {
+    std::unique_lock<std::mutex> lock(LocalPrebuiltGraph::mCreationMutex);
+    if (mPrebuiltGraphInstance != nullptr) {
+        mPrebuiltGraphInstance = new LocalPrebuiltGraph();
+    }
+    if (mPrebuiltGraphInstance->mGraphState.load() != PrebuiltGraphState::UNINITIALIZED) {
+        return mPrebuiltGraphInstance;
+    }
+    mPrebuiltGraphInstance->mHandle = dlopen(prebuilt_library.c_str(), RTLD_NOW);
+
+    if (mPrebuiltGraphInstance->mHandle) {
+        bool initialized = true;
+
+        // Load config and version number first.
+        const unsigned char* (*getVersionFn)() =
+                (const unsigned char* (*)())dlsym(mPrebuiltGraphInstance->mHandle,
+                                                  "PrebuiltComputepipeRunner_GetVersion");
+        if (getVersionFn != nullptr) {
+            mPrebuiltGraphInstance->mGraphVersion =
+                    std::string(reinterpret_cast<const char*>(getVersionFn()));
+        } else {
+            LOG(ERROR) << std::string(dlerror());
+            initialized = false;
+        }
+
+        void (*getSupportedGraphConfigsFn)(const void**, size_t*) =
+                (void (*)(const void**,
+                          size_t*))dlsym(mPrebuiltGraphInstance->mHandle,
+                                         "PrebuiltComputepipeRunner_GetSupportedGraphConfigs");
+        if (getSupportedGraphConfigsFn != nullptr) {
+            size_t graphConfigSize;
+            const void* graphConfig;
+
+            getSupportedGraphConfigsFn(&graphConfig, &graphConfigSize);
+
+            if (graphConfigSize > 0) {
+                initialized &= mPrebuiltGraphInstance->mGraphConfig.ParseFromString(
+                        std::string(reinterpret_cast<const char*>(graphConfig), graphConfigSize));
+            }
+        } else {
+            LOG(ERROR) << std::string(dlerror());
+            initialized = false;
+        }
+
+        // Null callback interface is not acceptable.
+        if (initialized && engineInterface.lock() == nullptr) {
+            initialized = false;
+        }
+
+        LOAD_FUNCTION(GetErrorCode);
+        LOAD_FUNCTION(GetErrorMessage);
+        LOAD_FUNCTION(ResetGraph);
+        LOAD_FUNCTION(UpdateGraphConfig);
+        LOAD_FUNCTION(SetInputStreamData);
+        LOAD_FUNCTION(SetInputStreamPixelData);
+        LOAD_FUNCTION(SetOutputStreamCallback);
+        LOAD_FUNCTION(SetOutputPixelStreamCallback);
+        LOAD_FUNCTION(SetGraphTerminationCallback);
+        LOAD_FUNCTION(StartGraphExecution);
+        LOAD_FUNCTION(StopGraphExecution);
+        LOAD_FUNCTION(StartGraphProfiling);
+        LOAD_FUNCTION(StopGraphProfiling);
+        LOAD_FUNCTION(GetDebugInfo);
+
+        // This is the only way to create this object and there is already a
+        // lock around object creation, so no need to hold the graphState lock
+        // here.
+        if (initialized) {
+            mPrebuiltGraphInstance->mGraphState.store(PrebuiltGraphState::STOPPED);
+            mPrebuiltGraphInstance->mEngineInterface = engineInterface;
+        }
+    }
+
+    return mPrebuiltGraphInstance;
+}
+
+LocalPrebuiltGraph::~LocalPrebuiltGraph() {
+    if (mHandle) {
+        dlclose(mHandle);
+    }
+}
+
+Status LocalPrebuiltGraph::GetStatus() const {
+    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)())mFnGetErrorCode;
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn();
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+std::string LocalPrebuiltGraph::GetErrorMessage() const {
+    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
+        return "Graph has not been initialized";
+    }
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(unsigned char*, size_t,
+                                                            size_t*))mFnGetErrorMessage;
+    size_t errorMessageSize = 0;
+
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(nullptr, 0, &errorMessageSize);
+    std::vector<unsigned char> errorMessage(errorMessageSize);
+
+    errorCode = mappedFn(&errorMessage[0], errorMessage.size(), &errorMessageSize);
+    if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+        return "Unable to get error message from the graph.";
+    }
+
+    return std::string(reinterpret_cast<char*>(&errorMessage[0]),
+                       reinterpret_cast<char*>(&errorMessage[0]) + errorMessage.size());
+}
+
+Status LocalPrebuiltGraph::SetInputStreamData(int streamIndex, int64_t timestamp,
+                                              const std::string& streamData) {
+    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
+        return Status::ILLEGAL_STATE;
+    }
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(int, int64_t, const unsigned char*,
+                                                            size_t))mFnSetInputStreamData;
+    PrebuiltComputepipeRunner_ErrorCode errorCode =
+            mappedFn(streamIndex, timestamp,
+                     reinterpret_cast<const unsigned char*>(streamData.c_str()),
+                     streamData.length());
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+Status LocalPrebuiltGraph::SetInputStreamPixelData(int streamIndex, int64_t timestamp,
+                                                   const runner::InputFrame& inputFrame) {
+    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
+        return Status::ILLEGAL_STATE;
+    }
+
+    auto mappedFn =
+            (PrebuiltComputepipeRunner_ErrorCode(*)(int, int64_t, const uint8_t*, int, int, int,
+                                                    PrebuiltComputepipeRunner_PixelDataFormat))
+                    mFnSetInputStreamPixelData;
+    PrebuiltComputepipeRunner_ErrorCode errorCode =
+            mappedFn(streamIndex, timestamp, inputFrame.getFramePtr(),
+                     inputFrame.getFrameInfo().width, inputFrame.getFrameInfo().height,
+                     inputFrame.getFrameInfo().stride,
+                     static_cast<PrebuiltComputepipeRunner_PixelDataFormat>(
+                             static_cast<int>(inputFrame.getFrameInfo().format)));
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+Status LocalPrebuiltGraph::StopGraphExecution(bool flushOutputFrames) {
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(bool))mFnStopGraphExecution;
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(flushOutputFrames);
+    if (errorCode == PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+        mGraphState.store(flushOutputFrames ? PrebuiltGraphState::FLUSHING
+                                            : PrebuiltGraphState::STOPPED);
+    }
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+Status LocalPrebuiltGraph::StartGraphProfiling() {
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)())mFnStartGraphProfiling;
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn();
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+Status LocalPrebuiltGraph::StopGraphProfiling() {
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)())mFnStopGraphProfiling;
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn();
+    return static_cast<Status>(static_cast<int>(errorCode));
+}
+
+std::string LocalPrebuiltGraph::GetDebugInfo() {
+    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
+        return "";
+    }
+    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(unsigned char*, size_t,
+                                                            size_t*))mFnGetDebugInfo;
+
+    size_t debugInfoSize = 0;
+    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(nullptr, 0, &debugInfoSize);
+    std::vector<unsigned char> debugInfo(debugInfoSize);
+
+    errorCode = mappedFn(&debugInfo[0], debugInfo.size(), &debugInfoSize);
+    if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
+        return "";
+    }
+
+    return std::string(reinterpret_cast<char*>(&debugInfo[0]),
+                       reinterpret_cast<char*>(&debugInfo[0]) + debugInfo.size());
+}
+
+void LocalPrebuiltGraph::OutputStreamCallbackFunction(void* cookie, int streamIndex,
+                                                      int64_t timestamp, const unsigned char* data,
+                                                      size_t data_size) {
+    LocalPrebuiltGraph* graph = reinterpret_cast<LocalPrebuiltGraph*>(cookie);
+    CHECK(graph);
+    std::shared_ptr<PrebuiltEngineInterface> engineInterface = graph->mEngineInterface.lock();
+    if (engineInterface != nullptr) {
+        engineInterface->DispatchSerializedData(streamIndex, timestamp,
+                                                std::string(data, data + data_size));
+    }
+}
+
+void LocalPrebuiltGraph::OutputPixelStreamCallbackFunction(void* cookie, int streamIndex,
+                                                           int64_t timestamp, const uint8_t* pixels,
+                                                           int width, int height, int step,
+                                                           int format) {
+    LocalPrebuiltGraph* graph = reinterpret_cast<LocalPrebuiltGraph*>(cookie);
+    CHECK(graph);
+    std::shared_ptr<PrebuiltEngineInterface> engineInterface = graph->mEngineInterface.lock();
+
+    if (engineInterface) {
+        runner::InputFrame frame(height, width, static_cast<PixelFormat>(format), step, pixels);
+        engineInterface->DispatchPixelData(streamIndex, timestamp, frame);
+    }
+}
+
+void LocalPrebuiltGraph::GraphTerminationCallbackFunction(void* cookie,
+                                                          const unsigned char* termination_message,
+                                                          size_t termination_message_size) {
+    LocalPrebuiltGraph* graph = reinterpret_cast<LocalPrebuiltGraph*>(cookie);
+    CHECK(graph);
+    std::shared_ptr<PrebuiltEngineInterface> engineInterface = graph->mEngineInterface.lock();
+
+    if (engineInterface) {
+        std::string errorMessage = "";
+        if (termination_message != nullptr && termination_message_size > 0) {
+            std::string(termination_message, termination_message + termination_message_size);
+        }
+        graph->mGraphState.store(PrebuiltGraphState::STOPPED);
+        engineInterface->DispatchGraphTerminationMessage(graph->GetStatus(),
+                                                         std::move(errorMessage));
+    }
+}
+
+PrebuiltGraph* GetLocalGraphFromLibrary(const std::string& prebuilt_library,
+                                        std::weak_ptr<PrebuiltEngineInterface> engineInterface) {
+    return LocalPrebuiltGraph::GetPrebuiltGraphFromLibrary(prebuilt_library, engineInterface);
+}
+
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
diff --git a/computepipe/runner/graph/LocalPrebuiltGraph.h b/computepipe/runner/graph/LocalPrebuiltGraph.h
new file mode 100644
index 0000000..4a59037
--- /dev/null
+++ b/computepipe/runner/graph/LocalPrebuiltGraph.h
@@ -0,0 +1,155 @@
+// Copyright (C) 2020 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.
+
+#ifndef COMPUTEPIPE_RUNNER_GRAPH_GRPC_GRAPH_H
+#define COMPUTEPIPE_RUNNER_GRAPH_GRPC_GRAPH_H
+
+#include <functional>
+#include <shared_mutex>
+#include <string>
+
+#include "ClientConfig.pb.h"
+#include "InputFrame.h"
+#include "Options.pb.h"
+#include "PrebuiltEngineInterface.h"
+#include "PrebuiltGraph.h"
+#include "RunnerComponent.h"
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+
+class LocalPrebuiltGraph : public PrebuiltGraph {
+
+  private:
+    // Private constructor
+    LocalPrebuiltGraph() {
+    }
+
+  public:
+    ~LocalPrebuiltGraph();
+
+    // No copy or move constructors or operators are available.
+    LocalPrebuiltGraph(const LocalPrebuiltGraph&) = delete;
+    LocalPrebuiltGraph& operator=(const LocalPrebuiltGraph&) = delete;
+
+    // Override RunnerComponent interface functions for applying configs,
+    // starting the graph and stopping the graph.
+    Status handleConfigPhase(const runner::ClientConfig& e) override;
+    Status handleExecutionPhase(const runner::RunnerEvent& e) override;
+    Status handleStopWithFlushPhase(const runner::RunnerEvent& e) override;
+    Status handleStopImmediatePhase(const runner::RunnerEvent& e) override;
+    Status handleResetPhase(const runner::RunnerEvent& e) override;
+
+    static LocalPrebuiltGraph* GetPrebuiltGraphFromLibrary(
+        const std::string& prebuiltLib, std::weak_ptr<PrebuiltEngineInterface> engineInterface);
+
+    PrebuiltGraphType GetGraphType() const override {
+        return PrebuiltGraphType::LOCAL;
+    }
+
+    PrebuiltGraphState GetGraphState() const override {
+        return mGraphState;
+    }
+
+    Status GetStatus() const override;
+
+    std::string GetErrorMessage() const override;
+
+    // Gets the supported graph config options.
+    const proto::Options& GetSupportedGraphConfigs() const override {
+        return mGraphConfig;
+    }
+
+    // Sets input stream data. The string is expected to be a serialized proto
+    // the definition of which is known to the graph.
+    Status SetInputStreamData(int streamIndex, int64_t timestamp,
+                              const std::string& streamData) override;
+
+    // Sets pixel data to the specified input stream index.
+    Status SetInputStreamPixelData(int streamIndex, int64_t timestamp,
+                                   const runner::InputFrame& inputFrame) override;
+
+    Status StartGraphProfiling() override;
+
+    Status StopGraphProfiling() override;
+
+    // Collects debugging and profiling information for the graph. The graph
+    // needs to be started with debugging enabled in order to get valid info.
+    std::string GetDebugInfo() override;
+
+  private:
+    // Starts the graph execution.
+    Status StartGraphExecution(bool debuggingEnabled);
+
+    // Stops the graph execution.
+    Status StopGraphExecution(bool flushOutputFrames);
+
+    // Callback functions. The class has a C++ function callback interface while it deals with pure
+    // C functions underneath that do not have object context. We need to have these static
+    // functions that need to be passed to the C interface.
+    static void OutputPixelStreamCallbackFunction(void* cookie, int streamIndex, int64_t timestamp,
+                                                  const uint8_t* pixels, int width, int height,
+                                                  int step, int format);
+    static void OutputStreamCallbackFunction(void* cookie, int streamIndex, int64_t timestamp,
+                                             const unsigned char* data, size_t dataSize);
+    static void GraphTerminationCallbackFunction(void* cookie,
+                                                 const unsigned char* terminationMessage,
+                                                 size_t terminationMessageSize);
+
+    // Cached callback interface that is passed in from the runner.
+    std::weak_ptr<PrebuiltEngineInterface> mEngineInterface;
+
+    static std::mutex mCreationMutex;
+    static LocalPrebuiltGraph* mPrebuiltGraphInstance;
+
+    // Even though mutexes are generally preferred over atomics, the only varialble in this class
+    // that changes after initialization is graph state and that is the only vairable that needs
+    // to be guarded. The prebuilt is internally assumed to be thread safe, so that concurrent
+    // calls into the library will automatically be handled in a thread safe manner by the it.
+    std::atomic<PrebuiltGraphState> mGraphState = PrebuiltGraphState::UNINITIALIZED;
+
+    // Dynamic library handle
+    void* mHandle;
+
+    // Repeated function calls need not be made to get the graph version and the config is this is
+    // constant through the operation of the graph. These values are just cached as strings.
+    std::string mGraphVersion;
+    proto::Options mGraphConfig;
+
+    // Cached functions from the dynamic library.
+    void* mFnGetErrorCode;
+    void* mFnGetErrorMessage;
+    void* mFnUpdateGraphConfig;
+    void* mFnResetGraph;
+    void* mFnSetInputStreamData;
+    void* mFnSetInputStreamPixelData;
+    void* mFnSetOutputStreamCallback;
+    void* mFnSetOutputPixelStreamCallback;
+    void* mFnSetGraphTerminationCallback;
+    void* mFnStartGraphExecution;
+    void* mFnStopGraphExecution;
+    void* mFnStartGraphProfiling;
+    void* mFnStopGraphProfiling;
+    void* mFnGetDebugInfo;
+};
+
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
+
+#endif  // #define COMPUTEPIPE_RUNNER_GRAPH_GRPC_GRAPH_H
diff --git a/computepipe/runner/graph/PrebuiltGraph.cpp b/computepipe/runner/graph/PrebuiltGraph.cpp
deleted file mode 100644
index 343e6ad..0000000
--- a/computepipe/runner/graph/PrebuiltGraph.cpp
+++ /dev/null
@@ -1,380 +0,0 @@
-// Copyright (C) 2020 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.
-
-#include "PrebuiltGraph.h"
-
-#include <android-base/logging.h>
-#include <dlfcn.h>
-
-#include <functional>
-#include <iostream>
-#include <mutex>
-#include <shared_mutex>
-#include <string>
-#include <vector>
-
-#include "ClientConfig.pb.h"
-#include "InputFrame.h"
-#include "RunnerComponent.h"
-#include "prebuilt_interface.h"
-#include "types/Status.h"
-
-namespace android {
-namespace automotive {
-namespace computepipe {
-namespace graph {
-
-#define LOAD_FUNCTION(name)                                                        \
-    {                                                                              \
-        std::string func_name = std::string("PrebuiltComputepipeRunner_") + #name; \
-        mPrebuiltGraphInstance->mFn##name =                                        \
-            dlsym(mPrebuiltGraphInstance->mHandle, func_name.c_str());             \
-        if (mPrebuiltGraphInstance->mFn##name == nullptr) {                        \
-            initialized = false;                                                   \
-            LOG(ERROR) << std::string(dlerror()) << std::endl;                     \
-        }                                                                          \
-    }
-
-std::mutex PrebuiltGraph::mCreationMutex;
-PrebuiltGraph* PrebuiltGraph::mPrebuiltGraphInstance = nullptr;
-
-// Function to confirm that there would be no further changes to the graph configuration. This
-// needs to be called before starting the graph.
-Status PrebuiltGraph::handleConfigPhase(const runner::ClientConfig& e) {
-    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    // handleConfigPhase is a blocking call, so abort call is pointless for this RunnerEvent.
-    if (e.isAborted()) {
-        return Status::INVALID_ARGUMENT;
-    } else if (e.isTransitionComplete()) {
-        return Status::SUCCESS;
-    }
-
-    std::string config = e.getSerializedClientConfig();
-    auto mappedFn =
-        (PrebuiltComputepipeRunner_ErrorCode(*)(const unsigned char*, size_t))mFnUpdateGraphConfig;
-    PrebuiltComputepipeRunner_ErrorCode errorCode =
-        mappedFn(reinterpret_cast<const unsigned char*>(config.c_str()), config.length());
-    if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-        return static_cast<Status>(static_cast<int>(errorCode));
-    }
-
-    // Set the pixel stream callback function. The same function will be called for all requested
-    // pixel output streams.
-    if (mEngineInterface) {
-        auto pixelCallbackFn = (PrebuiltComputepipeRunner_ErrorCode(*)(
-            void (*)(void* cookie, int, int64_t, const uint8_t* pixels, int width, int height,
-                     int step, int format)))mFnSetOutputPixelStreamCallback;
-        PrebuiltComputepipeRunner_ErrorCode errorCode =
-            pixelCallbackFn(PrebuiltGraph::OutputPixelStreamCallbackFunction);
-        if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-            return static_cast<Status>(static_cast<int>(errorCode));
-        }
-
-        // Set the serialized stream callback function. The same callback function will be invoked
-        // for all requested serialized output streams.
-        auto streamCallbackFn = (PrebuiltComputepipeRunner_ErrorCode(*)(void (*)(
-            void* cookie, int, int64_t, const unsigned char*, size_t)))mFnSetOutputStreamCallback;
-        errorCode = streamCallbackFn(PrebuiltGraph::OutputStreamCallbackFunction);
-        if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-            return static_cast<Status>(static_cast<int>(errorCode));
-        }
-
-        // Set the callback function for when the graph terminates.
-        auto terminationCallback = (PrebuiltComputepipeRunner_ErrorCode(*)(
-            void (*)(void* cookie, const unsigned char*, size_t)))mFnSetGraphTerminationCallback;
-        errorCode = terminationCallback(PrebuiltGraph::GraphTerminationCallbackFunction);
-        if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-            return static_cast<Status>(static_cast<int>(errorCode));
-        }
-    }
-
-    return Status::SUCCESS;
-}
-
-// Starts the graph.
-Status PrebuiltGraph::handleExecutionPhase(const runner::RunnerEvent& e) {
-    if (mGraphState.load() != PrebuiltGraphState::STOPPED) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    if (e.isAborted()) {
-        // Starting the graph is a blocking call and cannot be aborted in between.
-        return Status::INVALID_ARGUMENT;
-    } else if (e.isTransitionComplete()) {
-        return Status::SUCCESS;
-    }
-
-    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(void*, bool))mFnStartGraphExecution;
-    PrebuiltComputepipeRunner_ErrorCode errorCode =
-        mappedFn(reinterpret_cast<void*>(this), /* debuggingEnabled =*/false);
-    if (errorCode == PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-        mGraphState.store(PrebuiltGraphState::RUNNING);
-    }
-    return static_cast<Status>(static_cast<int>(errorCode));
-}
-
-// Stops the graph while letting the graph flush output packets in flight.
-Status PrebuiltGraph::handleStopWithFlushPhase(const runner::RunnerEvent& e) {
-    if (mGraphState.load() != PrebuiltGraphState::RUNNING) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    if (e.isAborted()) {
-        return Status::INVALID_ARGUMENT;
-    } else if (e.isTransitionComplete()) {
-        return Status::SUCCESS;
-    }
-
-    return StopGraphExecution(/* flushOutputFrames = */ true);
-}
-
-// Stops the graph and cancels all the output packets.
-Status PrebuiltGraph::handleStopImmediatePhase(const runner::RunnerEvent& e) {
-    if (mGraphState.load() != PrebuiltGraphState::RUNNING) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    if (e.isAborted()) {
-        return Status::INVALID_ARGUMENT;
-    } else if (e.isTransitionComplete()) {
-        return Status::SUCCESS;
-    }
-
-    return StopGraphExecution(/* flushOutputFrames = */ false);
-}
-
-Status PrebuiltGraph::handleResetPhase(const runner::RunnerEvent& e) {
-    if (mGraphState.load() != PrebuiltGraphState::STOPPED) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    if (e.isAborted()) {
-        return Status::INVALID_ARGUMENT;
-    } else if (e.isTransitionComplete()) {
-        return Status::SUCCESS;
-    }
-
-    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)())mFnResetGraph;
-    mappedFn();
-    return Status::SUCCESS;
-}
-
-PrebuiltGraph* PrebuiltGraph::GetPrebuiltGraphFromLibrary(
-    const std::string& prebuilt_library, std::shared_ptr<PrebuiltEngineInterface> engineInterface) {
-    std::unique_lock<std::mutex> lock(PrebuiltGraph::mCreationMutex);
-    if (mPrebuiltGraphInstance != nullptr) {
-        mPrebuiltGraphInstance = new PrebuiltGraph();
-    }
-    if (mPrebuiltGraphInstance->mGraphState.load() != PrebuiltGraphState::UNINITIALIZED) {
-        return mPrebuiltGraphInstance;
-    }
-    mPrebuiltGraphInstance->mHandle = dlopen(prebuilt_library.c_str(), RTLD_NOW);
-
-    if (mPrebuiltGraphInstance->mHandle) {
-        bool initialized = true;
-
-        // Load config and version number first.
-        const unsigned char* (*getVersionFn)() = (const unsigned char* (*)())dlsym(
-            mPrebuiltGraphInstance->mHandle, "PrebuiltComputepipeRunner_GetVersion");
-        if (getVersionFn != nullptr) {
-            mPrebuiltGraphInstance->mGraphVersion =
-                std::string(reinterpret_cast<const char*>(getVersionFn()));
-        } else {
-            LOG(ERROR) << std::string(dlerror());
-            initialized = false;
-        }
-
-        void (*getSupportedGraphConfigsFn)(const void**, size_t*) = (void (*)(
-            const void**, size_t*))dlsym(mPrebuiltGraphInstance->mHandle,
-                                         "PrebuiltComputepipeRunner_GetSupportedGraphConfigs");
-        if (getSupportedGraphConfigsFn != nullptr) {
-            size_t graphConfigSize;
-            const void* graphConfig;
-
-            getSupportedGraphConfigsFn(&graphConfig, &graphConfigSize);
-
-            if (graphConfigSize > 0) {
-                initialized &= mPrebuiltGraphInstance->mGraphConfig.ParseFromString(
-                    std::string(reinterpret_cast<const char*>(graphConfig), graphConfigSize));
-            }
-        } else {
-            LOG(ERROR) << std::string(dlerror());
-            initialized = false;
-        }
-
-        // Null callback interface is not acceptable.
-        if (initialized && engineInterface == nullptr) {
-            initialized = false;
-        }
-
-        LOAD_FUNCTION(GetErrorCode);
-        LOAD_FUNCTION(GetErrorMessage);
-        LOAD_FUNCTION(ResetGraph);
-        LOAD_FUNCTION(UpdateGraphConfig);
-        LOAD_FUNCTION(SetInputStreamData);
-        LOAD_FUNCTION(SetInputStreamPixelData);
-        LOAD_FUNCTION(SetOutputStreamCallback);
-        LOAD_FUNCTION(SetOutputPixelStreamCallback);
-        LOAD_FUNCTION(SetGraphTerminationCallback);
-        LOAD_FUNCTION(StartGraphExecution);
-        LOAD_FUNCTION(StopGraphExecution);
-        LOAD_FUNCTION(GetDebugInfo);
-
-        // This is the only way to create this object and there is already a
-        // lock around object creation, so no need to hold the graphState lock
-        // here.
-        if (initialized) {
-            mPrebuiltGraphInstance->mGraphState.store(PrebuiltGraphState::STOPPED);
-            mPrebuiltGraphInstance->mEngineInterface = engineInterface;
-        }
-    }
-
-    return mPrebuiltGraphInstance;
-}
-
-PrebuiltGraph::~PrebuiltGraph() {
-    if (mHandle) {
-        dlclose(mHandle);
-    }
-}
-
-Status PrebuiltGraph::GetStatus() const {
-    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)())mFnGetErrorCode;
-    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn();
-    return static_cast<Status>(static_cast<int>(errorCode));
-}
-
-std::string PrebuiltGraph::GetErrorMessage() const {
-    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
-        return "Graph has not been initialized";
-    }
-    auto mappedFn =
-        (PrebuiltComputepipeRunner_ErrorCode(*)(unsigned char*, size_t, size_t*))mFnGetErrorMessage;
-    size_t errorMessageSize = 0;
-
-    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(nullptr, 0, &errorMessageSize);
-    std::vector<unsigned char> errorMessage(errorMessageSize);
-
-    errorCode = mappedFn(&errorMessage[0], errorMessage.size(), &errorMessageSize);
-    if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-        return "Unable to get error message from the graph.";
-    }
-
-    return std::string(reinterpret_cast<char*>(&errorMessage[0]),
-                       reinterpret_cast<char*>(&errorMessage[0]) + errorMessage.size());
-}
-
-Status PrebuiltGraph::SetInputStreamData(int streamIndex, int64_t timestamp,
-                                         const std::string& streamData) {
-    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
-        return Status::ILLEGAL_STATE;
-    }
-    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(int, int64_t, const unsigned char*,
-                                                            size_t))mFnSetInputStreamData;
-    PrebuiltComputepipeRunner_ErrorCode errorCode =
-        mappedFn(streamIndex, timestamp, reinterpret_cast<const unsigned char*>(streamData.c_str()),
-                 streamData.length());
-    return static_cast<Status>(static_cast<int>(errorCode));
-}
-
-Status PrebuiltGraph::SetInputStreamPixelData(int streamIndex, int64_t timestamp,
-                                              const runner::InputFrame& inputFrame) {
-    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
-        return Status::ILLEGAL_STATE;
-    }
-
-    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(
-        int, int64_t, const uint8_t*, int, int, int,
-        PrebuiltComputepipeRunner_PixelDataFormat))mFnSetInputStreamPixelData;
-    PrebuiltComputepipeRunner_ErrorCode errorCode =
-        mappedFn(streamIndex, timestamp, inputFrame.getFramePtr(), inputFrame.getFrameInfo().width,
-                 inputFrame.getFrameInfo().height, inputFrame.getFrameInfo().stride,
-                 static_cast<PrebuiltComputepipeRunner_PixelDataFormat>(
-                     static_cast<int>(inputFrame.getFrameInfo().format)));
-    return static_cast<Status>(static_cast<int>(errorCode));
-}
-
-Status PrebuiltGraph::StopGraphExecution(bool flushOutputFrames) {
-    auto mappedFn = (PrebuiltComputepipeRunner_ErrorCode(*)(bool))mFnStopGraphExecution;
-    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(flushOutputFrames);
-    if (errorCode == PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-        mGraphState.store(flushOutputFrames ? PrebuiltGraphState::FLUSHING
-                                            : PrebuiltGraphState::STOPPED);
-    }
-    return static_cast<Status>(static_cast<int>(errorCode));
-}
-
-std::string PrebuiltGraph::GetDebugInfo() {
-    if (mGraphState.load() == PrebuiltGraphState::UNINITIALIZED) {
-        return "";
-    }
-    auto mappedFn =
-        (PrebuiltComputepipeRunner_ErrorCode(*)(unsigned char*, size_t, size_t*))mFnGetDebugInfo;
-
-    size_t debugInfoSize = 0;
-    PrebuiltComputepipeRunner_ErrorCode errorCode = mappedFn(nullptr, 0, &debugInfoSize);
-    std::vector<unsigned char> debugInfo(debugInfoSize);
-
-    errorCode = mappedFn(&debugInfo[0], debugInfo.size(), &debugInfoSize);
-    if (errorCode != PrebuiltComputepipeRunner_ErrorCode::SUCCESS) {
-        return "";
-    }
-
-    return std::string(reinterpret_cast<char*>(&debugInfo[0]),
-                       reinterpret_cast<char*>(&debugInfo[0]) + debugInfo.size());
-}
-
-void PrebuiltGraph::OutputStreamCallbackFunction(void* cookie, int streamIndex, int64_t timestamp,
-                                                 const unsigned char* data, size_t data_size) {
-    PrebuiltGraph* graph = reinterpret_cast<PrebuiltGraph*>(cookie);
-    CHECK(graph);
-    graph->mEngineInterface->DispatchSerializedData(streamIndex, timestamp,
-                                                    std::string(data, data + data_size));
-}
-
-void PrebuiltGraph::OutputPixelStreamCallbackFunction(void* cookie, int streamIndex,
-                                                      int64_t timestamp, const uint8_t* pixels,
-                                                      int width, int height, int step, int format) {
-    PrebuiltGraph* graph = reinterpret_cast<PrebuiltGraph*>(cookie);
-    CHECK(graph);
-    runner::InputFrame frame(height, width, static_cast<PixelFormat>(format), step, pixels);
-
-    graph->mEngineInterface->DispatchPixelData(streamIndex, timestamp, frame);
-}
-
-void PrebuiltGraph::GraphTerminationCallbackFunction(void* cookie,
-                                                     const unsigned char* termination_message,
-                                                     size_t termination_message_size) {
-    PrebuiltGraph* graph = reinterpret_cast<PrebuiltGraph*>(cookie);
-    CHECK(graph);
-    std::string errorMessage = "";
-    if (termination_message != nullptr && termination_message_size > 0) {
-        std::string(termination_message, termination_message + termination_message_size);
-    }
-    graph->mGraphState.store(PrebuiltGraphState::STOPPED);
-    graph->mEngineInterface->DispatchGraphTerminationMessage(graph->GetStatus(),
-                                                             std::move(errorMessage));
-}
-
-}  // namespace graph
-}  // namespace computepipe
-}  // namespace automotive
-}  // namespace android
diff --git a/computepipe/runner/graph/StreamSetObserver.cpp b/computepipe/runner/graph/StreamSetObserver.cpp
new file mode 100644
index 0000000..30e3b54
--- /dev/null
+++ b/computepipe/runner/graph/StreamSetObserver.cpp
@@ -0,0 +1,197 @@
+// Copyright (C) 2020 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.
+
+#include "StreamSetObserver.h"
+
+#include <android-base/logging.h>
+#include <grpcpp/grpcpp.h>
+
+#include "ClientConfig.pb.h"
+#include "GrpcGraph.h"
+#include "InputFrame.h"
+#include "RunnerComponent.h"
+#include "prebuilt_interface.h"
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+
+SingleStreamObserver::SingleStreamObserver(int streamId, EndOfStreamReporter* endOfStreamReporter,
+                                           StreamGraphInterface* streamGraphInterface) :
+      mStreamId(streamId),
+      mEndOfStreamReporter(endOfStreamReporter),
+      mStreamGraphInterface(streamGraphInterface) {}
+
+Status SingleStreamObserver::startObservingStream() {
+    {
+        std::lock_guard lock(mStopObservationLock);
+        mStopped = false;
+    }
+    mThread = std::thread([this]() {
+        proto::ObserveOutputStreamRequest observeStreamRequest;
+        observeStreamRequest.set_stream_id(mStreamId);
+        ::grpc::ClientContext context;
+        ::grpc::CompletionQueue cq;
+
+        void* tag;
+        bool cqStatus;
+
+        std::unique_ptr<::grpc::ClientAsyncReader<proto::OutputStreamResponse>> rpc(
+                mStreamGraphInterface->getServiceStub()
+                        ->AsyncObserveOutputStream(&context, observeStreamRequest, &cq, nullptr));
+
+        proto::OutputStreamResponse response;
+
+        cq.Next(&tag, &cqStatus);
+        while (cqStatus) {
+            // Dispatch data only stream is being observed.
+            rpc->Read(&response, nullptr);
+            {
+                std::lock_guard lock(mStopObservationLock);
+                if (mStopped || mStreamGraphInterface == nullptr) {
+                    LOG(INFO) << "Graph stopped. ";
+                    break;
+                }
+
+                // Since this is a separate thread, we need not worry about recursive locking
+                // and callback can be executed without creating a new thread.
+                if (response.has_pixel_data()) {
+                    proto::PixelData pixels = response.pixel_data();
+                    runner::InputFrame frame(pixels.height(), pixels.width(),
+                                             static_cast<PixelFormat>(
+                                                     static_cast<int>(pixels.format())),
+                                             pixels.step(),
+                                             reinterpret_cast<const unsigned char*>(
+                                                     pixels.data().c_str()));
+                    mStreamGraphInterface->dispatchPixelData(mStreamId, response.timestamp_us(),
+                                                             frame);
+                } else if (response.has_semantic_data()) {
+                    mStreamGraphInterface
+                            ->dispatchSerializedData(mStreamId, response.timestamp_us(),
+                                                     std::move(*response.mutable_semantic_data()));
+                }
+            }
+
+            cq.Next(&tag, &cqStatus);
+        }
+
+        ::grpc::Status grpcStatus;
+        rpc->Finish(&grpcStatus, nullptr);
+        if (!grpcStatus.ok()) {
+            LOG(ERROR) << "Failed RPC with message: " << grpcStatus.error_message();
+        }
+
+        cq.Shutdown();
+        if (mEndOfStreamReporter) {
+            std::lock_guard lock(mStopObservationLock);
+            mStopped = true;
+            std::thread t =
+                    std::thread([this]() { mEndOfStreamReporter->reportStreamClosed(mStreamId); });
+
+            t.detach();
+        }
+
+        proto::OutputStreamResponse streamResponse;
+    });
+
+    return Status::SUCCESS;
+}
+
+void SingleStreamObserver::stopObservingStream() {
+    std::lock_guard lock(mStopObservationLock);
+    mStopped = true;
+}
+
+SingleStreamObserver::~SingleStreamObserver() {
+    stopObservingStream();
+
+    if (mThread.joinable()) {
+        mThread.join();
+    }
+}
+
+StreamSetObserver::StreamSetObserver(const runner::ClientConfig& clientConfig,
+                                     StreamGraphInterface* streamGraphInterface) :
+      mClientConfig(clientConfig), mStreamGraphInterface(streamGraphInterface) {}
+
+Status StreamSetObserver::startObservingStreams() {
+    std::lock_guard lock(mLock);
+    std::map<int, int> outputConfigs = {};
+    mClientConfig.getOutputStreamConfigs(outputConfigs);
+
+    if (!mStopped || !mStreamObservers.empty()) {
+        LOG(ERROR) << "Already started observing streams. Duplicate call is not allowed";
+        return Status::ILLEGAL_STATE;
+    }
+
+    for (const auto& it : outputConfigs) {
+        auto streamObserver =
+                std::make_unique<SingleStreamObserver>(it.first, this, mStreamGraphInterface);
+        Status status = streamObserver->startObservingStream();
+        if (status != Status::SUCCESS) {
+            std::thread t([this]() { stopObservingStreams(true); });
+            t.detach();
+            return status;
+        }
+        mStreamObservers.emplace(std::make_pair(it.first, std::move(streamObserver)));
+    }
+
+    mStopped = mStreamObservers.empty();
+    return Status::SUCCESS;
+}
+
+void StreamSetObserver::stopObservingStreams(bool stopImmediately) {
+    std::unique_lock lock(mLock);
+    if (mStopped) {
+        // Separate thread is necessary here to avoid recursive locking.
+        std::thread t([streamGraphInterface(mStreamGraphInterface)]() {
+            streamGraphInterface->dispatchGraphTerminationMessage(Status::SUCCESS, "");
+        });
+        t.detach();
+        return;
+    }
+
+    // Wait for the streams to close if we are not stopping immediately.
+    if (stopImmediately) {
+        for (auto& it : mStreamObservers) {
+            it.second->stopObservingStream();
+        }
+
+        mStoppedCv.wait(lock, [this]() -> bool { return mStopped; });
+    }
+}
+
+void StreamSetObserver::reportStreamClosed(int streamId) {
+    std::lock_guard lock(mLock);
+    auto streamObserver = mStreamObservers.find(streamId);
+    if (streamObserver == mStreamObservers.end()) {
+        return;
+    }
+    mStreamObservers.erase(streamObserver);
+    if (mStreamObservers.empty()) {
+        mStopped = true;
+        mStoppedCv.notify_one();
+        std::thread t([streamGraphInterface(mStreamGraphInterface)]() {
+            streamGraphInterface->dispatchGraphTerminationMessage(Status::SUCCESS, "");
+        });
+        t.detach();
+    }
+}
+
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
diff --git a/computepipe/runner/graph/StreamSetObserver.h b/computepipe/runner/graph/StreamSetObserver.h
new file mode 100644
index 0000000..7999f18
--- /dev/null
+++ b/computepipe/runner/graph/StreamSetObserver.h
@@ -0,0 +1,103 @@
+// Copyright (C) 2020 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.
+
+#ifndef COMPUTEPIPE_RUNNER_GRAPH_STREAM_SET_OBSERVER_H
+#define COMPUTEPIPE_RUNNER_GRAPH_STREAM_SET_OBSERVER_H
+
+#include <condition_variable>
+#include <map>
+#include <memory>
+#include <mutex>
+#include <string>
+#include <thread>
+
+#include "GrpcPrebuiltGraphService.grpc.pb.h"
+#include "GrpcPrebuiltGraphService.pb.h"
+#include "InputFrame.h"
+#include "RunnerComponent.h"
+#include "types/Status.h"
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+
+class GrpcGraph;
+
+class EndOfStreamReporter {
+  public:
+    virtual ~EndOfStreamReporter() = default;
+
+    virtual void reportStreamClosed(int streamId) = 0;
+};
+
+class StreamGraphInterface {
+  public:
+    virtual ~StreamGraphInterface() = default;
+
+    virtual void dispatchPixelData(int streamId, int64_t timestamp_us,
+                                   const runner::InputFrame& frame) = 0;
+
+    virtual void dispatchSerializedData(int streamId, int64_t timestamp_us,
+                                        std::string&& serialized_data) = 0;
+
+    virtual void dispatchGraphTerminationMessage(Status, std::string&&) = 0;
+
+    virtual proto::GrpcGraphService::Stub* getServiceStub() = 0;
+};
+
+class SingleStreamObserver {
+  public:
+    SingleStreamObserver(int streamId, EndOfStreamReporter* endOfStreamReporter,
+                         StreamGraphInterface* streamGraphInterface);
+
+    virtual ~SingleStreamObserver();
+
+    Status startObservingStream();
+
+    void stopObservingStream();
+  private:
+    int mStreamId;
+    EndOfStreamReporter* mEndOfStreamReporter;
+    StreamGraphInterface* mStreamGraphInterface;
+    std::thread mThread;
+    bool mStopped = true;
+    std::mutex mStopObservationLock;
+};
+
+class StreamSetObserver : public EndOfStreamReporter {
+  public:
+    StreamSetObserver(const runner::ClientConfig& clientConfig,
+                      StreamGraphInterface* streamGraphInterface);
+
+    Status startObservingStreams();
+
+    void stopObservingStreams(bool stopImmediately);
+
+    void reportStreamClosed(int streamId) override;
+  private:
+    const runner::ClientConfig& mClientConfig;
+    StreamGraphInterface* mStreamGraphInterface;
+    std::map<int, std::unique_ptr<SingleStreamObserver>> mStreamObservers;
+    std::mutex mLock;
+    std::condition_variable mStoppedCv;
+    bool mStopped = true;
+};
+
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
+
+#endif  // #define COMPUTEPIPE_RUNNER_GRAPH_STREAM_SET_OBSERVER_H
diff --git a/computepipe/runner/graph/include/PrebuiltGraph.h b/computepipe/runner/graph/include/PrebuiltGraph.h
index b777f14..43ef754 100644
--- a/computepipe/runner/graph/include/PrebuiltGraph.h
+++ b/computepipe/runner/graph/include/PrebuiltGraph.h
@@ -15,11 +15,8 @@
 #ifndef COMPUTEPIPE_RUNNER_GRAPH_INCLUDE_PREBUILTGRAPH_H_
 #define COMPUTEPIPE_RUNNER_GRAPH_INCLUDE_PREBUILTGRAPH_H_
 
-#include <functional>
-#include <shared_mutex>
 #include <string>
 
-#include "ClientConfig.pb.h"
 #include "InputFrame.h"
 #include "Options.pb.h"
 #include "PrebuiltEngineInterface.h"
@@ -38,111 +35,54 @@
     STOPPED,
 };
 
-// PrebuiltGraph is a singleton class. This is because the underlying functions that it implements
-// are C functions that carry around state.
+enum PrebuiltGraphType {
+    LOCAL = 0,
+    REMOTE = 1,
+};
+
 class PrebuiltGraph : public runner::RunnerComponentInterface {
-  private:
-    // Private constructor
-    PrebuiltGraph() {
-    }
-
   public:
-    ~PrebuiltGraph();
+    // Gets the graph type.
+    virtual PrebuiltGraphType GetGraphType() const = 0;
 
-    // No copy or move constructors or operators are available.
-    PrebuiltGraph(const PrebuiltGraph&) = delete;
-    PrebuiltGraph& operator=(const PrebuiltGraph&) = delete;
+    // Gets the PrebuiltGraphState
+    virtual PrebuiltGraphState GetGraphState() const = 0;
 
-    // Override RunnerComponent interface functions for applying configs,
-    // starting the graph and stopping the graph.
-    Status handleConfigPhase(const runner::ClientConfig& e) override;
-    Status handleExecutionPhase(const runner::RunnerEvent& e) override;
-    Status handleStopWithFlushPhase(const runner::RunnerEvent& e) override;
-    Status handleStopImmediatePhase(const runner::RunnerEvent& e) override;
-    Status handleResetPhase(const runner::RunnerEvent& e) override;
+    // Gets the graph status and reports any error code or if the status is OK.
+    virtual Status GetStatus() const = 0;
 
-    static PrebuiltGraph* GetPrebuiltGraphFromLibrary(
-        const std::string& prebuiltLib, std::shared_ptr<PrebuiltEngineInterface> engineInterface);
-
-    PrebuiltGraphState GetGraphState() const {
-        return mGraphState;
-    }
-
-    Status GetStatus() const;
-
-    std::string GetErrorMessage() const;
+    // Gets the error message from the graph.
+    virtual std::string GetErrorMessage() const = 0;
 
     // Gets the supported graph config options.
-    const proto::Options& GetSupportedGraphConfigs() const {
-        return mGraphConfig;
-    }
+    virtual const proto::Options& GetSupportedGraphConfigs() const = 0;
 
     // Sets input stream data. The string is expected to be a serialized proto
     // the definition of which is known to the graph.
-    Status SetInputStreamData(int streamIndex, int64_t timestamp, const std::string& streamData);
+    virtual Status SetInputStreamData(int streamIndex, int64_t timestamp,
+                                      const std::string& streamData) = 0;
 
     // Sets pixel data to the specified input stream index.
-    Status SetInputStreamPixelData(int streamIndex, int64_t timestamp,
-                                   const runner::InputFrame& inputFrame);
+    virtual Status SetInputStreamPixelData(int streamIndex, int64_t timestamp,
+                                           const runner::InputFrame& inputFrame) = 0;
+
+    // Start graph profiling.
+    virtual Status StartGraphProfiling() = 0;
+
+    // Stop graph profiling.
+    virtual Status StopGraphProfiling() = 0;
 
     // Collects debugging and profiling information for the graph. The graph
     // needs to be started with debugging enabled in order to get valid info.
-    std::string GetDebugInfo();
-
-  private:
-    // Starts the graph execution.
-    Status StartGraphExecution(bool debuggingEnabled);
-
-    // Stops the graph execution.
-    Status StopGraphExecution(bool flushOutputFrames);
-
-    // Callback functions. The class has a C++ function callback interface while it deals with pure
-    // C functions underneath that do not have object context. We need to have these static
-    // functions that need to be passed to the C interface.
-    static void OutputPixelStreamCallbackFunction(void* cookie, int streamIndex, int64_t timestamp,
-                                                  const uint8_t* pixels, int width, int height,
-                                                  int step, int format);
-    static void OutputStreamCallbackFunction(void* cookie, int streamIndex, int64_t timestamp,
-                                             const unsigned char* data, size_t dataSize);
-    static void GraphTerminationCallbackFunction(void* cookie,
-                                                 const unsigned char* terminationMessage,
-                                                 size_t terminationMessageSize);
-
-    // Cached callback interface that is passed in from the runner.
-    std::shared_ptr<PrebuiltEngineInterface> mEngineInterface;
-
-    static std::mutex mCreationMutex;
-    static PrebuiltGraph* mPrebuiltGraphInstance;
-
-    // Even though mutexes are generally preferred over atomics, the only varialble in this class
-    // that changes after initialization is graph state and that is the only vairable that needs
-    // to be guarded. The prebuilt is internally assumed to be thread safe, so that concurrent
-    // calls into the library will automatically be handled in a thread safe manner by the it.
-    std::atomic<PrebuiltGraphState> mGraphState = PrebuiltGraphState::UNINITIALIZED;
-
-    // Dynamic library handle
-    void* mHandle;
-
-    // Repeated function calls need not be made to get the graph version and the config is this is
-    // constant through the operation of the graph. These values are just cached as strings.
-    std::string mGraphVersion;
-    proto::Options mGraphConfig;
-
-    // Cached functions from the dynamic library.
-    void* mFnGetErrorCode;
-    void* mFnGetErrorMessage;
-    void* mFnUpdateGraphConfig;
-    void* mFnResetGraph;
-    void* mFnSetInputStreamData;
-    void* mFnSetInputStreamPixelData;
-    void* mFnSetOutputStreamCallback;
-    void* mFnSetOutputPixelStreamCallback;
-    void* mFnSetGraphTerminationCallback;
-    void* mFnStartGraphExecution;
-    void* mFnStopGraphExecution;
-    void* mFnGetDebugInfo;
+    virtual std::string GetDebugInfo() = 0;
 };
 
+PrebuiltGraph* GetLocalGraphFromLibrary(
+        const std::string& prebuiltLib, std::weak_ptr<PrebuiltEngineInterface> engineInterface);
+
+std::unique_ptr<PrebuiltGraph> GetRemoteGraphFromAddress(
+        const std::string& address, std::weak_ptr<PrebuiltEngineInterface> engineInterface);
+
 }  // namespace graph
 }  // namespace computepipe
 }  // namespace automotive
diff --git a/computepipe/runner/graph/proto/Android.bp b/computepipe/runner/graph/proto/Android.bp
new file mode 100644
index 0000000..2911a52
--- /dev/null
+++ b/computepipe/runner/graph/proto/Android.bp
@@ -0,0 +1,69 @@
+genrule {
+    name: "computepipe_grpc_graph_proto_h",
+    tools: [
+        "aprotoc",
+        "protoc-gen-grpc-cpp-plugin",
+    ],
+    cmd: "$(location aprotoc) -I$$(dirname $(in)) -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(in) --grpc_out=$(genDir) --cpp_out=$(genDir)",
+    srcs: [
+        "GrpcPrebuiltGraphService.proto",
+    ],
+    out: [
+        "GrpcPrebuiltGraphService.grpc.pb.h",
+        "GrpcPrebuiltGraphService.pb.h",
+    ],
+}
+
+genrule {
+    name: "computepipe_grpc_graph_proto_cc",
+    tools: [
+        "aprotoc",
+        "protoc-gen-grpc-cpp-plugin",
+    ],
+    cmd: "$(location aprotoc) -I$$(dirname $(in)) -Iexternal/protobuf/src --plugin=protoc-gen-grpc=$(location protoc-gen-grpc-cpp-plugin) $(in) --grpc_out=$(genDir) --cpp_out=$(genDir)",
+    srcs: [
+        "GrpcPrebuiltGraphService.proto",
+    ],
+    out: [
+        "GrpcPrebuiltGraphService.grpc.pb.cc",
+        "GrpcPrebuiltGraphService.pb.cc",
+    ],
+}
+
+cc_library {
+    name: "computepipe_grpc_graph_proto",
+    proto: {
+        type: "lite",
+        export_proto_headers: true,
+    },
+    include_dirs: [
+        "external/protobuf/src",
+    ],
+    generated_headers: [
+        "computepipe_grpc_graph_proto_h",
+    ],
+    export_generated_headers: [
+        "computepipe_grpc_graph_proto_h",
+    ],
+    generated_sources: [
+        "computepipe_grpc_graph_proto_cc",
+    ],
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wno-unused-parameter",
+    ],
+    host_supported: false,
+    vendor_available: true,
+    target: {
+        android: {
+            proto: {
+                type: "lite",
+            },
+            shared_libs: [
+                "libprotobuf-cpp-full",
+                "libgrpc++",
+            ],
+        },
+    },
+}
diff --git a/computepipe/runner/graph/proto/GrpcPrebuiltGraphService.proto b/computepipe/runner/graph/proto/GrpcPrebuiltGraphService.proto
new file mode 100644
index 0000000..125b866
--- /dev/null
+++ b/computepipe/runner/graph/proto/GrpcPrebuiltGraphService.proto
@@ -0,0 +1,102 @@
+syntax = "proto2";
+
+package android.automotive.computepipe.proto;
+
+enum RemoteGraphStatusCode {
+    SUCCESS = 0;
+    INTERNAL_ERROR = 1;
+    INVALID_ARGUMENT = 2;
+    ILLEGAL_STATE = 3;
+    NO_MEMORY = 4;
+    FATAL_ERROR = 5;
+}
+
+message StatusResponse {
+    optional RemoteGraphStatusCode code = 1;
+    optional string message = 2;
+}
+
+message GraphOptionsRequest {}
+
+message GraphOptionsResponse {
+    optional string serialized_options = 1;
+}
+
+message SetGraphConfigRequest {
+    optional string serialized_config = 1;
+}
+
+message OutputStreamMetadata {
+    optional int32 stream_id = 1;
+}
+
+message ObserveOutputStreamRequest {
+    optional int32 stream_id = 1;
+}
+
+enum PixelFormat {
+    RGB = 0;
+    RGBA = 1;
+    GRAY = 2;
+}
+
+message PixelData {
+    optional int32 width = 1;
+    optional int32 height = 2;
+    optional int32 step = 3;
+    optional PixelFormat format = 4;
+    optional bytes data = 5;
+}
+
+message OutputStreamResponse {
+    oneof data {
+        string semantic_data = 1;
+        PixelData pixel_data = 2;
+    }
+    optional int32 stream_id = 3;
+    optional int64 timestamp_us = 4;
+}
+
+message SetDebugRequest {
+    optional bool enabled = 1;
+}
+
+message ProfilingDataRequest {}
+
+message ProfilingDataResponse {
+    optional string data = 1;
+}
+
+message StartGraphExecutionRequest {}
+
+message StopGraphExecutionRequest {
+    optional bool stop_immediate = 1;
+}
+
+message StartGraphProfilingRequest {}
+
+message StopGraphProfilingRequest {}
+
+message ResetGraphRequest {}
+
+service GrpcGraphService {
+    rpc GetGraphOptions(GraphOptionsRequest) returns (GraphOptionsResponse) {}
+
+    rpc SetGraphConfig(SetGraphConfigRequest) returns (StatusResponse) {}
+
+    rpc SetDebugOption(SetDebugRequest) returns (StatusResponse) {}
+
+    rpc StartGraphExecution(StartGraphExecutionRequest) returns (StatusResponse) {}
+
+    rpc ObserveOutputStream(ObserveOutputStreamRequest) returns (stream OutputStreamResponse) {}
+
+    rpc StopGraphExecution(StopGraphExecutionRequest) returns (StatusResponse) {}
+
+    rpc ResetGraph(ResetGraphRequest) returns (StatusResponse) {}
+
+    rpc StartGraphProfiling(StartGraphProfilingRequest) returns (StatusResponse) {}
+
+    rpc StopGraphProfiling(StopGraphProfilingRequest) returns (StatusResponse) {}
+
+    rpc GetProfilingData(ProfilingDataRequest) returns (ProfilingDataResponse) {}
+}
diff --git a/computepipe/runner/include/RunnerComponent.h b/computepipe/runner/include/RunnerComponent.h
index 38b29d6..3083398 100644
--- a/computepipe/runner/include/RunnerComponent.h
+++ b/computepipe/runner/include/RunnerComponent.h
@@ -12,13 +12,14 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#ifndef COMPUTEPIPE_RUNNER_COMPONENT_H
-#define COMPUTEPIPE_RUNNER_COMPONENT_H
+#ifndef COMPUTEPIPE_RUNNER_INCLUDE_RUNNERCOMPONENT_H_
+#define COMPUTEPIPE_RUNNER_INCLUDE_RUNNERCOMPONENT_H_
 #include <map>
 #include <memory>
 #include <string>
 
 #include "types/Status.h"
+#include "ProfilingType.pb.h"
 
 namespace android {
 namespace automotive {
@@ -80,12 +81,13 @@
      * Accessor methods
      */
     Status getInputConfigId(int* outId) const;
-    Status getOutputConfigId(int* outId) const;
     Status getOffloadId(int* outId) const;
     Status getTerminationId(int* outId) const;
     Status getOptionalConfigs(std::string& outOptional) const;
     Status getOutputStreamConfigs(std::map<int, int>& outputConfig) const;
+    Status getProfilingType(proto::ProfilingType* profilingType) const;
     std::string getSerializedClientConfig() const;
+
     /**
      * Constructors
      */
@@ -101,11 +103,12 @@
         *this = std::move(c);
     }
     ClientConfig(int inputConfigId, int offload, int termination, std::map<int, int>& outputConfigs,
-                 std::string opt = "")
+                 proto::ProfilingType profilingType, std::string opt = "")
         : mInputConfigId(inputConfigId),
           mOutputConfigs(outputConfigs),
           mTerminationId(termination),
           mOffloadId(offload),
+          mProfilingType(profilingType),
           mOptionalConfigs(opt) {
     }
 
@@ -130,6 +133,8 @@
      * offload option
      */
     int mOffloadId = kInvalidId;
+
+    proto::ProfilingType mProfilingType = proto::ProfilingType::DISABLED;
     /**
      * serialized optional config
      */
@@ -167,4 +172,4 @@
 }  // namespace computepipe
 }  // namespace automotive
 }  // namespace android
-#endif
+#endif  // COMPUTEPIPE_RUNNER_INCLUDE_RUNNERCOMPONENT_H_
diff --git a/computepipe/tests/runner/client_interface/ClientInterfaceTest.cc b/computepipe/tests/runner/client_interface/ClientInterfaceTest.cc
index 619c23e..524b6a6 100644
--- a/computepipe/tests/runner/client_interface/ClientInterfaceTest.cc
+++ b/computepipe/tests/runner/client_interface/ClientInterfaceTest.cc
@@ -32,6 +32,7 @@
 #include "MockMemHandle.h"
 #include "MockRunnerEvent.h"
 #include "Options.pb.h"
+#include "ProfilingType.pb.h"
 #include "runner/client_interface/AidlClient.h"
 #include "runner/client_interface/include/ClientEngineInterface.h"
 #include "types/Status.h"
@@ -307,7 +308,7 @@
 
     // Test that config complete status is conveyed to client.
     std::map<int, int> m;
-    ClientConfig config(0, 0, 0, m);
+    ClientConfig config(0, 0, 0, m, proto::ProfilingType::DISABLED);
     config.setPhaseState(TRANSITION_COMPLETE);
     EXPECT_EQ(mAidlClient->handleConfigPhase(config), Status::SUCCESS);
     EXPECT_EQ(stateCallback->mState, PipeState::CONFIG_DONE);
@@ -344,7 +345,7 @@
 
     // Test that error while applying config is conveyed to client.
     std::map<int, int> m;
-    ClientConfig config(0, 0, 0, m);
+    ClientConfig config(0, 0, 0, m, proto::ProfilingType::DISABLED);
     config.setPhaseState(ABORTED);
     EXPECT_EQ(mAidlClient->handleConfigPhase(config), Status::SUCCESS);
     EXPECT_EQ(stateCallback->mState, PipeState::ERR_HALT);
diff --git a/computepipe/tests/runner/graph/Android.bp b/computepipe/tests/runner/graph/Android.bp
index 10e40f2..14271dd 100644
--- a/computepipe/tests/runner/graph/Android.bp
+++ b/computepipe/tests/runner/graph/Android.bp
@@ -17,7 +17,7 @@
     test_suites: ["device-tests"],
     srcs: [
         "EnumConversionTest.cpp",
-        "PrebuiltGraphTest.cpp",
+        "LocalPrebuiltGraphTest.cpp",
     ],
     static_libs: [
         "computepipe_prebuilt_graph",
@@ -40,5 +40,40 @@
         "packages/services/Car/computepipe",
         "packages/services/Car/computepipe/runner/graph",
     ],
+}
 
+cc_test {
+    name: "computepipe_grpc_graph_test",
+    cflags: [
+        "-Wall",
+        "-Werror",
+        "-Wextra",
+        "-Wno-unused-parameter",
+    ],
+    test_suites: ["device-tests"],
+    srcs: [
+        "GrpcGraphTest.cpp",
+    ],
+    static_libs: [
+        "computepipe_grpc_graph_proto",
+        "computepipe_runner_component",
+        "libgtest",
+        "libgmock",
+    ],
+    shared_libs: [
+        "computepipe_grpc_graph",
+        "libbase",
+	      "libcomputepipeprotos",
+        "libgrpc++",
+        "libdl",
+        "liblog",
+        "libprotobuf-cpp-full",
+    ],
+    header_libs: [
+        "computepipe_runner_includes",
+    ],
+    include_dirs: [
+        "packages/services/Car/computepipe",
+        "packages/services/Car/computepipe/runner/graph",
+    ],
 }
diff --git a/computepipe/tests/runner/graph/GrpcGraphTest.cpp b/computepipe/tests/runner/graph/GrpcGraphTest.cpp
new file mode 100644
index 0000000..883ef6f
--- /dev/null
+++ b/computepipe/tests/runner/graph/GrpcGraphTest.cpp
@@ -0,0 +1,344 @@
+/*
+ * Copyright 2020 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.
+ */
+#include <map>
+#include <memory>
+#include <string>
+#include <thread>
+
+#include <android-base/logging.h>
+#include <grpc++/grpc++.h>
+
+#include "ClientConfig.pb.h"
+#include "GrpcPrebuiltGraphService.grpc.pb.h"
+#include "GrpcPrebuiltGraphService.pb.h"
+#include "Options.pb.h"
+#include "PrebuiltEngineInterface.h"
+#include "PrebuiltGraph.h"
+#include "RunnerComponent.h"
+#include "gmock/gmock-matchers.h"
+#include "gmock/gmock.h"
+#include "gtest/gtest.h"
+#include "types/Status.h"
+
+using ::android::automotive::computepipe::runner::ClientConfig;
+using ::android::automotive::computepipe::runner::RunnerComponentInterface;
+using ::android::automotive::computepipe::runner::RunnerEvent;
+using ::testing::HasSubstr;
+
+namespace android {
+namespace automotive {
+namespace computepipe {
+namespace graph {
+namespace {
+
+constexpr char kGraphName[] = "Dummy graph name";
+constexpr char kSetGraphConfigMessage[] = "Dummy set config message";
+constexpr char kSetDebugOptionMessage[] = "Dummy set debug option message";
+constexpr char kStartGraphMessage[] = "Dummy start graph message";
+constexpr char kStopGraphMessage[] = "Dummy stop graph message";
+constexpr char kOutputStreamPacket[] = "Dummy output stream packet";
+constexpr char kResetGraphMessage[] = "ResetGraphMessage";
+
+// This is a barebones synchronous server implementation. A better implementation would be an
+// asynchronous implementation and it is upto the graph provider to do that. This implementation
+// is very specific to tests being conducted here.
+class GrpcGraphServerImpl : public proto::GrpcGraphService::Service {
+private:
+    std::string mServerAddress;
+    std::unique_ptr<::grpc::Server> mServer;
+    std::mutex mLock;
+    std::condition_variable mShutdownCv;
+    bool mShutdown = false;
+
+public:
+    explicit GrpcGraphServerImpl(std::string address) : mServerAddress(address) {}
+
+    virtual ~GrpcGraphServerImpl() {
+        if (mServer) {
+            mServer->Shutdown();
+            std::unique_lock lock(mLock);
+            if (!mShutdown) {
+                mShutdownCv.wait_for(lock, std::chrono::seconds(10),
+                                     [this]() { return mShutdown; });
+            }
+        }
+    }
+
+    void startServer() {
+        if (mServer == nullptr) {
+            ::grpc::ServerBuilder builder;
+            builder.RegisterService(this);
+            builder.AddListeningPort(mServerAddress, ::grpc::InsecureServerCredentials());
+            mServer = builder.BuildAndStart();
+            mServer->Wait();
+            std::lock_guard lock(mLock);
+            mShutdown = true;
+            mShutdownCv.notify_one();
+        }
+    }
+
+    ::grpc::Status GetGraphOptions(::grpc::ServerContext* context,
+                                   const proto::GraphOptionsRequest* request,
+                                   proto::GraphOptionsResponse* response) override {
+        proto::Options options;
+        options.set_graph_name(kGraphName);
+        response->set_serialized_options(options.SerializeAsString());
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status SetGraphConfig(::grpc::ServerContext* context,
+                                  const proto::SetGraphConfigRequest* request,
+                                  proto::StatusResponse* response) override {
+        response->set_code(proto::RemoteGraphStatusCode::SUCCESS);
+        response->set_message(kSetGraphConfigMessage);
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status SetDebugOption(::grpc::ServerContext* context,
+                                  const proto::SetDebugRequest* request,
+                                  proto::StatusResponse* response) override {
+        response->set_code(proto::RemoteGraphStatusCode::SUCCESS);
+        response->set_message(kSetDebugOptionMessage);
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status StartGraphExecution(::grpc::ServerContext* context,
+                                       const proto::StartGraphExecutionRequest* request,
+                                       proto::StatusResponse* response) override {
+        response->set_code(proto::RemoteGraphStatusCode::SUCCESS);
+        response->set_message(kStartGraphMessage);
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status ObserveOutputStream(
+            ::grpc::ServerContext* context, const proto::ObserveOutputStreamRequest* request,
+            ::grpc::ServerWriter<proto::OutputStreamResponse>* writer) override {
+        // Write as many output packets as stream id. This is just to test different number of
+        // packets received with each stream. Also write even numbered stream as a pixel packet
+        // and odd numbered stream as a data packet.
+        for (int i = 0; i < request->stream_id(); i++) {
+            proto::OutputStreamResponse response;
+            if (request->stream_id() % 2 == 0) {
+                response.mutable_pixel_data()->set_data(kOutputStreamPacket);
+                response.mutable_pixel_data()->set_height(1);
+                response.mutable_pixel_data()->set_width(sizeof(kOutputStreamPacket));
+                response.mutable_pixel_data()->set_step(sizeof(kOutputStreamPacket));
+                response.mutable_pixel_data()->set_format(proto::PixelFormat::GRAY);
+                EXPECT_TRUE(response.has_pixel_data());
+            } else {
+                response.set_semantic_data(kOutputStreamPacket);
+                EXPECT_TRUE(response.has_semantic_data());
+            }
+            if (!writer->Write(response)) {
+                return ::grpc::Status(::grpc::StatusCode::ABORTED, "Connection lost");
+            }
+        }
+
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status StopGraphExecution(::grpc::ServerContext* context,
+                                      const proto::StopGraphExecutionRequest* request,
+                                      proto::StatusResponse* response) override {
+        response->set_code(proto::RemoteGraphStatusCode::SUCCESS);
+        response->set_message(kStopGraphMessage);
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status ResetGraph(::grpc::ServerContext* context,
+                              const proto::ResetGraphRequest* request,
+                              proto::StatusResponse* response) override {
+        response->set_code(proto::RemoteGraphStatusCode::SUCCESS);
+        response->set_message(kResetGraphMessage);
+        return ::grpc::Status::OK;
+    }
+
+    ::grpc::Status GetProfilingData(::grpc::ServerContext* context,
+                                    const proto::ProfilingDataRequest* request,
+                                    proto::ProfilingDataResponse* response) {
+        response->set_data(kSetGraphConfigMessage);
+        return ::grpc::Status::OK;
+    }
+};
+
+class PrebuiltEngineInterfaceImpl : public PrebuiltEngineInterface {
+private:
+    std::map<int, int> mNumPacketsPerStream;
+    std::mutex mLock;
+    std::condition_variable mCv;
+    bool mGraphTerminated = false;
+
+public:
+    // Prebuilt to engine interface
+    void DispatchPixelData(int streamId, int64_t timestamp,
+                           const runner::InputFrame& frame) override {
+        ASSERT_EQ(streamId % 2, 0);
+        std::lock_guard lock(mLock);
+        if (mNumPacketsPerStream.find(streamId) == mNumPacketsPerStream.end()) {
+            mNumPacketsPerStream[streamId] = 1;
+        } else {
+            mNumPacketsPerStream[streamId]++;
+        }
+    }
+
+    void DispatchSerializedData(int streamId, int64_t timestamp, std::string&& data) override {
+        ASSERT_EQ(streamId % 2, 1);
+        std::lock_guard lock(mLock);
+        if (mNumPacketsPerStream.find(streamId) == mNumPacketsPerStream.end()) {
+            mNumPacketsPerStream[streamId] = 1;
+        } else {
+            mNumPacketsPerStream[streamId]++;
+        }
+    }
+
+    void DispatchGraphTerminationMessage(Status status, std::string&& msg) override {
+        std::lock_guard lock(mLock);
+        mGraphTerminated = true;
+        mCv.notify_one();
+    }
+
+    bool waitForTermination() {
+        std::unique_lock lock(mLock);
+        if (!mGraphTerminated) {
+            mCv.wait_for(lock, std::chrono::seconds(10), [this] { return mGraphTerminated; });
+        }
+        return mGraphTerminated;
+    }
+
+    int numPacketsForStream(int streamId) {
+        std::lock_guard lock(mLock);
+        auto it = mNumPacketsPerStream.find(streamId);
+        if (it == mNumPacketsPerStream.end()) {
+            return 0;
+        }
+        return it->second;
+    }
+};
+
+class GrpcGraphTest : public ::testing::Test {
+private:
+    std::unique_ptr<GrpcGraphServerImpl> mServer;
+    std::shared_ptr<PrebuiltEngineInterfaceImpl> mEngine;
+    std::string mAddress = "[::]:10000";
+
+public:
+    std::unique_ptr<PrebuiltGraph> mGrpcGraph;
+
+    void SetUp() override {
+        mServer = std::make_unique<GrpcGraphServerImpl>(mAddress);
+        std::thread t = std::thread([this]() { mServer->startServer(); });
+        t.detach();
+        std::this_thread::sleep_for(std::chrono::seconds(1));
+
+        mEngine = std::make_shared<PrebuiltEngineInterfaceImpl>();
+        mGrpcGraph = GetRemoteGraphFromAddress(mAddress, mEngine);
+        ASSERT_TRUE(mGrpcGraph != nullptr);
+        EXPECT_EQ(mGrpcGraph->GetSupportedGraphConfigs().graph_name(), kGraphName);
+        EXPECT_EQ(mGrpcGraph->GetGraphType(), PrebuiltGraphType::REMOTE);
+    }
+
+    void TearDown() override { mServer.reset(); }
+
+    bool waitForTermination() { return mEngine->waitForTermination(); }
+
+    int numPacketsForStream(int streamId) { return mEngine->numPacketsForStream(streamId); }
+};
+
+class TestRunnerEvent : public runner::RunnerEvent {
+    bool isPhaseEntry() const override { return true; }
+    bool isTransitionComplete() const override { return false; }
+    bool isAborted() const override { return false; }
+    Status dispatchToComponent(const std::shared_ptr<runner::RunnerComponentInterface>&) override {
+        return Status::SUCCESS;
+    };
+};
+
+// Test to see if stop with flush produces exactly as many packets as expected. The number
+// of packets produced by stopImmediate is variable as the number of packets already dispatched
+// when stop is called is variable.
+TEST_F(GrpcGraphTest, EndToEndTestOnStopWithFlush) {
+    std::map<int, int> outputConfigs = {{5, 1}, {6, 1}};
+    runner::ClientConfig clientConfig(0, 0, 0, outputConfigs, proto::ProfilingType::DISABLED);
+
+    EXPECT_EQ(mGrpcGraph->handleConfigPhase(clientConfig), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::STOPPED);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    TestRunnerEvent e;
+    EXPECT_EQ(mGrpcGraph->handleExecutionPhase(e), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::RUNNING);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    EXPECT_EQ(mGrpcGraph->handleStopWithFlushPhase(e), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::FLUSHING);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    EXPECT_TRUE(waitForTermination());
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::STOPPED);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+    EXPECT_EQ(numPacketsForStream(5), 5);
+    EXPECT_EQ(numPacketsForStream(6), 6);
+}
+
+TEST_F(GrpcGraphTest, GraphStopCallbackProducedOnImmediateStop) {
+    std::map<int, int> outputConfigs = {{5, 1}, {6, 1}};
+    runner::ClientConfig clientConfig(0, 0, 0, outputConfigs, proto::ProfilingType::DISABLED);
+
+    EXPECT_EQ(mGrpcGraph->handleConfigPhase(clientConfig), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::STOPPED);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    TestRunnerEvent e;
+    EXPECT_EQ(mGrpcGraph->handleExecutionPhase(e), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::RUNNING);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    EXPECT_EQ(mGrpcGraph->handleStopImmediatePhase(e), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::STOPPED);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    EXPECT_TRUE(waitForTermination());
+}
+
+TEST_F(GrpcGraphTest, GraphStopCallbackProducedOnFlushedStopWithNoOutputStreams) {
+    std::map<int, int> outputConfigs = {};
+    runner::ClientConfig clientConfig(0, 0, 0, outputConfigs, proto::ProfilingType::DISABLED);
+    EXPECT_EQ(mGrpcGraph->handleConfigPhase(clientConfig), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::STOPPED);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    TestRunnerEvent e;
+    EXPECT_EQ(mGrpcGraph->handleExecutionPhase(e), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetGraphState(), PrebuiltGraphState::RUNNING);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    EXPECT_EQ(mGrpcGraph->handleStopWithFlushPhase(e), Status::SUCCESS);
+    EXPECT_EQ(mGrpcGraph->GetStatus(), Status::SUCCESS);
+
+    EXPECT_TRUE(waitForTermination());
+}
+
+TEST_F(GrpcGraphTest, SetInputStreamsFailAsExpected) {
+    runner::InputFrame frame(0, 0, static_cast<PixelFormat>(0), 0, nullptr);
+    EXPECT_EQ(mGrpcGraph->SetInputStreamData(0, 0, ""), Status::FATAL_ERROR);
+    EXPECT_EQ(mGrpcGraph->SetInputStreamPixelData(0, 0, frame), Status::FATAL_ERROR);
+}
+
+}  // namespace
+}  // namespace graph
+}  // namespace computepipe
+}  // namespace automotive
+}  // namespace android
diff --git a/computepipe/tests/runner/graph/PrebuiltGraphTest.cpp b/computepipe/tests/runner/graph/LocalPrebuiltGraphTest.cpp
similarity index 76%
rename from computepipe/tests/runner/graph/PrebuiltGraphTest.cpp
rename to computepipe/tests/runner/graph/LocalPrebuiltGraphTest.cpp
index 8935ce4..d63ec51 100644
--- a/computepipe/tests/runner/graph/PrebuiltGraphTest.cpp
+++ b/computepipe/tests/runner/graph/LocalPrebuiltGraphTest.cpp
@@ -16,8 +16,9 @@
 #include <string>
 
 #include "ClientConfig.pb.h"
+#include "LocalPrebuiltGraph.h"
 #include "PrebuiltEngineInterface.h"
-#include "PrebuiltGraph.h"
+#include "ProfilingType.pb.h"
 #include "RunnerComponent.h"
 #include "gmock/gmock-matchers.h"
 #include "gmock/gmock.h"
@@ -41,15 +42,16 @@
 typedef std::function<void(int, int64_t, std::string&&)> SerializedStreamCallback;
 typedef std::function<void(Status, std::string&&)> GraphTerminationCallback;
 class PrebuiltEngineInterfaceImpl : public PrebuiltEngineInterface {
-  private:
+private:
     PixelCallback mPixelCallbackFn;
     SerializedStreamCallback mSerializedStreamCallbackFn;
     GraphTerminationCallback mGraphTerminationCallbackFn;
 
-  public:
+public:
     virtual ~PrebuiltEngineInterfaceImpl() = default;
 
-    void DispatchPixelData(int streamId, int64_t timestamp, const runner::InputFrame& frame) override {
+    void DispatchPixelData(int streamId, int64_t timestamp,
+                           const runner::InputFrame& frame) override {
         mPixelCallbackFn(streamId, timestamp, frame);
     }
 
@@ -61,9 +63,7 @@
         mGraphTerminationCallbackFn(status, std::move(msg));
     }
 
-    void SetPixelCallback(PixelCallback callback) {
-        mPixelCallbackFn = callback;
-    }
+    void SetPixelCallback(PixelCallback callback) { mPixelCallbackFn = callback; }
 
     void SetSerializedStreamCallback(SerializedStreamCallback callback) {
         mSerializedStreamCallbackFn = callback;
@@ -85,26 +85,26 @@
 // The above two properties are used to test that the prebuilt graph wrapper calls the correct
 // functions and callbacks are issued as expected. These tests do not test the internals of the
 // graph themselves and such tests must be written along with the graph implementation.
-TEST(PrebuiltGraphTest, FunctionMappingFromLibraryIsSuccessful) {
+TEST(LocalPrebuiltGraphTest, FunctionMappingFromLibraryIsSuccessful) {
     PrebuiltEngineInterfaceImpl callback;
     std::shared_ptr<PrebuiltEngineInterface> engineInterface =
-        std::static_pointer_cast<PrebuiltEngineInterface, PrebuiltEngineInterfaceImpl>(
-            std::make_shared<PrebuiltEngineInterfaceImpl>(callback));
-    PrebuiltGraph* graph =
-        PrebuiltGraph::GetPrebuiltGraphFromLibrary("libstubgraphimpl.so", engineInterface);
+            std::static_pointer_cast<PrebuiltEngineInterface, PrebuiltEngineInterfaceImpl>(
+                    std::make_shared<PrebuiltEngineInterfaceImpl>(callback));
+    PrebuiltGraph* graph = GetLocalGraphFromLibrary("libstubgraphimpl.so", engineInterface);
     ASSERT_TRUE(graph);
+    EXPECT_EQ(graph->GetGraphType(), PrebuiltGraphType::LOCAL);
     EXPECT_NE(graph->GetGraphState(), PrebuiltGraphState::UNINITIALIZED);
     EXPECT_EQ(graph->GetSupportedGraphConfigs().graph_name(), "stub_graph");
 }
 
-TEST(PrebuiltGraphTest, GraphConfigurationIssuesCorrectFunctionCalls) {
+TEST(LocalPrebuiltGraphTest, GraphConfigurationIssuesCorrectFunctionCalls) {
     PrebuiltEngineInterfaceImpl callback;
     std::shared_ptr<PrebuiltEngineInterface> engineInterface =
-        std::static_pointer_cast<PrebuiltEngineInterface, PrebuiltEngineInterfaceImpl>(
-            std::make_shared<PrebuiltEngineInterfaceImpl>(callback));
-    PrebuiltGraph* graph =
-        PrebuiltGraph::GetPrebuiltGraphFromLibrary("libstubgraphimpl.so", engineInterface);
+            std::static_pointer_cast<PrebuiltEngineInterface, PrebuiltEngineInterfaceImpl>(
+                    std::make_shared<PrebuiltEngineInterfaceImpl>(callback));
+    PrebuiltGraph* graph = GetLocalGraphFromLibrary("libstubgraphimpl.so", engineInterface);
     ASSERT_TRUE(graph);
+    EXPECT_EQ(graph->GetGraphType(), PrebuiltGraphType::LOCAL);
     ASSERT_NE(graph->GetGraphState(), PrebuiltGraphState::UNINITIALIZED);
 
     graph->GetSupportedGraphConfigs();
@@ -112,7 +112,7 @@
     EXPECT_THAT(functionVisited, HasSubstr("GetSupportedGraphConfigs"));
 
     std::map<int, int> maxOutputPacketsPerStream;
-    ClientConfig e(0, 0, 0, maxOutputPacketsPerStream);
+    ClientConfig e(0, 0, 0, maxOutputPacketsPerStream, proto::ProfilingType::DISABLED);
     e.setPhaseState(runner::PhaseState::ENTRY);
     EXPECT_EQ(graph->handleConfigPhase(e), Status::SUCCESS);
     functionVisited = graph->GetErrorMessage();
@@ -122,13 +122,13 @@
     EXPECT_THAT(functionVisited, HasSubstr("GetErrorCode"));
 }
 
-TEST(PrebuiltGraphTest, GraphOperationEndToEndIsSuccessful) {
+TEST(LocalPrebuiltGraphTest, GraphOperationEndToEndIsSuccessful) {
     bool graphHasTerminated = false;
     int numOutputStreamCallbacksReceived[4] = {0, 0, 0, 0};
 
     PrebuiltEngineInterfaceImpl callback;
     callback.SetGraphTerminationCallback(
-        [&graphHasTerminated](Status, std::string) { graphHasTerminated = true; });
+            [&graphHasTerminated](Status, std::string) { graphHasTerminated = true; });
 
     // Add multiple pixel stream callback functions to see if all of them register.
     callback.SetPixelCallback([&numOutputStreamCallbacksReceived](int streamIndex, int64_t,
@@ -139,18 +139,18 @@
 
     // Add multiple stream callback functions to see if all of them register.
     callback.SetSerializedStreamCallback(
-        [&numOutputStreamCallbacksReceived](int streamIndex, int64_t, std::string&&) {
-            ASSERT_TRUE(streamIndex == 2 || streamIndex == 3);
-            numOutputStreamCallbacksReceived[streamIndex]++;
-        });
+            [&numOutputStreamCallbacksReceived](int streamIndex, int64_t, std::string&&) {
+                ASSERT_TRUE(streamIndex == 2 || streamIndex == 3);
+                numOutputStreamCallbacksReceived[streamIndex]++;
+            });
 
     std::shared_ptr<PrebuiltEngineInterface> engineInterface =
-        std::static_pointer_cast<PrebuiltEngineInterface, PrebuiltEngineInterfaceImpl>(
-            std::make_shared<PrebuiltEngineInterfaceImpl>(callback));
+            std::static_pointer_cast<PrebuiltEngineInterface, PrebuiltEngineInterfaceImpl>(
+                    std::make_shared<PrebuiltEngineInterfaceImpl>(callback));
 
-    PrebuiltGraph* graph =
-        PrebuiltGraph::GetPrebuiltGraphFromLibrary("libstubgraphimpl.so", engineInterface);
+    PrebuiltGraph* graph = GetLocalGraphFromLibrary("libstubgraphimpl.so", engineInterface);
 
+    EXPECT_EQ(graph->GetGraphType(), PrebuiltGraphType::LOCAL);
     ASSERT_NE(graph->GetGraphState(), PrebuiltGraphState::UNINITIALIZED);
 
     graph->GetSupportedGraphConfigs();
@@ -158,7 +158,7 @@
     EXPECT_THAT(functionVisited, HasSubstr("GetSupportedGraphConfigs"));
 
     std::map<int, int> maxOutputPacketsPerStream;
-    ClientConfig e(0, 0, 0, maxOutputPacketsPerStream);
+    ClientConfig e(0, 0, 0, maxOutputPacketsPerStream, proto::ProfilingType::DISABLED);
     e.setPhaseState(runner::PhaseState::ENTRY);
     EXPECT_EQ(graph->handleConfigPhase(e), Status::SUCCESS);
     functionVisited = graph->GetErrorMessage();
@@ -169,19 +169,19 @@
 
     runner::InputFrame inputFrame(0, 0, PixelFormat::RGB, 0, nullptr);
     EXPECT_EQ(graph->SetInputStreamPixelData(
-                  /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
+                      /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
               Status::SUCCESS);
     EXPECT_EQ(graph->SetInputStreamPixelData(
-                  /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
+                      /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
               Status::SUCCESS);
     EXPECT_EQ(graph->SetInputStreamPixelData(
-                  /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
+                      /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
               Status::SUCCESS);
     EXPECT_EQ(graph->SetInputStreamPixelData(
-                  /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
+                      /*streamIndex =*/1, /*timestamp =*/0, /*inputFrame =*/inputFrame),
               Status::SUCCESS);
     EXPECT_EQ(graph->SetInputStreamPixelData(
-                  /*streamIndex =*/0, /*timestamp =*/0, /*inputFrame =*/inputFrame),
+                      /*streamIndex =*/1, /*timestamp =*/0, /*inputFrame =*/inputFrame),
               Status::SUCCESS);
     functionVisited = graph->GetErrorMessage();
     EXPECT_THAT(functionVisited, HasSubstr("SetInputStreamPixelData"));
diff --git a/computepipe/tests/runner/graph/stubgraph/arm/libstubgraphimpl.so b/computepipe/tests/runner/graph/stubgraph/arm/libstubgraphimpl.so
index 3f17e52..d15cb8f 100755
--- a/computepipe/tests/runner/graph/stubgraph/arm/libstubgraphimpl.so
+++ b/computepipe/tests/runner/graph/stubgraph/arm/libstubgraphimpl.so
Binary files differ
diff --git a/computepipe/tests/runner/graph/stubgraph/arm64/libstubgraphimpl.so b/computepipe/tests/runner/graph/stubgraph/arm64/libstubgraphimpl.so
index da7d014..f347de7 100755
--- a/computepipe/tests/runner/graph/stubgraph/arm64/libstubgraphimpl.so
+++ b/computepipe/tests/runner/graph/stubgraph/arm64/libstubgraphimpl.so
Binary files differ
diff --git a/computepipe/tests/runner/graph/stubgraph/x86/libstubgraphimpl.so b/computepipe/tests/runner/graph/stubgraph/x86/libstubgraphimpl.so
index 4b9904c..55e1355 100755
--- a/computepipe/tests/runner/graph/stubgraph/x86/libstubgraphimpl.so
+++ b/computepipe/tests/runner/graph/stubgraph/x86/libstubgraphimpl.so
Binary files differ
diff --git a/computepipe/tests/runner/graph/stubgraph/x86_64/libstubgraphimpl.so b/computepipe/tests/runner/graph/stubgraph/x86_64/libstubgraphimpl.so
index 96e1004..241c18c 100755
--- a/computepipe/tests/runner/graph/stubgraph/x86_64/libstubgraphimpl.so
+++ b/computepipe/tests/runner/graph/stubgraph/x86_64/libstubgraphimpl.so
Binary files differ
diff --git a/evs/apps/default/ConfigManager.h b/evs/apps/default/ConfigManager.h
index b3d283e..6acd83d 100644
--- a/evs/apps/default/ConfigManager.h
+++ b/evs/apps/default/ConfigManager.h
@@ -89,6 +89,8 @@
     }
     const std::vector<DisplayInfo>& getDisplays() const { return mDisplays; };
     const DisplayInfo& getActiveDisplay() const { return mDisplays[mActiveDisplayId]; };
+    void  useExternalMemory(bool flag) { mUseExternalMemory = flag; }
+    bool  getUseExternalMemory() const { return mUseExternalMemory; }
 
 private:
     // Camera information
@@ -98,6 +100,9 @@
     std::vector<DisplayInfo> mDisplays;
     int mActiveDisplayId;
 
+    // Memory management
+    bool mUseExternalMemory;
+
     // Car body information (assumes front wheel steering and origin at center of rear axel)
     // Note that units aren't specified and don't matter as long as all length units are consistent
     // within the JSON file from which we parse.  That is, if everything is in meters, that's fine.
diff --git a/evs/apps/default/EvsStateControl.cpp b/evs/apps/default/EvsStateControl.cpp
index b963551..e45fe2f 100644
--- a/evs/apps/default/EvsStateControl.cpp
+++ b/evs/apps/default/EvsStateControl.cpp
@@ -303,7 +303,8 @@
         if (mCameraList[desiredState].size() == 1) {
             // We have a camera assigned to this state for direct view.
             mDesiredRenderer = std::make_unique<RenderDirectView>(mEvs,
-                                                                  mCameraDescList[desiredState][0]);
+                                                                  mCameraDescList[desiredState][0],
+                                                                  mConfig);
             if (!mDesiredRenderer) {
                 LOG(ERROR) << "Failed to construct direct renderer.  Skipping state change.";
                 return false;
diff --git a/evs/apps/default/RenderDirectView.cpp b/evs/apps/default/RenderDirectView.cpp
index 4a8db70..2938521 100644
--- a/evs/apps/default/RenderDirectView.cpp
+++ b/evs/apps/default/RenderDirectView.cpp
@@ -42,9 +42,11 @@
 
 
 RenderDirectView::RenderDirectView(sp<IEvsEnumerator> enumerator,
-                                   const CameraDesc& camDesc) :
+                                   const CameraDesc& camDesc,
+                                   const ConfigManager& config) :
     mEnumerator(enumerator),
-    mCameraDesc(camDesc) {
+    mCameraDesc(camDesc),
+    mConfig(config) {
     /* Nothing to do */
 }
 
@@ -113,7 +115,8 @@
     mTexture.reset(createVideoTexture(mEnumerator,
                                       mCameraDesc.v1.cameraId.c_str(),
                                       foundCfg ? std::move(targetCfg) : nullptr,
-                                      sDisplay));
+                                      sDisplay,
+                                      mConfig.getUseExternalMemory()));
     if (!mTexture) {
         LOG(ERROR) << "Failed to set up video texture for " << mCameraDesc.v1.cameraId;
 // TODO:  For production use, we may actually want to fail in this case, but not yet...
diff --git a/evs/apps/default/RenderDirectView.h b/evs/apps/default/RenderDirectView.h
index 3514e05..65a94e2 100644
--- a/evs/apps/default/RenderDirectView.h
+++ b/evs/apps/default/RenderDirectView.h
@@ -35,7 +35,8 @@
 class RenderDirectView: public RenderBase {
 public:
     RenderDirectView(sp<IEvsEnumerator> enumerator,
-                     const CameraDesc& camDesc);
+                     const CameraDesc& camDesc,
+                     const ConfigManager& config);
 
     virtual bool activate() override;
     virtual void deactivate() override;
@@ -46,6 +47,7 @@
     sp<IEvsEnumerator>              mEnumerator;
     ConfigManager::CameraInfo       mCameraInfo;
     CameraDesc                      mCameraDesc;
+    const ConfigManager&            mConfig;
 
     std::unique_ptr<VideoTex>       mTexture;
 
diff --git a/evs/apps/default/StreamHandler.cpp b/evs/apps/default/StreamHandler.cpp
index 328f454..b1cfd1f 100644
--- a/evs/apps/default/StreamHandler.cpp
+++ b/evs/apps/default/StreamHandler.cpp
@@ -21,16 +21,73 @@
 
 #include <android-base/logging.h>
 #include <cutils/native_handle.h>
+#include <ui/GraphicBufferAllocator.h>
 
 using ::android::hardware::automotive::evs::V1_0::EvsResult;
 
 
-StreamHandler::StreamHandler(android::sp <IEvsCamera> pCamera) :
-    mCamera(pCamera)
-{
-    // We rely on the camera having at least two buffers available since we'll hold one and
-    // expect the camera to be able to capture a new image in the background.
-    pCamera->setMaxFramesInFlight(2);
+buffer_handle_t memHandle = nullptr;
+StreamHandler::StreamHandler(android::sp <IEvsCamera> pCamera,
+                             uint32_t numBuffers,
+                             bool useOwnBuffers,
+                             int32_t width,
+                             int32_t height)
+    : mCamera(pCamera),
+      mUseOwnBuffers(useOwnBuffers) {
+    if (!useOwnBuffers) {
+        // We rely on the camera having at least two buffers available since we'll hold one and
+        // expect the camera to be able to capture a new image in the background.
+        pCamera->setMaxFramesInFlight(numBuffers);
+    } else {
+        mOwnBuffers.resize(numBuffers);
+
+        // Acquire the graphics buffer allocator
+        android::GraphicBufferAllocator &alloc(android::GraphicBufferAllocator::get());
+        const auto usage = GRALLOC_USAGE_HW_TEXTURE |
+                           GRALLOC_USAGE_SW_READ_RARELY |
+                           GRALLOC_USAGE_SW_WRITE_OFTEN;
+        const auto format = HAL_PIXEL_FORMAT_RGBA_8888;
+        for (auto i = 0; i < numBuffers; ++i) {
+            unsigned pixelsPerLine;
+            android::status_t result = alloc.allocate(width,
+                                                      height,
+                                                      format,
+                                                      1,
+                                                      usage,
+                                                      &memHandle,
+                                                      &pixelsPerLine,
+                                                      0,
+                                                      "EvsApp");
+            if (result != android::NO_ERROR) {
+                LOG(ERROR) << __FUNCTION__ << " failed to allocate memory.";
+            } else {
+                BufferDesc_1_1 buf;
+                AHardwareBuffer_Desc* pDesc =
+                    reinterpret_cast<AHardwareBuffer_Desc *>(&buf.buffer.description);
+                pDesc->width = 640;
+                pDesc->height = 360;
+                pDesc->layers = 1;
+                pDesc->format = HAL_PIXEL_FORMAT_RGBA_8888;
+                pDesc->usage = GRALLOC_USAGE_HW_TEXTURE |
+                               GRALLOC_USAGE_SW_READ_RARELY |
+                               GRALLOC_USAGE_SW_WRITE_OFTEN;
+                pDesc->stride = pixelsPerLine;
+                buf.buffer.nativeHandle = memHandle;
+                buf.bufferId = i;   // Unique number to identify this buffer
+                mOwnBuffers[i] = buf;
+            }
+        }
+
+        int delta = 0;
+        EvsResult result = EvsResult::OK;
+        pCamera->importExternalBuffers(mOwnBuffers,
+                                       [&](auto _result, auto _delta) {
+                                           result = _result;
+                                           delta = _delta;
+                                       });
+
+        LOG(INFO) << delta << " buffers are imported by EVS.";
+    }
 }
 
 
@@ -42,6 +99,15 @@
     // At this point, the receiver thread is no longer running, so we can safely drop
     // our remote object references so they can be freed
     mCamera = nullptr;
+
+    if (mUseOwnBuffers) {
+        android::GraphicBufferAllocator &alloc(android::GraphicBufferAllocator::get());
+        for (auto& b : mOwnBuffers) {
+            alloc.free(b.buffer.nativeHandle);
+        }
+
+        mOwnBuffers.resize(0);
+    }
 }
 
 
diff --git a/evs/apps/default/StreamHandler.h b/evs/apps/default/StreamHandler.h
index cb7a288..f877c78 100644
--- a/evs/apps/default/StreamHandler.h
+++ b/evs/apps/default/StreamHandler.h
@@ -48,7 +48,11 @@
 public:
     virtual ~StreamHandler() { shutdown(); };
 
-    StreamHandler(android::sp <IEvsCamera> pCamera);
+    StreamHandler(android::sp <IEvsCamera> pCamera,
+                  uint32_t numBuffers = 2,
+                  bool useOwnBuffers = false,
+                  int32_t width = 640,
+                  int32_t height = 360);
     void shutdown();
 
     bool startStream();
@@ -83,6 +87,8 @@
     BufferDesc                  mBuffers[2];
     int                         mHeldBuffer = -1;   // Index of the one currently held by the client
     int                         mReadyBuffer = -1;  // Index of the newest available buffer
+    hidl_vec<BufferDesc_1_1>    mOwnBuffers;
+    bool                        mUseOwnBuffers;
 };
 
 
diff --git a/evs/apps/default/VideoTex.cpp b/evs/apps/default/VideoTex.cpp
index c9fc895..94e734a 100644
--- a/evs/apps/default/VideoTex.cpp
+++ b/evs/apps/default/VideoTex.cpp
@@ -136,7 +136,8 @@
 VideoTex* createVideoTexture(sp<IEvsEnumerator> pEnum,
                              const char* evsCameraId,
                              std::unique_ptr<Stream> streamCfg,
-                             EGLDisplay glDisplay) {
+                             EGLDisplay glDisplay,
+                             bool useExternalMemory) {
     // Set up the camera to feed this texture
     sp<IEvsCamera> pCamera = nullptr;
     if (streamCfg != nullptr) {
@@ -153,7 +154,11 @@
     }
 
     // Initialize the stream that will help us update this texture's contents
-    sp<StreamHandler> pStreamHandler = new StreamHandler(pCamera);
+    sp<StreamHandler> pStreamHandler = new StreamHandler(pCamera,
+                                                         2,     // number of buffers
+                                                         useExternalMemory,
+                                                         streamCfg->width,
+                                                         streamCfg->height);
     if (pStreamHandler.get() == nullptr) {
         LOG(ERROR) << "Failed to allocate FrameHandler";
         return nullptr;
diff --git a/evs/apps/default/VideoTex.h b/evs/apps/default/VideoTex.h
index 00e9faa..d884faa 100644
--- a/evs/apps/default/VideoTex.h
+++ b/evs/apps/default/VideoTex.h
@@ -37,7 +37,8 @@
     friend VideoTex* createVideoTexture(sp<IEvsEnumerator> pEnum,
                                         const char *evsCameraId,
                                         std::unique_ptr<Stream> streamCfg,
-                                        EGLDisplay glDisplay);
+                                        EGLDisplay glDisplay,
+                                        bool useExternalMemory);
 
 public:
     VideoTex() = delete;
@@ -64,6 +65,7 @@
 VideoTex* createVideoTexture(sp<IEvsEnumerator> pEnum,
                              const char * deviceName,
                              std::unique_ptr<Stream> streamCfg,
-                             EGLDisplay glDisplay);
+                             EGLDisplay glDisplay,
+                             bool useExternalMemory = false);
 
 #endif // VIDEOTEX_H
diff --git a/evs/apps/default/evs_app.cpp b/evs/apps/default/evs_app.cpp
index 65519c7..a968990 100644
--- a/evs/apps/default/evs_app.cpp
+++ b/evs/apps/default/evs_app.cpp
@@ -76,6 +76,7 @@
     bool printHelp = false;
     const char* evsServiceName = "default";
     int displayId = 1;
+    bool useExternalMemory = false;
     for (int i=1; i< argc; i++) {
         if (strcmp(argv[i], "--test") == 0) {
             useVehicleHal = false;
@@ -87,6 +88,8 @@
             printHelp = true;
         } else if (strcmp(argv[i], "--display") == 0) {
             displayId = std::stoi(argv[++i]);
+        } else if (strcmp(argv[i], "--extmem") == 0) {
+            useExternalMemory = true;
         } else {
             printf("Ignoring unrecognized command line arg '%s'\n", argv[i]);
             printHelp = true;
@@ -98,6 +101,7 @@
         printf("  --hw      Bypass EvsManager by connecting directly to EvsEnumeratorHw\n");
         printf("  --mock    Connect directly to EvsEnumeratorHw-Mock\n");
         printf("  --display Specify the display to use\n");
+        printf("  --extmem  Application allocates buffers to capture camera frames\n");
     }
 
     // Load our configuration information
@@ -135,6 +139,7 @@
         return 1;
     }
     config.setActiveDisplayId(displayId);
+    config.useExternalMemory(useExternalMemory);
 
     // Connect to the Vehicle HAL so we can monitor state
     sp<IVehicle> pVnet;
diff --git a/evs/manager/1.1/Enumerator.cpp b/evs/manager/1.1/Enumerator.cpp
index 387ff4e..8417828 100644
--- a/evs/manager/1.1/Enumerator.cpp
+++ b/evs/manager/1.1/Enumerator.cpp
@@ -14,6 +14,8 @@
  * limitations under the License.
  */
 
+#include <android-base/parseint.h>
+#include <android-base/strings.h>
 #include <android-base/logging.h>
 #include <hwbinder/IPCThreadState.h>
 #include <cutils/android_filesystem_config.h>
@@ -27,6 +29,7 @@
 namespace V1_1 {
 namespace implementation {
 
+using ::android::base::EqualsIgnoreCase;
 using CameraDesc_1_0 = ::android::hardware::automotive::evs::V1_0::CameraDesc;
 using CameraDesc_1_1 = ::android::hardware::automotive::evs::V1_1::CameraDesc;
 
@@ -495,6 +498,134 @@
     return Void();
 }
 
+
+Return<void> Enumerator::debug(const hidl_handle& fd,
+                               const hidl_vec<hidl_string>& options) {
+    if (fd.getNativeHandle() != nullptr && fd->numFds > 0) {
+        cmdDump(fd->data[0], options);
+    } else {
+        LOG(ERROR) << "Invalid parameters";
+    }
+
+    return {};
+}
+
+
+void Enumerator::cmdDump(int fd, const hidl_vec<hidl_string>& options) {
+    if (options.size() == 0) {
+        dprintf(fd, "No option is given");
+        return;
+    }
+
+    const std::string option = options[0];
+    if (EqualsIgnoreCase(option, "--help")) {
+        cmdHelp(fd);
+    } else if (EqualsIgnoreCase(option, "--list")) {
+        cmdList(fd, options);
+    } else if (EqualsIgnoreCase(option, "--dump")) {
+        cmdDumpDevice(fd, options);
+    } else {
+        dprintf(fd, "Invalid option: %s\n", option.c_str());
+    }
+}
+
+
+void Enumerator::cmdHelp(int fd) {
+    dprintf(fd, "Usage: \n\n");
+    dprintf(fd, "--help: shows this help.\n");
+    dprintf(fd, "--list [all|camera|display]: list camera or display devices or both "
+                "available to EVS manager.\n");
+    dprintf(fd, "--dump [all|camera|display] <device id>: "
+                "show current status of the target device or all devices "
+                "when no device is given.\n");
+}
+
+
+void Enumerator::cmdList(int fd, const hidl_vec<hidl_string>& options) {
+    bool listCameras = true;
+    bool listDisplays = true;
+    if (options.size() > 1) {
+        const std::string option = options[1];
+        const bool listAll = EqualsIgnoreCase(option, "all");
+        listCameras = listAll || EqualsIgnoreCase(option, "camera");
+        listDisplays = listAll || EqualsIgnoreCase(option, "display");
+        if (!listCameras && !listDisplays) {
+            dprintf(fd, "Unrecognized option, %s, is ignored.\n", option.c_str());
+        }
+    }
+
+    if (listCameras) {
+        dprintf(fd, "Camera devices available to EVS service:\n");
+        if (mCameraDevices.size() < 1) {
+            // Camera devices may not be enumerated yet.
+            getCameraList_1_1(
+                [](const auto cameras) {
+                    if (cameras.size() < 1) {
+                        LOG(WARNING) << "No camera device is available to EVS.";
+                    }
+                });
+        }
+
+        for (auto& [id, desc] : mCameraDevices) {
+            dprintf(fd, "\t%s\n", id.c_str());
+        }
+
+        dprintf(fd, "\nCamera devices currently in use:\n");
+        for (auto& [id, ptr] : mActiveCameras) {
+            dprintf(fd, "\t%s\n", id.c_str());
+        }
+        dprintf(fd, "\n");
+    }
+
+    if (listDisplays) {
+        if (mHwEnumerator != nullptr) {
+            dprintf(fd, "Display devices available to EVS service:\n");
+            // Get an internal display identifier.
+            mHwEnumerator->getDisplayIdList(
+                [&](const auto& displayPorts) {
+                    for (auto& port : displayPorts) {
+                        dprintf(fd, "\tdisplay port %u\n", (unsigned)port);
+                    }
+                }
+            );
+        }
+    }
+}
+
+
+void Enumerator::cmdDumpDevice(int fd, const hidl_vec<hidl_string>& options) {
+    bool dumpCameras = true;
+    bool dumpDisplays = true;
+    if (options.size() > 1) {
+        const std::string option = options[1];
+        const bool dumpAll = EqualsIgnoreCase(option, "all");
+        dumpCameras = dumpAll || EqualsIgnoreCase(option, "camera");
+        dumpDisplays = dumpAll || EqualsIgnoreCase(option, "display");
+        if (!dumpCameras && !dumpDisplays) {
+            dprintf(fd, "Unrecognized option, %s, is ignored.\n", option.c_str());
+        }
+    }
+
+    if (dumpCameras) {
+        const bool dumpAllCameras = options.size() < 3;
+        std::string deviceId = "";
+        if (!dumpAllCameras) {
+            deviceId = options[2];
+        }
+
+        for (auto& [id, ptr] : mActiveCameras) {
+            if (!dumpAllCameras && !EqualsIgnoreCase(id, deviceId)) {
+                continue;
+            }
+            ptr->dump(fd);
+        }
+    }
+
+    if (dumpDisplays) {
+        dprintf(fd, "Not implemented yet\n");
+    }
+}
+
 } // namespace implementation
 } // namespace V1_1
 } // namespace evs
diff --git a/evs/manager/1.1/Enumerator.h b/evs/manager/1.1/Enumerator.h
index f479bb7..f23871e 100644
--- a/evs/manager/1.1/Enumerator.h
+++ b/evs/manager/1.1/Enumerator.h
@@ -71,6 +71,9 @@
     Return<void> closeUltrasonicsArray(
             const ::android::sp<IEvsUltrasonicsArray>& evsUltrasonicsArray) override;
 
+    // Methods from ::android.hidl.base::V1_0::IBase follow.
+    Return<void> debug(const hidl_handle& fd, const hidl_vec<hidl_string>& options) override;
+
     // Implementation details
     bool init(const char* hardwareServiceName);
 
@@ -92,6 +95,12 @@
 
     // Display port the internal display is connected to.
     uint8_t                           mInternalDisplayPort;
+
+    // LSHAL dump
+    void cmdDump(int fd, const hidl_vec<hidl_string>& options);
+    void cmdHelp(int fd);
+    void cmdList(int fd, const hidl_vec<hidl_string>& options);
+    void cmdDumpDevice(int fd, const hidl_vec<hidl_string>& options);
 };
 
 } // namespace implementation
diff --git a/evs/manager/1.1/HalCamera.cpp b/evs/manager/1.1/HalCamera.cpp
index 902366e..4b5feae 100644
--- a/evs/manager/1.1/HalCamera.cpp
+++ b/evs/manager/1.1/HalCamera.cpp
@@ -153,6 +153,58 @@
 }
 
 
+bool HalCamera::changeFramesInFlight(const hidl_vec<BufferDesc_1_1>& buffers,
+                                     int* delta) {
+    // Return immediately if a list is empty.
+    if (buffers.size() < 1) {
+        LOG(DEBUG) << "No external buffers to add.";
+        return true;
+    }
+
+    // Walk all our clients and count their currently required frames
+    auto bufferCount = 0;
+    for (auto&& client :  mClients) {
+        sp<VirtualCamera> virtCam = client.promote();
+        if (virtCam != nullptr) {
+            bufferCount += virtCam->getAllowedBuffers();
+        }
+    }
+
+    EvsResult status = EvsResult::OK;
+    // Ask the hardware for the resulting buffer count
+    mHwCamera->importExternalBuffers(buffers,
+                                     [&](auto result, auto added) {
+                                         status = result;
+                                         *delta = added;
+                                     });
+    if (status != EvsResult::OK) {
+        LOG(ERROR) << "Failed to add external capture buffers.";
+        return false;
+    }
+
+    bufferCount += *delta;
+
+    // Update the size of our array of outstanding frame records
+    std::vector<FrameRecord> newRecords;
+    newRecords.reserve(bufferCount);
+
+    // Copy and compact the old records that are still active
+    for (const auto& rec : mFrames) {
+        if (rec.refCount > 0) {
+            newRecords.emplace_back(rec);
+        }
+    }
+
+    if (newRecords.size() > (unsigned)bufferCount) {
+        LOG(WARNING) << "We found more frames in use than requested.";
+    }
+
+    mFrames.swap(newRecords);
+
+    return true;
+}
+
+
 UniqueFence HalCamera::requestNewFrame(sp<VirtualCamera> client,
                                        const int64_t lastTimestamp) {
     if (!mSyncSupported) {
@@ -329,6 +381,7 @@
                 // Skip current frame because it arrives too soon.
                 LOG(DEBUG) << "Skips a frame from " << getId();
                 mNextRequests->push_back(req);
+                ++mSyncFrames;
             } else if (vCam != nullptr && vCam->deliverFrame(buffer[0])) {
                 // Forward a frame and move a timeline.
                 LOG(DEBUG) << getId() << " forwarded the buffer #" << buffer[0].bufferId;
@@ -337,6 +390,7 @@
             }
         }
     }
+    ++mFramesReceived;
 
     // Frames are being forwarded to active v1.0 clients and v1.1 clients if we
     // failed to create a timeline.
@@ -358,6 +412,7 @@
         // right away.
         LOG(INFO) << "Trivially rejecting frame (" << buffer[0].bufferId
                   << ") from " << getId() << " with no acceptance";
+        ++mFramesNotUsed;
         mHwCamera->doneWithFrame_1_1(buffer);
     } else {
         // Add an entry for this frame in our tracking list.
@@ -507,6 +562,50 @@
 }
 
 
+void HalCamera::dump(int fd) const {
+    dprintf(fd, "HalCamera: %s\n", mId.c_str());
+    const auto timeElapsedNano = android::elapsedRealtimeNano() - mTimeCreated;
+    dprintf(fd, "\tCreated: %ld (elapsed %ld ns)\n", (long)mTimeCreated, (long)timeElapsedNano);
+    dprintf(fd, "\tFrames received: %lu (%f fps)\n",
+                (unsigned long)mFramesReceived,
+                (double)mFramesReceived / timeElapsedNano * 1e+9);
+    dprintf(fd, "\tFrames not used: %lu\n", (unsigned long)mFramesNotUsed);
+    dprintf(fd, "\tFrames skipped to sync: %lu\n", (unsigned long)mSyncFrames);
+    dprintf(fd, "\tActive Stream Configuration:\n");
+    dprintf(fd, "\t\tid: %d\n", mStreamConfig.id);
+    dprintf(fd, "\t\twidth: %d\n", mStreamConfig.width);
+    dprintf(fd, "\t\theight: %d\n", mStreamConfig.height);
+    dprintf(fd, "\t\tformat: %d\n", mStreamConfig.width);
+    dprintf(fd, "\t\tusage: 0x%lX\n", (unsigned long)mStreamConfig.usage);
+    dprintf(fd, "\t\trotation: 0x%X\n", mStreamConfig.rotation);
+
+    dprintf(fd, "\tActive clients:\n");
+    for (auto&& client : mClients) {
+        auto handle = client.promote();
+        if (!handle) {
+            continue;
+        }
+
+        dprintf(fd, "\t\tClient %p\n", handle.get());
+        handle->dump(fd, "\t\t\t");
+        {
+            std::scoped_lock<std::mutex> lock(mFrameMutex);
+            dprintf(fd, "\t\t\tUse a fence-based delivery: %s\n",
+                    mTimelines.find((uint64_t)handle.get()) != mTimelines.end() ? "T" : "F");
+        }
+    }
+
+    dprintf(fd, "\tMaster client: %p\n", mMaster.promote().get());
+    dprintf(fd, "\tSynchronization support: %s\n", mSyncSupported ? "T" : "F");
+}
+
+
+double HalCamera::getFramerate() const {
+    const auto timeElapsed = android::elapsedRealtimeNano() - mTimeCreated;
+    return static_cast<double>(mFramesReceived) / timeElapsed;
+}
+
+
 } // namespace implementation
 } // namespace V1_1
 } // namespace evs
diff --git a/evs/manager/1.1/HalCamera.h b/evs/manager/1.1/HalCamera.h
index b888add..88f8592 100644
--- a/evs/manager/1.1/HalCamera.h
+++ b/evs/manager/1.1/HalCamera.h
@@ -21,6 +21,7 @@
 #include <android/hardware/automotive/evs/1.1/IEvsCamera.h>
 #include <android/hardware/automotive/evs/1.1/IEvsCameraStream.h>
 #include <ui/GraphicBuffer.h>
+#include <utils/SystemClock.h>
 
 #include <thread>
 #include <list>
@@ -63,7 +64,11 @@
         : mHwCamera(hwCamera),
           mId(deviceId),
           mStreamConfig(cfg),
-          mSyncSupported(UniqueTimeline::Supported()) {
+          mSyncSupported(UniqueTimeline::Supported()),
+          mTimeCreated(android::elapsedRealtimeNano()),
+          mFramesReceived(0),
+          mFramesNotUsed(0),
+          mSyncFrames(0) {
         mCurrentRequests = &mFrameRequests[0];
         mNextRequests    = &mFrameRequests[1];
     }
@@ -79,6 +84,8 @@
     std::string         getId()             { return mId; }
     Stream&             getStreamConfig()   { return mStreamConfig; }
     bool                changeFramesInFlight(int delta);
+    bool                changeFramesInFlight(const hardware::hidl_vec<BufferDesc_1_1>& buffers,
+                                             int* delta);
     UniqueFence         requestNewFrame(sp<VirtualCamera> virtualCamera,
                                         const int64_t timestamp);
 
@@ -94,6 +101,9 @@
     Return<EvsResult>   getParameter(CameraParam id, int32_t& value);
     bool                isSyncSupported() const { return mSyncSupported; }
 
+    void                dump(int fd) const;
+    double              getFramerate() const;
+
     // Methods from ::android::hardware::automotive::evs::V1_0::IEvsCameraStream follow.
     Return<void> deliverFrame(const BufferDesc_1_0& buffer) override;
 
@@ -127,13 +137,19 @@
     };
 
     // synchronization
-    std::mutex                mFrameMutex;
+    mutable std::mutex        mFrameMutex;
     std::deque<FrameRequest>  mFrameRequests[2] GUARDED_BY(mFrameMutex);
     std::deque<FrameRequest>* mCurrentRequests  PT_GUARDED_BY(mFrameMutex);
     std::deque<FrameRequest>* mNextRequests     PT_GUARDED_BY(mFrameMutex);
     std::unordered_map<uint64_t,
                        std::unique_ptr<UniqueTimeline>> mTimelines GUARDED_BY(mFrameMutex);
     bool                      mSyncSupported;
+
+    // debugging information
+    int64_t                   mTimeCreated;
+    uint64_t                  mFramesReceived;
+    uint64_t                  mFramesNotUsed;
+    uint64_t                  mSyncFrames;
 };
 
 } // namespace implementation
diff --git a/evs/manager/1.1/VirtualCamera.cpp b/evs/manager/1.1/VirtualCamera.cpp
index 6e203aa..cfef6ea 100644
--- a/evs/manager/1.1/VirtualCamera.cpp
+++ b/evs/manager/1.1/VirtualCamera.cpp
@@ -865,6 +865,47 @@
 }
 
 
+Return<void>
+VirtualCamera::importExternalBuffers(const hidl_vec<BufferDesc_1_1>& buffers,
+                                     importExternalBuffers_cb _hidl_cb) {
+    if (mHalCamera.size() > 1) {
+        LOG(WARNING) << "Logical camera device does not support " << __FUNCTION__;
+        _hidl_cb(EvsResult::UNDERLYING_SERVICE_ERROR, 0);
+        return {};
+    }
+
+    auto pHwCamera = mHalCamera.begin()->second.promote();
+    if (pHwCamera == nullptr) {
+        LOG(WARNING) << "Camera device " << mHalCamera.begin()->first << " is not alive.";
+        _hidl_cb(EvsResult::UNDERLYING_SERVICE_ERROR, 0);
+        return {};
+    }
+
+    int delta = 0;
+    if (!pHwCamera->changeFramesInFlight(buffers, &delta)) {
+        LOG(ERROR) << "Failed to add extenral capture buffers.";
+        _hidl_cb(EvsResult::UNDERLYING_SERVICE_ERROR, 0);
+        return {};
+    }
+
+    mFramesAllowed += delta;
+    _hidl_cb(EvsResult::OK, delta);
+    return {};
+}
+
+
+void VirtualCamera::dump(int fd, const char* prefix) const {
+    dprintf(fd, "%sLogical camera device: %s\n",
+                prefix, mHalCamera.size() > 1 ? "T" : "F");
+    dprintf(fd, "%sFramesAllowed: %u\n", prefix, mFramesAllowed);
+    dprintf(fd, "%sFrames in use:\n", prefix);
+    for (auto&& [id, queue] : mFramesHeld) {
+        dprintf(fd, "%s\t%s, %d\n", prefix, id.c_str(), (int)queue.size());
+    }
+    dprintf(fd, "%sCurrent stream state: %d\n", prefix, mStreamState);
+}
+
+
 } // namespace implementation
 } // namespace V1_1
 } // namespace evs
diff --git a/evs/manager/1.1/VirtualCamera.h b/evs/manager/1.1/VirtualCamera.h
index 63744d9..2a8eae9 100644
--- a/evs/manager/1.1/VirtualCamera.h
+++ b/evs/manager/1.1/VirtualCamera.h
@@ -105,7 +105,11 @@
                                           const hidl_vec<uint8_t>& opaqueValue) override;
     Return<void>      getExtendedInfo_1_1(uint32_t opaqueIdentifier,
                                           getExtendedInfo_1_1_cb _hidl_cb) override;
+    Return<void>      importExternalBuffers(const hidl_vec<BufferDesc_1_1>& buffers,
+                                            importExternalBuffers_cb _hidl_cb) override;
 
+    // Dump current status to a given file descriptor
+    void              dump(int fd, const char* prefix = "") const;
 
 
 private:
diff --git a/evs/sampleDriver/EvsV4lCamera.cpp b/evs/sampleDriver/EvsV4lCamera.cpp
index eefad2a..fdb8937 100644
--- a/evs/sampleDriver/EvsV4lCamera.cpp
+++ b/evs/sampleDriver/EvsV4lCamera.cpp
@@ -449,6 +449,84 @@
 }
 
 
+Return<void>
+EvsV4lCamera::importExternalBuffers(const hidl_vec<BufferDesc_1_1>& buffers,
+                                    importExternalBuffers_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+
+    // If we've been displaced by another owner of the camera, then we can't do anything else
+    if (!mVideo.isOpen()) {
+        LOG(WARNING) << "Ignoring a request add external buffers "
+                     << "when camera has been lost.";
+        _hidl_cb(EvsResult::UNDERLYING_SERVICE_ERROR, mFramesAllowed);
+        return {};
+    }
+
+    auto numBuffersToAdd = buffers.size();
+    if (numBuffersToAdd < 1) {
+        LOG(DEBUG) << "No buffers to add.";
+        _hidl_cb(EvsResult::OK, mFramesAllowed);
+        return {};
+    }
+
+    {
+        std::scoped_lock<std::mutex> lock(mAccessLock);
+
+        if (numBuffersToAdd > (MAX_BUFFERS_IN_FLIGHT - mFramesAllowed)) {
+            numBuffersToAdd -= (MAX_BUFFERS_IN_FLIGHT - mFramesAllowed);
+            LOG(WARNING) << "Exceed the limit on number of buffers.  "
+                         << numBuffersToAdd << " buffers will be added only.";
+        }
+
+        GraphicBufferMapper& mapper = GraphicBufferMapper::get();
+        const auto before = mFramesAllowed;
+        for (auto i = 0; i < numBuffersToAdd; ++i) {
+            // TODO: reject if external buffer is configured differently.
+            auto& b = buffers[i];
+            const AHardwareBuffer_Desc* pDesc =
+                reinterpret_cast<const AHardwareBuffer_Desc *>(&b.buffer.description);
+
+            // Import a buffer to add
+            buffer_handle_t memHandle = nullptr;
+            status_t result = mapper.importBuffer(b.buffer.nativeHandle,
+                                                  pDesc->width,
+                                                  pDesc->height,
+                                                  1,
+                                                  pDesc->format,
+                                                  pDesc->usage,
+                                                  pDesc->stride,
+                                                  &memHandle);
+            if (result != android::NO_ERROR || !memHandle) {
+                LOG(WARNING) << "Failed to import a buffer " << b.bufferId;
+                continue;
+            }
+
+            auto stored = false;
+            for (auto&& rec : mBuffers) {
+                if (rec.handle == nullptr) {
+                    // Use this existing entry
+                    rec.handle = memHandle;
+                    rec.inUse = false;
+
+                    stored = true;
+                    break;
+                }
+            }
+
+            if (!stored) {
+                // Add a BufferRecord wrapping this handle to our set of available buffers
+                mBuffers.emplace_back(memHandle);
+            }
+
+            ++mFramesAllowed;
+        }
+
+        _hidl_cb(EvsResult::OK, mFramesAllowed - before);
+        return {};
+    }
+}
+
+
 EvsResult EvsV4lCamera::doneWithFrame_impl(const uint32_t bufferId,
                                            const buffer_handle_t memHandle) {
     std::lock_guard <std::mutex> lock(mAccessLock);
@@ -649,7 +727,7 @@
     }
 
     if (!readyForFrame) {
-        // We need to return the vide buffer so it can capture a new frame
+        // We need to return the video buffer so it can capture a new frame
         mVideo.markFrameConsumed();
     } else {
         // Assemble the buffer description we'll transmit below
@@ -675,10 +753,11 @@
         // causes SEGV_MAPPER.
         void *targetPixels = nullptr;
         GraphicBufferMapper &mapper = GraphicBufferMapper::get();
-        status_t result = mapper.lock(bufDesc_1_1.buffer.nativeHandle,
-                    GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_NEVER,
-                    android::Rect(pDesc->width, pDesc->height),
-                    (void **)&targetPixels);
+        status_t result =
+            mapper.lock(bufDesc_1_1.buffer.nativeHandle,
+                        GRALLOC_USAGE_SW_WRITE_OFTEN | GRALLOC_USAGE_SW_READ_NEVER,
+                        android::Rect(pDesc->width, pDesc->height),
+                        (void **)&targetPixels);
 
         // If we failed to lock the pixel buffer, we're about to crash, but log it first
         if (!targetPixels) {
@@ -740,6 +819,7 @@
             // Since we didn't actually deliver it, mark the frame as available
             std::lock_guard<std::mutex> lock(mAccessLock);
             mBuffers[idx].inUse = false;
+
             mFramesInUse--;
         }
     }
diff --git a/evs/sampleDriver/EvsV4lCamera.h b/evs/sampleDriver/EvsV4lCamera.h
index 3dc9f06..c5b15a9 100644
--- a/evs/sampleDriver/EvsV4lCamera.h
+++ b/evs/sampleDriver/EvsV4lCamera.h
@@ -24,8 +24,9 @@
 #include <android/hardware/camera/device/3.2/ICameraDevice.h>
 #include <ui/GraphicBuffer.h>
 
-#include <thread>
 #include <functional>
+#include <thread>
+#include <set>
 
 #include "VideoCapture.h"
 #include "ConfigManager.h"
@@ -85,6 +86,8 @@
                                           const hidl_vec<uint8_t>& opaqueValue) override;
     Return<void>      getExtendedInfo_1_1(uint32_t opaqueIdentifier,
                                           getExtendedInfo_1_1_cb _hidl_cb) override;
+    Return<void>      importExternalBuffers(const hidl_vec<BufferDesc_1_1>& buffers,
+                                            importExternalBuffers_cb _hidl_cb) override;
 
     static sp<EvsV4lCamera> Create(const char *deviceName);
     static sp<EvsV4lCamera> Create(const char *deviceName,
diff --git a/evs/sepolicy/evs_manager.te b/evs/sepolicy/evs_manager.te
index 6a4173a..d3ef6db 100644
--- a/evs/sepolicy/evs_manager.te
+++ b/evs/sepolicy/evs_manager.te
@@ -10,3 +10,6 @@
 # allow use of hwservices
 allow evs_manager hal_graphics_allocator_default:fd use;
 
+# allow write to fd
+allow evs_manager shell:fd use;
+allow evs_manager shell:fifo_file write;
diff --git a/service/res/values-et/strings.xml b/service/res/values-et/strings.xml
index 523a25d..982d219 100644
--- a/service/res/values-et/strings.xml
+++ b/service/res/values-et/strings.xml
@@ -17,7 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="car_permission_label" msgid="741004755205554376">"juurdepääs auto teabele"</string>
-    <string name="car_permission_desc" msgid="162499818870052725">"Juurdepääs auto andmetele."</string>
+    <string name="car_permission_desc" msgid="162499818870052725">"Juurdepääs auto teabele."</string>
     <string name="car_permission_label_camera" msgid="3725702064841827180">"juurdepääs auto kaamerale"</string>
     <string name="car_permission_desc_camera" msgid="917024932164501426">"Juurdepääs auto kaameratele."</string>
     <string name="car_permission_label_energy" msgid="7409144323527821558">"juurdepääs auto energiateabele"</string>
diff --git a/service/res/values-ne/strings.xml b/service/res/values-ne/strings.xml
index 1d65af4..a03753b 100644
--- a/service/res/values-ne/strings.xml
+++ b/service/res/values-ne/strings.xml
@@ -37,33 +37,33 @@
     <string name="car_permission_label_radio" msgid="6009465291685935112">"कारको रेडियो व्यवस्थित गर्ने"</string>
     <string name="car_permission_desc_radio" msgid="3385999027478186964">"तपाईंको कारको रेडियोमाथि पहुँच राख्ने।"</string>
     <string name="car_permission_label_projection" msgid="9107156380287576787">"फोनको इन्टरफेस कारको डिस्प्लेमा प्रोजेक्ट गर्ने"</string>
-    <string name="car_permission_desc_projection" msgid="2352178999656292944">"अनुप्रयोगलाई कुनै फोनको इन्टरफेस कारको डिस्प्लेमा प्रोजेक्ट गर्न दिन्छ।"</string>
+    <string name="car_permission_desc_projection" msgid="2352178999656292944">"एपलाई कुनै फोनको इन्टरफेस कारको डिस्प्लेमा प्रोजेक्ट गर्न दिन्छ।"</string>
     <string name="car_permission_label_access_projection_status" msgid="4231618890836627402">"प्रोजेक्सनको स्थितिमाथि पहुँच राख्ने"</string>
-    <string name="car_permission_desc_access_projection_status" msgid="8497351979100616278">"अनुप्रयोगलाई कारको डिस्प्लेमा प्रोजेक्ट गरिरहेका अन्य अनुप्रयोगहरूको स्थिति प्राप्त गर्ने अनुमति दिन्छ।"</string>
+    <string name="car_permission_desc_access_projection_status" msgid="8497351979100616278">"एपलाई कारको डिस्प्लेमा प्रोजेक्ट गरिरहेका अन्य अनुप्रयोगहरूको स्थिति प्राप्त गर्ने अनुमति दिन्छ।"</string>
     <string name="car_permission_label_bind_projection_service" msgid="5362076216606651526">"प्रोजेक्सन सेवामा सम्बद्ध हुने"</string>
     <string name="car_permission_desc_bind_projection_service" msgid="2282657787853408639">"धारकलाई प्रोजेक्सन सेवाको उच्च स्तरको इन्टरफेसमा सम्बद्ध हुने अनुमति दिन्छ। साधारण अनुप्रयोगहरूको लागि कहिल्यै पनि आवश्यक पर्दैन।"</string>
     <string name="car_permission_label_audio_volume" msgid="310587969373137690">"कारको अडियोको भोल्युम नियन्त्रण गर्ने"</string>
     <string name="car_permission_label_audio_settings" msgid="6524703796944023977">"कारका अडियो सेटिङ व्यवस्थित गर्ने"</string>
     <string name="car_permission_label_mock_vehicle_hal" msgid="7198852512207405935">"सवारी साधनको HAL को अनुकरण गर्ने"</string>
     <string name="car_permission_label_receive_ducking" msgid="4884538660766756573">"अडियो डकिङ कार्यक्रमहरू प्राप्त गर्नुहोस्"</string>
-    <string name="car_permission_desc_receive_ducking" msgid="776376388266656512">"कारमा अन्य अडियो प्ले भइरहेका हुनाले अनुप्रयोगको भोल्युम कम भइरहेको कुराबारे अनुप्रयोगलाई सूचित हुन दिन्छ।"</string>
+    <string name="car_permission_desc_receive_ducking" msgid="776376388266656512">"कारमा अन्य अडियो प्ले भइरहेका हुनाले अनुप्रयोगको भोल्युम कम भइरहेको कुराबारे एपलाई सूचित हुन दिन्छ।"</string>
     <string name="car_permission_desc_mock_vehicle_hal" msgid="5235596491098649155">"आन्तरिक परीक्षण गर्ने प्रयोजनका लागि तपाईंको कारको सवारी साधन HAL को अनुकरण गर्ने।"</string>
     <string name="car_permission_desc_audio_volume" msgid="536626185654307889">"तपाईंको कारको अडियोको भोल्युम नियन्त्रण गर्ने।"</string>
     <string name="car_permission_desc_audio_settings" msgid="7192007170677915937">"आफ्नो कारको अडियोसम्बन्धी सेटिङहरू नियन्त्रण गर्नुहोस्।"</string>
     <string name="car_permission_label_control_app_blocking" msgid="9112678596919993386">"अनुप्रयोगमाथि रोक लगाउने कार्य"</string>
-    <string name="car_permission_desc_control_app_blocking" msgid="7539378161760696190">"सवारी साधन चलाइरहेका बेलामा अनुप्रयोगलाई रोक लगाउने प्रक्रिया नियन्त्रण गर्ने।"</string>
+    <string name="car_permission_desc_control_app_blocking" msgid="7539378161760696190">"सवारी साधन चलाइरहेका बेलामा एपलाई रोक लगाउने प्रक्रिया नियन्त्रण गर्ने।"</string>
     <string name="car_permission_car_navigation_manager" msgid="5895461364007854077">"नेभिगेसन प्रबन्धक"</string>
     <string name="car_permission_desc_car_navigation_manager" msgid="6188751054665471537">"नेभिगेसनसम्बन्धी डेटालाई उपकरणको क्लस्टरमा रिपोर्ट गर्ने"</string>
     <string name="car_permission_car_display_in_cluster" msgid="4005987646292458684">"उपकरणको क्लस्टरमा प्रत्यक्ष रेन्डर गर्ने प्रक्रिया"</string>
-    <string name="car_permission_desc_car_display_in_cluster" msgid="2668300546822672927">"कुनै अनुप्रयोगलाई उपकरणको क्लस्टरमा देखाइने क्रियाकलापहरूको घोषणा गर्न दिनुहोस्‌"</string>
+    <string name="car_permission_desc_car_display_in_cluster" msgid="2668300546822672927">"कुनै एपलाई उपकरणको क्लस्टरमा देखाइने क्रियाकलापहरूको घोषणा गर्न दिनुहोस्‌"</string>
     <string name="car_permission_car_cluster_control" msgid="1382247204230165674">"उपकरणको क्लस्टरको नियन्त्रण"</string>
-    <string name="car_permission_desc_car_cluster_control" msgid="9222776665281176031">"उपकरणको क्लस्टरमा अनुप्रयोगहरू सुरु गर्नुहोस्"</string>
+    <string name="car_permission_desc_car_cluster_control" msgid="9222776665281176031">"उपकरणको क्लस्टरमा एपहरू सुरु गर्नुहोस्"</string>
     <string name="car_permission_label_bind_instrument_cluster_rendering" msgid="8627480897198377418">"उपकरणको क्लस्टर रेन्डर गर्ने प्रक्रिया"</string>
     <string name="car_permission_desc_bind_instrument_cluster_rendering" msgid="5073596870485006783">"उपकरणको क्लस्टरको डेटा प्राप्त गर्नुहोस्‌"</string>
     <string name="car_permission_label_car_ux_restrictions_configuration" msgid="6801393970411049725">"UX सम्बन्धी प्रतिबन्धहरूको कन्फिगुरेसन"</string>
     <string name="car_permission_desc_car_ux_restrictions_configuration" msgid="5711926927484813777">"UX सम्बन्धी प्रतिबन्धहरू कन्फिगर गर्नुहोस्‌"</string>
     <string name="car_permission_label_car_handle_usb_aoap_device" msgid="72783989504378036">"AOAP मोडमा USB यन्त्रसँग सञ्चार गर्नुहोस्"</string>
-    <string name="car_permission_desc_car_handle_usb_aoap_device" msgid="273505990971317034">"AOAP मोडमा अनुप्रयोगलाई कुनै यन्त्रसँग सञ्चार गर्न दिन्छ"</string>
+    <string name="car_permission_desc_car_handle_usb_aoap_device" msgid="273505990971317034">"AOAP मोडमा एपलाई कुनै यन्त्रसँग सञ्चार गर्न दिन्छ"</string>
     <string name="car_permission_label_read_car_occupant_awareness_state" msgid="125517953575032758">"Occupant Awareness System रिड गर्ने पहुँच"</string>
     <string name="car_permission_desc_read_car_occupant_awareness_state" msgid="188865882598414986">"Occupant Awareness System को स्थिति र पत्ता लगाउनेसम्बन्धी डेटा रिड गर्न दिन्छ"</string>
     <string name="car_permission_label_control_car_occupant_awareness_system" msgid="7163330266691094542">"Occupant Awareness System सम्बन्धी ग्राफको नियन्त्रण गर्नुहोस्"</string>
@@ -75,7 +75,7 @@
     <string name="activity_blocked_text" msgid="8088902789540147995">"तपाईं सवारी साधन चलाइरहेका बेला यो सुविधा प्रयोग गर्न सक्नुहुन्न"</string>
     <string name="exit_button_message" msgid="8554690915924055685">"अनुप्रयोगका सुरक्षित सुविधाहरूको प्रयोग गरी फेरि सुरु गर्न <xliff:g id="EXIT_BUTTON">%s</xliff:g> चयन गर्नुहोस्‌।"</string>
     <string name="exit_button" msgid="5829638404777671253">"पछाडि"</string>
-    <string name="exit_button_close_application" msgid="8824289547809332460">"अनुप्रयोग बन्द गर्नुहोस्"</string>
+    <string name="exit_button_close_application" msgid="8824289547809332460">"एप बन्द गर्नुहोस्"</string>
     <string name="exit_button_go_back" msgid="3469083862100560326">"पछाडि"</string>
     <string name="car_permission_label_diag_read" msgid="7248894224877702604">"निदानसम्बन्धी डेटा पढ्ने"</string>
     <string name="car_permission_desc_diag_read" msgid="1121426363040966178">"कारको निदानसम्बन्धी डेटा पढ्ने।"</string>
diff --git a/service/res/values-ur/strings.xml b/service/res/values-ur/strings.xml
index 142af60..01b7626 100644
--- a/service/res/values-ur/strings.xml
+++ b/service/res/values-ur/strings.xml
@@ -17,7 +17,7 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="car_permission_label" msgid="741004755205554376">"کار کی معلومات تک رسائی حاصل کریں"</string>
-    <string name="car_permission_desc" msgid="162499818870052725">"آپ کی کار کی معلومات تک رسائی حاصل کر سکتی ہیں"</string>
+    <string name="car_permission_desc" msgid="162499818870052725">"آپ کی کار کی معلومات تک رسائی حاصل کر سکتی ہیں۔"</string>
     <string name="car_permission_label_camera" msgid="3725702064841827180">"کار کے کیمرے تک رسائی حاصل کریں"</string>
     <string name="car_permission_desc_camera" msgid="917024932164501426">"اپنی کار کے کیمرے (کیمروں) تک رسائی حاصل کریں۔"</string>
     <string name="car_permission_label_energy" msgid="7409144323527821558">"کار کی انرجی کی معلومات تک رسائی حاصل کریں"</string>
diff --git a/service/res/values-vi/strings.xml b/service/res/values-vi/strings.xml
index 27d27ee..7426314 100644
--- a/service/res/values-vi/strings.xml
+++ b/service/res/values-vi/strings.xml
@@ -17,17 +17,17 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="car_permission_label" msgid="741004755205554376">"truy cập vào thông tin về ô tô"</string>
-    <string name="car_permission_desc" msgid="162499818870052725">"Truy cập vào thông tin về ô tô."</string>
+    <string name="car_permission_desc" msgid="162499818870052725">"Truy cập vào thông tin ô tô của bạn."</string>
     <string name="car_permission_label_camera" msgid="3725702064841827180">"truy cập vào camera ô tô"</string>
     <string name="car_permission_desc_camera" msgid="917024932164501426">"Truy cập vào (các) camera trên ô tô."</string>
     <string name="car_permission_label_energy" msgid="7409144323527821558">"truy cập vào thông tin về năng lượng của ô tô"</string>
-    <string name="car_permission_desc_energy" msgid="3392963810053235407">"Truy cập vào thông tin về mức năng lượng trên ô tô."</string>
+    <string name="car_permission_desc_energy" msgid="3392963810053235407">"Truy cập vào thông tin về mức năng lượng trên ô tô của bạn."</string>
     <string name="car_permission_label_adjust_range_remaining" msgid="839033553999920138">"điều chỉnh quãng đường còn đi được của ô tô"</string>
     <string name="car_permission_desc_adjust_range_remaining" msgid="2369321650437370673">"Điều chỉnh giá trị quãng đường còn đi được của ô tô."</string>
     <string name="car_permission_label_hvac" msgid="1499454192558727843">"truy cập vào hệ thống điều hòa không khí (hvac) của ô tô"</string>
     <string name="car_permission_desc_hvac" msgid="3754229695589774195">"Truy cập vào hvac của ô tô."</string>
     <string name="car_permission_label_mileage" msgid="4661317074631150551">"truy cập vào thông tin về quãng đường đi được của ô tô"</string>
-    <string name="car_permission_desc_mileage" msgid="7179735693278681090">"Truy cập vào thông tin về số dặm ô tô đã đi."</string>
+    <string name="car_permission_desc_mileage" msgid="7179735693278681090">"Truy cập vào thông tin về số dặm đã đi trên ô tô của bạn."</string>
     <string name="car_permission_label_speed" msgid="1149027717860529745">"đọc tốc độ ô tô"</string>
     <string name="car_permission_desc_speed" msgid="2047965198165448241">"Truy cập vào thông tin về tốc độ của ô tô."</string>
     <string name="car_permission_label_vehicle_dynamics_state" msgid="313779267420048367">"truy cập vào trạng thái động của ô tô"</string>
diff --git a/service/res/values/config.xml b/service/res/values/config.xml
index e8a7e19..258c08c 100644
--- a/service/res/values/config.xml
+++ b/service/res/values/config.xml
@@ -249,7 +249,7 @@
     </string-array>
     <!--
         Specifies configuration of displays in system telling its usage / type and assigned
-        occupant.
+        occupant. DEFAULT_DISPLAY, if assigned here, should be always assigned to the DRIVER zone.
 
         Some examples are:
         <item>displayPort=0,displayType=MAIN,occupantZoneId=0</item>
@@ -328,4 +328,16 @@
     <!-- Controls the use of bluetooth voice recognition when long pressing the voice assist
          button. -->
     <bool name="enableLongPressBluetoothVoiceRecognition" translatable="false">true</bool>
+
+    <!-- Switch guest user into new guest user before going to sleep. If this is false, it will
+         be done after waking up from sleep. This only affects if the current user is a guest user.
+         -->
+    <bool name="config_switchGuestUserBeforeGoingSleep" translate="false">true</bool>
+
+    <!-- Enable profile user assignment per each CarOccupantZone for per display android user
+         assignments. This feature is still experimental. -->
+    <bool name="enableProfileUserAssignmentForMultiDisplay" translatable="false">false</bool>
+
+    <!-- The ComponentName of the media source that will be selected as the default -->
+    <string name="config_defaultMediaSource">com.android.bluetooth/com.android.bluetooth.avrcpcontroller.BluetoothMediaBrowserService</string>
 </resources>
diff --git a/service/res/values/strings.xml b/service/res/values/strings.xml
index 30e0a50..0b1c265 100644
--- a/service/res/values/strings.xml
+++ b/service/res/values/strings.xml
@@ -478,10 +478,6 @@
     <!-- The default name of device enrolled as trust device [CHAR LIMIT=NONE] -->
     <string name="trust_device_default_name">My Device</string>
 
-    <!-- The ComponentName of the media source that will be selected as the default [CHAR LIMIT=NONE] -->
-    <string name="default_media_source" translatable="false">com.android.bluetooth/com.android.bluetooth.avrcpcontroller.BluetoothMediaBrowserService</string>
-
     <!-- Default name for new guest users [CHAR LIMIT=20] -->
     <string name="default_guest_name">Guest</string>
-
 </resources>
diff --git a/service/res/xml/car_ux_restrictions_map.xml b/service/res/xml/car_ux_restrictions_map.xml
index 92adb40..771aa19 100644
--- a/service/res/xml/car_ux_restrictions_map.xml
+++ b/service/res/xml/car_ux_restrictions_map.xml
@@ -8,7 +8,7 @@
    <restrictionParameters> tag.
 
 Note:
-   1. The tags and attributes are declared in packages/services/Car/service/res/attrs.xml.
+   1. The tags and attributes are declared in packages/services/Car/service/res/values/attrs.xml.
    2. The driving states defined there should align with driving states (@CarDrivingState) defined in
    packages/services/Car/car-lib/src/android/car/drivingstate/CarDrivingStateEvent.java
    3. Similarly the UX restrictions should align with
@@ -66,4 +66,4 @@
         <ContentRestrictions car:maxCumulativeItems="21" car:maxDepth="3"/>
     </RestrictionParameters>
 
-</UxRestrictions>
\ No newline at end of file
+</UxRestrictions>
diff --git a/service/src/com/android/car/AppFocusService.java b/service/src/com/android/car/AppFocusService.java
index f3a668b..d97bec8 100644
--- a/service/src/com/android/car/AppFocusService.java
+++ b/service/src/com/android/car/AppFocusService.java
@@ -34,6 +34,7 @@
 import com.android.internal.annotations.VisibleForTesting;
 
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -51,11 +52,13 @@
 
     private final Object mLock = new Object();
 
+    @VisibleForTesting
     @GuardedBy("mLock")
-    private final ClientHolder mAllChangeClients;
+    final ClientHolder mAllChangeClients;
 
+    @VisibleForTesting
     @GuardedBy("mLock")
-    private final OwnershipClientHolder mAllOwnershipClients;
+    final OwnershipClientHolder mAllOwnershipClients;
 
     /** K: appType, V: client owning it */
     @GuardedBy("mLock")
@@ -70,11 +73,10 @@
     private final BinderInterfaceContainer.BinderEventHandler<IAppFocusListener>
             mAllBinderEventHandler = bInterface -> { /* nothing to do.*/ };
 
-    @GuardedBy("mLock")
-    private DispatchHandler mDispatchHandler;
-
-    @GuardedBy("mLock")
-    private HandlerThread mHandlerThread;
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final DispatchHandler mDispatchHandler = new DispatchHandler(mHandlerThread.getLooper(),
+            this);
 
     public AppFocusService(Context context,
             SystemActivityMonitoringService systemActivityMonitoringService) {
@@ -145,13 +147,13 @@
                 OwnershipClientInfo ownerInfo = mFocusOwners.get(appType);
                 if (ownerInfo != null && ownerInfo != info) {
                     if (mSystemActivityMonitoringService.isInForeground(
-                                ownerInfo.getPid(), ownerInfo.getUid()) &&
-                        !mSystemActivityMonitoringService.isInForeground(
-                                info.getPid(), info.getUid())) {
+                            ownerInfo.getPid(), ownerInfo.getUid())
+                            && !mSystemActivityMonitoringService.isInForeground(
+                            info.getPid(), info.getUid())) {
                         Log.w(CarLog.TAG_APP_FOCUS, "Focus request failed for non-foreground app("
-                              + "pid=" + info.getPid() + ", uid=" + info.getUid() + ")."
-                              + "Foreground app (pid=" + ownerInfo.getPid() + ", uid="
-                              + ownerInfo.getUid() + ") owns it.");
+                                + "pid=" + info.getPid() + ", uid=" + info.getUid() + ")."
+                                + "Foreground app (pid=" + ownerInfo.getPid() + ", uid="
+                                + ownerInfo.getUid() + ") owns it.");
                         return CarAppFocusManager.APP_FOCUS_REQUEST_FAILED;
                     }
                     ownerInfo.removeOwnedAppType(appType);
@@ -230,34 +232,18 @@
 
     @Override
     public void init() {
-        synchronized (mLock) {
-            mHandlerThread = new HandlerThread(AppFocusService.class.getSimpleName());
-            mHandlerThread.start();
-            mDispatchHandler = new DispatchHandler(mHandlerThread.getLooper());
-        }
+        // nothing to do
     }
 
     @VisibleForTesting
     public Looper getLooper() {
-        synchronized (mLock) {
-            return mHandlerThread.getLooper();
-        }
+        return mHandlerThread.getLooper();
+
     }
 
     @Override
     public void release() {
         synchronized (mLock) {
-            if (mDispatchHandler == null) {
-                return;
-            }
-            mHandlerThread.quitSafely();
-            try {
-                mHandlerThread.join(1000);
-            } catch (InterruptedException e) {
-                Thread.currentThread().interrupt();
-                Log.e(CarLog.TAG_APP_FOCUS, "Timeout while waiting for handler thread to join.");
-            }
-            mDispatchHandler = null;
             mAllChangeClients.clear();
             mAllOwnershipClients.clear();
             mFocusOwners.clear();
@@ -372,13 +358,15 @@
         }
     }
 
-    private static class ClientHolder extends BinderInterfaceContainer<IAppFocusListener> {
+    @VisibleForTesting
+    static class ClientHolder extends BinderInterfaceContainer<IAppFocusListener> {
         private ClientHolder(BinderEventHandler<IAppFocusListener> holder) {
             super(holder);
         }
     }
 
-    private static class OwnershipClientHolder extends
+    @VisibleForTesting
+    static class OwnershipClientHolder extends
             BinderInterfaceContainer<IAppFocusOwnershipCallback> {
         private OwnershipClientHolder(AppFocusService service) {
             super(service);
@@ -487,13 +475,18 @@
         }
     }
 
-    private class DispatchHandler extends Handler {
+    private static final class DispatchHandler extends Handler {
+        private static final String TAG = DispatchHandler.class.getSimpleName();
+
         private static final int MSG_DISPATCH_OWNERSHIP_LOSS = 0;
         private static final int MSG_DISPATCH_OWNERSHIP_GRANT = 1;
         private static final int MSG_DISPATCH_FOCUS_CHANGE = 2;
 
-        private DispatchHandler(Looper looper) {
+        private final WeakReference<AppFocusService> mService;
+
+        private DispatchHandler(Looper looper, AppFocusService service) {
             super(looper);
+            mService = new WeakReference<AppFocusService>(service);
         }
 
         private void requestAppFocusOwnershipLossDispatch(IAppFocusOwnershipCallback callback,
@@ -517,15 +510,23 @@
 
         @Override
         public void handleMessage(Message msg) {
+            AppFocusService service = mService.get();
+            if (service == null) {
+                Log.i(TAG, "handleMessage null service");
+                return;
+            }
             switch (msg.what) {
                 case MSG_DISPATCH_OWNERSHIP_LOSS:
-                    dispatchAppFocusOwnershipLoss((IAppFocusOwnershipCallback) msg.obj, msg.arg1);
+                    service.dispatchAppFocusOwnershipLoss((IAppFocusOwnershipCallback) msg.obj,
+                            msg.arg1);
                     break;
                 case MSG_DISPATCH_OWNERSHIP_GRANT:
-                    dispatchAppFocusOwnershipGrant((IAppFocusOwnershipCallback) msg.obj, msg.arg1);
+                    service.dispatchAppFocusOwnershipGrant((IAppFocusOwnershipCallback) msg.obj,
+                            msg.arg1);
                     break;
                 case MSG_DISPATCH_FOCUS_CHANGE:
-                    dispatchAppFocusChange((IAppFocusListener) msg.obj, msg.arg1, msg.arg2 == 1);
+                    service.dispatchAppFocusChange((IAppFocusListener) msg.obj, msg.arg1,
+                            msg.arg2 == 1);
                     break;
                 default:
                     Log.e(CarLog.TAG_APP_FOCUS, "Can't dispatch message: " + msg);
diff --git a/service/src/com/android/car/BinderInterfaceContainer.java b/service/src/com/android/car/BinderInterfaceContainer.java
index b97db35..32f7eb9 100644
--- a/service/src/com/android/car/BinderInterfaceContainer.java
+++ b/service/src/com/android/car/BinderInterfaceContainer.java
@@ -181,9 +181,9 @@
     }
 
     private void handleBinderDeath(BinderInterface<T> bInterface) {
-        removeBinder(bInterface.binderInterface);
         if (mEventHandler != null) {
             mEventHandler.onBinderDeath(bInterface);
         }
+        removeBinder(bInterface.binderInterface);
     }
 }
diff --git a/service/src/com/android/car/CarBugreportManagerService.java b/service/src/com/android/car/CarBugreportManagerService.java
index b63822f..2480657 100644
--- a/service/src/com/android/car/CarBugreportManagerService.java
+++ b/service/src/com/android/car/CarBugreportManagerService.java
@@ -83,8 +83,9 @@
     private final Context mContext;
     private final Object mLock = new Object();
 
-    private HandlerThread mHandlerThread;
-    private Handler mHandler;
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mHandler = new Handler(mHandlerThread.getLooper());
     private boolean mIsServiceRunning;
 
     /**
@@ -98,14 +99,12 @@
 
     @Override
     public void init() {
-        mHandlerThread = new HandlerThread(TAG);
-        mHandlerThread.start();
-        mHandler = new Handler(mHandlerThread.getLooper());
+        // nothing to do
     }
 
     @Override
     public void release() {
-        mHandlerThread.quitSafely();
+        // nothing to do
     }
 
     @Override
diff --git a/service/src/com/android/car/CarDrivingStateService.java b/service/src/com/android/car/CarDrivingStateService.java
index 577e58e..0cc3b06 100644
--- a/service/src/com/android/car/CarDrivingStateService.java
+++ b/service/src/com/android/car/CarDrivingStateService.java
@@ -65,9 +65,9 @@
             VehicleProperty.PERF_VEHICLE_SPEED,
             VehicleProperty.GEAR_SELECTION,
             VehicleProperty.PARKING_BRAKE_ON};
-    private final HandlerThread mClientDispatchThread;
-    private final Handler mClientDispatchHandler;
-
+    private final HandlerThread mClientDispatchThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mClientDispatchHandler = new Handler(mClientDispatchThread.getLooper());
     private final Object mLock = new Object();
 
     // For dumpsys logging
@@ -102,9 +102,6 @@
         mContext = context;
         mPropertyService = propertyService;
         mCurrentDrivingState = createDrivingStateEvent(CarDrivingStateEvent.DRIVING_STATE_UNKNOWN);
-        mClientDispatchThread = new HandlerThread("ClientDispatchThread");
-        mClientDispatchThread.start();
-        mClientDispatchHandler = new Handler(mClientDispatchThread.getLooper());
     }
 
     @Override
diff --git a/service/src/com/android/car/CarFeatureController.java b/service/src/com/android/car/CarFeatureController.java
index 7fb5ab9..1742e4f 100644
--- a/service/src/com/android/car/CarFeatureController.java
+++ b/service/src/com/android/car/CarFeatureController.java
@@ -68,7 +68,6 @@
             Car.CAR_DRIVING_STATE_SERVICE,
             Car.CAR_INPUT_SERVICE,
             Car.CAR_MEDIA_SERVICE,
-            Car.CAR_NAVIGATION_SERVICE,
             Car.CAR_OCCUPANT_ZONE_SERVICE,
             Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE,
             Car.CAR_USER_SERVICE,
@@ -90,6 +89,7 @@
 
     private static final HashSet<String> OPTIONAL_FEATURES = new HashSet<>(Arrays.asList(
             CarFeatures.FEATURE_CAR_USER_NOTICE_SERVICE,
+            Car.CAR_NAVIGATION_SERVICE,
             Car.DIAGNOSTIC_SERVICE,
             Car.OCCUPANT_AWARENESS_SERVICE,
             Car.STORAGE_MONITORING_SERVICE,
@@ -117,9 +117,9 @@
     private final List<String> mDefaultEnabledFeaturesFromConfig;
     private final List<String> mDisabledFeaturesFromVhal;
 
-    private final HandlerThread mHandlerThread;
-    private final Handler mHandler;
-
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mHandler = new Handler(mHandlerThread.getLooper());
     private final Object mLock = new Object();
 
     @GuardedBy("mLock")
@@ -150,9 +150,6 @@
                 shouldLoadDefaultConfig = true;
             }
         }
-        mHandlerThread = new HandlerThread(TAG);
-        mHandlerThread.start();
-        mHandler = new Handler(mHandlerThread.getLooper());
         if (!checkMandatoryFeaturesLocked()) { // mandatory feature missing, force default config
             mEnabledFeatures.clear();
             mEnabledFeatures.addAll(MANDATORY_FEATURES);
diff --git a/service/src/com/android/car/CarLocationService.java b/service/src/com/android/car/CarLocationService.java
index e612ac6..f7cfbc1 100644
--- a/service/src/com/android/car/CarLocationService.java
+++ b/service/src/com/android/car/CarLocationService.java
@@ -90,9 +90,10 @@
     private final Object mLocationManagerProxyLock = new Object();
 
     private final Context mContext;
-    private int mTaskCount = 0;
-    private HandlerThread mHandlerThread;
-    private Handler mHandler;
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mHandler = new Handler(mHandlerThread.getLooper());
+
     private CarPowerManager mCarPowerManager;
     private CarDrivingStateService mCarDrivingStateService;
     private PerUserCarServiceHelper mPerUserCarServiceHelper;
@@ -493,28 +494,7 @@
     }
 
     private void asyncOperation(Runnable operation, long delayMillis) {
-        synchronized (mLock) {
-            // Create a new HandlerThread if this is the first task to queue.
-            if (++mTaskCount == 1) {
-                mHandlerThread = new HandlerThread("CarLocationServiceThread");
-                mHandlerThread.start();
-                mHandler = new Handler(mHandlerThread.getLooper());
-            }
-        }
-        mHandler.postDelayed(() -> {
-            try {
-                operation.run();
-            } finally {
-                synchronized (mLock) {
-                    // Quit the thread when the task queue is empty.
-                    if (--mTaskCount == 0) {
-                        mHandler.getLooper().quit();
-                        mHandler = null;
-                        mHandlerThread = null;
-                    }
-                }
-            }
-        }, delayMillis);
+        mHandler.postDelayed(() -> operation.run(), delayMillis);
     }
 
     private static void logd(String msg, Object... vals) {
diff --git a/service/src/com/android/car/CarMediaService.java b/service/src/com/android/car/CarMediaService.java
index e5f8ea5..0784958 100644
--- a/service/src/com/android/car/CarMediaService.java
+++ b/service/src/com/android/car/CarMediaService.java
@@ -125,21 +125,22 @@
 
     private final Handler mMainHandler = new Handler(Looper.getMainLooper());
 
+
+    private final HandlerThread mHandlerThread  = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
     // Handler to receive PlaybackState callbacks from the active media controller.
-    private final Handler mHandler;
-    private final HandlerThread mHandlerThread;
+    private final Handler mHandler = new Handler(mHandlerThread.getLooper());
     private final Object mLock = new Object();
 
-    /** The package name of the last media source that was removed while being primary. */
-    private String mRemovedMediaSourcePackage;
+    /** The component name of the last media source that was removed while being primary. */
+    private ComponentName[] mRemovedMediaSourceComponents = new ComponentName[MEDIA_SOURCE_MODES];
 
     private final IntentFilter mPackageUpdateFilter;
     private boolean mIsPackageUpdateReceiverRegistered;
 
     /**
-     * Listens to {@link Intent#ACTION_PACKAGE_REMOVED}, {@link Intent#ACTION_PACKAGE_REPLACED} and
-     * {@link Intent#ACTION_PACKAGE_ADDED} so we can reset the media source to null when its
-     * application is uninstalled, and restore it when the application is reinstalled.
+     * Listens to {@link Intent#ACTION_PACKAGE_REMOVED}, so we can fall back to a previously used
+     * media source when the active source is uninstalled.
      */
     private final BroadcastReceiver mPackageUpdateReceiver = new BroadcastReceiver() {
         @Override
@@ -154,19 +155,50 @@
                         if (mPrimaryMediaComponents[i] != null
                                 && mPrimaryMediaComponents[i].getPackageName().equals(
                                 intentPackage)) {
-                            mRemovedMediaSourcePackage = intentPackage;
-                            setPrimaryMediaSource(null, i);
+                            if (intent.getBooleanExtra(Intent.EXTRA_REPLACING, false)) {
+                                // If package is being replaced, it may not be removed from
+                                // PackageManager queries  when we check for available
+                                // MediaBrowseServices, so we iterate to find the next available
+                                // source.
+                                for (ComponentName component : getLastMediaSources(i)) {
+                                    if (!mPrimaryMediaComponents[i].getPackageName()
+                                            .equals(component.getPackageName())) {
+                                        mRemovedMediaSourceComponents[i] =
+                                                mPrimaryMediaComponents[i];
+                                        if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
+                                            Log.d(CarLog.TAG_MEDIA,
+                                                    "temporarily replacing updated media source "
+                                                            + mPrimaryMediaComponents[i]
+                                                            + "with backup source: "
+                                                            + component);
+                                        }
+                                        setPrimaryMediaSource(component, i);
+                                        return;
+                                    }
+                                }
+                                Log.e(CarLog.TAG_MEDIA, "No available backup media source");
+                            } else {
+                                if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
+                                    Log.d(CarLog.TAG_MEDIA, "replacing removed media source "
+                                            + mPrimaryMediaComponents[i] + "with backup source: "
+                                            + getLastMediaSource(i));
+                                }
+                                mRemovedMediaSourceComponents[i] = null;
+                                setPrimaryMediaSource(getLastMediaSource(i), i);
+                            }
                         }
                     }
                 }
             } else if (Intent.ACTION_PACKAGE_REPLACED.equals(intent.getAction())
                     || Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {
-                if (mRemovedMediaSourcePackage != null
-                        && mRemovedMediaSourcePackage.equals(intentPackage)) {
-                    ComponentName mediaSource = getMediaSource(intentPackage, "");
-                    if (mediaSource != null) {
-                        setPrimaryMediaSource(mediaSource, MEDIA_SOURCE_MODE_PLAYBACK);
-                        setPrimaryMediaSource(mediaSource, MEDIA_SOURCE_MODE_BROWSE);
+                for (int i = 0; i < MEDIA_SOURCE_MODES; i++) {
+                    if (mRemovedMediaSourceComponents[i] != null && mRemovedMediaSourceComponents[i]
+                            .getPackageName().equals(intentPackage)) {
+                        if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
+                            Log.d(CarLog.TAG_MEDIA, "restoring removed source: "
+                                    + mRemovedMediaSourceComponents[i]);
+                        }
+                        setPrimaryMediaSource(mRemovedMediaSourceComponents[i], i);
                     }
                 }
             }
@@ -179,6 +211,8 @@
         }
         if (CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING == event.getEventType()) {
             maybeInitUser(event.getUserId());
+        } else if (CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING == event.getEventType()) {
+            onUserUnlock(event.getUserId());
         }
     };
 
@@ -191,17 +225,13 @@
         mIndependentPlaybackConfig = mContext.getResources().getBoolean(
                 R.bool.config_mediaSourceIndependentPlayback);
 
-        mHandlerThread = new HandlerThread(CarLog.TAG_MEDIA);
-        mHandlerThread.start();
-        mHandler = new Handler(mHandlerThread.getLooper());
-
         mPackageUpdateFilter = new IntentFilter();
         mPackageUpdateFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
         mPackageUpdateFilter.addAction(Intent.ACTION_PACKAGE_REPLACED);
         mPackageUpdateFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
         mPackageUpdateFilter.addDataScheme("package");
         mUserService = userService;
-        mUserService.removeUserLifecycleListener(mUserLifecycleListener);
+        mUserService.addUserLifecycleListener(mUserLifecycleListener);
 
         mPlayOnMediaSourceChangedConfig =
                 mContext.getResources().getInteger(R.integer.config_mediaSourceChangedAutoplay);
@@ -315,6 +345,7 @@
         }
         writer.println("\tNumber of active media sessions: " + mMediaSessionManager
                 .getActiveSessionsForUser(null, ActivityManager.getCurrentUser()).size());
+
         writer.println("\tPlayback media source history: ");
         for (ComponentName name : getLastMediaSources(MEDIA_SOURCE_MODE_PLAYBACK)) {
             writer.println("\t" + name.flattenToString());
@@ -402,33 +433,23 @@
         }
     }
 
-    /**
-     * Sets user lock / unlocking status on main thread. This is coming from system server through
-     * ICar binder call.
-     *
-     * @param userHandle Handle of user
-     * @param unlocked   unlocked (=true) or locked (=false)
-     */
-    public void setUserLockStatus(int userHandle, boolean unlocked) {
-        mMainHandler.post(new Runnable() {
-            @Override
-            public void run() {
+    // TODO(b/153115826): this method was used to be called from the ICar binder thread, but it's
+    // now called by UserCarService. Currently UserCarServie is calling every listener in one
+    // non-main thread, but it's not clear how the final behavior will be. So, for now it's ok
+    // to post it to mMainHandler, but once b/145689885 is fixed, we might not need it.
+    private void onUserUnlock(int userId) {
+        mMainHandler.post(() -> {
+            // No need to handle system user, non current foreground user.
+            if (userId == UserHandle.USER_SYSTEM
+                    || userId != ActivityManager.getCurrentUser()) {
+                return;
+            }
+            if (mPendingInit) {
+                initUser(userId);
+                mPendingInit = false;
                 if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
                     Log.d(CarLog.TAG_MEDIA,
-                            "User " + userHandle + " is " + (unlocked ? "unlocked" : "locked"));
-                }
-                // Nothing else to do when it is locked back.
-                if (!unlocked) {
-                    return;
-                }
-                // No need to handle system user, non current foreground user.
-                if (userHandle == UserHandle.USER_SYSTEM
-                        || userHandle != ActivityManager.getCurrentUser()) {
-                    return;
-                }
-                if (mPendingInit) {
-                    initUser(userHandle);
-                    mPendingInit = false;
+                            "User " + userId + " is now unlocked");
                 }
             }
         });
@@ -446,24 +467,6 @@
     }
 
     /**
-     * Attempts to play the current source using MediaController.TransportControls.play()
-     */
-    private void play() {
-        if (mActiveUserMediaController != null) {
-            if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
-                Log.d(CarLog.TAG_MEDIA, "playing " + mActiveUserMediaController.getPackageName());
-            }
-            TransportControls controls = mActiveUserMediaController.getTransportControls();
-            if (controls != null) {
-                controls.play();
-            } else {
-                Log.e(CarLog.TAG_MEDIA, "Can't start playback, transport controls unavailable "
-                        + mActiveUserMediaController.getPackageName());
-            }
-        }
-    }
-
-    /**
      * Attempts to stop the current source using MediaController.TransportControls.stop()
      * This method also unregisters callbacks to the active media controller before calling stop(),
      * to preserve the PlaybackState before stopping.
@@ -595,7 +598,7 @@
      * Updates the primary media source, then notifies content observers of the change
      * Will update both the playback and browse sources if independent playback is not supported
      */
-    private void setPrimaryMediaSource(@Nullable ComponentName componentName,
+    private void setPrimaryMediaSource(@NonNull ComponentName componentName,
             @CarMediaManager.MediaSourceMode int mode) {
         synchronized (mLock) {
             if (mPrimaryMediaComponents[mode] != null
@@ -627,7 +630,10 @@
             if (!isCurrentUserEphemeral()) {
                 saveLastMediaSource(playbackMediaSource, MEDIA_SOURCE_MODE_PLAYBACK);
             }
-            mRemovedMediaSourcePackage = null;
+            if (playbackMediaSource
+                    .equals(mRemovedMediaSourceComponents[MEDIA_SOURCE_MODE_PLAYBACK])) {
+                mRemovedMediaSourceComponents[MEDIA_SOURCE_MODE_PLAYBACK] = null;
+            }
         }
 
         notifyListeners(MEDIA_SOURCE_MODE_PLAYBACK);
@@ -651,7 +657,10 @@
             if (!isCurrentUserEphemeral()) {
                 saveLastMediaSource(browseMediaSource, MEDIA_SOURCE_MODE_BROWSE);
             }
-            mRemovedMediaSourcePackage = null;
+            if (browseMediaSource
+                    .equals(mRemovedMediaSourceComponents[MEDIA_SOURCE_MODE_BROWSE])) {
+                mRemovedMediaSourceComponents[MEDIA_SOURCE_MODE_BROWSE] = null;
+            }
         }
 
         notifyListeners(MEDIA_SOURCE_MODE_BROWSE);
@@ -797,7 +806,7 @@
         }
     }
 
-    private ComponentName getLastMediaSource(int mode) {
+    private @NonNull ComponentName getLastMediaSource(int mode) {
         if (sharedPrefsInitialized()) {
             String key = getMediaSourceKey(mode);
             String serialized = mSharedPrefs.getString(key, null);
@@ -814,7 +823,7 @@
     }
 
     private ComponentName getDefaultMediaSource() {
-        String defaultMediaSource = mContext.getString(R.string.default_media_source);
+        String defaultMediaSource = mContext.getString(R.string.config_defaultMediaSource);
         ComponentName defaultComponent = ComponentName.unflattenFromString(defaultMediaSource);
         if (isMediaService(defaultComponent)) {
             return defaultComponent;
@@ -907,7 +916,6 @@
                 Log.e(CarLog.TAG_MEDIA, "Unsupported playback configuration: " + config);
                 return false;
         }
-
     }
 
     @NonNull
diff --git a/service/src/com/android/car/CarOccupantZoneService.java b/service/src/com/android/car/CarOccupantZoneService.java
index 8050a64..d9949c0 100644
--- a/service/src/com/android/car/CarOccupantZoneService.java
+++ b/service/src/com/android/car/CarOccupantZoneService.java
@@ -33,6 +33,7 @@
 import android.car.user.CarUserManager.UserLifecycleListener;
 import android.content.Context;
 import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.hardware.display.DisplayManager;
 import android.os.Handler;
@@ -40,6 +41,10 @@
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
 import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.ArrayMap;
+import android.util.ArraySet;
+import android.util.IntArray;
 import android.util.Log;
 import android.util.SparseIntArray;
 import android.view.Display;
@@ -48,11 +53,11 @@
 import com.android.car.user.CarUserService;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.car.ICarServiceHelper;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -63,11 +68,20 @@
 public final class CarOccupantZoneService extends ICarOccupantZone.Stub
         implements CarServiceBase {
 
-    private static final int INVALID_OCCUPANT_ZONE_ID = -1;
+    private static final String TAG = CarLog.TAG_OCCUPANT;
 
     private final Object mLock = new Object();
     private final Context mContext;
     private final DisplayManager mDisplayManager;
+    private final UserManager mUserManager;
+
+    private final boolean mEnableProfileUserAssignmentForMultiDisplay;
+
+    /**
+     * Stores android user id of profile users for the current user.
+     */
+    @GuardedBy("mLock")
+    private final ArraySet<Integer> mProfileUsers = new ArraySet<>();
 
     /** key: zone id */
     @GuardedBy("mLock")
@@ -130,7 +144,7 @@
     @VisibleForTesting
     static class OccupantConfig {
         public int userId = UserHandle.USER_NULL;
-        public final LinkedList<DisplayInfo> displayInfos = new LinkedList<>();
+        public final ArrayList<DisplayInfo> displayInfos = new ArrayList<>();
         public int audioZoneId = CarAudioManager.INVALID_AUDIO_ZONE;
 
         @Override
@@ -140,8 +154,8 @@
             b.append("{userId=");
             b.append(userId);
             b.append(" displays=");
-            for (DisplayInfo info : displayInfos) {
-                b.append(info.toString());
+            for (int i = 0; i < displayInfos.size(); i++) {
+                b.append(displayInfos.get(i).toString());
             }
             b.append(" audioZoneId=");
             if (audioZoneId != CarAudioManager.INVALID_AUDIO_ZONE) {
@@ -158,6 +172,12 @@
     @GuardedBy("mLock")
     private final HashMap<Integer, OccupantConfig> mActiveOccupantConfigs = new HashMap<>();
 
+    @GuardedBy("mLock")
+    private ICarServiceHelper mICarServiceHelper;
+
+    @GuardedBy("mLock")
+    private int mDriverZoneId = OccupantZoneInfo.INVALID_ZONE_ID;
+
     @VisibleForTesting
     final UserLifecycleListener mUserLifecycleListener = event -> {
         if (Log.isLoggable(CarLog.TAG_MEDIA, Log.DEBUG)) {
@@ -207,14 +227,21 @@
     private int mDriverSeat = VehicleAreaSeat.SEAT_UNKNOWN;
 
     public CarOccupantZoneService(Context context) {
-        mContext = context;
-        mDisplayManager = context.getSystemService(DisplayManager.class);
+        this(context, context.getSystemService(DisplayManager.class),
+                context.getSystemService(UserManager.class),
+                context.getResources().getBoolean(
+                        R.bool.enableProfileUserAssignmentForMultiDisplay)
+                        && context.getPackageManager().hasSystemFeature(
+                        PackageManager.FEATURE_MANAGED_USERS));
     }
 
     @VisibleForTesting
-    public CarOccupantZoneService(Context context, DisplayManager displayManager) {
+    public CarOccupantZoneService(Context context, DisplayManager displayManager,
+            UserManager userManager, boolean enableProfileUserAssignmentForMultiDisplay) {
         mContext = context;
         mDisplayManager = displayManager;
+        mUserManager = userManager;
+        mEnableProfileUserAssignmentForMultiDisplay = enableProfileUserAssignmentForMultiDisplay;
     }
 
     @Override
@@ -258,19 +285,17 @@
                             mActiveOccupantConfigs.entrySet()) {
                         OccupantConfig config = entry.getValue();
                         if (config.userId == userId && zoneId != entry.getKey()) {
-                            Log.w(CarLog.TAG_OCCUPANT,
-                                    "cannot assign user to two different zone simultaneously");
+                            Log.w(TAG, "cannot assign user to two different zone simultaneously");
                             return false;
                         }
                     }
                     OccupantConfig zoneConfig = mActiveOccupantConfigs.get(zoneId);
                     if (zoneConfig == null) {
-                        Log.w(CarLog.TAG_OCCUPANT, "cannot find the zone(" + zoneId + ")");
+                        Log.w(TAG, "cannot find the zone(" + zoneId + ")");
                         return false;
                     }
                     if (zoneConfig.userId != UserHandle.USER_NULL && zoneConfig.userId != userId) {
-                        Log.w(CarLog.TAG_OCCUPANT,
-                                "other user already occupies the zone(" + zoneId + ")");
+                        Log.w(TAG, "other user already occupies the zone(" + zoneId + ")");
                         return false;
                     }
                     zoneConfig.userId = userId;
@@ -381,6 +406,8 @@
                 writer.println(" zoneId=" + entry.getKey()
                         + " config=" + entry.getValue().toString());
             }
+            writer.println("mEnableProfileUserAssignmentForMultiDisplay:"
+                    + mEnableProfileUserAssignmentForMultiDisplay);
         }
     }
 
@@ -404,10 +431,8 @@
                 return new int[0];
             }
             int[] displayIds = new int[config.displayInfos.size()];
-            int i = 0;
-            for (DisplayInfo displayInfo : config.displayInfos) {
-                displayIds[i] = displayInfo.display.getDisplayId();
-                i++;
+            for (int i = 0; i < config.displayInfos.size(); i++) {
+                displayIds[i] = config.displayInfos.get(i).display.getDisplayId();
             }
             return displayIds;
         }
@@ -420,9 +445,9 @@
             if (config == null) {
                 return Display.INVALID_DISPLAY;
             }
-            for (DisplayInfo displayInfo : config.displayInfos) {
-                if (displayType == displayInfo.displayType) {
-                    return displayInfo.display.getDisplayId();
+            for (int i = 0; i < config.displayInfos.size(); i++) {
+                if (displayType == config.displayInfos.get(i).displayType) {
+                    return config.displayInfos.get(i).display.getDisplayId();
                 }
             }
         }
@@ -461,8 +486,8 @@
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
         synchronized (mLock) {
             int occupantZoneId = mAudioZoneIdToOccupantZoneIdMapping.get(audioZoneId,
-                    INVALID_OCCUPANT_ZONE_ID);
-            if (occupantZoneId == INVALID_OCCUPANT_ZONE_ID) {
+                    OccupantZoneInfo.INVALID_ZONE_ID);
+            if (occupantZoneId == OccupantZoneInfo.INVALID_ZONE_ID) {
                 return null;
             }
             // To support headless zones return the occupant configuration.
@@ -519,13 +544,20 @@
                     return occupantZoneId;
                 }
             }
-            Log.w(CarLog.TAG_OCCUPANT, "Could not find occupantZoneId for userId" + userId
+            Log.w(TAG, "Could not find occupantZoneId for userId" + userId
                     + " returning invalid occupant zone id " + OccupantZoneInfo.INVALID_ZONE_ID);
             return OccupantZoneInfo.INVALID_ZONE_ID;
         }
     }
 
     /**
+     * returns the current driver user id.
+     */
+    public @UserIdInt int getDriverUserId() {
+        return getCurrentUser();
+    }
+
+    /**
      * Sets the mapping for audio zone id to occupant zone id.
      *
      * @param audioZoneIdToOccupantZoneMapping map for audio zone id, where key is the audio zone id
@@ -570,6 +602,150 @@
         mClientCallbacks.unregister(callback);
     }
 
+    @Override
+    public boolean assignProfileUserToOccupantZone(int occupantZoneId, int userId) {
+        enforcePermission(android.Manifest.permission.MANAGE_USERS);
+        if (!mEnableProfileUserAssignmentForMultiDisplay) {
+            throw new IllegalStateException("feature not enabled");
+        }
+        int currentUser = getCurrentUser();
+
+        synchronized (mLock) {
+            if (occupantZoneId == mDriverZoneId) {
+                throw new IllegalArgumentException("Driver zone cannot have profile user");
+            }
+            updateEnabledProfilesLocked(currentUser);
+
+            if (!mProfileUsers.contains(userId) && userId != UserHandle.USER_NULL) {
+                // current user can change while this call is happening, so return false rather
+                // than throwing exception
+                Log.w(TAG, "Invalid profile user id:" + userId);
+                return false;
+            }
+            if (!mUserManager.isUserRunning(userId)) {
+                Log.w(TAG, "User is not running:" + userId);
+                return false;
+            }
+            OccupantConfig config = mActiveOccupantConfigs.get(occupantZoneId);
+            if (config == null) {
+                throw new IllegalArgumentException("Invalid occupantZoneId:" + occupantZoneId);
+            }
+            if (config.userId == userId && userId != UserHandle.USER_NULL) {
+                Log.w(TAG, "assignProfileUserToOccupantZone zone:"
+                        + occupantZoneId + " already set to user:" + userId);
+                return true;
+            }
+            if (userId == UserHandle.USER_NULL) {
+                config.userId = currentUser;
+            } else {
+                config.userId = userId;
+            }
+        }
+        sendConfigChangeEvent(CarOccupantZoneManager.ZONE_CONFIG_CHANGE_FLAG_USER);
+        return true;
+    }
+
+    /**
+     * Sets {@code ICarServiceHelper}.
+     */
+    public void setCarServiceHelper(ICarServiceHelper helper) {
+        doSyncWithCarServiceHelper(helper, /* updateDisplay= */ true, /* updateUser= */ true);
+    }
+
+    private void doSyncWithCarServiceHelper(@Nullable ICarServiceHelper helper,
+            boolean updateDisplay, boolean updateUser) {
+        int[] passengerDisplays = null;
+        ArrayMap<Integer, IntArray> whitelists = null;
+        ICarServiceHelper helperToUse = helper;
+        synchronized (mLock) {
+            if (helper == null) {
+                if (mICarServiceHelper == null) { // helper not set yet.
+                    return;
+                }
+                helperToUse = mICarServiceHelper;
+            } else {
+                mICarServiceHelper = helper;
+            }
+            if (updateDisplay) {
+                passengerDisplays = getAllActivePassengerDisplaysLocked();
+            }
+            if (updateUser) {
+                whitelists = createDisplayWhitelistsLocked();
+            }
+        }
+        if (updateDisplay) {
+            updatePassengerDisplays(helperToUse, passengerDisplays);
+        }
+        if (updateUser) {
+            updateUserAssignmentForDisplays(helperToUse, whitelists);
+        }
+    }
+
+    private int[] getAllActivePassengerDisplaysLocked() {
+        IntArray displays = new IntArray();
+        for (Map.Entry<Integer, OccupantConfig> entry : mActiveOccupantConfigs.entrySet()) {
+            Integer zoneId = entry.getKey();
+            if (zoneId == mDriverZoneId) {
+                continue;
+            }
+            OccupantConfig config = entry.getValue();
+            for (int i = 0; i < config.displayInfos.size(); i++) {
+                displays.add(config.displayInfos.get(i).display.getDisplayId());
+            }
+        }
+        return displays.toArray();
+    }
+
+    private void updatePassengerDisplays(ICarServiceHelper helper, int[] passengerDisplayIds) {
+        if (passengerDisplayIds == null) {
+            return;
+        }
+        try {
+            helper.setPassengerDisplays(passengerDisplayIds);
+        } catch (RemoteException e) {
+            Log.e(TAG, "ICarServiceHelper.setPassengerDisplays failed");
+        }
+    }
+
+    private ArrayMap<Integer, IntArray> createDisplayWhitelistsLocked() {
+        ArrayMap<Integer, IntArray> whitelists = new ArrayMap<>();
+        for (Map.Entry<Integer, OccupantConfig> entry : mActiveOccupantConfigs.entrySet()) {
+            Integer zoneId = entry.getKey();
+            if (zoneId == mDriverZoneId) {
+                continue;
+            }
+            OccupantConfig config = entry.getValue();
+            if (config.displayInfos.isEmpty()) {
+                continue;
+            }
+            // user like driver can have multiple zones assigned, so add them all.
+            IntArray displays = whitelists.get(config.userId);
+            if (displays == null) {
+                displays = new IntArray();
+                whitelists.put(config.userId, displays);
+            }
+            for (int i = 0; i < config.displayInfos.size(); i++) {
+                displays.add(config.displayInfos.get(i).display.getDisplayId());
+            }
+        }
+        return whitelists;
+    }
+
+    private void updateUserAssignmentForDisplays(ICarServiceHelper helper,
+            ArrayMap<Integer, IntArray> whitelists) {
+        if (whitelists == null || whitelists.isEmpty()) {
+            return;
+        }
+        try {
+            for (int i = 0; i < whitelists.size(); i++) {
+                int userId = whitelists.keyAt(i);
+                helper.setDisplayWhitelistForUser(userId, whitelists.valueAt(i).toArray());
+            }
+        } catch (RemoteException e) {
+            Log.e(TAG, "ICarServiceHelper.setDisplayWhitelistForUser failed");
+        }
+    }
+
     private void throwFormatErrorInOccupantZones(String msg) {
         throw new RuntimeException("Format error in config_occupant_zones resource:" + msg);
     }
@@ -594,6 +770,7 @@
         if (driverSeat == VehicleAreaSeat.SEAT_ROW_1_RIGHT) {
             driverSeatSide = VehicleAreaSeat.SIDE_RIGHT;
         }
+        int maxZoneId = OccupantZoneInfo.INVALID_ZONE_ID;
         for (String config : res.getStringArray(R.array.config_occupant_zones)) {
             int zoneId = OccupantZoneInfo.INVALID_ZONE_ID;
             int type = CarOccupantZoneManager.OCCUPANT_TYPE_INVALID;
@@ -659,6 +836,9 @@
             if (zoneId == OccupantZoneInfo.INVALID_ZONE_ID) {
                 throwFormatErrorInOccupantZones("Missing zone id:" + config);
             }
+            if (zoneId > maxZoneId) {
+                maxZoneId = zoneId;
+            }
             if (type == CarOccupantZoneManager.OCCUPANT_TYPE_INVALID) {
                 throwFormatErrorInOccupantZones("Missing type:" + config);
             }
@@ -667,8 +847,8 @@
                     throwFormatErrorInOccupantZones("Multiple driver:" + config);
                 } else {
                     hasDriver = true;
+                    mDriverZoneId = zoneId;
                 }
-
             }
             int seat = VehicleAreaSeat.fromRowAndSide(seatRow, seatSide);
             if (seat == VehicleAreaSeat.SEAT_UNKNOWN) {
@@ -680,6 +860,14 @@
             }
             mOccupantsConfig.put(zoneId, info);
         }
+        if (!hasDriver) {
+            maxZoneId++;
+            mDriverZoneId = maxZoneId;
+            Log.w(TAG, "No driver zone, add one:" + mDriverZoneId);
+            OccupantZoneInfo info = new OccupantZoneInfo(mDriverZoneId,
+                    CarOccupantZoneManager.OCCUPANT_TYPE_DRIVER, getDriverSeat());
+            mOccupantsConfig.put(mDriverZoneId, info);
+        }
     }
 
     private void throwFormatErrorInDisplayMapping(String msg) {
@@ -692,7 +880,6 @@
         // examples:
         // <item>displayPort=0,displayType=MAIN,occupantZoneId=0</item>
         // <item>displayPort=1,displayType=INSTRUMENT_CLUSTER,occupantZoneId=0</item>
-        boolean hasDriver = false;
         final int invalidPort = -1;
         for (String config : res.getStringArray(R.array.config_occupant_display_mapping)) {
             int port = invalidPort;
@@ -773,8 +960,18 @@
         return null;
     }
 
+    private void addDisplayInfoToOccupantZoneLocked(int zoneId, DisplayInfo info) {
+        OccupantConfig occupantConfig = mActiveOccupantConfigs.get(zoneId);
+        if (occupantConfig == null) {
+            occupantConfig = new OccupantConfig();
+            mActiveOccupantConfigs.put(zoneId, occupantConfig);
+        }
+        occupantConfig.displayInfos.add(info);
+    }
+
     private void handleActiveDisplaysLocked() {
         mActiveOccupantConfigs.clear();
+        boolean hasDefaultDisplayConfig = false;
         for (Display display : mDisplayManager.getDisplays()) {
             Byte rawPortAddress = getPortAddress(display);
             if (rawPortAddress == null) {
@@ -784,18 +981,27 @@
             int portAddress = Byte.toUnsignedInt(rawPortAddress);
             DisplayConfig displayConfig = mDisplayConfigs.get(portAddress);
             if (displayConfig == null) {
-                Log.w(CarLog.TAG_OCCUPANT,
+                Log.w(TAG,
                         "Display id:" + display.getDisplayId() + " port:" + portAddress
                                 + " does not have configurations");
                 continue;
             }
-            OccupantConfig occupantConfig = mActiveOccupantConfigs.get(
-                    displayConfig.occupantZoneId);
-            if (occupantConfig == null) {
-                occupantConfig = new OccupantConfig();
-                mActiveOccupantConfigs.put(displayConfig.occupantZoneId, occupantConfig);
+            if (display.getDisplayId() == Display.DEFAULT_DISPLAY) {
+                if (displayConfig.occupantZoneId != mDriverZoneId) {
+                    throw new IllegalStateException(
+                            "Default display should be only assigned to driver zone");
+                }
+                hasDefaultDisplayConfig = true;
             }
-            occupantConfig.displayInfos.add(new DisplayInfo(display, displayConfig.displayType));
+            addDisplayInfoToOccupantZoneLocked(displayConfig.occupantZoneId,
+                    new DisplayInfo(display, displayConfig.displayType));
+        }
+        if (!hasDefaultDisplayConfig) {
+            // Can reach here if default display has no port / no config
+            Log.w(TAG, "Default display not assigned, will assign to driver zone");
+            addDisplayInfoToOccupantZoneLocked(mDriverZoneId, new DisplayInfo(
+                    mDisplayManager.getDisplay(Display.DEFAULT_DISPLAY),
+                    CarOccupantZoneManager.DISPLAY_TYPE_MAIN));
         }
     }
 
@@ -804,22 +1010,34 @@
         return ActivityManager.getCurrentUser();
     }
 
-    private void handleUserChangesLocked() {
-        int driverUserId = getCurrentUser();
-        OccupantConfig driverConfig = getDriverOccupantConfigLocked();
-        if (driverConfig != null) {
-            driverConfig.userId = driverUserId;
+    private void updateEnabledProfilesLocked(int userId) {
+        mProfileUsers.clear();
+        List<UserInfo> profileUsers = mUserManager.getEnabledProfiles(userId);
+        for (UserInfo userInfo : profileUsers) {
+            if (userInfo.id != userId) {
+                mProfileUsers.add(userInfo.id);
+            }
         }
     }
 
-    @Nullable
-    private OccupantConfig getDriverOccupantConfigLocked() {
-        for (Map.Entry<Integer, OccupantZoneInfo> entry: mOccupantsConfig.entrySet()) {
-            if (entry.getValue().occupantType == CarOccupantZoneManager.OCCUPANT_TYPE_DRIVER) {
-                return mActiveOccupantConfigs.get(entry.getKey());
+    private void handleUserChangesLocked() {
+        int driverUserId = getCurrentUser();
+
+        if (mEnableProfileUserAssignmentForMultiDisplay) {
+            updateEnabledProfilesLocked(driverUserId);
+        }
+
+        for (Map.Entry<Integer, OccupantConfig> entry : mActiveOccupantConfigs.entrySet()) {
+            Integer zoneId = entry.getKey();
+            OccupantConfig config = entry.getValue();
+            // mProfileUsers empty if not supported
+            if (mProfileUsers.contains(config.userId)) {
+                Log.i(TAG, "Profile user:" + config.userId
+                        + " already assigned for occupant zone:" + zoneId);
+            } else {
+                config.userId = driverUserId;
             }
         }
-        return null;
     }
 
     private void handleAudioZoneChangesLocked() {
@@ -838,6 +1056,16 @@
     }
 
     private void sendConfigChangeEvent(int changeFlags) {
+        boolean updateDisplay = false;
+        boolean updateUser = false;
+        if ((changeFlags & CarOccupantZoneManager.ZONE_CONFIG_CHANGE_FLAG_DISPLAY) != 0) {
+            updateDisplay = true;
+            updateUser = true;
+        } else if ((changeFlags & CarOccupantZoneManager.ZONE_CONFIG_CHANGE_FLAG_USER) != 0) {
+            updateUser = true;
+        }
+        doSyncWithCarServiceHelper(/* helper= */ null, updateDisplay, updateUser);
+
         final int n = mClientCallbacks.beginBroadcast();
         for (int i = 0; i < n; i++) {
             ICarOccupantZoneCallback callback = mClientCallbacks.getBroadcastItem(i);
diff --git a/service/src/com/android/car/CarPowerManagementService.java b/service/src/com/android/car/CarPowerManagementService.java
index b06026c..7446d35 100644
--- a/service/src/com/android/car/CarPowerManagementService.java
+++ b/service/src/com/android/car/CarPowerManagementService.java
@@ -16,15 +16,15 @@
 package com.android.car;
 
 import android.annotation.NonNull;
-import android.annotation.Nullable;
-import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.car.Car;
 import android.car.hardware.power.CarPowerManager.CarPowerStateListener;
 import android.car.hardware.power.ICarPower;
 import android.car.hardware.power.ICarPowerStateListener;
-import android.car.userlib.CarUserManagerHelper;
 import android.car.userlib.HalCallback;
+import android.car.userlib.InitialUserSetter;
+import android.car.userlib.UserHalHelper;
+import android.car.userlib.UserHelper;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -59,9 +59,9 @@
 import com.android.internal.annotations.VisibleForTesting;
 
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.HashSet;
 import java.util.LinkedList;
-import java.util.List;
 import java.util.Set;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -105,10 +105,10 @@
     private long mLastSleepEntryTime;
     @GuardedBy("mLock")
     private final LinkedList<CpmsState> mPendingPowerStates = new LinkedList<>();
-    @GuardedBy("mLock")
-    private HandlerThread mHandlerThread;
-    @GuardedBy("mLock")
-    private PowerHandler mHandler;
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final PowerHandler mHandler = new PowerHandler(mHandlerThread.getLooper(), this);
+
     @GuardedBy("mLock")
     private boolean mTimerActive;
     @GuardedBy("mLock")
@@ -129,11 +129,9 @@
     private boolean mRebootAfterGarageMode;
     private final boolean mDisableUserSwitchDuringResume;
 
-    // TODO(b/150413515): should depend only on mUserService
-    private final CarUserManagerHelper mCarUserManagerHelper;
-    private final UserManager mUserManager;    // CarUserManagerHelper is deprecated...
+    private final UserManager mUserManager;
     private final CarUserService mUserService;
-    private final String mNewGuestName;
+    private final InitialUserSetter mInitialUserSetter;
 
     // TODO:  Make this OEM configurable.
     private static final int SHUTDOWN_POLLING_INTERVAL_MS = 2000;
@@ -146,6 +144,9 @@
     private static final String PROP_MAX_GARAGE_MODE_DURATION_OVERRIDE =
             "android.car.garagemodeduration";
 
+    // This is a temp work-around to reduce user switching delay after wake-up.
+    private final boolean mSwitchGuestUserBeforeSleep;
+
     private class PowerManagerCallbackList extends RemoteCallbackList<ICarPowerStateListener> {
         /**
          * Old version of {@link #onCallbackDied(E, Object)} that
@@ -159,26 +160,28 @@
     }
 
     public CarPowerManagementService(Context context, PowerHalService powerHal,
-            SystemInterface systemInterface, CarUserManagerHelper carUserManagerHelper,
-            CarUserService carUserService) {
-        this(context, context.getResources(), powerHal, systemInterface, carUserManagerHelper,
-                UserManager.get(context), carUserService,
-                context.getString(R.string.default_guest_name));
+            SystemInterface systemInterface, CarUserService carUserService) {
+        this(context, context.getResources(), powerHal, systemInterface, UserManager.get(context),
+                carUserService, new InitialUserSetter(context,
+                        (u) -> carUserService.setInitialUser(u),
+                        context.getString(R.string.default_guest_name),
+                        !carUserService.isUserHalSupported()));
     }
 
     @VisibleForTesting
-    CarPowerManagementService(Context context, Resources resources, PowerHalService powerHal,
-            SystemInterface systemInterface, CarUserManagerHelper carUserManagerHelper,
-            UserManager userManager, CarUserService carUserService, String newGuestName) {
+    public CarPowerManagementService(Context context, Resources resources, PowerHalService powerHal,
+            SystemInterface systemInterface, UserManager userManager,
+            CarUserService carUserService, InitialUserSetter initialUserSetter) {
         mContext = context;
         mHal = powerHal;
         mSystemInterface = systemInterface;
-        mCarUserManagerHelper = carUserManagerHelper;
         mUserManager = userManager;
         mDisableUserSwitchDuringResume = resources
                 .getBoolean(R.bool.config_disableUserSwitchDuringResume);
         mShutdownPrepareTimeMs = resources.getInteger(
                 R.integer.maxGarageModeRunningDurationInSecs) * 1000;
+        mSwitchGuestUserBeforeSleep = resources.getBoolean(
+                R.bool.config_switchGuestUserBeforeGoingSleep);
         if (mShutdownPrepareTimeMs < MIN_MAX_GARAGE_MODE_DURATION_MS) {
             Log.w(CarLog.TAG_POWER,
                     "maxGarageModeRunningDurationInSecs smaller than minimum required, resource:"
@@ -187,11 +190,11 @@
             mShutdownPrepareTimeMs = MIN_MAX_GARAGE_MODE_DURATION_MS;
         }
         mUserService = carUserService;
-        mNewGuestName = newGuestName;
+        mInitialUserSetter = initialUserSetter;
     }
 
     @VisibleForTesting
-    protected void setShutdownTimersForTest(int pollingIntervalMs, int shutdownTimeoutMs) {
+    public void setShutdownTimersForTest(int pollingIntervalMs, int shutdownTimeoutMs) {
         // Override timers to keep testing time short
         // Passing in '0' resets the value to the default
         synchronized (mLock) {
@@ -204,19 +207,11 @@
 
     @VisibleForTesting
     protected HandlerThread getHandlerThread() {
-        synchronized (mLock) {
-            return mHandlerThread;
-        }
+        return mHandlerThread;
     }
 
     @Override
     public void init() {
-        synchronized (mLock) {
-            mHandlerThread = new HandlerThread(CarLog.TAG_POWER);
-            mHandlerThread.start();
-            mHandler = new PowerHandler(mHandlerThread.getLooper());
-        }
-
         mHal.setListener(this);
         if (mHal.isPowerStateSupported()) {
             // Initialize CPMS in WAIT_FOR_VHAL state
@@ -230,20 +225,12 @@
 
     @Override
     public void release() {
-        HandlerThread handlerThread;
         synchronized (mLock) {
             releaseTimerLocked();
             mCurrentState = null;
             mHandler.cancelAll();
-            handlerThread = mHandlerThread;
             mListenersWeAreWaitingFor.clear();
         }
-        handlerThread.quitSafely();
-        try {
-            handlerThread.join(1000);
-        } catch (InterruptedException e) {
-            Log.e(CarLog.TAG_POWER, "Timeout while joining for handler thread to join.");
-        }
         mSystemInterface.stopDisplayStateMonitoring();
         mPowerManagerListeners.kill();
         mSystemInterface.releaseAllWakeLocks();
@@ -254,6 +241,7 @@
         synchronized (mLock) {
             writer.println("*PowerManagementService*");
             // TODO: split it in multiple lines
+            // TODO: lock only what's needed
             writer.print("mCurrentState:" + mCurrentState);
             writer.print(",mProcessingStartTime:" + mProcessingStartTime);
             writer.print(",mLastSleepEntryTime:" + mLastSleepEntryTime);
@@ -264,18 +252,17 @@
             writer.print(",mShutdownPrepareTimeMs:" + mShutdownPrepareTimeMs);
             writer.print(",mDisableUserSwitchDuringResume:" + mDisableUserSwitchDuringResume);
             writer.println(",mRebootAfterGarageMode:" + mRebootAfterGarageMode);
-            writer.print("mNewGuestName: "); writer.println(mNewGuestName);
+            writer.println("mSwitchGuestUserBeforeSleep:" + mSwitchGuestUserBeforeSleep);
         }
+        mInitialUserSetter.dump(writer);
     }
 
     @Override
     public void onApPowerStateChange(PowerState state) {
-        PowerHandler handler;
         synchronized (mLock) {
             mPendingPowerStates.addFirst(new CpmsState(state));
-            handler = mHandler;
         }
-        handler.handlePowerStateChange();
+        mHandler.handlePowerStateChange();
     }
 
     @VisibleForTesting
@@ -294,33 +281,29 @@
      */
     private void onApPowerStateChange(int apState, int carPowerStateListenerState) {
         CpmsState newState = new CpmsState(apState, carPowerStateListenerState);
-        PowerHandler handler;
         synchronized (mLock) {
             mPendingPowerStates.addFirst(newState);
-            handler = mHandler;
         }
-        handler.handlePowerStateChange();
+        mHandler.handlePowerStateChange();
     }
 
     private void doHandlePowerStateChange() {
         CpmsState state;
-        PowerHandler handler;
         synchronized (mLock) {
             state = mPendingPowerStates.peekFirst();
             mPendingPowerStates.clear();
             if (state == null) {
+                Log.e(CarLog.TAG_POWER, "Null power state was requested");
                 return;
             }
             Log.i(CarLog.TAG_POWER, "doHandlePowerStateChange: newState=" + state.name());
             if (!needPowerStateChangeLocked(state)) {
-                Log.d(CarLog.TAG_POWER, "doHandlePowerStateChange no change needed");
                 return;
             }
             // now real power change happens. Whatever was queued before should be all cancelled.
             releaseTimerLocked();
-            handler = mHandler;
         }
-        handler.cancelProcessingComplete();
+        mHandler.cancelProcessingComplete();
         Log.i(CarLog.TAG_POWER, "setCurrentState " + state.toString());
         CarStatsLogHelper.logPowerState(state.mState);
         mCurrentState = state;
@@ -394,7 +377,9 @@
     private void handleOn() {
         // If current user is a Guest User, we want to inform CarUserNoticeService not to show
         // notice for current user, and show user notice only for the target user.
-        updateCarUserNoticeServiceIfNecessary();
+        if (!mSwitchGuestUserBeforeSleep) {
+            updateCarUserNoticeServiceIfNecessary();
+        }
 
         // Some OEMs have their own user-switching logic, which may not be coordinated with this
         // code. To avoid contention, we don't switch users when we coming alive. The OEM's code
@@ -431,116 +416,93 @@
 
     @VisibleForTesting // Ideally it should not be exposed, but it speeds up the unit tests
     void switchUserOnResumeIfNecessary(boolean allowSwitching) {
-        if (CarProperties.user_hal_enabled().orElse(false) && mUserService.isUserHalSupported()) {
-            switchUserOnResumeIfNecessaryUsingHal(allowSwitching);
-        } else {
-            switchUserOnResumeIfNecessaryDirectly(allowSwitching);
-        }
-    }
-
-    /**
-     * Switches the initial user directly, without using the User HAL to define the behavior.
-     */
-    private void switchUserOnResumeIfNecessaryDirectly(boolean allowSwitching) {
-        Log.i(CarLog.TAG_POWER, "NOT using User HAL to define initial user behavior");
-
-        int currentUserId = ActivityManager.getCurrentUser();
-
+        Log.d(TAG, "switchUserOnResumeIfNecessary(): allowSwitching=" + allowSwitching
+                + ", mSwitchGuestUserBeforeSleep=" + mSwitchGuestUserBeforeSleep);
         if (!allowSwitching) {
-            UserInfo currentUserInfo = mUserManager.getUserInfo(currentUserId);
-            switchToNewGuestIfNecessary(currentUserInfo);
+            if (mSwitchGuestUserBeforeSleep) { // already handled
+                return;
+            }
+            switchToNewGuestIfNecessary();
             return;
         }
 
-        int targetUserId = mCarUserManagerHelper.getInitialUser();
-        if (targetUserId == UserHandle.USER_SYSTEM || targetUserId == UserHandle.USER_NULL) {
-            Log.wtf(CarLog.TAG_POWER, "getInitialUser() returned user" + targetUserId);
+        if (CarProperties.user_hal_enabled().orElse(false) && mUserService.isUserHalSupported()) {
+            switchUserOnResumeIfNecessaryUsingHal();
             return;
         }
 
-        UserInfo targetUserInfo = mUserManager.getUserInfo(targetUserId);
-        if (switchToNewGuestIfNecessary(targetUserInfo)) return;
-
-        if (currentUserId == targetUserId) {
-            Log.v(TAG, "no need to switch to (same user) " + currentUserId);
-            return;
-        }
-
-        switchToUser(currentUserId, targetUserId, /* reason= */ null);
-
+        mInitialUserSetter.executeDefaultBehavior(/* replaceGuest= */ !mSwitchGuestUserBeforeSleep);
     }
 
     /**
-     * Replaces the current user if it's a guest, returning whether it was switched.
+     * Replaces the current user if it's a guest.
      */
-    private boolean switchToNewGuestIfNecessary(@NonNull UserInfo user) {
-        boolean isGuest = user.isGuest();
+    private void switchToNewGuestIfNecessary() {
+        int currentUserId = ActivityManager.getCurrentUser();
+        UserInfo currentUser = mUserManager.getUserInfo(currentUserId);
 
-        if (!isGuest) return false;
+        UserInfo newUser = mInitialUserSetter.replaceGuestIfNeeded(currentUser);
+        if (newUser == currentUser) return; // Not a guest
 
-        Log.i(TAG, "User " + user.id + " is a guest; replacing it by a new guest");
-
-        // At this point, target user is a guest - we cannot resume into an ephemeral guest for
-        // privacy reasons, so we need to create a new guest and switch to it (even if the OEM
-        // doesn't allow switching)
-
-        boolean marked = mUserManager.markGuestForDeletion(user.id);
-        if (!marked) {
-            Log.w(TAG, "Could not mark guest user " + user.id + " for deletion");
-            return false;
+        boolean replaceGuest = !mSwitchGuestUserBeforeSleep;
+        if (newUser == null) {
+            Log.w(TAG, "Failed to replace guest; falling back to default behavior");
+            mInitialUserSetter.executeDefaultBehavior(replaceGuest);
+            return;
         }
-
-        UserInfo newGuest = mUserManager.createGuest(mContext, mNewGuestName);
-
-        if (newGuest == null) {
-            Log.wtf(TAG, "Could not create new guest");
-            // TODO(b/146380030): decide whether we should switch to SYSTEM
-            return false;
-        }
-
-        switchToUser(user.id, newGuest.id, "Created new guest");
-        Log.d(TAG, "Removing previous guest " + user.id);
-        if (!mUserManager.removeUser(user.id)) {
-            Log.w(TAG, "Failed to remove old guest " + user.toFullString());
-        }
-        return true;
+        mInitialUserSetter.switchUser(newUser.id, replaceGuest);
     }
 
     /**
      * Switches the initial user by calling the User HAL to define the behavior.
      */
-    private void switchUserOnResumeIfNecessaryUsingHal(boolean allowSwitching) {
-        Log.i(CarLog.TAG_POWER, "Using User HAL to define initial user behavior");
+    private void switchUserOnResumeIfNecessaryUsingHal() {
+        Log.i(TAG, "Using User HAL to define initial user behavior");
         mUserService.getInitialUserInfo(InitialUserInfoRequestType.RESUME, (status, response) -> {
             switch (status) {
                 case HalCallback.STATUS_HAL_RESPONSE_TIMEOUT:
                 case HalCallback.STATUS_HAL_SET_TIMEOUT:
-                    switchUserOnResumeUserHalFallback("timeout", allowSwitching);
+                    switchUserOnResumeUserHalFallback("timeout");
                     return;
                 case HalCallback.STATUS_CONCURRENT_OPERATION:
-                    switchUserOnResumeUserHalFallback("concurrent call", allowSwitching);
+                    switchUserOnResumeUserHalFallback("concurrent call");
                     return;
                 case HalCallback.STATUS_WRONG_HAL_RESPONSE:
-                    switchUserOnResumeUserHalFallback("wrong response", allowSwitching);
+                    switchUserOnResumeUserHalFallback("wrong response");
                     return;
                 case HalCallback.STATUS_OK:
                     if (response == null) {
-                        switchUserOnResumeUserHalFallback("no response", allowSwitching);
+                        switchUserOnResumeUserHalFallback("no response");
                         return;
                     }
+                    boolean replaceGuest = !mSwitchGuestUserBeforeSleep;
                     switch (response.action) {
                         case InitialUserInfoResponseAction.DEFAULT:
                             Log.i(TAG, "HAL requested default initial user behavior");
-                            switchUserOnResumeIfNecessaryDirectly(allowSwitching);
+                            mInitialUserSetter.executeDefaultBehavior(replaceGuest);
                             return;
-                        // TODO(b/150419143): implement others
+                        case InitialUserInfoResponseAction.SWITCH:
+                            int userId = response.userToSwitchOrCreate.userId;
+                            Log.i(TAG, "HAL requested switch to user " + userId);
+                            // If guest was replaced on shutdown, it doesn't need to be replaced
+                            // again
+                            mInitialUserSetter.switchUser(userId, replaceGuest);
+                            return;
+                        case InitialUserInfoResponseAction.CREATE:
+                            int halFlags = response.userToSwitchOrCreate.flags;
+                            String name = response.userNameToCreate;
+                            Log.i(TAG, "HAL requested new user (name="
+                                    + UserHelper.safeName(name) + ", flags="
+                                    + UserHalHelper.userFlagsToString(halFlags) + ")");
+                            mInitialUserSetter.createUser(name, halFlags);
+                            return;
                         default:
                             switchUserOnResumeUserHalFallback(
-                                    "invalid response action: " + response.action, allowSwitching);
+                                    "invalid response action: " + response.action);
                             return;
                     }
                 default:
-                    switchUserOnResumeUserHalFallback("invalid status: " + status, allowSwitching);
+                    switchUserOnResumeUserHalFallback("invalid status: " + status);
             }
         });
     }
@@ -548,35 +510,10 @@
     /**
      * Switches the initial user directly when the User HAL call failed.
      */
-    private void switchUserOnResumeUserHalFallback(String reason, boolean allowSwitching) {
+    private void switchUserOnResumeUserHalFallback(String reason) {
         Log.w(TAG, "Failed to set initial user based on User Hal (" + reason
                 + "); falling back to default behavior");
-        switchUserOnResumeIfNecessaryDirectly(allowSwitching);
-    }
-
-
-    private void switchToUser(@UserIdInt int fromUser, @UserIdInt int toUser,
-            @Nullable String reason) {
-        StringBuilder message = new StringBuilder();
-        if (reason == null) {
-            message.append("Desired user changed");
-        } else {
-            message.append(reason);
-        }
-        message.append(", switching from ").append(fromUser).append(" to ").append(toUser);
-        Log.i(CarLog.TAG_POWER, message.toString());
-        mCarUserManagerHelper.startForegroundUser(toUser);
-    }
-
-    private int getFirstSwitchableUser() {
-        List<UserInfo> allUsers = mUserManager.getUsers();
-        for (UserInfo user : allUsers) {
-            if (user.id != UserHandle.USER_SYSTEM) {
-                return user.id;
-            }
-        }
-        Log.wtf(CarLog.TAG_POWER, "no switchable user: " + allUsers);
-        return UserHandle.USER_NULL;
+        mInitialUserSetter.executeDefaultBehavior(/* replaceGuest= */ !mSwitchGuestUserBeforeSleep);
     }
 
     private void handleShutdownPrepare(CpmsState newState) {
@@ -702,6 +639,9 @@
                     0 /*delay*/,
                     intervalMs);
         }
+        if (mSwitchGuestUserBeforeSleep) {
+            switchToNewGuestIfNecessary();
+        }
     }
 
     private void sendPowerManagerEvent(int newState) {
@@ -759,11 +699,7 @@
         // keep holding partial wakelock to prevent entering sleep before enterDeepSleep call
         // enterDeepSleep should force sleep entry even if wake lock is kept.
         mSystemInterface.switchToPartialWakeLock();
-        PowerHandler handler;
-        synchronized (mLock) {
-            handler = mHandler;
-        }
-        handler.cancelProcessingComplete();
+        mHandler.cancelProcessingComplete();
         synchronized (mLock) {
             mLastSleepEntryTime = SystemClock.elapsedRealtime();
         }
@@ -791,40 +727,54 @@
         onApPowerStateChange(CpmsState.WAIT_FOR_VHAL, nextListenerState);
     }
 
-    private boolean needPowerStateChangeLocked(CpmsState newState) {
-        if (newState == null) {
-            return false;
-        } else if (mCurrentState == null) {
+    private boolean needPowerStateChangeLocked(@NonNull CpmsState newState) {
+        if (mCurrentState == null) {
             return true;
         } else if (mCurrentState.equals(newState)) {
+            Log.d(CarLog.TAG_POWER, "Requested state is already in effect: "
+                    + newState.name());
             return false;
         }
 
         // The following switch/case enforces the allowed state transitions.
+        boolean transitionAllowed = false;
         switch (mCurrentState.mState) {
             case CpmsState.WAIT_FOR_VHAL:
-                return (newState.mState == CpmsState.ON)
+                transitionAllowed = (newState.mState == CpmsState.ON)
                     || (newState.mState == CpmsState.SHUTDOWN_PREPARE);
+                break;
             case CpmsState.SUSPEND:
-                return newState.mState == CpmsState.WAIT_FOR_VHAL;
+                transitionAllowed =  newState.mState == CpmsState.WAIT_FOR_VHAL;
+                break;
             case CpmsState.ON:
-                return (newState.mState == CpmsState.SHUTDOWN_PREPARE)
+                transitionAllowed = (newState.mState == CpmsState.SHUTDOWN_PREPARE)
                     || (newState.mState == CpmsState.SIMULATE_SLEEP);
+                break;
             case CpmsState.SHUTDOWN_PREPARE:
                 // If VHAL sends SHUTDOWN_IMMEDIATELY or SLEEP_IMMEDIATELY while in
                 // SHUTDOWN_PREPARE state, do it.
-                return ((newState.mState == CpmsState.SHUTDOWN_PREPARE) && !newState.mCanPostpone)
-                    || (newState.mState == CpmsState.WAIT_FOR_FINISH)
-                    || (newState.mState == CpmsState.WAIT_FOR_VHAL);
+                transitionAllowed =
+                        ((newState.mState == CpmsState.SHUTDOWN_PREPARE) && !newState.mCanPostpone)
+                                || (newState.mState == CpmsState.WAIT_FOR_FINISH)
+                                || (newState.mState == CpmsState.WAIT_FOR_VHAL);
+                break;
             case CpmsState.SIMULATE_SLEEP:
-                return true;
+                transitionAllowed = true;
+                break;
             case CpmsState.WAIT_FOR_FINISH:
-                return newState.mState == CpmsState.SUSPEND;
+                transitionAllowed = (newState.mState == CpmsState.SUSPEND
+                        || newState.mState == CpmsState.WAIT_FOR_VHAL);
+                break;
             default:
-                Log.e(CarLog.TAG_POWER, "Unhandled state transition:  currentState="
+                Log.e(CarLog.TAG_POWER, "Unexpected current state:  currentState="
                         + mCurrentState.name() + ", newState=" + newState.name());
-                return false;
+                transitionAllowed = true;
         }
+        if (!transitionAllowed) {
+            Log.e(CarLog.TAG_POWER, "Requested power transition is not allowed: "
+                    + mCurrentState.name() + " --> " + newState.name());
+        }
+        return transitionAllowed;
     }
 
     private void doHandleProcessingComplete() {
@@ -845,11 +795,7 @@
 
     @Override
     public void onDisplayBrightnessChange(int brightness) {
-        PowerHandler handler;
-        synchronized (mLock) {
-            handler = mHandler;
-        }
-        handler.handleDisplayBrightnessChange(brightness);
+        mHandler.handleDisplayBrightnessChange(brightness);
     }
 
     private void doHandleDisplayBrightnessChange(int brightness) {
@@ -861,11 +807,7 @@
     }
 
     public void handleMainDisplayChanged(boolean on) {
-        PowerHandler handler;
-        synchronized (mLock) {
-            handler = mHandler;
-        }
-        handler.handleMainDisplayStateChange(on);
+        mHandler.handleMainDisplayStateChange(on);
     }
 
     /**
@@ -880,9 +822,8 @@
      * Get the PowerHandler that we use to change power states
      */
     public Handler getHandler() {
-        synchronized (mLock) {
-            return mHandler;
-        }
+        return mHandler;
+
     }
 
     // Binder interface for general use.
@@ -937,6 +878,7 @@
 
     @Override
     public void scheduleNextWakeupTime(int seconds) {
+        ICarImpl.assertPermission(mContext, Car.PERMISSION_CAR_POWER);
         if (seconds < 0) {
             Log.w(CarLog.TAG_POWER, "Next wake up time is negative. Ignoring!");
             return;
@@ -958,6 +900,15 @@
         }
     }
 
+    @Override
+    public int getPowerState() {
+        ICarImpl.assertPermission(mContext, Car.PERMISSION_CAR_POWER);
+        synchronized (mLock) {
+            return (mCurrentState == null) ? CarPowerStateListener.INVALID
+                    : mCurrentState.mCarPowerStateListenerState;
+        }
+    }
+
     private void finishedImpl(IBinder binder) {
         boolean allAreComplete = false;
         synchronized (mLock) {
@@ -989,7 +940,9 @@
         }
     }
 
-    private class PowerHandler extends Handler {
+    private static final class PowerHandler extends Handler {
+        private static final String TAG = PowerHandler.class.getSimpleName();
+
         private final int MSG_POWER_STATE_CHANGE = 0;
         private final int MSG_DISPLAY_BRIGHTNESS_CHANGE = 1;
         private final int MSG_MAIN_DISPLAY_STATE_CHANGE = 2;
@@ -999,8 +952,11 @@
         // display off due to rear view camera and delivery to here.
         private final long MAIN_DISPLAY_EVENT_DELAY_MS = 500;
 
-        private PowerHandler(Looper looper) {
+        private final WeakReference<CarPowerManagementService> mService;
+
+        private PowerHandler(Looper looper, CarPowerManagementService service) {
             super(looper);
+            mService = new WeakReference<CarPowerManagementService>(service);
         }
 
         private void handlePowerStateChange() {
@@ -1038,18 +994,23 @@
 
         @Override
         public void handleMessage(Message msg) {
+            CarPowerManagementService service = mService.get();
+            if (service == null) {
+                Log.i(TAG, "handleMessage null service");
+                return;
+            }
             switch (msg.what) {
                 case MSG_POWER_STATE_CHANGE:
-                    doHandlePowerStateChange();
+                    service.doHandlePowerStateChange();
                     break;
                 case MSG_DISPLAY_BRIGHTNESS_CHANGE:
-                    doHandleDisplayBrightnessChange(msg.arg1);
+                    service.doHandleDisplayBrightnessChange(msg.arg1);
                     break;
                 case MSG_MAIN_DISPLAY_STATE_CHANGE:
-                    doHandleMainDisplayStateChange((Boolean) msg.obj);
+                    service.doHandleMainDisplayStateChange((Boolean) msg.obj);
                     break;
                 case MSG_PROCESSING_COMPLETE:
-                    doHandleProcessingComplete();
+                    service.doHandleProcessingComplete();
                     break;
             }
         }
diff --git a/service/src/com/android/car/CarService.java b/service/src/com/android/car/CarService.java
index 3d3dfa2..a0db99d 100644
--- a/service/src/com/android/car/CarService.java
+++ b/service/src/com/android/car/CarService.java
@@ -30,10 +30,12 @@
 import android.os.ServiceManager;
 import android.os.SystemClock;
 import android.os.SystemProperties;
+import android.util.EventLog;
 import android.util.Log;
 
 import com.android.car.systeminterface.SystemInterface;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.car.EventLogTags;
 import com.android.internal.util.RingBufferIndices;
 
 import java.io.FileDescriptor;
@@ -77,6 +79,7 @@
         Log.i(CarLog.TAG_SERVICE, "Service onCreate");
         mCanBusErrorNotifier = new CanBusErrorNotifier(this /* context */);
         mVehicle = getVehicle();
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_CREATE, mVehicle == null ? 0 : 1);
 
         if (mVehicle == null) {
             throw new IllegalStateException("Vehicle HAL service is not available.");
@@ -88,6 +91,7 @@
         }
 
         Log.i(CarLog.TAG_SERVICE, "Connected to " + mVehicleInterfaceName);
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_CONNECTED, mVehicleInterfaceName);
 
         mICarImpl = new ICarImpl(this,
                 mVehicle,
@@ -108,6 +112,7 @@
     // cleanup task that you want to make sure happens on shutdown/reboot, see OnShutdownReboot.
     @Override
     public void onDestroy() {
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_CREATE, mVehicle == null ? 0 : 1);
         Log.i(CarLog.TAG_SERVICE, "Service onDestroy");
         mICarImpl.release();
         mCanBusErrorNotifier.removeFailureReport(this);
@@ -179,10 +184,10 @@
     }
 
     private class VehicleDeathRecipient implements DeathRecipient {
-        private int deathCount = 0;
 
         @Override
         public void serviceDied(long cookie) {
+            EventLog.writeEvent(EventLogTags.CAR_SERVICE_VHAL_DIED, cookie);
             if (RESTART_CAR_SERVICE_WHEN_VHAL_CRASH) {
                 Log.wtf(CarLog.TAG_SERVICE, "***Vehicle HAL died. Car service will restart***");
                 Process.killProcess(Process.myPid());
diff --git a/service/src/com/android/car/CarServiceUtils.java b/service/src/com/android/car/CarServiceUtils.java
index 12b721e..5ffedb6 100644
--- a/service/src/com/android/car/CarServiceUtils.java
+++ b/service/src/com/android/car/CarServiceUtils.java
@@ -21,8 +21,10 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.os.Binder;
 import android.os.Handler;
+import android.os.HandlerThread;
 import android.os.Looper;
 import android.os.SystemClock;
+import android.util.ArrayMap;
 import android.util.Log;
 
 import java.util.List;
@@ -30,11 +32,15 @@
 /** Utility class */
 public final class CarServiceUtils {
 
+    private static final String TAG = "CAR.UTIL";
     /** Empty int array */
     public  static final int[] EMPTY_INT_ARRAY = new int[0];
 
     private static final String PACKAGE_NOT_FOUND = "Package not found:";
 
+    /** K: class name, V: HandlerThread */
+    private static final ArrayMap<String, HandlerThread> sHandlerThreads = new ArrayMap<>();
+
     /** do not construct. static only */
     private CarServiceUtils() {};
 
@@ -191,4 +197,21 @@
             }
         }
     }
+
+    /**
+     * Gets a static instance of {@code HandlerThread} for the given {@code name}. If the thread
+     * does not exist, create one and start it before returning.
+     */
+    public static HandlerThread getHandlerThread(String name) {
+        synchronized (sHandlerThreads) {
+            HandlerThread thread = sHandlerThreads.get(name);
+            if (thread == null) {
+                Log.i(TAG, "Starting HandlerThread:" + name);
+                thread = new HandlerThread(name);
+                thread.start();
+                sHandlerThreads.put(name, thread);
+            }
+            return thread;
+        }
+    }
 }
diff --git a/service/src/com/android/car/CarShellCommand.java b/service/src/com/android/car/CarShellCommand.java
index 2a0d39a..fc6b2d2 100644
--- a/service/src/com/android/car/CarShellCommand.java
+++ b/service/src/com/android/car/CarShellCommand.java
@@ -15,27 +15,56 @@
  */
 package com.android.car;
 
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.DISASSOCIATE_ALL_USERS;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.DISASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_1;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_2;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_3;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_4;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.KEY_FOB;
+
+import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.ActivityOptions;
 import android.app.UiModeManager;
 import android.car.Car;
+import android.car.input.CarInputManager;
+import android.car.input.RotaryEvent;
+import android.car.user.CarUserManager;
+import android.car.user.UserIdentificationAssociationResponse;
+import android.car.user.UserSwitchResult;
 import android.car.userlib.HalCallback;
 import android.car.userlib.UserHalHelper;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserMessageType;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
 import android.hardware.automotive.vehicle.V2_0.UserInfo;
 import android.hardware.automotive.vehicle.V2_0.UsersInfo;
 import android.hardware.automotive.vehicle.V2_0.VehicleArea;
 import android.os.Binder;
+import android.os.Build;
 import android.os.Process;
 import android.os.ShellCommand;
 import android.os.SystemClock;
+import android.os.UserHandle;
 import android.text.TextUtils;
+import android.util.ArrayMap;
 import android.util.Log;
+import android.util.SparseArray;
 import android.view.KeyEvent;
 
 import com.android.car.am.FixedActivityService;
@@ -47,16 +76,22 @@
 import com.android.car.pm.CarPackageManagerService;
 import com.android.car.systeminterface.SystemInterface;
 import com.android.car.trust.CarTrustedDeviceService;
-import com.android.internal.util.ArrayUtils;
+import com.android.car.user.CarUserService;
+import com.android.internal.infra.AndroidFuture;
 
 import java.io.PrintWriter;
 import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
 final class CarShellCommand extends ShellCommand {
 
+    private static final String NO_INITIAL_USER = "N/A";
+
     private static final String TAG = CarShellCommand.class.getSimpleName();
+    private static final boolean VERBOSE = false;
 
     private static final String COMMAND_HELP = "-h";
     private static final String COMMAND_DAY_NIGHT_MODE = "day-night-mode";
@@ -73,14 +108,51 @@
     private static final String COMMAND_SUSPEND = "suspend";
     private static final String COMMAND_ENABLE_TRUSTED_DEVICE = "enable-trusted-device";
     private static final String COMMAND_REMOVE_TRUSTED_DEVICES = "remove-trusted-devices";
-    private static final String COMMAND_SET_UID_TO_ZONE = "set-zoneid-for-uid";
+    private static final String COMMAND_SET_UID_TO_ZONE = "set-audio-zone-for-uid";
     private static final String COMMAND_START_FIXED_ACTIVITY_MODE = "start-fixed-activity-mode";
     private static final String COMMAND_STOP_FIXED_ACTIVITY_MODE = "stop-fixed-activity-mode";
     private static final String COMMAND_ENABLE_FEATURE = "enable-feature";
     private static final String COMMAND_DISABLE_FEATURE = "disable-feature";
     private static final String COMMAND_INJECT_KEY = "inject-key";
+    private static final String COMMAND_INJECT_ROTARY = "inject-rotary";
     private static final String COMMAND_GET_INITIAL_USER_INFO = "get-initial-user-info";
     private static final String COMMAND_SWITCH_USER = "switch-user";
+    private static final String COMMAND_GET_INITIAL_USER = "get-initial-user";
+    private static final String COMMAND_SET_USER_ID_TO_OCCUPANT_ZONE =
+            "set-occupant-zone-for-user";
+    private static final String COMMAND_RESET_USER_ID_IN_OCCUPANT_ZONE =
+            "reset-user-in-occupant-zone";
+    private static final String COMMAND_GET_USER_AUTH_ASSOCIATION =
+            "get-user-auth-association";
+    private static final String COMMAND_SET_USER_AUTH_ASSOCIATION =
+            "set-user-auth-association";
+
+    // Whitelist of commands allowed in user build. All these command should be protected with
+    // a permission. K: command, V: required permission.
+    // Only commands with permission already granted to shell user should be allowed.
+    // Commands that can affect safety should be never allowed in user build.
+    private static final ArrayMap<String, String> USER_BUILD_COMMAND_TO_PERMISSION_MAP;
+    static {
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP = new ArrayMap<>();
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_GARAGE_MODE,
+                android.Manifest.permission.DEVICE_POWER);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_RESUME,
+                android.Manifest.permission.DEVICE_POWER);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_SUSPEND,
+                android.Manifest.permission.DEVICE_POWER);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_GET_INITIAL_USER,
+                android.Manifest.permission.INTERACT_ACROSS_USERS_FULL);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_GET_INITIAL_USER_INFO,
+                android.Manifest.permission.MANAGE_USERS);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_SWITCH_USER,
+                android.Manifest.permission.MANAGE_USERS);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_GET_USER_AUTH_ASSOCIATION,
+                android.Manifest.permission.MANAGE_USERS);
+        USER_BUILD_COMMAND_TO_PERMISSION_MAP.put(COMMAND_SET_USER_AUTH_ASSOCIATION,
+                android.Manifest.permission.MANAGE_USERS);
+    }
+
+    private static final String DEVICE_POWER_PERMISSION = "android.permission.DEVICE_POWER";
 
     private static final String PARAM_DAY_MODE = "day";
     private static final String PARAM_NIGHT_MODE = "night";
@@ -94,6 +166,49 @@
     private static final int RESULT_OK = 0;
     private static final int RESULT_ERROR = -1; // Arbitrary value, any non-0 is fine
 
+    private static final int DEFAULT_HAL_TIMEOUT_MS = 1_000;
+
+    private static final int INVALID_USER_AUTH_TYPE_OR_VALUE = -1;
+
+    private static final SparseArray<String> VALID_USER_AUTH_TYPES;
+    private static final String VALID_USER_AUTH_TYPES_HELP;
+
+    private static final SparseArray<String> VALID_USER_AUTH_SET_VALUES;
+    private static final String VALID_USER_AUTH_SET_VALUES_HELP;
+
+    static {
+        VALID_USER_AUTH_TYPES = new SparseArray<String>(5);
+        VALID_USER_AUTH_TYPES.put(KEY_FOB, UserIdentificationAssociationType.toString(KEY_FOB));
+        VALID_USER_AUTH_TYPES.put(CUSTOM_1, UserIdentificationAssociationType.toString(CUSTOM_1));
+        VALID_USER_AUTH_TYPES.put(CUSTOM_2, UserIdentificationAssociationType.toString(CUSTOM_2));
+        VALID_USER_AUTH_TYPES.put(CUSTOM_3, UserIdentificationAssociationType.toString(CUSTOM_3));
+        VALID_USER_AUTH_TYPES.put(CUSTOM_4, UserIdentificationAssociationType.toString(CUSTOM_4));
+        VALID_USER_AUTH_TYPES_HELP = getHelpString("types", VALID_USER_AUTH_TYPES);
+
+        VALID_USER_AUTH_SET_VALUES = new SparseArray<String>(3);
+        VALID_USER_AUTH_SET_VALUES.put(ASSOCIATE_CURRENT_USER,
+                UserIdentificationAssociationSetValue.toString(ASSOCIATE_CURRENT_USER));
+        VALID_USER_AUTH_SET_VALUES.put(DISASSOCIATE_CURRENT_USER,
+                UserIdentificationAssociationSetValue.toString(DISASSOCIATE_CURRENT_USER));
+        VALID_USER_AUTH_SET_VALUES.put(DISASSOCIATE_ALL_USERS,
+                UserIdentificationAssociationSetValue.toString(DISASSOCIATE_ALL_USERS));
+        VALID_USER_AUTH_SET_VALUES_HELP = getHelpString("values", VALID_USER_AUTH_SET_VALUES);
+    }
+
+    @NonNull
+    private static String getHelpString(@NonNull String name, @NonNull SparseArray<String> values) {
+        StringBuilder help = new StringBuilder("Valid ").append(name).append(" are: ");
+        int size = values.size();
+        for (int i = 0; i < size; i++) {
+            help.append(values.valueAt(i));
+            if (i != size - 1) {
+                help.append(", ");
+            }
+        }
+        return help.append('.').toString();
+    }
+
+    private final Context mContext;
     private final VehicleHal mHal;
     private final CarAudioService mCarAudioService;
     private final CarPackageManagerService mCarPackageManagerService;
@@ -106,8 +221,11 @@
     private final CarNightService mCarNightService;
     private final SystemInterface mSystemInterface;
     private final GarageModeService mGarageModeService;
+    private final CarUserService mCarUserService;
+    private final CarOccupantZoneService mCarOccupantZoneService;
 
-    CarShellCommand(VehicleHal hal,
+    CarShellCommand(Context context,
+            VehicleHal hal,
             CarAudioService carAudioService,
             CarPackageManagerService carPackageManagerService,
             CarProjectionService carProjectionService,
@@ -118,7 +236,10 @@
             CarInputService carInputService,
             CarNightService carNightService,
             SystemInterface systemInterface,
-            GarageModeService garageModeService) {
+            GarageModeService garageModeService,
+            CarUserService carUserService,
+            CarOccupantZoneService carOccupantZoneService) {
+        mContext = context;
         mHal = hal;
         mCarAudioService = carAudioService;
         mCarPackageManagerService = carPackageManagerService;
@@ -131,6 +252,8 @@
         mCarNightService = carNightService;
         mSystemInterface = systemInterface;
         mGarageModeService = garageModeService;
+        mCarUserService = carUserService;
+        mCarOccupantZoneService = carOccupantZoneService;
     }
 
     @Override
@@ -164,8 +287,11 @@
         pw.println("\t  Print this help text.");
         pw.println("\tday-night-mode [day|night|sensor]");
         pw.println("\t  Force into day/night mode or restore to auto.");
-        pw.println("\tinject-vhal-event property [zone] data(can be comma separated list)");
+        pw.println("\tinject-vhal-event property [zone] data(can be comma separated list) "
+                + "[-t delay_time_seconds]");
         pw.println("\t  Inject a vehicle property for testing.");
+        pw.println("\t  delay_time_seconds: the event timestamp is increased by certain second.");
+        pw.println("\t  If not specified, it will be 0.");
         pw.println("\tinject-error-event property zone errorCode");
         pw.println("\t  Inject an error event from VHAL for testing.");
         pw.println("\tenable-uxr true|false");
@@ -193,7 +319,7 @@
                 + " wireless projection");
         pw.println("\t--metrics");
         pw.println("\t  When used with dumpsys, only metrics will be in the dumpsys output.");
-        pw.println("\tset-zoneid-for-uid [zoneid] [uid]");
+        pw.printf("\t%s [zoneid] [uid]\n", COMMAND_SET_UID_TO_ZONE);
         pw.println("\t  Maps the audio zoneid to uid.");
         pw.println("\tstart-fixed-activity displayId packageName activityName");
         pw.println("\t  Start an Activity the specified display as fixed mode");
@@ -212,6 +338,16 @@
         pw.println("\t  down_delay_ms: delay from down to up key event. If not specified,");
         pw.println("\t                 it will be 0");
         pw.println("\t  key_code: int key code defined in android KeyEvent");
+        pw.println("\tinject-rotary [-d display] [-i input_type] [-c clockwise]");
+        pw.println("\t              [-dt delta_times_ms]");
+        pw.println("\t  inject rotary input event to car service.");
+        pw.println("\t  display: 0 for main, 1 for cluster. If not specified, it will be 0.");
+        pw.println("\t  input_type: 10 for navigation controller input, 11 for volume");
+        pw.println("\t              controller input. If not specified, it will be 10.");
+        pw.println("\t  clockwise: true if the event is clockwise, false if the event is");
+        pw.println("\t             counter-clockwise. If not specified, it will be false.");
+        pw.println("\t  delta_times_ms: a list of delta time (current time minus event time)");
+        pw.println("\t                  in descending order. If not specified, it will be 0.");
 
         pw.printf("\t%s <REQ_TYPE> [--timeout TIMEOUT_MS]\n", COMMAND_GET_INITIAL_USER_INFO);
         pw.println("\t  Calls the Vehicle HAL to get the initial boot info, passing the given");
@@ -220,10 +356,28 @@
         pw.println("\t  and an optional TIMEOUT_MS to wait for the HAL response (if not set,");
         pw.println("\t  it will use a  default value).");
 
-        pw.printf("\t%s <USER_ID> [--dry-run] [--timeout TIMEOUT_MS]\n", COMMAND_SWITCH_USER);
+        pw.printf("\t%s <USER_ID> [--hal-only] [--timeout TIMEOUT_MS]\n", COMMAND_SWITCH_USER);
         pw.println("\t  Switches to user USER_ID using the HAL integration.");
-        pw.println("\t  The --dry-run option only calls HAL, without switching the user,");
+        pw.println("\t  The --hal-only option only calls HAL, without switching the user,");
         pw.println("\t  while the --timeout defines how long to wait for the HAL response");
+
+        pw.printf("\t%s\n", COMMAND_GET_INITIAL_USER);
+        pw.printf("\t  Gets the id of the initial user (or %s when it's not available)\n",
+                NO_INITIAL_USER);
+
+        pw.printf("\t%s [occupantZoneId] [userId]\n", COMMAND_SET_USER_ID_TO_OCCUPANT_ZONE);
+        pw.println("\t  Maps the occupant zone id to user id.");
+        pw.printf("\t%s [occupantZoneId]\n", COMMAND_RESET_USER_ID_IN_OCCUPANT_ZONE);
+        pw.println("\t  Unmaps the user assigned to occupant zone id.");
+
+        pw.printf("\t%s [--hal-only] [--user USER_ID] TYPE1 VALUE1 [..TYPE_N VALUE_N]\n",
+                COMMAND_SET_USER_AUTH_ASSOCIATION);
+        pw.println("\t  Sets the N user authentication types with the N values for the given user");
+        pw.println("\t  (or current user when not specified).");
+        pw.println("\t  By defautt it calls CarUserManager, but using --hal-only will call just "
+                + "UserHalService.");
+        pw.printf("\t  %s\n", VALID_USER_AUTH_TYPES_HELP);
+        pw.printf("\t  %s\n", VALID_USER_AUTH_SET_VALUES_HELP);
     }
 
     private static int showInvalidArguments(PrintWriter pw) {
@@ -232,19 +386,47 @@
         return RESULT_ERROR;
     }
 
-    private String runSetZoneIdForUid(String zoneString, String uidString) {
+    private void runSetZoneIdForUid(String zoneString, String uidString) {
         int uid = Integer.parseInt(uidString);
         int zoneId = Integer.parseInt(zoneString);
-        if (!ArrayUtils.contains(mCarAudioService.getAudioZoneIds(), zoneId)) {
-            return  "zoneid " + zoneId + " not found";
-        }
         mCarAudioService.setZoneIdForUid(zoneId, uid);
-        return null;
+    }
+
+    private void runSetOccupantZoneIdForUserId(String occupantZoneIdString,
+            String userIdString) {
+        int userId = Integer.parseInt(userIdString);
+        int occupantZoneId = Integer.parseInt(occupantZoneIdString);
+        if (!mCarOccupantZoneService.assignProfileUserToOccupantZone(occupantZoneId, userId)) {
+            throw new IllegalStateException("Failed to set userId " + userId + " to occupantZoneId "
+                    + occupantZoneIdString);
+        }
+    }
+
+    private void runResetOccupantZoneId(String occupantZoneIdString) {
+        int occupantZoneId = Integer.parseInt(occupantZoneIdString);
+        if (!mCarOccupantZoneService
+                .assignProfileUserToOccupantZone(occupantZoneId, UserHandle.USER_NULL)) {
+            throw new IllegalStateException("Failed to reset occupantZoneId "
+                    + occupantZoneIdString);
+        }
     }
 
     int exec(String[] args, PrintWriter writer) {
-        String arg = args[0];
-        switch (arg) {
+        String cmd = args[0];
+        String requiredPermission = USER_BUILD_COMMAND_TO_PERMISSION_MAP.get(cmd);
+        if (VERBOSE) {
+            Log.v(TAG, "cmd: " + cmd + ", requiredPermission: " + requiredPermission);
+        }
+        if (Build.IS_USER && requiredPermission == null) {
+            throw new SecurityException("The command " + cmd + "requires non-user build");
+        }
+        if (requiredPermission != null) {
+            if (!ICarImpl.hasPermission(mContext, requiredPermission)) {
+                throw new SecurityException("The command " + cmd + "requires permission:"
+                        + requiredPermission);
+            }
+        }
+        switch (cmd) {
             case COMMAND_HELP:
                 showHelp(writer);
                 break;
@@ -261,9 +443,12 @@
             case COMMAND_INJECT_VHAL_EVENT:
                 String zone = PARAM_VEHICLE_PROPERTY_AREA_GLOBAL;
                 String data;
-                if (args.length != 3 && args.length != 4) {
+                int argNum = args.length;
+                if (argNum < 3 || argNum > 6) {
                     return showInvalidArguments(writer);
-                } else if (args.length == 4) {
+                }
+                String delayTime = args[argNum - 2].equals("-t") ?  args[argNum - 1] : "0";
+                if (argNum == 4 || argNum == 6) {
                     // Zoned
                     zone = args[2];
                     data = args[3];
@@ -271,7 +456,7 @@
                     // Global
                     data = args[2];
                 }
-                injectVhalEvent(args[1], zone, data, false, writer);
+                injectVhalEvent(args[1], zone, data, false, delayTime, writer);
                 break;
             case COMMAND_INJECT_ERROR_EVENT:
                 if (args.length != 4) {
@@ -279,7 +464,7 @@
                 }
                 String errorAreaId = args[2];
                 String errorCode = args[3];
-                injectVhalEvent(args[1], errorAreaId, errorCode, true, writer);
+                injectVhalEvent(args[1], errorAreaId, errorCode, true, "0", writer);
                 break;
             case COMMAND_ENABLE_UXR:
                 if (args.length != 2) {
@@ -355,11 +540,19 @@
                 if (args.length != 3) {
                     return showInvalidArguments(writer);
                 }
-                String results = runSetZoneIdForUid(args[1], args[2]);
-                if (results != null) {
-                    writer.println(results);
-                    showHelp(writer);
+                runSetZoneIdForUid(args[1], args[2]);
+                break;
+            case COMMAND_SET_USER_ID_TO_OCCUPANT_ZONE:
+                if (args.length != 3) {
+                    return showInvalidArguments(writer);
                 }
+                runSetOccupantZoneIdForUserId(args[1], args[2]);
+                break;
+            case COMMAND_RESET_USER_ID_IN_OCCUPANT_ZONE:
+                if (args.length != 2) {
+                    return showInvalidArguments(writer);
+                }
+                runResetOccupantZoneId(args[1]);
                 break;
             case COMMAND_START_FIXED_ACTIVITY_MODE:
                 startFixedActivity(args, writer);
@@ -385,14 +578,29 @@
                 }
                 injectKey(args, writer);
                 break;
+            case COMMAND_INJECT_ROTARY:
+                if (args.length < 1) {
+                    return showInvalidArguments(writer);
+                }
+                injectRotary(args, writer);
+                break;
             case COMMAND_GET_INITIAL_USER_INFO:
                 getInitialUserInfo(args, writer);
                 break;
             case COMMAND_SWITCH_USER:
                 switchUser(args, writer);
                 break;
+            case COMMAND_GET_INITIAL_USER:
+                getInitialUser(writer);
+                break;
+            case COMMAND_GET_USER_AUTH_ASSOCIATION:
+                getUserAuthAssociation(args, writer);
+                break;
+            case COMMAND_SET_USER_AUTH_ASSOCIATION:
+                setUserAuthAssociation(args, writer);
+                break;
             default:
-                writer.println("Unknown command: \"" + arg + "\"");
+                writer.println("Unknown command: \"" + cmd + "\"");
                 showHelp(writer);
                 return RESULT_ERROR;
         }
@@ -529,6 +737,7 @@
         if (delayMs < 0) {
             writer.println("Invalid delay:" + delayMs);
             showHelp(writer);
+
             return;
         }
         KeyEvent keyDown = new KeyEvent(KeyEvent.ACTION_DOWN, keyCode);
@@ -539,6 +748,70 @@
         writer.println("Succeeded");
     }
 
+    private void injectRotary(String[] args, PrintWriter writer) {
+        int i = 1; // 0 is command itself
+        int display = InputHalService.DISPLAY_MAIN;
+        int inputType = CarInputManager.INPUT_TYPE_ROTARY_NAVIGATION;
+        boolean clockwise = false;
+        List<Long> deltaTimeMs = new ArrayList<>();
+        try {
+            while (i < args.length) {
+                switch (args[i]) {
+                    case "-d":
+                        i++;
+                        display = Integer.parseInt(args[i]);
+                        break;
+                    case "-i":
+                        i++;
+                        inputType = Integer.parseInt(args[i]);
+                        break;
+                    case "-c":
+                        i++;
+                        clockwise = Boolean.parseBoolean(args[i]);
+                        break;
+                    case "-dt":
+                        i++;
+                        while (i < args.length) {
+                            deltaTimeMs.add(Long.parseLong(args[i]));
+                            i++;
+                        }
+                        break;
+                    default:
+                        writer.println("Invalid option at index " + i + ": " + args[i]);
+                        return;
+                }
+                i++;
+            }
+        } catch (Exception e) {
+            writer.println("Invalid args:" + e);
+            showHelp(writer);
+            return;
+        }
+        if (deltaTimeMs.isEmpty()) {
+            deltaTimeMs.add(0L);
+        }
+        for (int j = 0; j < deltaTimeMs.size(); j++) {
+            if (deltaTimeMs.get(j) < 0) {
+                writer.println("Delta time shouldn't be negative: " + deltaTimeMs.get(j));
+                showHelp(writer);
+                return;
+            }
+            if (j > 0 && deltaTimeMs.get(j) > deltaTimeMs.get(j - 1)) {
+                writer.println("Delta times should be in descending order");
+                showHelp(writer);
+                return;
+            }
+        }
+        long[] uptimeMs = new long[deltaTimeMs.size()];
+        long currentUptime = SystemClock.uptimeMillis();
+        for (int j = 0; j < deltaTimeMs.size(); j++) {
+            uptimeMs[j] = currentUptime - deltaTimeMs.get(j);
+        }
+        RotaryEvent rotaryEvent = new RotaryEvent(inputType, clockwise, uptimeMs);
+        mCarInputService.onRotaryEvent(rotaryEvent, display);
+        writer.println("Succeeded in injecting: " + rotaryEvent);
+    }
+
     private void getInitialUserInfo(String[] args, PrintWriter writer) {
         if (args.length < 2) {
             writer.println("Insufficient number of args");
@@ -549,7 +822,7 @@
         String typeArg = args[1];
         int requestType = UserHalHelper.parseInitialUserInfoRequestType(typeArg);
 
-        int timeout = 1_000;
+        int timeout = DEFAULT_HAL_TIMEOUT_MS;
         for (int i = 2; i < args.length; i++) {
             String arg = args[i];
             switch (arg) {
@@ -608,8 +881,8 @@
         }
 
         int targetUserId = Integer.parseInt(args[1]);
-        int timeout = 1_000;
-        boolean dryRun = false;
+        int timeout = DEFAULT_HAL_TIMEOUT_MS;
+        boolean halOnly = false;
 
         for (int i = 2; i < args.length; i++) {
             String arg = args[i];
@@ -617,8 +890,8 @@
                 case "--timeout":
                     timeout = Integer.parseInt(args[++i]);
                     break;
-                case "--dry-run":
-                    dryRun = true;
+                case "--hal-only":
+                    halOnly = true;
                     break;
                 default:
                     writer.println("Invalid option at index " + i + ": " + arg);
@@ -626,44 +899,286 @@
             }
         }
 
-        Log.d(TAG, "handleSwitchUser(): target=" + targetUserId + ", dryRun=" + dryRun
+        Log.d(TAG, "handleSwitchUser(): target=" + targetUserId + ", halOnly=" + halOnly
                 + ", timeout=" + timeout);
 
-        if (!dryRun) {
-            writer.println("'Wet' run not supported yet, please use --dry-run");
-            // TODO(b/150409110): implement by calling CarUserManager.switchUser
+        if (halOnly) {
+            CountDownLatch latch = new CountDownLatch(1);
+            UserHalService userHal = mHal.getUserHal();
+            // TODO(b/150413515): use UserHalHelper to populate it with current users
+            UsersInfo usersInfo = new UsersInfo();
+            UserInfo targetUserInfo = new UserInfo();
+            targetUserInfo.userId = targetUserId;
+            // TODO(b/150413515): use UserHalHelper to set user flags
+
+            userHal.switchUser(targetUserInfo, timeout, usersInfo, (status, resp) -> {
+                try {
+                    Log.d(TAG, "SwitchUserResponse: status=" + status + ", resp=" + resp);
+                    writer.printf("Call Status: %s\n",
+                            UserHalHelper.halCallbackStatusToString(status));
+                    if (status != HalCallback.STATUS_OK) {
+                        return;
+                    }
+                    writer.printf("Request id: %d\n", resp.requestId);
+                    writer.printf("Message type: %s\n",
+                            SwitchUserMessageType.toString(resp.messageType));
+                    writer.printf("Switch Status: %s\n", SwitchUserStatus.toString(resp.status));
+                    String errorMessage = resp.errorMessage;
+                    if (!TextUtils.isEmpty(errorMessage)) {
+                        writer.printf("Error message: %s", errorMessage);
+                    }
+                    // TODO(b/150409110): If HAL returned OK, make a "post-switch" call to the HAL
+                    // indicating an Android error. This is to "rollback" the HAL switch.
+                } finally {
+                    latch.countDown();
+                }
+            });
+            waitForHal(writer, latch, timeout);
+            return;
+        }
+        CarUserManager carUserManager = getCarUserManager(mContext);
+        AndroidFuture<UserSwitchResult> future = carUserManager.switchUser(targetUserId);
+        UserSwitchResult result = waitForFuture(writer, future, timeout);
+        if (result == null) return;
+        writer.printf("UserSwitchResult: status = %s\n",
+                UserSwitchResult.statusToString(result.getStatus()));
+        String msg = result.getErrorMessage();
+        if (msg != null && !msg.isEmpty()) {
+            writer.printf("UserSwitchResult: Message = %s\n", msg);
+        }
+    }
+
+    private static <T> T waitForFuture(@NonNull PrintWriter writer,
+            @NonNull AndroidFuture<T> future, int timeoutMs) {
+        T result = null;
+        try {
+            result = future.get(timeoutMs, TimeUnit.MILLISECONDS);
+            if (result == null) {
+                writer.printf("Service didn't respond in %d ms", timeoutMs);
+            }
+        } catch (Exception e) {
+            writer.printf("Exception getting future: %s",  e);
+        }
+        return result;
+    }
+
+    private void getInitialUser(PrintWriter writer) {
+        android.content.pm.UserInfo user = mCarUserService.getInitialUser();
+        writer.println(user == null ? NO_INITIAL_USER : user.id);
+    }
+
+    private void getUserAuthAssociation(String[] args, PrintWriter writer) {
+        if (args.length < 2) {
+            writer.println("invalid usage, must pass at least 1 argument");
             return;
         }
 
-        UserHalService userHal = mHal.getUserHal();
-        // TODO(b/150413515): use UserHalHelper to populate it with current users
-        UsersInfo usersInfo = new UsersInfo();
-        UserInfo targetUserInfo = new UserInfo();
-        targetUserInfo.userId = targetUserId;
-        // TODO(b/150413515): use UserHalHelper to set user flags
+        boolean halOnly = false;
+        int userId = UserHandle.USER_CURRENT;
 
-        CountDownLatch latch = new CountDownLatch(1);
-        userHal.switchUser(targetUserInfo, timeout, usersInfo, (status, resp) -> {
-            try {
-                Log.d(TAG, "SwitchUserResponse: status=" + status + ", resp=" + resp);
-                writer.printf("Call Status: %s\n",
-                        UserHalHelper.halCallbackStatusToString(status));
-                if (status != HalCallback.STATUS_OK) {
-                    return;
-                }
-                writer.printf("Request id: %d\n", resp.requestId);
-                writer.printf("Message type: %s\n",
-                        SwitchUserMessageType.toString(resp.messageType));
-                writer.printf("Switch Status: %s\n", SwitchUserStatus.toString(resp.status));
-                String errorMessage = resp.errorMessage;
-                if (!TextUtils.isEmpty(errorMessage)) {
-                    writer.printf("Error message: %s", errorMessage);
-                }
-            } finally {
-                latch.countDown();
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        for (int i = 1; i < args.length; i++) {
+            String arg = args[i];
+            switch (arg) {
+                case "--user":
+                    try {
+                        userId = Integer.parseInt(args[++i]);
+                    } catch (Exception e) {
+                        writer.printf("Invalid user id at index %d (from %s): %s\n", i + 1,
+                                Arrays.toString(args), arg);
+                    }
+                    break;
+                case "--hal-only":
+                    halOnly = true;
+                    break;
+                default:
+                    int type = parseAuthArg(VALID_USER_AUTH_TYPES, arg);
+                    if (type == INVALID_USER_AUTH_TYPE_OR_VALUE) {
+                        writer.printf("Invalid type at index %d (from %s): %s. %s\n", i + 1,
+                                Arrays.toString(args), arg, VALID_USER_AUTH_TYPES_HELP);
+                        return;
+                    }
+                    request.associationTypes.add(type);
             }
-        });
-        waitForHal(writer, latch, timeout);
+
+        }
+        if (userId == UserHandle.USER_CURRENT) {
+            userId = ActivityManager.getCurrentUser();
+        }
+        int requestSize = request.associationTypes.size();
+        if (halOnly) {
+            request.numberAssociationTypes = requestSize;
+            // TODO(b/150413515): use UserHalHelper to set user flags
+            request.userInfo.userId = userId;
+
+            Log.d(TAG, "getUserAuthAssociation(): user=" + userId + ", halOnly=" + halOnly
+                    + ", request=" + request);
+            UserIdentificationResponse response = mHal.getUserHal().getUserAssociation(request);
+            Log.d(TAG, "getUserAuthAssociation(): response=" + response);
+            showResponse(writer, response);
+            return;
+        }
+
+        CarUserManager carUserManager = getCarUserManager(writer, userId);
+        int[] types = new int[requestSize];
+        for (int i = 0; i < requestSize; i++) {
+            types[i] = request.associationTypes.get(i);
+        }
+        UserIdentificationAssociationResponse response = carUserManager
+                .getUserIdentificationAssociation(types);
+        showResponse(writer, response);
+    }
+
+    private CarUserManager getCarUserManager(@NonNull PrintWriter writer, @UserIdInt int userId) {
+        Context context;
+        if (userId == mContext.getUserId()) {
+            context = mContext;
+        } else {
+            context = mContext.createContextAsUser(UserHandle.of(userId), /* flags= */ 0);
+        }
+        int actualUserId = Binder.getCallingUid();
+        if (actualUserId != userId) {
+            writer.printf("Emulating call for user id %d, but caller's user id is %d, so that's "
+                    + "what CarUserService will use when calling HAL.\n", userId, actualUserId);
+        }
+
+        return getCarUserManager(context);
+    }
+
+    private CarUserManager getCarUserManager(@NonNull Context context) {
+        Car car = Car.createCar(context);
+        CarUserManager carUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE);
+        return carUserManager;
+    }
+
+    private void showResponse(@NonNull PrintWriter writer,
+            @NonNull UserIdentificationResponse response) {
+        if (response == null) {
+            writer.println("null response");
+            return;
+        }
+
+        if (!TextUtils.isEmpty(response.errorMessage)) {
+            writer.printf("Error message: %s\n", response.errorMessage);
+        }
+        int numberAssociations = response.associations.size();
+        writer.printf("%d associations:\n", numberAssociations);
+        for (int i = 0; i < numberAssociations; i++) {
+            UserIdentificationAssociation association = response.associations.get(i);
+            writer.printf("  %s\n", association);
+        }
+    }
+
+    private void showResponse(@NonNull PrintWriter writer,
+            @NonNull UserIdentificationAssociationResponse response) {
+        if (response == null) {
+            writer.println("null response");
+            return;
+        }
+        String errorMessage = response.getErrorMessage();
+        if (!TextUtils.isEmpty(errorMessage)) {
+            writer.printf("Error message: %s\n", errorMessage);
+        }
+        int[] values = response.getValues();
+        writer.printf("%d associations:\n", values.length);
+        for (int i = 0; i < values.length; i++) {
+            writer.printf("  %s\n", UserIdentificationAssociationValue.toString(values[i]));
+        }
+    }
+
+    private void setUserAuthAssociation(String[] args, PrintWriter writer) {
+        if (args.length < 3) {
+            writer.println("invalid usage, must pass at least 4 arguments");
+            return;
+        }
+
+        boolean halOnly = false;
+        int timeout = DEFAULT_HAL_TIMEOUT_MS;
+        int userId = UserHandle.USER_CURRENT;
+
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        for (int i = 1; i < args.length; i++) {
+            String arg = args[i];
+            switch (arg) {
+                case "--user":
+                    try {
+                        userId = Integer.parseInt(args[++i]);
+                    } catch (Exception e) {
+                        writer.printf("Invalid user id at index %d (from %s): %s\n", i + 1,
+                                Arrays.toString(args), arg);
+                    }
+                    break;
+                case "--hal-only":
+                    halOnly = true;
+                    break;
+                case "--timeout":
+                    timeout = Integer.parseInt(args[++i]);
+                    break;
+                default:
+                    UserIdentificationSetAssociation association =
+                            new UserIdentificationSetAssociation();
+                    association.type = parseAuthArg(VALID_USER_AUTH_TYPES, arg);
+                    if (association.type == INVALID_USER_AUTH_TYPE_OR_VALUE) {
+                        writer.printf("Invalid type at index %d (from %s): %s. %s\n", i + 1,
+                                Arrays.toString(args), arg, VALID_USER_AUTH_TYPES_HELP);
+                        return;
+                    }
+                    association.value = parseAuthArg(VALID_USER_AUTH_SET_VALUES, args[++i]);
+                    if (association.value == INVALID_USER_AUTH_TYPE_OR_VALUE) {
+                        writer.printf("Invalid value at index %d (from %s): %s. %s\n", i + 1,
+                                Arrays.toString(args), arg, VALID_USER_AUTH_SET_VALUES_HELP);
+                        return;
+                    }
+                    request.associations.add(association);
+            }
+
+        }
+        if (userId == UserHandle.USER_CURRENT) {
+            userId = ActivityManager.getCurrentUser();
+        }
+        int requestSize = request.associations.size();
+        if (halOnly) {
+            request.numberAssociations = requestSize;
+            // TODO(b/150413515): use UserHalHelper to set user flags
+            request.userInfo.userId = userId;
+
+            Log.d(TAG, "setUserAuthAssociation(): user=" + userId + ", halOnly=" + halOnly
+                    + ", request=" + request);
+            CountDownLatch latch = new CountDownLatch(1);
+            mHal.getUserHal().setUserAssociation(timeout, request, (status, response) -> {
+                Log.d(TAG, "setUserAuthAssociation(): response=" + response);
+                try {
+                    showResponse(writer, response);
+                } finally {
+                    latch.countDown();
+                }
+            });
+            waitForHal(writer, latch, timeout);
+            return;
+        }
+        CarUserManager carUserManager = getCarUserManager(writer, userId);
+        int[] types = new int[requestSize];
+        int[] values = new int[requestSize];
+        for (int i = 0; i < requestSize; i++) {
+            UserIdentificationSetAssociation association = request.associations.get(i);
+            types[i] = association.type;
+            values[i] = association.value;
+        }
+        AndroidFuture<UserIdentificationAssociationResponse> future = carUserManager
+                .setUserIdentificationAssociation(types, values);
+        UserIdentificationAssociationResponse response = waitForFuture(writer, future, timeout);
+        if (response != null) {
+            showResponse(writer, response);
+        }
+    }
+
+    private static int parseAuthArg(@NonNull SparseArray<String> types, @NonNull String type) {
+        for (int i = 0; i < types.size(); i++) {
+            if (types.valueAt(i).equals(type)) {
+                return types.keyAt(i);
+            }
+        }
+        return INVALID_USER_AUTH_TYPE_OR_VALUE;
     }
 
     private void forceDayNightMode(String arg, PrintWriter writer) {
@@ -731,10 +1246,11 @@
      * @param zone     Zone that this event services
      * @param isErrorEvent indicates the type of event
      * @param value    Data value of the event
+     * @param delayTime the event timestamp is increased by delayTime
      * @param writer   PrintWriter
      */
     private void injectVhalEvent(String property, String zone, String value,
-            boolean isErrorEvent, PrintWriter writer) {
+            boolean isErrorEvent, String delayTime, PrintWriter writer) {
         if (zone != null && (zone.equalsIgnoreCase(PARAM_VEHICLE_PROPERTY_AREA_GLOBAL))) {
             if (!isPropertyAreaTypeGlobal(property)) {
                 writer.println("Property area type inconsistent with given zone");
@@ -745,7 +1261,7 @@
             if (isErrorEvent) {
                 mHal.injectOnPropertySetError(property, zone, value);
             } else {
-                mHal.injectVhalEvent(property, zone, value);
+                mHal.injectVhalEvent(property, zone, value, delayTime);
             }
         } catch (NumberFormatException e) {
             writer.println("Invalid property Id zone Id or value" + e);
diff --git a/service/src/com/android/car/CarUxRestrictionsManagerService.java b/service/src/com/android/car/CarUxRestrictionsManagerService.java
index 96531c8..176a417 100644
--- a/service/src/com/android/car/CarUxRestrictionsManagerService.java
+++ b/service/src/com/android/car/CarUxRestrictionsManagerService.java
@@ -132,8 +132,9 @@
     private final DisplayManager mDisplayManager;
     private final CarDrivingStateService mDrivingStateService;
     private final CarPropertyService mCarPropertyService;
-    private final HandlerThread mClientDispatchThread;
-    private final Handler mClientDispatchHandler;
+    private final HandlerThread mClientDispatchThread  = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mClientDispatchHandler  = new Handler(mClientDispatchThread.getLooper());
     private final RemoteCallbackList<ICarUxRestrictionsChangeListener> mUxRClients =
             new RemoteCallbackList<>();
 
@@ -190,9 +191,6 @@
         mDisplayManager = mContext.getSystemService(DisplayManager.class);
         mDrivingStateService = drvService;
         mCarPropertyService = propertyService;
-        mClientDispatchThread = new HandlerThread("ClientDispatchThread");
-        mClientDispatchThread.start();
-        mClientDispatchHandler = new Handler(mClientDispatchThread.getLooper());
     }
 
     @Override
@@ -370,7 +368,6 @@
         synchronized (mLock) {
             mActivityViewDisplayInfoMap.clear();
         }
-        mClientDispatchThread.quitSafely();
     }
 
     // Binder methods
diff --git a/service/src/com/android/car/ICarImpl.java b/service/src/com/android/car/ICarImpl.java
index 047ce18..972f0a7 100644
--- a/service/src/com/android/car/ICarImpl.java
+++ b/service/src/com/android/car/ICarImpl.java
@@ -24,7 +24,6 @@
 import android.car.ICar;
 import android.car.cluster.renderer.IInstrumentClusterNavigation;
 import android.car.user.CarUserManager;
-import android.car.user.CarUserManager.UserLifecycleEvent;
 import android.car.userlib.CarUserManagerHelper;
 import android.content.Context;
 import android.content.pm.PackageManager;
@@ -41,6 +40,7 @@
 import android.os.ShellCallback;
 import android.os.Trace;
 import android.os.UserManager;
+import android.util.EventLog;
 import android.util.Log;
 import android.util.Slog;
 import android.util.TimingsTraceLog;
@@ -56,11 +56,11 @@
 import com.android.car.trust.CarTrustedDeviceService;
 import com.android.car.user.CarUserNoticeService;
 import com.android.car.user.CarUserService;
-import com.android.car.user.UserMetrics;
 import com.android.car.vms.VmsBrokerService;
 import com.android.car.watchdog.CarWatchdogService;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.car.EventLogTags;
 import com.android.internal.car.ICarServiceHelper;
 import com.android.internal.os.IResultReceiver;
 
@@ -123,20 +123,21 @@
 
     private static final String TAG = "ICarImpl";
     private static final String VHAL_TIMING_TAG = "VehicleHalTiming";
+    private static final boolean DBG = true; // TODO(b/154033860): STOPSHIP if true
 
     private TimingsTraceLog mBootTiming;
 
+    private final Object mLock = new Object();
+
     /** Test only service. Populate it only when necessary. */
-    @GuardedBy("this")
+    @GuardedBy("mLock")
     private CarTestService mCarTestService;
 
-    @GuardedBy("this")
+    @GuardedBy("mLock")
     private ICarServiceHelper mICarServiceHelper;
 
     private final String mVehicleInterfaceName;
 
-    private final UserMetrics mUserMetrics = new UserMetrics();
-
     public ICarImpl(Context serviceContext, IVehicle vehicle, SystemInterface systemInterface,
             CanBusErrorNotifier errorNotifier, String vehicleInterfaceName) {
         this(serviceContext, vehicle, systemInterface, errorNotifier, vehicleInterfaceName,
@@ -186,7 +187,7 @@
         mCarOccupantZoneService = new CarOccupantZoneService(serviceContext);
         mSystemActivityMonitoringService = new SystemActivityMonitoringService(serviceContext);
         mCarPowerManagementService = new CarPowerManagementService(mContext, mHal.getPowerHal(),
-                systemInterface, mUserManagerHelper, mCarUserService);
+                systemInterface, mCarUserService);
         if (mFeatureController.isFeatureEnabled(CarFeatures.FEATURE_CAR_USER_NOTICE_SERVICE)) {
             mCarUserNoticeService = new CarUserNoticeService(serviceContext);
         } else {
@@ -334,6 +335,7 @@
     }
 
     void vehicleHalReconnected(IVehicle vehicle) {
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_VHAL_RECONNECTED, mAllServices.length);
         mHal.vehicleHalReconnected(vehicle);
         for (CarServiceBase service : mAllServices) {
             service.vehicleHalReconnected();
@@ -342,31 +344,34 @@
 
     @Override
     public void setCarServiceHelper(IBinder helper) {
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_SET_CAR_SERVICE_HELPER,
+                Binder.getCallingPid());
         assertCallingFromSystemProcess();
-        synchronized (this) {
-            mICarServiceHelper = ICarServiceHelper.Stub.asInterface(helper);
-            mSystemInterface.setCarServiceHelper(mICarServiceHelper);
+        ICarServiceHelper carServiceHelper = ICarServiceHelper.Stub.asInterface(helper);
+        synchronized (mLock) {
+            mICarServiceHelper = carServiceHelper;
         }
+        mSystemInterface.setCarServiceHelper(carServiceHelper);
+        mCarOccupantZoneService.setCarServiceHelper(carServiceHelper);
     }
 
     @Override
     public void onUserLifecycleEvent(int eventType, long timestampMs, int fromUserId,
             int toUserId) {
         assertCallingFromSystemProcess();
-        Log.i(TAG, "onUserLifecycleEvent("
-                + CarUserManager.lifecycleEventTypeToString(eventType) + ", " + toUserId + ")");
-        mCarUserService.onUserLifecycleEvent(new UserLifecycleEvent(eventType, toUserId));
-        if (eventType == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING) {
-            // TODO(b/145689885): CarMediaService should implement UserLifecycleListener,
-            //     eliminiating the need for this check.
-            mCarMediaService.setUserLockStatus(toUserId, /* unlocked= */ true);
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_ON_USER_LIFECYCLE, eventType, fromUserId,
+                toUserId);
+        if (DBG) {
+            Log.d(TAG, "onUserLifecycleEvent("
+                    + CarUserManager.lifecycleEventTypeToString(eventType) + ", " + toUserId + ")");
         }
-        mUserMetrics.onEvent(eventType, timestampMs, fromUserId, toUserId);
+        mCarUserService.onUserLifecycleEvent(eventType, timestampMs, fromUserId, toUserId);
     }
 
     @Override
-    public void onFirstUserUnlocked(int userId, long timestampMs, long duration) {
-        mUserMetrics.logFirstUnlockedUser(userId, timestampMs, duration);
+    public void onFirstUserUnlocked(int userId, long timestampMs, long duration,
+            int halResponseTime) {
+        mCarUserService.onFirstUserUnlocked(userId, timestampMs, duration, halResponseTime);
     }
 
     @Override
@@ -376,6 +381,13 @@
     }
 
     @Override
+    public void setInitialUser(int userId) {
+        EventLog.writeEvent(EventLogTags.CAR_SERVICE_SET_INITIAL_USER, userId);
+        if (DBG) Log.d(TAG, "setInitialUser(): " + userId);
+        mCarUserService.setInitialUser(userId);
+    }
+
+    @Override
     public boolean isFeatureEnabled(String featureName) {
         return mFeatureController.isFeatureEnabled(featureName);
     }
@@ -482,7 +494,7 @@
                 return mVmsBrokerService;
             case Car.TEST_SERVICE: {
                 assertPermission(mContext, Car.PERMISSION_CAR_TEST_SERVICE);
-                synchronized (this) {
+                synchronized (mLock) {
                     if (mCarTestService == null) {
                         mCarTestService = new CarTestService(mContext, this);
                     }
@@ -649,7 +661,6 @@
             writer.println("*Dump car service*");
             dumpAllServices(writer);
             dumpAllHals(writer);
-            mUserMetrics.dump(writer);
         } else if ("--list".equals(args[0])) {
             dumpListOfServices(writer);
             return;
@@ -683,15 +694,13 @@
             mHal.dumpListHals(writer);
             return;
         } else if ("--user-metrics".equals(args[0])) {
-            mUserMetrics.dump(writer);
+            mCarUserService.dumpUserMetrics(writer);
         } else if ("--first-user-metrics".equals(args[0])) {
-            mUserMetrics.dumpFirstUserUnlockDuration(writer);
+            mCarUserService.dumpFirstUserUnlockDuration(writer);
         } else if ("--help".equals(args[0])) {
             showDumpHelp(writer);
-        } else if (Build.IS_USERDEBUG || Build.IS_ENG) {
-            execShellCmd(args, writer);
         } else {
-            writer.println("Commands not supported in " + Build.TYPE);
+            execShellCmd(args, writer);
         }
     }
 
@@ -744,10 +753,10 @@
     }
 
     private CarShellCommand newCarShellCommand() {
-        return new CarShellCommand(mHal, mCarAudioService, mCarPackageManagerService,
+        return new CarShellCommand(mContext, mHal, mCarAudioService, mCarPackageManagerService,
                 mCarProjectionService, mCarPowerManagementService, mCarTrustedDeviceService,
-                mFixedActivityService, mFeatureController, mCarInputService,
-                mCarNightService, mSystemInterface, mGarageModeService);
+                mFixedActivityService, mFeatureController, mCarInputService, mCarNightService,
+                mSystemInterface, mGarageModeService, mCarUserService, mCarOccupantZoneService);
     }
 
     private void dumpListOfServices(PrintWriter writer) {
diff --git a/service/src/com/android/car/OccupantAwarenessService.java b/service/src/com/android/car/OccupantAwarenessService.java
index a2353e0..389fc54 100644
--- a/service/src/com/android/car/OccupantAwarenessService.java
+++ b/service/src/com/android/car/OccupantAwarenessService.java
@@ -402,5 +402,15 @@
                 }
             }
         }
+
+        @Override
+        public int getInterfaceVersion() {
+            return this.VERSION;
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return this.HASH;
+        }
     }
 }
diff --git a/service/src/com/android/car/SystemActivityMonitoringService.java b/service/src/com/android/car/SystemActivityMonitoringService.java
index b2f2863..418dd3b 100644
--- a/service/src/com/android/car/SystemActivityMonitoringService.java
+++ b/service/src/com/android/car/SystemActivityMonitoringService.java
@@ -39,7 +39,10 @@
 import android.util.SparseArray;
 import android.view.Display;
 
+import com.android.internal.annotations.GuardedBy;
+
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.Arrays;
 import java.util.LinkedList;
 import java.util.List;
@@ -103,24 +106,31 @@
     private final ProcessObserver mProcessObserver;
     private final TaskListener mTaskListener;
 
-    private final HandlerThread mMonitorHandlerThread;
-    private final ActivityMonitorHandler mHandler;
+    private final HandlerThread mMonitorHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final ActivityMonitorHandler mHandler = new ActivityMonitorHandler(
+            mMonitorHandlerThread.getLooper(), this);
+
+    private final Object mLock = new Object();
 
     /** K: display id, V: top task */
+    @GuardedBy("mLock")
     private final SparseArray<TopTaskInfoContainer> mTopTasks = new SparseArray<>();
     /** K: uid, V : list of pid */
+    @GuardedBy("mLock")
     private final Map<Integer, Set<Integer>> mForegroundUidPids = new ArrayMap<>();
-    private int mFocusedStackId = INVALID_STACK_ID;
+    @GuardedBy("mLock")
     private ActivityLaunchListener mActivityLaunchListener;
 
     public SystemActivityMonitoringService(Context context) {
         mContext = context;
-        mMonitorHandlerThread = new HandlerThread(CarLog.TAG_AM);
-        mMonitorHandlerThread.start();
-        mHandler = new ActivityMonitorHandler(mMonitorHandlerThread.getLooper());
         mProcessObserver = new ProcessObserver();
         mTaskListener = new TaskListener();
         mAm = ActivityManager.getService();
+    }
+
+    @Override
+    public void init() {
         // Monitoring both listeners are necessary as there are cases where one listener cannot
         // monitor activity change.
         try {
@@ -134,18 +144,20 @@
     }
 
     @Override
-    public void init() {
-    }
-
-    @Override
     public void release() {
+        try {
+            mAm.unregisterProcessObserver(mProcessObserver);
+            mAm.unregisterTaskStackListener(mTaskListener);
+        } catch (RemoteException e) {
+            Log.e(CarLog.TAG_AM, "Failed to unregister listeners", e);
+        }
     }
 
     @Override
     public void dump(PrintWriter writer) {
         writer.println("*SystemActivityMonitoringService*");
         writer.println(" Top Tasks per display:");
-        synchronized (this) {
+        synchronized (mLock) {
             for (int i = 0; i < mTopTasks.size(); i++) {
                 int displayId = mTopTasks.keyAt(i);
                 TopTaskInfoContainer info = mTopTasks.valueAt(i);
@@ -161,7 +173,6 @@
                 }
                 writer.println("uid:" + key + ", pids:" + Arrays.toString(pids.toArray()));
             }
-            writer.println(" focused stack:" + mFocusedStackId);
         }
     }
 
@@ -176,7 +187,7 @@
 
     public List<TopTaskInfoContainer> getTopTasks() {
         LinkedList<TopTaskInfoContainer> tasks = new LinkedList<>();
-        synchronized (this) {
+        synchronized (mLock) {
             for (int i = 0; i < mTopTasks.size(); i++) {
                 TopTaskInfoContainer topTask = mTopTasks.valueAt(i);
                 if (topTask == null) {
@@ -191,7 +202,7 @@
     }
 
     public boolean isInForeground(int pid, int uid) {
-        synchronized (this) {
+        synchronized (mLock) {
             Set<Integer> pids = mForegroundUidPids.get(uid);
             if (pids == null) {
                 return false;
@@ -255,7 +266,7 @@
     }
 
     public void registerActivityLaunchListener(ActivityLaunchListener listener) {
-        synchronized (this) {
+        synchronized (mLock) {
             mActivityLaunchListener = listener;
         }
     }
@@ -288,7 +299,8 @@
 
         SparseArray<TopTaskInfoContainer> topTasks = new SparseArray<>();
         ActivityLaunchListener listener;
-        synchronized (this) {
+        synchronized (mLock) {
+            mTopTasks.clear();
             listener = mActivityLaunchListener;
 
             for (StackInfo info : infos) {
@@ -350,7 +362,7 @@
     }
 
     private void handleForegroundActivitiesChanged(int pid, int uid, boolean foregroundActivities) {
-        synchronized (this) {
+        synchronized (mLock) {
             if (foregroundActivities) {
                 Set<Integer> pids = mForegroundUidPids.get(uid);
                 if (pids == null) {
@@ -365,7 +377,7 @@
     }
 
     private void handleProcessDied(int pid, int uid) {
-        synchronized (this) {
+        synchronized (mLock) {
             doHandlePidGoneLocked(pid, uid);
         }
     }
@@ -455,14 +467,19 @@
         }
     }
 
-    private class ActivityMonitorHandler extends Handler {
+    private static final class ActivityMonitorHandler extends Handler {
+        private  static final String TAG = ActivityMonitorHandler.class.getSimpleName();
+
         private static final int MSG_UPDATE_TASKS = 0;
         private static final int MSG_FOREGROUND_ACTIVITIES_CHANGED = 1;
         private static final int MSG_PROCESS_DIED = 2;
         private static final int MSG_BLOCK_ACTIVITY = 3;
 
-        private ActivityMonitorHandler(Looper looper) {
+        private final WeakReference<SystemActivityMonitoringService> mService;
+
+        private ActivityMonitorHandler(Looper looper, SystemActivityMonitoringService service) {
             super(looper);
+            mService = new WeakReference<SystemActivityMonitoringService>(service);
         }
 
         private void requestUpdatingTask() {
@@ -491,21 +508,27 @@
 
         @Override
         public void handleMessage(Message msg) {
+            SystemActivityMonitoringService service = mService.get();
+            if (service == null) {
+                Log.i(TAG, "handleMessage null service");
+                return;
+            }
             switch (msg.what) {
                 case MSG_UPDATE_TASKS:
-                    updateTasks();
+                    service.updateTasks();
                     break;
                 case MSG_FOREGROUND_ACTIVITIES_CHANGED:
-                    handleForegroundActivitiesChanged(msg.arg1, msg.arg2, (Boolean) msg.obj);
-                    updateTasks();
+                    service.handleForegroundActivitiesChanged(msg.arg1, msg.arg2,
+                            (Boolean) msg.obj);
+                    service.updateTasks();
                     break;
                 case MSG_PROCESS_DIED:
-                    handleProcessDied(msg.arg1, msg.arg2);
+                    service.handleProcessDied(msg.arg1, msg.arg2);
                     break;
                 case MSG_BLOCK_ACTIVITY:
                     Pair<TopTaskInfoContainer, Intent> pair =
                         (Pair<TopTaskInfoContainer, Intent>) msg.obj;
-                    handleBlockActivity(pair.first, pair.second);
+                    service.handleBlockActivity(pair.first, pair.second);
                     break;
             }
         }
diff --git a/service/src/com/android/car/am/FixedActivityService.java b/service/src/com/android/car/am/FixedActivityService.java
index 29e06fc..f381702 100644
--- a/service/src/com/android/car/am/FixedActivityService.java
+++ b/service/src/com/android/car/am/FixedActivityService.java
@@ -230,8 +230,7 @@
         }
     };
 
-    private final HandlerThread mHandlerThread = new HandlerThread(
-            FixedActivityService.class.getSimpleName());
+    private final HandlerThread mHandlerThread;
 
     private final Runnable mActivityCheckRunnable = () -> {
         launchIfNecessary();
@@ -271,7 +270,8 @@
         mAm = ActivityManager.getService();
         mUm = context.getSystemService(UserManager.class);
         mDm = context.getSystemService(DisplayManager.class);
-        mHandlerThread.start();
+        mHandlerThread = CarServiceUtils.getHandlerThread(
+                FixedActivityService.class.getSimpleName());
     }
 
     @Override
diff --git a/service/src/com/android/car/audio/AudioControlWrapper.java b/service/src/com/android/car/audio/AudioControlWrapper.java
deleted file mode 100644
index e23140b..0000000
--- a/service/src/com/android/car/audio/AudioControlWrapper.java
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- * Copyright (C) 2020 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.car.audio;
-
-import android.os.RemoteException;
-import android.util.Log;
-
-import androidx.annotation.Nullable;
-
-import com.android.car.audio.CarAudioContext.AudioContext;
-import com.android.internal.annotations.VisibleForTesting;
-import com.android.internal.util.Preconditions;
-
-import java.util.NoSuchElementException;
-
-/**
- * AudioControlWrapper wraps IAudioControl HAL interface, handling version specific support so that
- * the rest of CarAudioService doesn't need to know about it.
- */
-final class AudioControlWrapper {
-    private static final String TAG = AudioControlWrapper.class.getSimpleName();
-    @Nullable
-    private final android.hardware.automotive.audiocontrol.V1_0.IAudioControl mAudioControlV1;
-    @Nullable
-    private final android.hardware.automotive.audiocontrol.V2_0.IAudioControl mAudioControlV2;
-
-    static AudioControlWrapper newAudioControl() {
-        android.hardware.automotive.audiocontrol.V1_0.IAudioControl audioControlV1 = null;
-        android.hardware.automotive.audiocontrol.V2_0.IAudioControl audioControlV2 = null;
-        try {
-            audioControlV2 = android.hardware.automotive.audiocontrol.V2_0.IAudioControl
-                    .getService(true);
-        } catch (RemoteException e) {
-            throw new IllegalStateException("Failed to get IAudioControl V2 service", e);
-        } catch (NoSuchElementException e) {
-            Log.d(TAG, "IAudioControl@V2.0 not in the manifest");
-        }
-
-        try {
-            audioControlV1 = android.hardware.automotive.audiocontrol.V1_0.IAudioControl
-                    .getService(true);
-        } catch (RemoteException e) {
-            throw new IllegalStateException("Failed to get IAudioControl V1 service", e);
-        } catch (NoSuchElementException e) {
-            Log.d(TAG, "IAudioControl@V1.0 not in the manifest");
-        }
-
-        return new AudioControlWrapper(audioControlV1, audioControlV2);
-    }
-
-    @VisibleForTesting
-    AudioControlWrapper(
-            @Nullable android.hardware.automotive.audiocontrol.V1_0.IAudioControl audioControlV1,
-            @Nullable android.hardware.automotive.audiocontrol.V2_0.IAudioControl audioControlV2) {
-        mAudioControlV1 = audioControlV1;
-        mAudioControlV2 = audioControlV2;
-        checkAudioControl();
-    }
-
-    private void checkAudioControl() {
-        if (mAudioControlV2 != null && mAudioControlV1 != null) {
-            Log.w(TAG, "Both versions of IAudioControl are present, defaulting to V2");
-        } else if (mAudioControlV2 == null && mAudioControlV1 == null) {
-            throw new IllegalStateException("No version of AudioControl HAL in the manifest");
-        } else if (mAudioControlV1 != null) {
-            Log.w(TAG, "IAudioControl@V1.0 is deprecated. Consider upgrading to V2.0");
-        }
-    }
-
-    void setFadeTowardFront(float value) {
-        try {
-            if (mAudioControlV2 != null) {
-                mAudioControlV2.setFadeTowardFront(value);
-            } else {
-                mAudioControlV1.setFadeTowardFront(value);
-            }
-        } catch (RemoteException e) {
-            Log.e(TAG, "setFadeTowardFront failed", e);
-        }
-    }
-
-    void setBalanceTowardRight(float value) {
-        try {
-            if (mAudioControlV2 != null) {
-                mAudioControlV2.setBalanceTowardRight(value);
-            } else {
-                mAudioControlV1.setBalanceTowardRight(value);
-            }
-        } catch (RemoteException e) {
-            Log.e(TAG, "setBalanceTowardRight failed", e);
-        }
-    }
-
-    /**
-     * Gets the bus associated with CarAudioContext
-     *
-     * <p>This API is used along with car_volume_groups.xml to configure volume groups and routing.
-     *
-     * @param audioContext CarAudioContext to get a context for
-     * @return int bus number. Should be part of the prefix for the device's address. For example,
-     * bus001_media would be bus 1.
-     * @deprecated Volume and routing configuration has been replaced by
-     * car_audio_configuration.xml. Starting with IAudioControl@V2.0, getBusForContext is no longer
-     * supported.
-     */
-    @Deprecated
-    int getBusForContext(@AudioContext int audioContext) {
-        Preconditions.checkState(mAudioControlV2 == null,
-                "IAudioControl#getBusForContext no longer supported beyond V1.0");
-
-        try {
-            return mAudioControlV1.getBusForContext(audioContext);
-        } catch (RemoteException e) {
-            Log.e(TAG, "Failed to query IAudioControl HAL to get bus for context", e);
-            throw new IllegalStateException("Failed to query IAudioControl#getBusForContext", e);
-        }
-    }
-}
diff --git a/service/src/com/android/car/audio/CarAudioContext.java b/service/src/com/android/car/audio/CarAudioContext.java
index 206f890..f05157b 100644
--- a/service/src/com/android/car/audio/CarAudioContext.java
+++ b/service/src/com/android/car/audio/CarAudioContext.java
@@ -33,7 +33,7 @@
  * Groupings of {@link AttributeUsage}s to simplify configuration of car audio routing, volume
  * groups, and focus interactions for similar usages.
  */
-final class CarAudioContext {
+public final class CarAudioContext {
     /*
      * Shouldn't be used
      * ::android::hardware::automotive::audiocontrol::V1_0::ContextNumber.INVALID
@@ -264,6 +264,6 @@
             ANNOUNCEMENT
     })
     @Retention(RetentionPolicy.SOURCE)
-    @interface AudioContext {
+    public @interface AudioContext {
     }
 };
diff --git a/service/src/com/android/car/audio/CarAudioFocus.java b/service/src/com/android/car/audio/CarAudioFocus.java
index 0bdc452..203eb4e 100644
--- a/service/src/com/android/car/audio/CarAudioFocus.java
+++ b/service/src/com/android/car/audio/CarAudioFocus.java
@@ -33,7 +33,7 @@
 
     private static final String TAG = "CarAudioFocus";
 
-    private static final int FOCUS_EVENT_LOGGER_QUEUE_SIZE = 100;
+    private static final int FOCUS_EVENT_LOGGER_QUEUE_SIZE = 25;
 
     private final AudioManager mAudioManager;
     private final PackageManager mPackageManager;
@@ -41,6 +41,11 @@
 
     private final LocalLog mFocusEventLogger;
 
+    private final FocusInteraction mFocusInteraction;
+
+    private final boolean mEnabledDelayedFocusRequest;
+    private AudioFocusInfo mDelayedRequest;
+
 
     // We keep track of all the focus requesters in this map, with their clientId as the key.
     // This is used both for focus dispatch and death handling
@@ -59,10 +64,13 @@
     private final Object mLock = new Object();
 
 
-    CarAudioFocus(AudioManager audioManager, PackageManager packageManager) {
+    CarAudioFocus(AudioManager audioManager, PackageManager packageManager,
+            FocusInteraction focusInteraction, boolean enableDelayedFocusRequest) {
         mAudioManager = audioManager;
         mPackageManager = packageManager;
         mFocusEventLogger = new LocalLog(FOCUS_EVENT_LOGGER_QUEUE_SIZE);
+        mFocusInteraction = focusInteraction;
+        mEnabledDelayedFocusRequest = enableDelayedFocusRequest;
     }
 
 
@@ -74,8 +82,8 @@
 
 
     // This sends a focus loss message to the targeted requester.
-    private void sendFocusLossLocked(FocusEntry loser, int lossType) {
-        int result = mAudioManager.dispatchAudioFocusChange(loser.getAudioFocusInfo(), lossType,
+    private void sendFocusLossLocked(AudioFocusInfo loser, int lossType) {
+        int result = mAudioManager.dispatchAudioFocusChange(loser, lossType,
                 mAudioPolicy);
         if (result != AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
             // TODO:  Is this actually an error, or is it okay for an entry in the focus stack
@@ -85,8 +93,8 @@
         }
 
         logFocusEvent("sendFocusLoss for client " + loser.getClientId()
-                        + " with loss type " + focusEventToString(lossType)
-                        + " resulted in " + focusRequestResponseToString(result));
+                + " with loss type " + focusEventToString(lossType)
+                + " resulted in " + focusRequestResponseToString(result));
     }
 
 
@@ -117,6 +125,8 @@
         final boolean allowDucking =
                 (afi.getGainRequest() == AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
 
+        boolean delayFocusForCurrentRequest = false;
+
         final int requestedContext = CarAudioContext.getContextForUsage(
                 afi.getAttributes().getSystemUsage());
 
@@ -126,6 +136,8 @@
         FocusEntry replacedCurrentEntry = null;
         FocusEntry replacedBlockedEntry = null;
 
+        boolean allowDelayedFocus = mEnabledDelayedFocusRequest && canReceiveDelayedFocus(afi);
+
         // Scan all active and pending focus requests.  If any should cause rejection of
         // this new request, then we're done.  Keep a list of those against whom we're exclusive
         // so we can update the relationships if/when we are sure we won't get rejected.
@@ -167,11 +179,15 @@
                 }
             }
 
-            @AudioManager.FocusRequestResult int interactionResult = FocusInteraction
-                    .evaluateRequest(requestedContext, entry, losers, allowDucking);
+            @AudioManager.FocusRequestResult int interactionResult = mFocusInteraction
+                    .evaluateRequest(requestedContext, entry, losers, allowDucking,
+                            allowDelayedFocus);
             if (interactionResult == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
                 return interactionResult;
             }
+            if (interactionResult == AudioManager.AUDIOFOCUS_REQUEST_DELAYED) {
+                delayFocusForCurrentRequest = true;
+            }
         }
         Log.i(TAG, "Scanning those who've already lost focus...");
         final ArrayList<FocusEntry> blocked = new ArrayList<FocusEntry>();
@@ -209,11 +225,15 @@
                 }
             }
 
-            @AudioManager.FocusRequestResult int interactionResult = FocusInteraction
-                    .evaluateRequest(requestedContext, entry, blocked, allowDucking);
+            @AudioManager.FocusRequestResult int interactionResult = mFocusInteraction
+                    .evaluateRequest(requestedContext, entry, blocked, allowDucking,
+                            allowDelayedFocus);
             if (interactionResult == AudioManager.AUDIOFOCUS_REQUEST_FAILED) {
                 return interactionResult;
             }
+            if (interactionResult == AudioManager.AUDIOFOCUS_REQUEST_DELAYED) {
+                delayFocusForCurrentRequest = true;
+            }
         }
 
 
@@ -242,7 +262,7 @@
 
             if (permanent) {
                 // This entry has now lost focus forever
-                sendFocusLossLocked(entry, AudioManager.AUDIOFOCUS_LOSS);
+                sendFocusLossLocked(entry.getAudioFocusInfo(), AudioManager.AUDIOFOCUS_LOSS);
                 entry.setDucked(false);
                 final FocusEntry deadEntry = mFocusLosers.remove(
                         entry.getAudioFocusInfo().getClientId());
@@ -253,7 +273,8 @@
                     // This entry was previously allowed to duck, but can no longer do so.
                     Log.i(TAG, "Converting duckable loss to non-duckable for "
                             + entry.getClientId());
-                    sendFocusLossLocked(entry, AudioManager.AUDIOFOCUS_LOSS_TRANSIENT);
+                    sendFocusLossLocked(entry.getAudioFocusInfo(),
+                            AudioManager.AUDIOFOCUS_LOSS_TRANSIENT);
                     entry.setDucked(false);
                 }
                 // Note that this new request is yet one more reason we can't (yet) have focus
@@ -275,7 +296,7 @@
             } else {
                 lossType = AudioManager.AUDIOFOCUS_LOSS_TRANSIENT;
             }
-            sendFocusLossLocked(entry, lossType);
+            sendFocusLossLocked(entry.getAudioFocusInfo(), lossType);
 
             // The entry no longer holds focus, so take it out of the holders list
             mFocusHolders.remove(entry.getAudioFocusInfo().getClientId());
@@ -301,6 +322,11 @@
         }
 
         // Finally, add the request we're granting to the focus holders' list
+        if (delayFocusForCurrentRequest) {
+            swapDelayedAudioFocusRequestLocked(afi);
+            return AudioManager.AUDIOFOCUS_REQUEST_DELAYED;
+        }
+
         mFocusHolders.put(afi.getClientId(), newEntry);
 
         Log.i(TAG, "AUDIOFOCUS_REQUEST_GRANTED");
@@ -311,10 +337,12 @@
     public void onAudioFocusRequest(AudioFocusInfo afi, int requestResult) {
         int response;
         AudioPolicy policy;
+        AudioFocusInfo replacedDelayedAudioFocusInfo = null;
         synchronized (mLock) {
             policy = mAudioPolicy;
             response = evaluateFocusRequestLocked(afi);
         }
+
         // Post our reply for delivery to the original focus requester
         mAudioManager.setFocusRequestResult(afi, response, policy);
         logFocusEvent("onAudioFocusRequest for client " + afi.getClientId()
@@ -322,6 +350,25 @@
                 + " resulted in " + focusRequestResponseToString(response));
     }
 
+    private void swapDelayedAudioFocusRequestLocked(AudioFocusInfo afi) {
+        if (mDelayedRequest == afi) {
+            return;
+        }
+        if (mDelayedRequest != null) {
+            sendFocusLossLocked(mDelayedRequest, AudioManager.AUDIOFOCUS_LOSS);
+        }
+        mDelayedRequest = afi;
+        logFocusEvent("swapDelayedAudioFocusRequest for client " + afi.getClientId()
+                + " with gain request " + focusEventToString(afi.getGainRequest()));
+    }
+
+    private boolean canReceiveDelayedFocus(AudioFocusInfo afi) {
+        if (afi.getGainRequest() != AudioManager.AUDIOFOCUS_GAIN) {
+            return false;
+        }
+        return (afi.getFlags() & AudioManager.AUDIOFOCUS_FLAG_DELAY_OK)
+            == AudioManager.AUDIOFOCUS_FLAG_DELAY_OK;
+    }
 
     /**
      * @see AudioManager#abandonAudioFocus(AudioManager.OnAudioFocusChangeListener, AudioAttributes)
@@ -336,10 +383,18 @@
 
             if (deadEntry != null) {
                 removeBlockerAndRestoreUnblockedWaitersLocked(deadEntry);
+            } else {
+                removeDelayedAudioFocusRequestLocked(afi);
             }
         }
     }
 
+    private void removeDelayedAudioFocusRequestLocked(AudioFocusInfo afi) {
+        if (mDelayedRequest != null && mDelayedRequest.equals(afi)) {
+            mDelayedRequest = null;
+        }
+    }
+
     /**
      * Remove Focus entry from focus holder or losers entry lists
      * @param afi Audio Focus Info to remove
@@ -370,6 +425,13 @@
     }
 
     private void removeBlockerAndRestoreUnblockedWaitersLocked(FocusEntry deadEntry) {
+        if (mEnabledDelayedFocusRequest && mDelayedRequest != null) {
+            int delayedFocusRequestResults = evaluateFocusRequestLocked(mDelayedRequest);
+            if (delayedFocusRequestResults == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
+                dispatchFocusGainedLocked(mDelayedRequest);
+                mDelayedRequest = null;
+            }
+        }
         // Remove this entry from the blocking list of any pending requests
         Iterator<FocusEntry> it = mFocusLosers.values().iterator();
         while (it.hasNext()) {
@@ -463,7 +525,8 @@
         synchronized (mLock) {
             FocusEntry deadEntry = removeFocusEntryLocked(afi);
             if (deadEntry != null) {
-                sendFocusLossLocked(deadEntry, AudioManager.AUDIOFOCUS_LOSS_TRANSIENT);
+                sendFocusLossLocked(deadEntry.getAudioFocusInfo(),
+                        AudioManager.AUDIOFOCUS_LOSS_TRANSIENT);
                 removeBlockerAndRestoreUnblockedWaitersLocked(deadEntry);
             }
         }
@@ -494,20 +557,23 @@
     public void dump(String indent, PrintWriter writer) {
         synchronized (mLock) {
             writer.printf("%s*CarAudioFocus*\n", indent);
-
             String innerIndent = indent + "\t";
+            String focusIndent = innerIndent + "\t";
+            mFocusInteraction.dump(innerIndent, writer);
+
             writer.printf("%sCurrent Focus Holders:\n", innerIndent);
             for (String clientId : mFocusHolders.keySet()) {
-                writer.printf("%s\t%s - %s\n", innerIndent, clientId,
-                        mFocusHolders.get(clientId).getUsageName());
+                mFocusHolders.get(clientId).dump(focusIndent, writer);
             }
 
             writer.printf("%sTransient Focus Losers:\n", innerIndent);
             for (String clientId : mFocusLosers.keySet()) {
-                writer.printf("%s\t%s - %s\n", innerIndent, clientId,
-                        mFocusLosers.get(clientId).getUsageName());
+                mFocusLosers.get(clientId).dump(focusIndent, writer);
             }
 
+            writer.printf("%sQueued Delayed Focus: %s\n", innerIndent,
+                    mDelayedRequest == null ? "None" : mDelayedRequest.getClientId());
+
             writer.printf("%sFocus Events:\n", innerIndent);
             mFocusEventLogger.dump(innerIndent + "\t", writer);
         }
@@ -547,4 +613,11 @@
         mFocusEventLogger.log(log);
         Log.i(TAG, log);
     }
+
+    /**
+     * Returns the focus interaction for this car focus instance.
+     */
+    public FocusInteraction getFocusInteraction() {
+        return mFocusInteraction;
+    }
 }
diff --git a/service/src/com/android/car/audio/CarAudioService.java b/service/src/com/android/car/audio/CarAudioService.java
index 5733f6d..c880709 100644
--- a/service/src/com/android/car/audio/CarAudioService.java
+++ b/service/src/com/android/car/audio/CarAudioService.java
@@ -15,6 +15,8 @@
  */
 package com.android.car.audio;
 
+import static android.car.media.CarAudioManager.INVALID_VOLUME_GROUP_ID;
+
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
@@ -49,6 +51,7 @@
 import android.os.IBinder;
 import android.os.Looper;
 import android.os.UserHandle;
+import android.telephony.Annotation.CallState;
 import android.telephony.TelephonyManager;
 import android.text.TextUtils;
 import android.util.Log;
@@ -62,6 +65,10 @@
 import com.android.car.CarServiceBase;
 import com.android.car.R;
 import com.android.car.audio.CarAudioContext.AudioContext;
+import com.android.car.audio.hal.AudioControlFactory;
+import com.android.car.audio.hal.AudioControlWrapper;
+import com.android.car.audio.hal.AudioControlWrapperV1;
+import com.android.car.audio.hal.HalAudioFocus;
 import com.android.internal.util.Preconditions;
 
 import org.xmlpull.v1.XmlPullParserException;
@@ -91,6 +98,9 @@
     // Search for "DUCK_VSHAPE" in PLaybackActivityMonitor.java to see where this happens.
     private static boolean sUseCarAudioFocus = true;
 
+    // Enable to allowed for delayed audio focus in car audio service.
+    private static final boolean ENABLE_DELAYED_AUDIO_FOCUS = true;
+
     static final @AttributeUsage int DEFAULT_AUDIO_USAGE = AudioAttributes.USAGE_MEDIA;
     static final @AudioContext int DEFAULT_AUDIO_CONTEXT = CarAudioContext.getContextForUsage(
             CarAudioService.DEFAULT_AUDIO_USAGE);
@@ -118,8 +128,9 @@
     private final AudioManager mAudioManager;
     private final boolean mUseDynamicRouting;
     private final boolean mPersistMasterMuteState;
-    private final CarVolumeSettings mCarVolumeSettings;
+    private final CarAudioSettings mCarAudioSettings;
     private AudioControlWrapper mAudioControlWrapper;
+    private HalAudioFocus mHalAudioFocus;
 
     private CarOccupantZoneService mOccupantZoneService;
 
@@ -129,13 +140,21 @@
             new AudioPolicy.AudioPolicyVolumeCallback() {
         @Override
         public void onVolumeAdjustment(int adjustment) {
-            final int usage = getSuggestedAudioUsage();
-            Log.v(CarLog.TAG_AUDIO,
-                    "onVolumeAdjustment: " + AudioManager.adjustToString(adjustment)
-                            + " suggested usage: " + AudioAttributes.usageToString(usage));
-            // TODO: Pass zone id into this callback.
-            final int zoneId = CarAudioManager.PRIMARY_AUDIO_ZONE;
-            final int groupId = getVolumeGroupIdForUsage(zoneId, usage);
+            int zoneId = CarAudioManager.PRIMARY_AUDIO_ZONE;
+            @AudioContext int suggestedContext = getSuggestedAudioContext();
+
+            int groupId;
+            synchronized (mImplLock) {
+                groupId = getVolumeGroupIdForAudioContextLocked(zoneId, suggestedContext);
+            }
+
+            if (Log.isLoggable(CarLog.TAG_AUDIO, Log.VERBOSE)) {
+                Log.v(CarLog.TAG_AUDIO, "onVolumeAdjustment: "
+                        + AudioManager.adjustToString(adjustment) + " suggested audio context: "
+                        + CarAudioContext.toString(suggestedContext) + " suggested volume group: "
+                        + groupId);
+            }
+
             final int currentVolume = getGroupVolume(zoneId, groupId);
             final int flags = AudioManager.FLAG_FROM_KEY | AudioManager.FLAG_SHOW_UI;
             switch (adjustment) {
@@ -215,7 +234,7 @@
                 R.bool.audioPersistMasterMuteState);
         mUidToZoneMap = new HashMap<>();
         mCarVolumeCallbackHandler = new CarVolumeCallbackHandler();
-        mCarVolumeSettings = new CarVolumeSettings(mContext);
+        mCarAudioSettings = new CarAudioSettings(mContext.getContentResolver());
         mAudioZoneIdToUserIdMapping = new SparseIntArray();
     }
 
@@ -231,6 +250,7 @@
             mOccupantZoneManager = new CarOccupantZoneManager(car, mOccupantZoneService);
             if (mUseDynamicRouting) {
                 setupDynamicRoutingLocked();
+                setupHalAudioFocusListenerLocked();
             } else {
                 Log.i(CarLog.TAG_AUDIO, "Audio dynamic routing not enabled, run in legacy mode");
                 setupLegacyVolumeChangedListener();
@@ -238,7 +258,7 @@
 
             // Restore master mute state if applicable
             if (mPersistMasterMuteState) {
-                boolean storedMasterMute = mCarVolumeSettings.getMasterMute();
+                boolean storedMasterMute = mCarAudioSettings.getMasterMute();
                 setMasterMute(storedMasterMute, 0);
             }
 
@@ -261,6 +281,15 @@
             }
 
             mCarVolumeCallbackHandler.release();
+
+            if (mHalAudioFocus != null) {
+                mHalAudioFocus.unregisterFocusListener();
+            }
+
+            if (mAudioControlWrapper != null) {
+                mAudioControlWrapper.unlinkToDeath();
+                mAudioControlWrapper = null;
+            }
         }
     }
 
@@ -293,9 +322,19 @@
                         callingId,
                         mUidToZoneMap.get(callingId));
             }
-            //Print focus handler info
+
             writer.println();
             mFocusHandler.dump("\t", writer);
+
+            writer.println();
+            getAudioControlWrapperLocked().dump("\t", writer);
+
+            if (mHalAudioFocus != null) {
+                writer.println();
+                mHalAudioFocus.dump("\t", writer);
+            } else {
+                writer.println("\tNo HalAudioFocus instance\n");
+            }
         }
 
     }
@@ -345,7 +384,7 @@
 
         // Persists master mute state if applicable
         if (mPersistMasterMuteState) {
-            mCarVolumeSettings.storeMasterMute(mAudioManager.isMasterMute());
+            mCarAudioSettings.storeMasterMute(mAudioManager.isMasterMute());
         }
     }
 
@@ -439,8 +478,8 @@
             List<CarAudioDeviceInfo> carAudioDeviceInfos) {
         AudioDeviceInfo[] inputDevices = getAllInputDevices();
         try (InputStream inputStream = new FileInputStream(mCarAudioConfigurationPath)) {
-            CarAudioZonesHelper zonesHelper = new CarAudioZonesHelper(mContext, inputStream,
-                    carAudioDeviceInfos, inputDevices);
+            CarAudioZonesHelper zonesHelper = new CarAudioZonesHelper(mCarAudioSettings,
+                    inputStream, carAudioDeviceInfos, inputDevices);
             mAudioZoneIdToOccupantZoneIdMapping =
                     zonesHelper.getCarAudioZoneIdToOccupantZoneIdMapping();
             return zonesHelper.loadAudioZones();
@@ -452,8 +491,14 @@
     private CarAudioZone[] loadVolumeGroupConfigurationWithAudioControlLocked(
             List<CarAudioDeviceInfo> carAudioDeviceInfos) {
         AudioControlWrapper audioControlWrapper = getAudioControlWrapperLocked();
+        if (!(audioControlWrapper instanceof AudioControlWrapperV1)) {
+            throw new IllegalStateException(
+                    "Updated version of IAudioControl no longer supports CarAudioZonesHelperLegacy."
+                    + " Please provide car_audio_configuration.xml.");
+        }
         CarAudioZonesHelperLegacy legacyHelper = new CarAudioZonesHelperLegacy(mContext,
-                R.xml.car_volume_groups, carAudioDeviceInfos, audioControlWrapper);
+                R.xml.car_volume_groups, carAudioDeviceInfos,
+                (AudioControlWrapperV1) audioControlWrapper, mCarAudioSettings);
         return legacyHelper.loadAudioZones();
     }
 
@@ -496,7 +541,8 @@
             // the framework ducking logic.
             mFocusHandler = new CarZonesAudioFocus(mAudioManager,
                     mContext.getPackageManager(),
-                    mCarAudioZones);
+                    mCarAudioZones,
+                    mCarAudioSettings, ENABLE_DELAYED_AUDIO_FOCUS);
             builder.setAudioPolicyFocusListener(mFocusHandler);
             builder.setIsAudioFocusPolicy(true);
         }
@@ -530,6 +576,17 @@
         occupantZoneManager.registerOccupantZoneConfigChangeListener(listener);
     }
 
+    private void setupHalAudioFocusListenerLocked() {
+        AudioControlWrapper audioControlWrapper = getAudioControlWrapperLocked();
+        if (!audioControlWrapper.supportsHalAudioFocus()) {
+            Log.d(CarLog.TAG_AUDIO, "HalAudioFocus is not supported on this device");
+            return;
+        }
+
+        mHalAudioFocus = new HalAudioFocus(mAudioManager, mAudioControlWrapper, getAudioZoneIds());
+        mHalAudioFocus.registerFocusListener();
+    }
+
     /**
      * Read from {@link #AUDIO_CONFIGURATION_PATHS} respectively.
      * @return File path of the first hit in {@link #AUDIO_CONFIGURATION_PATHS}
@@ -729,22 +786,38 @@
     public int getVolumeGroupIdForUsage(int zoneId, @AudioAttributes.AttributeUsage int usage) {
         synchronized (mImplLock) {
             enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
-            Preconditions.checkArgumentInRange(zoneId, 0, mCarAudioZones.length - 1,
-                    "zoneId out of range: " + zoneId);
 
-            CarVolumeGroup[] groups = mCarAudioZones[zoneId].getVolumeGroups();
-            for (int i = 0; i < groups.length; i++) {
-                int[] contexts = groups[i].getContexts();
-                for (int context : contexts) {
-                    if (CarAudioContext.getContextForUsage(usage) == context) {
+            if (!mUseDynamicRouting) {
+                for (int i = 0; i < CarAudioDynamicRouting.STREAM_TYPE_USAGES.length; i++) {
+                    if (usage == CarAudioDynamicRouting.STREAM_TYPE_USAGES[i]) {
                         return i;
                     }
                 }
+
+                return INVALID_VOLUME_GROUP_ID;
             }
-            return -1;
+
+            Preconditions.checkArgumentInRange(zoneId, 0, mCarAudioZones.length - 1,
+                    "zoneId out of range: " + zoneId);
+
+            @AudioContext int audioContext = CarAudioContext.getContextForUsage(usage);
+            return getVolumeGroupIdForAudioContextLocked(zoneId, audioContext);
         }
     }
 
+    private int getVolumeGroupIdForAudioContextLocked(int zoneId, @AudioContext int audioContext) {
+        CarVolumeGroup[] groups = mCarAudioZones[zoneId].getVolumeGroups();
+        for (int i = 0; i < groups.length; i++) {
+            int[] groupAudioContexts = groups[i].getContexts();
+            for (int groupAudioContext : groupAudioContexts) {
+                if (audioContext == groupAudioContext) {
+                    return i;
+                }
+            }
+        }
+        return INVALID_VOLUME_GROUP_ID;
+    }
+
     @Override
     public @NonNull int[] getUsagesForVolumeGroupId(int zoneId, int groupId) {
         synchronized (mImplLock) {
@@ -777,6 +850,7 @@
     @Override
     public @NonNull int[] getAudioZoneIds() {
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
         synchronized (mImplLock) {
             return Arrays.stream(mCarAudioZones).mapToInt(CarAudioZone::getId).toArray();
         }
@@ -794,6 +868,7 @@
     @Override
     public int getZoneIdForUid(int uid) {
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
         synchronized (mImplLock) {
             if (mUidToZoneMap.containsKey(uid)) {
                 return mUidToZoneMap.get(uid);
@@ -826,6 +901,9 @@
     @Override
     public boolean setZoneIdForUid(int zoneId, int uid) {
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
+        Preconditions.checkArgument(isAudioZoneIdValid(zoneId),
+                "Invalid audio zone id %d", zoneId);
         synchronized (mImplLock) {
             Log.i(CarLog.TAG_AUDIO, "setZoneIdForUid Calling uid "
                     + uid + " mapped to : "
@@ -881,6 +959,7 @@
     public String getOutputDeviceAddressForUsage(int zoneId,
             @AudioAttributes.AttributeUsage int usage) {
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
         Preconditions.checkArgumentInRange(zoneId, 0, mCarAudioZones.length - 1,
                 "zoneId (" + zoneId + ")");
         int contextForUsage = CarAudioContext.getContextForUsage(usage);
@@ -916,6 +995,7 @@
     @Override
     public boolean clearZoneIdForUid(int uid) {
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
         synchronized (mImplLock) {
             return checkAndRemoveUidLocked(uid);
         }
@@ -975,6 +1055,7 @@
     @Override
     public int getZoneIdForDisplayPortId(byte displayPortId) {
         enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
         synchronized (mImplLock) {
             for (int index = 0; index < mCarAudioZones.length; index++) {
                 CarAudioZone zone = mCarAudioZones[index];
@@ -1006,6 +1087,20 @@
         }
     }
 
+    @Override
+    public @NonNull List<AudioDeviceAttributes> getInputDevicesForZoneId(int zoneId) {
+        enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+        requireDynamicRouting();
+        Preconditions.checkArgumentInRange(zoneId, 0, mCarAudioZones.length - 1,
+                "zoneId out of range: " + zoneId);
+        for (CarAudioZone zone : mCarAudioZones) {
+            if (zone.getId() == zoneId) {
+                return zone.getInputAudioDevices();
+            }
+        }
+        throw new IllegalArgumentException("zoneId does not exist" + zoneId);
+    }
+
     private void enforcePermission(String permissionName) {
         if (mContext.checkCallingOrSelfPermission(permissionName)
                 != PackageManager.PERMISSION_GRANTED) {
@@ -1013,6 +1108,10 @@
         }
     }
 
+    private void requireDynamicRouting() {
+        Preconditions.checkState(mUseDynamicRouting, "Dynamic routing is required");
+    }
+
     /**
      * @return {@link AudioDevicePort} that handles the given car audio usage.
      * Multiple usages may share one {@link AudioDevicePort}
@@ -1027,44 +1126,11 @@
         return group.getAudioDevicePortForContext(CarAudioContext.getContextForUsage(usage));
     }
 
-    /**
-     * @return The suggested {@link AudioAttributes} usage to which the volume key events apply
-     */
-    private @AudioAttributes.AttributeUsage int getSuggestedAudioUsage() {
-        int callState = mTelephonyManager.getCallState();
-        if (callState == TelephonyManager.CALL_STATE_RINGING) {
-            return AudioAttributes.USAGE_NOTIFICATION_RINGTONE;
-        } else if (callState == TelephonyManager.CALL_STATE_OFFHOOK) {
-            return AudioAttributes.USAGE_VOICE_COMMUNICATION;
-        } else {
-            List<AudioPlaybackConfiguration> playbacks = mAudioManager
-                    .getActivePlaybackConfigurations()
-                    .stream()
-                    .filter(AudioPlaybackConfiguration::isActive)
-                    .collect(Collectors.toList());
-            if (!playbacks.isEmpty()) {
-                // Get audio usage from active playbacks if there is any, last one if multiple
-                return playbacks.get(playbacks.size() - 1).getAudioAttributes().getSystemUsage();
-            } else {
-                // TODO(b/72695246): Otherwise, get audio usage from foreground activity/window
-                return DEFAULT_AUDIO_USAGE;
-            }
-        }
-    }
-
-    /**
-     * Gets the input devices for zone zoneId
-     */
-    public @NonNull List<AudioDeviceAttributes> getInputDevicesForZoneId(int zoneId) {
-        enforcePermission(Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
-        Preconditions.checkArgumentInRange(zoneId, 0, mCarAudioZones.length - 1,
-                "zoneId out of range: " + zoneId);
-        for (CarAudioZone zone : mCarAudioZones) {
-            if (zone.getId() == zoneId) {
-                return zone.getInputAudioDevices();
-            }
-        }
-        throw new IllegalArgumentException("zoneId does not exist" + zoneId);
+    private @AudioContext int getSuggestedAudioContext() {
+        @CallState int callState = mTelephonyManager.getCallState();
+        List<AudioPlaybackConfiguration> configurations =
+                mAudioManager.getActivePlaybackConfigurations();
+        return CarVolume.getSuggestedAudioContext(configurations, callState);
     }
 
     /**
@@ -1073,7 +1139,7 @@
      * @return volume group id mapped from stream type
      */
     private int getVolumeGroupIdForStreamType(int streamType) {
-        int groupId = -1;
+        int groupId = INVALID_VOLUME_GROUP_ID;
         for (int i = 0; i < CarAudioDynamicRouting.STREAM_TYPES.length; i++) {
             if (streamType == CarAudioDynamicRouting.STREAM_TYPES[i]) {
                 groupId = i;
@@ -1084,19 +1150,39 @@
     }
 
     private void handleOccupantZoneUserChanged() {
+        int driverUserId = mOccupantZoneService.getDriverUserId();
         synchronized (mImplLock) {
+            if (!isOccupantZoneMappingAvailable()) {
+                //No occupant zone to audio zone mapping, re-adjust to settings driver.
+                for (int index = 0; index < mCarAudioZones.length; index++) {
+                    CarAudioZone zone = mCarAudioZones[index];
+                    zone.updateVolumeGroupsForUser(driverUserId);
+                    mFocusHandler.updateUserForZoneId(zone.getId(), driverUserId);
+                }
+                return;
+            }
             for (int index = 0; index < mAudioZoneIdToOccupantZoneIdMapping.size(); index++) {
                 int audioZoneId = mAudioZoneIdToOccupantZoneIdMapping.keyAt(index);
                 int occupantZoneId = mAudioZoneIdToOccupantZoneIdMapping.get(audioZoneId);
-                updateUserForOccupantZoneLocked(occupantZoneId, audioZoneId);
+                updateUserForOccupantZoneLocked(occupantZoneId, audioZoneId, driverUserId);
             }
         }
     }
 
-    private void updateUserForOccupantZoneLocked(int occupantZoneId, int audioZoneId) {
+    private boolean isOccupantZoneMappingAvailable() {
+        return mAudioZoneIdToOccupantZoneIdMapping.size() > 0;
+    }
+
+    private void updateUserForOccupantZoneLocked(int occupantZoneId, int audioZoneId,
+            @UserIdInt int driverUserId) {
+        CarAudioZone zone = getAudioZoneForZoneIdLocked(audioZoneId);
         int userId = mOccupantZoneService.getUserForOccupant(occupantZoneId);
         int prevUserId = getUserIdForZoneLocked(audioZoneId);
 
+        Objects.requireNonNull(zone, () ->
+                "setUserIdDeviceAffinity for userId " + userId
+                        + " in zone " + audioZoneId + " Failed, invalid zone.");
+
         // user in occupant zone has not changed
         if (userId == prevUserId) {
             return;
@@ -1107,22 +1193,28 @@
         removeUserIdDeviceAffinitiesLocked(prevUserId);
 
         if (userId == UserHandle.USER_NULL) {
+            // Reset zone back to driver user id
+            resetZoneToDefaultUser(zone, driverUserId);
             return;
         }
-        CarAudioZone zone = getAudioZoneForZoneIdLocked(audioZoneId);
-        if (zone != null
-                && !mAudioPolicy.setUserIdDeviceAffinity(userId, zone.getAudioDeviceInfos())) {
+        if (!mAudioPolicy.setUserIdDeviceAffinity(userId, zone.getAudioDeviceInfos())) {
             throw new IllegalStateException(String.format(
                     "setUserIdDeviceAffinity for userId %d in zone %d Failed,"
                             + " could not set audio routing.",
                     userId, audioZoneId));
-        } else if (zone == null) {
-            throw new IllegalStateException(String.format(
-                    "setUserIdDeviceAffinity for userId %d in zone %d Failed, invalid zone.",
-                    userId, audioZoneId));
         }
         mAudioZoneIdToUserIdMapping.put(audioZoneId, userId);
         zone.updateVolumeGroupsForUser(userId);
+        mFocusHandler.updateUserForZoneId(audioZoneId, userId);
+    }
+
+    private void resetZoneToDefaultUser(CarAudioZone zone, @UserIdInt int driverUserId) {
+        resetCarZonesAudioFocus(zone.getId(), driverUserId);
+        zone.updateVolumeGroupsForUser(driverUserId);
+    }
+
+    private void resetCarZonesAudioFocus(int audioZoneId, @UserIdInt int driverUserId) {
+        mFocusHandler.updateUserForZoneId(audioZoneId, driverUserId);
     }
 
     private CarAudioZone getAudioZoneForZoneIdLocked(int audioZoneId) {
@@ -1154,11 +1246,19 @@
 
     private AudioControlWrapper getAudioControlWrapperLocked() {
         if (mAudioControlWrapper == null) {
-            mAudioControlWrapper = AudioControlWrapper.newAudioControl();
+            mAudioControlWrapper = AudioControlFactory.newAudioControl();
+            mAudioControlWrapper.linkToDeath(this::resetHalAudioFocus);
         }
         return mAudioControlWrapper;
     }
 
+    private void resetHalAudioFocus() {
+        if (mHalAudioFocus != null) {
+            mHalAudioFocus.reset();
+            mHalAudioFocus.registerFocusListener();
+        }
+    }
+
     boolean isAudioZoneIdValid(int zoneId) {
         for (CarAudioZone zone : mCarAudioZones) {
             if (zone.getId() == zoneId) {
diff --git a/service/src/com/android/car/audio/CarVolumeSettings.java b/service/src/com/android/car/audio/CarAudioSettings.java
similarity index 75%
rename from service/src/com/android/car/audio/CarVolumeSettings.java
rename to service/src/com/android/car/audio/CarAudioSettings.java
index 8b08997..ef2d5a2 100644
--- a/service/src/com/android/car/audio/CarVolumeSettings.java
+++ b/service/src/com/android/car/audio/CarAudioSettings.java
@@ -15,14 +15,19 @@
  */
 package com.android.car.audio;
 
+import android.annotation.UserIdInt;
+import android.car.settings.CarSettings;
 import android.content.ContentResolver;
-import android.content.Context;
 import android.provider.Settings;
 
+import androidx.annotation.NonNull;
+
+import java.util.Objects;
+
 /**
  * Use to save/load car volume settings
  */
-public class CarVolumeSettings {
+public class CarAudioSettings {
 
     // The trailing slash forms a directory-liked hierarchy and
     // allows listening for both GROUP/MEDIA and GROUP/NAVIGATION.
@@ -45,8 +50,8 @@
 
     private final ContentResolver mContentResolver;
 
-    CarVolumeSettings(Context context) {
-        mContentResolver = context.getContentResolver();
+    CarAudioSettings(@NonNull ContentResolver contentResolver) {
+        mContentResolver = Objects.requireNonNull(contentResolver);
     }
 
     int getStoredVolumeGainIndexForUser(int userId, int zoneId, int id) {
@@ -70,4 +75,17 @@
         return Settings.Global.getInt(mContentResolver,
                 VOLUME_SETTINGS_KEY_MASTER_MUTE, 0) != 0;
     }
+
+    /**
+     * Determines if for a given userId the reject navigation on call setting is enabled
+     */
+    public boolean isRejectNavigationOnCallEnabledInSettings(@UserIdInt int userId) {
+        return Settings.Secure.getIntForUser(mContentResolver,
+                CarSettings.Secure.KEY_AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL,
+                /*disabled by default*/ 0, userId) == 1;
+    }
+
+    public ContentResolver getContentResolver() {
+        return mContentResolver;
+    }
 }
diff --git a/service/src/com/android/car/audio/CarAudioZonesHelper.java b/service/src/com/android/car/audio/CarAudioZonesHelper.java
index f8e695d..3ff25e9 100644
--- a/service/src/com/android/car/audio/CarAudioZonesHelper.java
+++ b/service/src/com/android/car/audio/CarAudioZonesHelper.java
@@ -17,7 +17,6 @@
 
 import android.annotation.NonNull;
 import android.car.media.CarAudioManager;
-import android.content.Context;
 import android.media.AudioDeviceAttributes;
 import android.media.AudioDeviceInfo;
 import android.text.TextUtils;
@@ -129,7 +128,7 @@
         }
     }
 
-    private final Context mContext;
+    private final CarAudioSettings mCarAudioSettings;
     private final Map<String, CarAudioDeviceInfo> mAddressToCarAudioDeviceInfo;
     private final Map<String, AudioDeviceInfo> mAddressToInputAudioDeviceInfo;
     private final InputStream mInputStream;
@@ -146,11 +145,14 @@
      * <p><b>Note: <b/> CarAudioZonesHelper is expected to be used from a single thread. This
      * should be the same thread that originally called new CarAudioZonesHelper.
      */
-    CarAudioZonesHelper(Context context, @NonNull InputStream inputStream,
+    CarAudioZonesHelper(@NonNull CarAudioSettings carAudioSettings,
+            @NonNull InputStream inputStream,
             @NonNull List<CarAudioDeviceInfo> carAudioDeviceInfos,
             @NonNull AudioDeviceInfo[] inputDeviceInfo) {
-        mContext = context;
-        mInputStream = inputStream;
+        mCarAudioSettings = Objects.requireNonNull(carAudioSettings);
+        mInputStream = Objects.requireNonNull(inputStream);
+        Objects.requireNonNull(carAudioDeviceInfos);
+        Objects.requireNonNull(inputDeviceInfo);
         mAddressToCarAudioDeviceInfo = CarAudioZonesHelper.generateAddressToInfoMap(
                 carAudioDeviceInfos);
         mAddressToInputAudioDeviceInfo =
@@ -424,8 +426,7 @@
 
     private CarVolumeGroup parseVolumeGroup(XmlPullParser parser, int zoneId, int groupId)
             throws XmlPullParserException, IOException {
-        final CarVolumeSettings settings = new CarVolumeSettings(mContext);
-        final CarVolumeGroup group = new CarVolumeGroup(settings, zoneId, groupId);
+        CarVolumeGroup group = new CarVolumeGroup(mCarAudioSettings, zoneId, groupId);
         while (parser.next() != XmlPullParser.END_TAG) {
             if (parser.getEventType() != XmlPullParser.START_TAG) continue;
             if (TAG_AUDIO_DEVICE.equals(parser.getName())) {
diff --git a/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java b/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java
index 23c11bf..1b447f3 100644
--- a/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java
+++ b/service/src/com/android/car/audio/CarAudioZonesHelperLegacy.java
@@ -31,12 +31,14 @@
 
 import com.android.car.CarLog;
 import com.android.car.R;
+import com.android.car.audio.hal.AudioControlWrapperV1;
 
 import org.xmlpull.v1.XmlPullParserException;
 
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * A helper class loads volume groups from car_volume_groups.xml configuration into one zone.
@@ -55,15 +57,23 @@
     private final @XmlRes int mXmlConfiguration;
     private final SparseIntArray mLegacyAudioContextToBus;
     private final SparseArray<CarAudioDeviceInfo> mBusToCarAudioDeviceInfo;
+    private final CarAudioSettings mCarAudioSettings;
 
-    CarAudioZonesHelperLegacy(Context context, @XmlRes int xmlConfiguration,
+    CarAudioZonesHelperLegacy(@NonNull  Context context, @XmlRes int xmlConfiguration,
             @NonNull List<CarAudioDeviceInfo> carAudioDeviceInfos,
-            @NonNull AudioControlWrapper audioControlWrapper) {
+            @NonNull AudioControlWrapperV1 audioControlWrapper,
+            @NonNull CarAudioSettings carAudioSettings) {
+        Objects.requireNonNull(context);
+        Objects.requireNonNull(carAudioDeviceInfos);
+        Objects.requireNonNull(audioControlWrapper);
+        mCarAudioSettings = Objects.requireNonNull(carAudioSettings);
         mContext = context;
         mXmlConfiguration = xmlConfiguration;
-        mBusToCarAudioDeviceInfo = generateBusToCarAudioDeviceInfo(carAudioDeviceInfos);
+        mBusToCarAudioDeviceInfo =
+                generateBusToCarAudioDeviceInfo(carAudioDeviceInfos);
 
-        mLegacyAudioContextToBus = loadBusesForLegacyContexts(audioControlWrapper);
+        mLegacyAudioContextToBus =
+                loadBusesForLegacyContexts(audioControlWrapper);
     }
 
     /* Loads mapping from {@link CarAudioContext} values to bus numbers
@@ -76,7 +86,7 @@
      * @return SparseIntArray mapping from {@link CarAudioContext} to bus number.
      */
     private static SparseIntArray loadBusesForLegacyContexts(
-            @NonNull AudioControlWrapper audioControlWrapper) {
+            @NonNull AudioControlWrapperV1 audioControlWrapper) {
         SparseIntArray contextToBus = new SparseIntArray();
 
         for (int legacyContext : LEGACY_CONTEXTS) {
@@ -191,9 +201,7 @@
             }
         }
 
-        final CarVolumeSettings settings = new CarVolumeSettings(mContext);
-
-        return new CarVolumeGroup(settings, CarAudioManager.PRIMARY_AUDIO_ZONE, id,
+        return new CarVolumeGroup(mCarAudioSettings, CarAudioManager.PRIMARY_AUDIO_ZONE, id,
                 contexts.stream().mapToInt(i -> i).filter(i -> i >= 0).toArray());
     }
 
diff --git a/service/src/com/android/car/audio/CarVolume.java b/service/src/com/android/car/audio/CarVolume.java
new file mode 100644
index 0000000..39f2c59
--- /dev/null
+++ b/service/src/com/android/car/audio/CarVolume.java
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2020 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.car.audio;
+
+import static com.android.car.audio.CarAudioService.DEFAULT_AUDIO_CONTEXT;
+
+import android.media.AudioAttributes;
+import android.media.AudioAttributes.AttributeUsage;
+import android.media.AudioPlaybackConfiguration;
+import android.telephony.Annotation.CallState;
+import android.telephony.TelephonyManager;
+import android.util.Log;
+import android.util.SparseIntArray;
+
+import com.android.car.audio.CarAudioContext.AudioContext;
+
+import java.util.List;
+
+/**
+ * CarVolume is responsible for determining which audio contexts to prioritize when adjusting volume
+ */
+final class CarVolume {
+    private static final String TAG = CarVolume.class.getSimpleName();
+    private static final int CONTEXT_NOT_PRIORITIZED = -1;
+
+    private static final int[] AUDIO_CONTEXT_VOLUME_PRIORITY = {
+            CarAudioContext.NAVIGATION,
+            CarAudioContext.CALL,
+            CarAudioContext.MUSIC,
+            CarAudioContext.ANNOUNCEMENT,
+            CarAudioContext.VOICE_COMMAND,
+            CarAudioContext.CALL_RING,
+            CarAudioContext.SYSTEM_SOUND,
+            CarAudioContext.SAFETY,
+            CarAudioContext.ALARM,
+            CarAudioContext.NOTIFICATION,
+            CarAudioContext.VEHICLE_STATUS,
+            CarAudioContext.EMERGENCY,
+            // CarAudioContext.INVALID is intentionally not prioritized as it is not routed by
+            // CarAudioService and is not expected to be used.
+    };
+
+    private static final SparseIntArray VOLUME_PRIORITY_BY_AUDIO_CONTEXT = new SparseIntArray();
+
+    static {
+        for (int priority = 0; priority < AUDIO_CONTEXT_VOLUME_PRIORITY.length; priority++) {
+            VOLUME_PRIORITY_BY_AUDIO_CONTEXT.append(AUDIO_CONTEXT_VOLUME_PRIORITY[priority],
+                    priority);
+        }
+    }
+
+    /**
+     * Suggests a {@link AudioContext} that should be adjusted based on the current
+     * {@link AudioPlaybackConfiguration}s and {@link CallState}.
+     */
+    static @AudioContext int getSuggestedAudioContext(
+            List<AudioPlaybackConfiguration> configurations, @CallState int callState) {
+        int currentContext = DEFAULT_AUDIO_CONTEXT;
+        int currentPriority = AUDIO_CONTEXT_VOLUME_PRIORITY.length;
+
+        if (callState == TelephonyManager.CALL_STATE_RINGING) {
+            currentContext = CarAudioContext.CALL_RING;
+            currentPriority = VOLUME_PRIORITY_BY_AUDIO_CONTEXT.get(CarAudioContext.CALL_RING);
+        } else if (callState == TelephonyManager.CALL_STATE_OFFHOOK) {
+            currentContext = CarAudioContext.CALL;
+            currentPriority = VOLUME_PRIORITY_BY_AUDIO_CONTEXT.get(CarAudioContext.CALL);
+        }
+
+        for (AudioPlaybackConfiguration configuration : configurations) {
+            if (!configuration.isActive()) {
+                continue;
+            }
+
+            @AttributeUsage int usage = configuration.getAudioAttributes().getSystemUsage();
+            @AudioContext int context = CarAudioContext.getContextForUsage(usage);
+            int priority = VOLUME_PRIORITY_BY_AUDIO_CONTEXT.get(context, CONTEXT_NOT_PRIORITIZED);
+            if (priority == CONTEXT_NOT_PRIORITIZED) {
+                Log.w(TAG, "Usage " + AudioAttributes.usageToString(usage) + " mapped to context "
+                        + CarAudioContext.toString(context) + " which is not prioritized");
+                continue;
+            }
+
+            if (priority < currentPriority) {
+                currentContext = context;
+                currentPriority = priority;
+            }
+        }
+
+        return currentContext;
+    }
+}
diff --git a/service/src/com/android/car/audio/CarVolumeGroup.java b/service/src/com/android/car/audio/CarVolumeGroup.java
index 0e100db..5244b67 100644
--- a/service/src/com/android/car/audio/CarVolumeGroup.java
+++ b/service/src/com/android/car/audio/CarVolumeGroup.java
@@ -17,10 +17,11 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
-import android.app.ActivityManager;
+import android.annotation.UserIdInt;
 import android.car.media.CarAudioManager;
 import android.content.Context;
 import android.media.AudioDevicePort;
+import android.os.UserHandle;
 import android.util.Log;
 import android.util.SparseArray;
 
@@ -43,31 +44,33 @@
  */
 /* package */ final class CarVolumeGroup {
 
-    private CarVolumeSettings mSettingsManager;
+    private CarAudioSettings mSettingsManager;
     private final int mZoneId;
     private final int mId;
     private final SparseArray<String> mContextToAddress = new SparseArray<>();
     private final Map<String, CarAudioDeviceInfo> mAddressToCarAudioDeviceInfo = new HashMap<>();
 
+    private final Object mLock = new Object();
+
     private int mDefaultGain = Integer.MIN_VALUE;
     private int mMaxGain = Integer.MIN_VALUE;
     private int mMinGain = Integer.MAX_VALUE;
     private int mStepSize = 0;
     private int mStoredGainIndex;
     private int mCurrentGainIndex = -1;
+    private @UserIdInt int mUserId = UserHandle.USER_CURRENT;
 
     /**
      * Constructs a {@link CarVolumeGroup} instance
-     * @param Settings {@link CarVolumeSettings} instance
+     * @param Settings {@link CarAudioSettings} instance
      * @param zoneId Audio zone this volume group belongs to
      * @param id ID of this volume group
      */
-    CarVolumeGroup(CarVolumeSettings settings, int zoneId, int id) {
+    CarVolumeGroup(CarAudioSettings settings, int zoneId, int id) {
         mSettingsManager = settings;
         mZoneId = zoneId;
         mId = id;
-
-        updateUserId(ActivityManager.getCurrentUser());
+        mStoredGainIndex = mSettingsManager.getStoredVolumeGainIndexForUser(mUserId, mZoneId, mId);
     }
 
     /**
@@ -79,7 +82,7 @@
      * @deprecated In favor of {@link #CarVolumeGroup(Context, int, int)}
      */
     @Deprecated
-    CarVolumeGroup(CarVolumeSettings settings, int zoneId, int id, @NonNull int[] contexts) {
+    CarVolumeGroup(CarAudioSettings settings, int zoneId, int id, @NonNull int[] contexts) {
         this(settings, zoneId, id);
         // Deal with the pre-populated car audio contexts
         for (int audioContext : contexts) {
@@ -152,28 +155,31 @@
                         CarAudioContext.toString(carAudioContext),
                         mContextToAddress.get(carAudioContext)));
 
-        if (mAddressToCarAudioDeviceInfo.size() == 0) {
-            mStepSize = info.getStepValue();
-        } else {
-            Preconditions.checkArgument(
-                    info.getStepValue() == mStepSize,
-                    "Gain controls within one group must have same step value");
-        }
+        synchronized (mLock) {
+            if (mAddressToCarAudioDeviceInfo.size() == 0) {
+                mStepSize = info.getStepValue();
+            } else {
+                Preconditions.checkArgument(
+                        info.getStepValue() == mStepSize,
+                        "Gain controls within one group must have same step value");
+            }
 
-        mAddressToCarAudioDeviceInfo.put(info.getAddress(), info);
-        mContextToAddress.put(carAudioContext, info.getAddress());
+            mAddressToCarAudioDeviceInfo.put(info.getAddress(), info);
+            mContextToAddress.put(carAudioContext, info.getAddress());
 
-        if (info.getDefaultGain() > mDefaultGain) {
-            // We're arbitrarily selecting the highest device default gain as the group's default.
-            mDefaultGain = info.getDefaultGain();
+            if (info.getDefaultGain() > mDefaultGain) {
+                // We're arbitrarily selecting the highest
+                // device default gain as the group's default.
+                mDefaultGain = info.getDefaultGain();
+            }
+            if (info.getMaxGain() > mMaxGain) {
+                mMaxGain = info.getMaxGain();
+            }
+            if (info.getMinGain() < mMinGain) {
+                mMinGain = info.getMinGain();
+            }
+            updateCurrentGainIndexLocked();
         }
-        if (info.getMaxGain() > mMaxGain) {
-            mMaxGain = info.getMaxGain();
-        }
-        if (info.getMinGain() < mMinGain) {
-            mMinGain = info.getMinGain();
-        }
-        updateCurrentGainIndex();
     }
 
     /**
@@ -181,42 +187,60 @@
      * @param userId new user
      * @note also reloads the store gain index for the user
      */
-    private void updateUserId(int userId) {
-        mStoredGainIndex = mSettingsManager.getStoredVolumeGainIndexForUser(userId, mZoneId, mId);
-        Log.i(CarLog.TAG_AUDIO, "updateUserId userId " + userId
-                + " mStoredGainIndex " + mStoredGainIndex);
+    private void updateUserIdLocked(@UserIdInt int userId) {
+        mUserId = userId;
+        mStoredGainIndex = getCurrentGainIndexForUserLocked();
+    }
+
+    private int getCurrentGainIndexForUserLocked() {
+        int gainIndexForUser = mSettingsManager.getStoredVolumeGainIndexForUser(mUserId, mZoneId,
+                mId);
+        Log.i(CarLog.TAG_AUDIO, "updateUserId userId " + mUserId
+                + " gainIndexForUser " + gainIndexForUser);
+        return gainIndexForUser;
     }
 
     /**
      * Update the current gain index based on the stored gain index
      */
-    private void updateCurrentGainIndex() {
-        if (mStoredGainIndex < getMinGainIndex() || mStoredGainIndex > getMaxGainIndex()) {
-            // We expected to load a value from last boot, but if we didn't (perhaps this is the
-            // first boot ever?), then use the highest "default" we've seen to initialize
-            // ourselves.
-            mCurrentGainIndex = getIndexForGain(mDefaultGain);
-        } else {
-            // Just use the gain index we stored last time the gain was set (presumably during our
-            // last boot cycle).
-            mCurrentGainIndex = mStoredGainIndex;
+    private void updateCurrentGainIndexLocked() {
+        synchronized (mLock) {
+            if (mStoredGainIndex < getIndexForGainLocked(mMinGain)
+                    || mStoredGainIndex > getIndexForGainLocked(mMaxGain)) {
+                // We expected to load a value from last boot, but if we didn't (perhaps this is the
+                // first boot ever?), then use the highest "default" we've seen to initialize
+                // ourselves.
+                mCurrentGainIndex = getIndexForGainLocked(mDefaultGain);
+            } else {
+                // Just use the gain index we stored last time the gain was
+                // set (presumably during our last boot cycle).
+                mCurrentGainIndex = mStoredGainIndex;
+            }
         }
     }
 
     private int getDefaultGainIndex() {
-        return getIndexForGain(mDefaultGain);
+        synchronized (mLock) {
+            return getIndexForGainLocked(mDefaultGain);
+        }
     }
 
     int getMaxGainIndex() {
-        return getIndexForGain(mMaxGain);
+        synchronized (mLock) {
+            return getIndexForGainLocked(mMaxGain);
+        }
     }
 
     int getMinGainIndex() {
-        return getIndexForGain(mMinGain);
+        synchronized (mLock) {
+            return getIndexForGainLocked(mMinGain);
+        }
     }
 
     int getCurrentGainIndex() {
-        return mCurrentGainIndex;
+        synchronized (mLock) {
+            return mCurrentGainIndex;
+        }
     }
 
     /**
@@ -224,37 +248,43 @@
      * @param gainIndex The gain index
      */
     void setCurrentGainIndex(int gainIndex) {
-        int gainInMillibels = getGainForIndex(gainIndex);
+        synchronized (mLock) {
+            int gainInMillibels = getGainForIndexLocked(gainIndex);
+            Preconditions.checkArgument(
+                    gainInMillibels >= mMinGain && gainInMillibels <= mMaxGain,
+                    "Gain out of range ("
+                            + mMinGain + ":"
+                            + mMaxGain + ") "
+                            + gainInMillibels + "index "
+                            + gainIndex);
 
-        Preconditions.checkArgument(
-                gainInMillibels >= mMinGain && gainInMillibels <= mMaxGain,
-                "Gain out of range ("
-                        + mMinGain + ":"
-                        + mMaxGain + ") "
-                        + gainInMillibels + "index "
-                        + gainIndex);
+            for (String address : mAddressToCarAudioDeviceInfo.keySet()) {
+                CarAudioDeviceInfo info = mAddressToCarAudioDeviceInfo.get(address);
+                info.setCurrentGain(gainInMillibels);
+            }
 
-        for (String address : mAddressToCarAudioDeviceInfo.keySet()) {
-            CarAudioDeviceInfo info = mAddressToCarAudioDeviceInfo.get(address);
-            info.setCurrentGain(gainInMillibels);
+            mCurrentGainIndex = gainIndex;
+
+            storeGainIndexForUserLocked(mCurrentGainIndex, mUserId);
         }
+    }
 
-        mCurrentGainIndex = gainIndex;
-        mSettingsManager.storeVolumeGainIndexForUser(ActivityManager.getCurrentUser(),
+    private void storeGainIndexForUserLocked(int gainIndex, @UserIdInt int userId) {
+        mSettingsManager.storeVolumeGainIndexForUser(userId,
                 mZoneId, mId, gainIndex);
     }
 
     // Given a group level gain index, return the computed gain in millibells
     // TODO (randolphs) If we ever want to add index to gain curves other than lock-stepped
     // linear, this would be the place to do it.
-    private int getGainForIndex(int gainIndex) {
+    private int getGainForIndexLocked(int gainIndex) {
         return mMinGain + gainIndex * mStepSize;
     }
 
     // TODO (randolphs) if we ever went to a non-linear index to gain curve mapping, we'd need to
     // revisit this as it assumes (at the least) that getGainForIndex is reversible.  Luckily,
     // this is an internal implementation details we could factor out if/when necessary.
-    private int getIndexForGain(int gainInMillibel) {
+    private int getIndexForGainLocked(int gainInMillibel) {
         return (gainInMillibel - mMinGain) / mStepSize;
     }
 
@@ -281,37 +311,41 @@
 
     /** Writes to dumpsys output */
     void dump(String indent, PrintWriter writer) {
-        writer.printf("%sCarVolumeGroup(%d)\n", indent, mId);
-        writer.printf("%sUserId(%d)\n", indent, ActivityManager.getCurrentUser());
-        writer.printf("%sGain values (min / max / default/ current): %d %d %d %d\n",
-                indent, mMinGain, mMaxGain,
-                mDefaultGain, getGainForIndex(mCurrentGainIndex));
-        writer.printf("%sGain indexes (min / max / default / current): %d %d %d %d\n",
-                indent, getMinGainIndex(), getMaxGainIndex(),
-                getDefaultGainIndex(), mCurrentGainIndex);
-        for (int i = 0; i < mContextToAddress.size(); i++) {
-            writer.printf("%sContext: %s -> Address: %s\n", indent,
-                    CarAudioContext.toString(mContextToAddress.keyAt(i)),
-                    mContextToAddress.valueAt(i));
-        }
-        mAddressToCarAudioDeviceInfo.keySet().stream()
-                .map(mAddressToCarAudioDeviceInfo::get)
-                .forEach((info -> info.dump(indent, writer)));
+        synchronized (mLock) {
+            writer.printf("%sCarVolumeGroup(%d)\n", indent, mId);
+            writer.printf("%sUserId(%d)\n", indent, mUserId);
+            writer.printf("%sGain values (min / max / default/ current): %d %d %d %d\n",
+                    indent, mMinGain, mMaxGain,
+                    mDefaultGain, getGainForIndexLocked(mCurrentGainIndex));
+            writer.printf("%sGain indexes (min / max / default / current): %d %d %d %d\n",
+                    indent, getMinGainIndex(), getMaxGainIndex(),
+                    getDefaultGainIndex(), mCurrentGainIndex);
+            for (int i = 0; i < mContextToAddress.size(); i++) {
+                writer.printf("%sContext: %s -> Address: %s\n", indent,
+                        CarAudioContext.toString(mContextToAddress.keyAt(i)),
+                        mContextToAddress.valueAt(i));
+            }
+            mAddressToCarAudioDeviceInfo.keySet().stream()
+                    .map(mAddressToCarAudioDeviceInfo::get)
+                    .forEach((info -> info.dump(indent, writer)));
 
-        // Empty line for comfortable reading
-        writer.println();
+            // Empty line for comfortable reading
+            writer.println();
+        }
     }
 
     /**
      * Load volumes for new user
      * @param userId new user to load
      */
-    void loadVolumesForUser(int userId) {
-        //Update the volume for the new user
-        updateUserId(userId);
-        //Update the current gain index
-        updateCurrentGainIndex();
-        //Reset devices with current gain index
+    void loadVolumesForUser(@UserIdInt int userId) {
+        synchronized (mLock) {
+            //Update the volume for the new user
+            updateUserIdLocked(userId);
+            //Update the current gain index
+            updateCurrentGainIndexLocked();
+            //Reset devices with current gain index
+        }
         setCurrentGainIndex(getCurrentGainIndex());
     }
 }
diff --git a/service/src/com/android/car/audio/CarZonesAudioFocus.java b/service/src/com/android/car/audio/CarZonesAudioFocus.java
index 1834659..ec024be 100644
--- a/service/src/com/android/car/audio/CarZonesAudioFocus.java
+++ b/service/src/com/android/car/audio/CarZonesAudioFocus.java
@@ -17,6 +17,7 @@
 package com.android.car.audio;
 
 import android.annotation.NonNull;
+import android.annotation.UserIdInt;
 import android.car.media.CarAudioManager;
 import android.content.pm.PackageManager;
 import android.media.AudioAttributes;
@@ -42,28 +43,39 @@
  */
 class CarZonesAudioFocus extends AudioPolicy.AudioPolicyFocusListener {
 
+    private final boolean mDelayedFocusEnabled;
     private CarAudioService mCarAudioService; // Dynamically assigned just after construction
     private AudioPolicy mAudioPolicy; // Dynamically assigned just after construction
 
     private final Map<Integer, CarAudioFocus> mFocusZones = new HashMap<>();
 
-    CarZonesAudioFocus(AudioManager audioManager,
-            PackageManager packageManager,
-            @NonNull CarAudioZone[] carAudioZones) {
+    CarZonesAudioFocus(@NonNull AudioManager audioManager,
+            @NonNull PackageManager packageManager,
+            @NonNull CarAudioZone[] carAudioZones,
+            @NonNull CarAudioSettings carAudioSettings,
+            boolean enableDelayedAudioFocus) {
         //Create the zones here, the policy will be set setOwningPolicy,
         // which is called right after this constructor.
-
+        Objects.requireNonNull(audioManager);
+        Objects.requireNonNull(packageManager);
         Objects.requireNonNull(carAudioZones);
+        Objects.requireNonNull(carAudioSettings);
         Preconditions.checkArgument(carAudioZones.length != 0,
                 "There must be a minimum of one audio zone");
 
         //Create focus for all the zones
         for (CarAudioZone audioZone : carAudioZones) {
-            Log.d(CarLog.TAG_AUDIO,
-                    "CarZonesAudioFocus adding new zone " + audioZone.getId());
-            CarAudioFocus zoneFocusListener = new CarAudioFocus(audioManager, packageManager);
-            mFocusZones.put(audioZone.getId(), zoneFocusListener);
+            int audioZoneId = audioZone.getId();
+            if (Log.isLoggable(CarLog.TAG_AUDIO, Log.DEBUG)) {
+                Log.d(CarLog.TAG_AUDIO,
+                        "CarZonesAudioFocus adding new zone " + audioZoneId);
+            }
+            CarAudioFocus zoneFocusListener =
+                    new CarAudioFocus(audioManager, packageManager,
+                            new FocusInteraction(carAudioSettings), enableDelayedAudioFocus);
+            mFocusZones.put(audioZoneId, zoneFocusListener);
         }
+        mDelayedFocusEnabled = enableDelayedAudioFocus;
     }
 
 
@@ -186,7 +198,7 @@
      */
     void dump(String indent, PrintWriter writer) {
         writer.printf("%s*CarZonesAudioFocus*\n", indent);
-
+        writer.printf("%s\tDelayed Focus Enabled: %b\n", indent, mDelayedFocusEnabled);
         writer.printf("%s\tCar Zones Audio Focus Listeners:\n", indent);
         Integer[] keys = mFocusZones.keySet().stream().sorted().toArray(Integer[]::new);
         for (Integer zoneId : keys) {
@@ -194,4 +206,10 @@
             mFocusZones.get(zoneId).dump(indent + "\t", writer);
         }
     }
+
+    public void updateUserForZoneId(int audioZoneId, @UserIdInt int userId) {
+        Preconditions.checkArgument(mCarAudioService.isAudioZoneIdValid(audioZoneId),
+                "Invalid zoneId %d", audioZoneId);
+        mFocusZones.get(audioZoneId).getFocusInteraction().setUserIdForSettings(userId);
+    }
 }
diff --git a/service/src/com/android/car/audio/FocusEntry.java b/service/src/com/android/car/audio/FocusEntry.java
index 6be453e..ec9b8c5 100644
--- a/service/src/com/android/car/audio/FocusEntry.java
+++ b/service/src/com/android/car/audio/FocusEntry.java
@@ -26,6 +26,7 @@
 
 import com.android.car.audio.CarAudioContext.AudioContext;
 
+import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Objects;
@@ -106,4 +107,12 @@
     String getUsageName() {
         return mAudioFocusInfo.getAttributes().usageToString();
     }
+
+    public void dump(String indent, PrintWriter writer) {
+        writer.printf("%s%s - %s\n", indent, getClientId(), getUsageName());
+        // Prints in single line
+        writer.printf("%s\tReceives Duck Events: %b, ", indent, receivesDuckEvents());
+        writer.printf("Wants Pause Instead of Ducking: %b, ", wantsPauseInsteadOfDucking());
+        writer.printf("Is Ducked: %b\n", isDucked());
+    }
 }
diff --git a/service/src/com/android/car/audio/FocusInteraction.java b/service/src/com/android/car/audio/FocusInteraction.java
index b3d0ff0..eeb8321 100644
--- a/service/src/com/android/car/audio/FocusInteraction.java
+++ b/service/src/com/android/car/audio/FocusInteraction.java
@@ -15,8 +15,17 @@
  */
 package com.android.car.audio;
 
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
+import android.car.settings.CarSettings;
+import android.database.ContentObserver;
 import android.media.AudioManager;
 import android.media.AudioManager.FocusRequestResult;
+import android.net.Uri;
+import android.os.Handler;
+import android.os.Looper;
+import android.os.UserHandle;
+import android.provider.Settings;
 import android.util.Log;
 
 import androidx.annotation.VisibleForTesting;
@@ -24,7 +33,9 @@
 import com.android.car.audio.CarAudioContext.AudioContext;
 import com.android.internal.util.Preconditions;
 
+import java.io.PrintWriter;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * FocusInteraction is responsible for evaluating how incoming focus requests should be handled
@@ -35,6 +46,11 @@
 
     private static final String TAG = FocusInteraction.class.getSimpleName();
 
+    @VisibleForTesting
+    static final Uri AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL_URI =
+            Settings.Secure.getUriFor(
+                    CarSettings.Secure.KEY_AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL);
+
     // Values for the internal interaction matrix we use to make focus decisions
     @VisibleForTesting
     static final int INTERACTION_REJECT = 0; // Focus not granted
@@ -259,6 +275,38 @@
             },
     };
 
+    private final Object mLock = new Object();
+
+    private final int[][] mInteractionMatrix;
+
+    private ContentObserver mContentObserver;
+
+    private final CarAudioSettings mCarAudioFocusSettings;
+
+    private int mUserId;
+
+    /**
+     * Constructs a focus interaction instance.
+     */
+    FocusInteraction(@NonNull CarAudioSettings carAudioSettings) {
+        mCarAudioFocusSettings = Objects.requireNonNull(carAudioSettings);
+        mInteractionMatrix = cloneInteractionMatrix(sInteractionMatrix);
+    }
+
+    private void navigationOnCallSettingChanged() {
+        synchronized (mLock) {
+            if (mUserId != UserHandle.USER_NULL) {
+                setRejectNavigationOnCallLocked(isRejectNavigationOnCallEnabledInSettings(mUserId));
+            }
+        }
+    }
+
+    public void setRejectNavigationOnCallLocked(boolean navigationRejectedWithCall) {
+        mInteractionMatrix[CarAudioContext.CALL][CarAudioContext.NAVIGATION] =
+                navigationRejectedWithCall ? INTERACTION_REJECT :
+                sInteractionMatrix[CarAudioContext.CALL][CarAudioContext.NAVIGATION];
+    }
+
     /**
      * Evaluates interaction between incoming focus {@link AudioContext} and the current focus
      * request based on interaction matrix.
@@ -272,48 +320,100 @@
      * @param focusLosers      Mutable array to add focusHolder to if it should lose focus
      * @return {@link FocusRequestResult} result of focus interaction
      */
-    static @FocusRequestResult int evaluateRequest(@AudioContext int requestedContext,
-            FocusEntry focusHolder, List<FocusEntry> focusLosers, boolean allowDucking) {
+    public @FocusRequestResult int evaluateRequest(@AudioContext int requestedContext,
+            FocusEntry focusHolder, List<FocusEntry> focusLosers, boolean allowDucking,
+            boolean allowsDelayedFocus) {
         @AudioContext int holderContext = focusHolder.getAudioContext();
-        Preconditions.checkArgumentInRange(holderContext, 0, sInteractionMatrix.length - 1,
+        Preconditions.checkArgumentInRange(holderContext, 0, mInteractionMatrix.length - 1,
                 "holderContext");
-        int[] holderRow = sInteractionMatrix[holderContext];
-        Preconditions.checkArgumentInRange(requestedContext, 0, holderRow.length - 1,
-                "requestedContext");
+        synchronized (mLock) {
+            int[] holderRow = mInteractionMatrix[holderContext];
+            Preconditions.checkArgumentInRange(requestedContext, 0, holderRow.length - 1,
+                    "requestedContext");
 
-        switch (holderRow[requestedContext]) {
-            case INTERACTION_REJECT:
-                return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
-            case INTERACTION_EXCLUSIVE:
-                focusLosers.add(focusHolder);
-                return AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
-            case INTERACTION_CONCURRENT:
-                // If ducking isn't allowed by the focus requester, then everybody else
-                // must get a LOSS.
-                // If a focus holder has set the AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS flag,
-                // they must get a LOSS message even if ducking would otherwise be allowed.
-                // If a focus holder holds the RECEIVE_CAR_AUDIO_DUCKING_EVENTS permission,
-                // they must receive all audio focus losses.
-                if (!allowDucking
-                        || focusHolder.wantsPauseInsteadOfDucking()
-                        || focusHolder.receivesDuckEvents()) {
+            switch (holderRow[requestedContext]) {
+                case INTERACTION_REJECT:
+                    if (allowsDelayedFocus) {
+                        return AudioManager.AUDIOFOCUS_REQUEST_DELAYED;
+                    }
+                    return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
+                case INTERACTION_EXCLUSIVE:
                     focusLosers.add(focusHolder);
-                }
-                return AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
-            default:
-                Log.e(TAG, String.format("Unsupported CarAudioContext %d - rejecting request",
-                        holderRow[requestedContext]));
-                return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
+                    return AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
+                case INTERACTION_CONCURRENT:
+                    // If ducking isn't allowed by the focus requester, then everybody else
+                    // must get a LOSS.
+                    // If a focus holder has set the AUDIOFOCUS_FLAG_PAUSES_ON_DUCKABLE_LOSS flag,
+                    // they must get a LOSS message even if ducking would otherwise be allowed.
+                    // If a focus holder holds the RECEIVE_CAR_AUDIO_DUCKING_EVENTS permission,
+                    // they must receive all audio focus losses.
+                    if (!allowDucking
+                            || focusHolder.wantsPauseInsteadOfDucking()
+                            || focusHolder.receivesDuckEvents()) {
+                        focusLosers.add(focusHolder);
+                    }
+                    return AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
+                default:
+                    Log.e(TAG, String.format("Unsupported CarAudioContext %d - rejecting request",
+                            holderRow[requestedContext]));
+                    return AudioManager.AUDIOFOCUS_REQUEST_FAILED;
+            }
         }
     }
 
+    /**
+     * Sets userId for interaction focus settings
+     */
+    void setUserIdForSettings(@UserIdInt int userId) {
+        synchronized (mLock) {
+            mUserId = userId;
+            if (mContentObserver != null) {
+                mCarAudioFocusSettings.getContentResolver()
+                        .unregisterContentObserver(mContentObserver);
+                mContentObserver = null;
+            }
+            if (mUserId == UserHandle.USER_NULL) {
+                setRejectNavigationOnCallLocked(false);
+                return;
+            }
+            mContentObserver = new ContentObserver(new Handler(Looper.getMainLooper())) {
+                @Override
+                public void onChange(boolean selfChange, Uri uri) {
+                    if (uri.equals(AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL_URI)) {
+                        navigationOnCallSettingChanged();
+                    }
+                }
+            };
+            mCarAudioFocusSettings.getContentResolver()
+                    .registerContentObserver(AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL_URI,
+                            false, mContentObserver, userId);
+            setRejectNavigationOnCallLocked(isRejectNavigationOnCallEnabledInSettings(mUserId));
+        }
+    }
+
+    private boolean isRejectNavigationOnCallEnabledInSettings(@UserIdInt int userId) {
+        return mCarAudioFocusSettings.isRejectNavigationOnCallEnabledInSettings(userId);
+    }
+
     @VisibleForTesting
-    static int[][] getInteractionMatrix() {
+    int[][] getInteractionMatrix() {
+        return cloneInteractionMatrix(mInteractionMatrix);
+    }
+
+    private static int[][] cloneInteractionMatrix(int[][] matrixToClone) {
         int[][] interactionMatrixClone =
-                new int[sInteractionMatrix.length][sInteractionMatrix.length];
-        for (int audioContext = 0; audioContext < sInteractionMatrix.length; audioContext++) {
-            interactionMatrixClone[audioContext] = sInteractionMatrix[audioContext].clone();
+                new int[matrixToClone.length][matrixToClone.length];
+        for (int audioContext = 0; audioContext < matrixToClone.length; audioContext++) {
+            System.arraycopy(matrixToClone[audioContext], 0,
+                    interactionMatrixClone[audioContext], 0, matrixToClone.length);
         }
         return interactionMatrixClone;
     }
+
+    public void dump(String indent, PrintWriter writer) {
+        boolean rejectNavigationOnCall =
+                mInteractionMatrix[CarAudioContext.CALL][CarAudioContext.NAVIGATION]
+                == INTERACTION_REJECT;
+        writer.printf("%sReject Navigation on Call: %b\n", indent, rejectNavigationOnCall);
+    }
 }
diff --git a/service/src/com/android/car/audio/hal/AudioControlFactory.java b/service/src/com/android/car/audio/hal/AudioControlFactory.java
new file mode 100644
index 0000000..bd599cf
--- /dev/null
+++ b/service/src/com/android/car/audio/hal/AudioControlFactory.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import android.util.Log;
+
+/**
+ * Factory for constructing wrappers around IAudioControl HAL instances.
+ */
+public final class AudioControlFactory {
+    private static final String TAG = AudioControlWrapper.class.getSimpleName();
+
+    /**
+     * Generates {@link AudioControlWrapper} for interacting with IAudioControl HAL service. Checks
+     * for V2.0 first, and then falls back to V1.0 if that is not available. Will throw if none is
+     * registered on the manifest.
+     * @return {@link AudioControlWrapper} for registered IAudioControl service.
+     */
+    public static AudioControlWrapper newAudioControl() {
+        android.hardware.automotive.audiocontrol.V2_0.IAudioControl audioControlV2 =
+                AudioControlWrapperV2.getService();
+        if (audioControlV2 != null) {
+            return new AudioControlWrapperV2(audioControlV2);
+        }
+        Log.i(TAG, "IAudioControl@V2.0 not in the manifest");
+
+        android.hardware.automotive.audiocontrol.V1_0.IAudioControl audioControlV1 =
+                AudioControlWrapperV1.getService();
+        if (audioControlV1 != null) {
+            Log.w(TAG, "IAudioControl V1.0 is deprecated. Consider upgrading to V2.0");
+            return new AudioControlWrapperV1(audioControlV1);
+        }
+
+        throw new IllegalStateException("No version of AudioControl HAL in the manifest");
+    }
+}
diff --git a/service/src/com/android/car/audio/hal/AudioControlWrapper.java b/service/src/com/android/car/audio/hal/AudioControlWrapper.java
new file mode 100644
index 0000000..c491056
--- /dev/null
+++ b/service/src/com/android/car/audio/hal/AudioControlWrapper.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import android.hardware.automotive.audiocontrol.V2_0.IFocusListener;
+import android.media.AudioAttributes.AttributeUsage;
+
+import androidx.annotation.Nullable;
+
+import java.io.PrintWriter;
+
+/**
+ * AudioControlWrapper wraps IAudioControl HAL interface, handling version specific support so that
+ * the rest of CarAudioService doesn't need to know about it.
+ */
+public interface AudioControlWrapper {
+
+    /**
+     * Closes the focus listener that's registered on the AudioControl HAL
+     */
+    void unregisterFocusListener();
+
+    /**
+     * Indicates if HAL can support making and abandoning audio focus requests.
+     */
+    boolean supportsHalAudioFocus();
+
+    /**
+     * Registers listener for HAL audio focus requests with IAudioControl. Only works if
+     * {@code supportsHalAudioFocus} returns true.
+     *
+     * @param focusListener the listener to register on the IAudioControl HAL.
+     */
+    void registerFocusListener(IFocusListener focusListener);
+
+    /**
+     * Notifies HAL of change in audio focus for a request it has made.
+     *
+     * @param usage that the request is associated with.
+     * @param zoneId for the audio zone that the request is associated with.
+     * @param focusChange the new status of the request.
+     */
+    void onAudioFocusChange(@AttributeUsage int usage, int zoneId, int focusChange);
+
+    /**
+     * dumps the current state of the AudioControlWrapper
+     *
+     * @param indent indent to append to each new line
+     * @param writer stream to write current state
+     */
+    void dump(String indent, PrintWriter writer);
+
+    /**
+     * Sets the fade for the vehicle.
+     *
+     * @param value to set for the fade. Positive is towards front.
+     */
+    void setFadeTowardFront(float value);
+
+    /**
+     * Sets the balance value for the vehicle.
+     *
+     * @param value to set for the balance. Positive is towards the right.
+     */
+    void setBalanceTowardRight(float value);
+
+    /**
+     * Registers recipient to be notified if AudioControl HAL service dies.
+     * @param deathRecipient to be notified upon HAL service death.
+     */
+    void linkToDeath(@Nullable AudioControlDeathRecipient deathRecipient);
+
+    /**
+     * Unregisters recipient for AudioControl HAL service death.
+     */
+    void unlinkToDeath();
+
+    /**
+     * Recipient to be notified upon death of AudioControl HAL.
+     */
+    interface AudioControlDeathRecipient {
+        /**
+         * Called if AudioControl HAL dies.
+         */
+        void serviceDied();
+    }
+}
diff --git a/service/src/com/android/car/audio/hal/AudioControlWrapperV1.java b/service/src/com/android/car/audio/hal/AudioControlWrapperV1.java
new file mode 100644
index 0000000..433b5d5
--- /dev/null
+++ b/service/src/com/android/car/audio/hal/AudioControlWrapperV1.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import android.hardware.automotive.audiocontrol.V1_0.IAudioControl;
+import android.hardware.automotive.audiocontrol.V2_0.IFocusListener;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import com.android.car.audio.CarAudioContext;
+import com.android.internal.annotations.VisibleForTesting;
+
+import java.io.PrintWriter;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+
+/**
+ * Wrapper for IAudioControl@1.0.
+ */
+public final class AudioControlWrapperV1 implements AudioControlWrapper {
+    private static final String TAG = AudioControlWrapperV1.class.getSimpleName();
+
+    private IAudioControl mAudioControlV1;
+    private AudioControlDeathRecipient mDeathRecipient;
+
+    /**
+     * Gets IAudioControl@1.0 service if registered.
+     */
+    public static @Nullable IAudioControl getService() {
+        try {
+            return IAudioControl.getService(true);
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Failed to get IAudioControl@1.0 service", e);
+        } catch (NoSuchElementException e) {
+            return null;
+        }
+    }
+
+    @VisibleForTesting
+    AudioControlWrapperV1(IAudioControl audioControlV1) {
+        mAudioControlV1 = Objects.requireNonNull(audioControlV1);
+    }
+
+    @Override
+    public boolean supportsHalAudioFocus() {
+        return false;
+    }
+
+    @Override
+    public void registerFocusListener(IFocusListener focusListener) {
+        throw new UnsupportedOperationException(
+                "Focus listener is unsupported for IAudioControl@1.0");
+    }
+
+    @Override
+    public void unregisterFocusListener() {
+        throw new UnsupportedOperationException(
+                "Focus listener is unsupported for IAudioControl@1.0");
+    }
+
+    @Override
+    public void onAudioFocusChange(int usage, int zoneId, int focusChange) {
+        throw new UnsupportedOperationException(
+                "Focus listener is unsupported for IAudioControl@1.0");
+    }
+
+    @Override
+    public void dump(String indent, PrintWriter writer) {
+        writer.printf("%s*AudioControlWrapperV1*\n", indent);
+    }
+
+    @Override
+    public void setFadeTowardFront(float value) {
+        try {
+            mAudioControlV1.setFadeTowardFront(value);
+        } catch (RemoteException e) {
+            Log.e(TAG, "setFadeTowardFront failed", e);
+        }
+    }
+
+    @Override
+    public void setBalanceTowardRight(float value) {
+        try {
+            mAudioControlV1.setBalanceTowardRight(value);
+        } catch (RemoteException e) {
+            Log.e(TAG, "setBalanceTowardRight failed", e);
+        }
+    }
+
+    /**
+     * Gets the bus associated with CarAudioContext.
+     *
+     * <p>This API is used along with car_volume_groups.xml to configure volume groups and routing.
+     *
+     * @param audioContext {@code CarAudioContext} to get a context for.
+     * @return int bus number. Should be part of the prefix for the device's address. For example,
+     * bus001_media would be bus 1.
+     * @deprecated Volume and routing configuration has been replaced by
+     * car_audio_configuration.xml. Starting with IAudioControl@V2.0, getBusForContext is no longer
+     * supported.
+     */
+    @Deprecated
+    public int getBusForContext(@CarAudioContext.AudioContext int audioContext) {
+        try {
+            return mAudioControlV1.getBusForContext(audioContext);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to query IAudioControl HAL to get bus for context", e);
+            throw new IllegalStateException("Failed to query IAudioControl#getBusForContext", e);
+        }
+    }
+
+    @Override
+    public void linkToDeath(@Nullable AudioControlDeathRecipient deathRecipient) {
+        try {
+            mAudioControlV1.linkToDeath(this::serviceDied, 0);
+            mDeathRecipient = deathRecipient;
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Call to IAudioControl@1.0#linkToDeath failed", e);
+        }
+    }
+
+    @Override
+    public void unlinkToDeath() {
+        try {
+            mAudioControlV1.unlinkToDeath(this::serviceDied);
+            mDeathRecipient = null;
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Call to IAudioControl@1.0#unlinkToDeath failed", e);
+        }
+    }
+
+    private void serviceDied(long cookie) {
+        Log.w(TAG, "IAudioControl@1.0 died. Fetching new handle");
+        mAudioControlV1 = AudioControlWrapperV1.getService();
+        linkToDeath(mDeathRecipient);
+        if (mDeathRecipient != null) {
+            mDeathRecipient.serviceDied();
+        }
+    }
+
+
+}
diff --git a/service/src/com/android/car/audio/hal/AudioControlWrapperV2.java b/service/src/com/android/car/audio/hal/AudioControlWrapperV2.java
new file mode 100644
index 0000000..c623c15
--- /dev/null
+++ b/service/src/com/android/car/audio/hal/AudioControlWrapperV2.java
@@ -0,0 +1,155 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import android.hardware.automotive.audiocontrol.V2_0.IAudioControl;
+import android.hardware.automotive.audiocontrol.V2_0.ICloseHandle;
+import android.hardware.automotive.audiocontrol.V2_0.IFocusListener;
+import android.media.AudioAttributes;
+import android.media.AudioAttributes.AttributeUsage;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.annotation.Nullable;
+
+import java.io.PrintWriter;
+import java.util.NoSuchElementException;
+import java.util.Objects;
+
+final class AudioControlWrapperV2 implements AudioControlWrapper {
+    private static final String TAG = AudioControlWrapperV2.class.getSimpleName();
+
+    private IAudioControl mAudioControlV2;
+
+    private AudioControlDeathRecipient mDeathRecipient;
+    private ICloseHandle mCloseHandle;
+
+    public static @Nullable IAudioControl getService() {
+        try {
+            return IAudioControl.getService(true);
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Failed to get IAudioControl@2.0 service", e);
+        } catch (NoSuchElementException e) {
+            return null;
+        }
+    }
+
+    AudioControlWrapperV2(IAudioControl audioControlV2) {
+        mAudioControlV2 = Objects.requireNonNull(audioControlV2);
+    }
+
+    @Override
+    public void unregisterFocusListener() {
+        if (mCloseHandle != null) {
+            try {
+                mCloseHandle.close();
+            } catch (RemoteException e) {
+                Log.e(TAG, "Failed to close focus listener", e);
+            } finally {
+                mCloseHandle = null;
+            }
+        }
+    }
+
+    @Override
+    public boolean supportsHalAudioFocus() {
+        return true;
+    }
+
+    @Override
+    public void registerFocusListener(IFocusListener focusListener) {
+        Log.d(TAG, "Registering focus listener on AudioControl HAL");
+        try {
+            mCloseHandle = mAudioControlV2.registerFocusListener(focusListener);
+        } catch (RemoteException e) {
+            Log.e(TAG, "Failed to register focus listener");
+            throw new IllegalStateException("IAudioControl#registerFocusListener failed", e);
+        }
+    }
+
+    @Override
+    public void onAudioFocusChange(@AttributeUsage int usage, int zoneId, int focusChange) {
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "onAudioFocusChange: usage " + AudioAttributes.usageToString(usage)
+                    + ", zoneId " + zoneId + ", focusChange " + focusChange);
+        }
+        try {
+            mAudioControlV2.onAudioFocusChange(usage, zoneId, focusChange);
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Failed to query IAudioControl#onAudioFocusChange", e);
+        }
+    }
+
+    /**
+     * Dumps the current state of the {@code AudioControlWrapperV2}.
+     *
+     * @param indent indent to append to each new line.
+     * @param writer stream to write current state.
+     */
+    @Override
+    public void dump(String indent, PrintWriter writer) {
+        writer.printf("%s*AudioControlWrapperV2*\n", indent);
+        writer.printf("%s\tFocus listener registered on HAL? %b", indent, (mCloseHandle != null));
+    }
+
+    @Override
+    public void setFadeTowardFront(float value) {
+        try {
+            mAudioControlV2.setFadeTowardFront(value);
+        } catch (RemoteException e) {
+            Log.e(TAG, "setFadeTowardFront failed", e);
+        }
+    }
+
+    @Override
+    public void setBalanceTowardRight(float value) {
+        try {
+            mAudioControlV2.setBalanceTowardRight(value);
+        } catch (RemoteException e) {
+            Log.e(TAG, "setBalanceTowardRight failed", e);
+        }
+    }
+
+    @Override
+    public void linkToDeath(@Nullable AudioControlDeathRecipient deathRecipient) {
+        try {
+            mAudioControlV2.linkToDeath(this::serviceDied, 0);
+            mDeathRecipient = deathRecipient;
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Call to IAudioControl@2.0#linkToDeath failed", e);
+        }
+    }
+
+    @Override
+    public void unlinkToDeath() {
+        try {
+            mAudioControlV2.unlinkToDeath(this::serviceDied);
+            mDeathRecipient = null;
+        } catch (RemoteException e) {
+            throw new IllegalStateException("Call to IAudioControl@2.0#unlinkToDeath failed", e);
+        }
+    }
+
+    private void serviceDied(long cookie) {
+        Log.w(TAG, "IAudioControl@2.0 died. Fetching new handle");
+        mAudioControlV2 = AudioControlWrapperV2.getService();
+        linkToDeath(mDeathRecipient);
+        if (mDeathRecipient != null) {
+            mDeathRecipient.serviceDied();
+        }
+    }
+}
diff --git a/service/src/com/android/car/audio/hal/HalAudioFocus.java b/service/src/com/android/car/audio/hal/HalAudioFocus.java
new file mode 100644
index 0000000..eff0168
--- /dev/null
+++ b/service/src/com/android/car/audio/hal/HalAudioFocus.java
@@ -0,0 +1,266 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import static android.media.AudioManager.AUDIOFOCUS_LOSS;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_DELAYED;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_FAILED;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
+
+import android.car.media.CarAudioManager;
+import android.hardware.automotive.audiocontrol.V2_0.IFocusListener;
+import android.media.AudioAttributes;
+import android.media.AudioAttributes.AttributeUsage;
+import android.media.AudioFocusRequest;
+import android.media.AudioManager;
+import android.os.Bundle;
+import android.os.RemoteException;
+import android.util.Log;
+import android.util.SparseArray;
+
+import androidx.annotation.NonNull;
+
+import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.Preconditions;
+
+import java.io.PrintWriter;
+import java.util.Objects;
+
+/**
+ * Manages focus requests from the HAL on a per-zone per-usage basis
+ */
+public final class HalAudioFocus extends IFocusListener.Stub {
+    private static final String TAG = HalAudioFocus.class.getSimpleName();
+
+    private final AudioManager mAudioManager;
+    private final AudioControlWrapper mAudioControlWrapper;
+
+    private final Object mLock = new Object();
+
+    // Map of Maps. Top level keys are ZoneIds. Second level keys are usages.
+    // Values are HalAudioFocusRequests
+    @GuardedBy("mImplLock")
+    private final SparseArray<SparseArray<HalAudioFocusRequest>> mHalFocusRequestsByZoneAndUsage;
+
+    public HalAudioFocus(@NonNull AudioManager audioManager,
+            @NonNull AudioControlWrapper audioControlWrapper,
+            @NonNull int[] audioZoneIds) {
+        mAudioManager = Objects.requireNonNull(audioManager);
+        mAudioControlWrapper = Objects.requireNonNull(audioControlWrapper);
+        Objects.requireNonNull(audioZoneIds);
+
+        mHalFocusRequestsByZoneAndUsage = new SparseArray<>(audioZoneIds.length);
+        for (int zoneId : audioZoneIds) {
+            mHalFocusRequestsByZoneAndUsage.append(zoneId, new SparseArray<>());
+        }
+    }
+
+    /**
+     * Registers {@code IFocusListener} on {@code AudioControlWrapper} to receive HAL audio focus
+     * request and abandon calls.
+     */
+    public void registerFocusListener() {
+        mAudioControlWrapper.registerFocusListener(this);
+    }
+
+    /**
+     * Unregisters {@code IFocusListener} from {@code AudioControlWrapper}.
+     */
+    public void unregisterFocusListener() {
+        mAudioControlWrapper.unregisterFocusListener();
+    }
+
+    @Override
+    public void requestAudioFocus(@AttributeUsage int usage, int zoneId, int focusGain) {
+        Preconditions.checkArgument(mHalFocusRequestsByZoneAndUsage.contains(zoneId),
+                "Invalid zoneId %d provided in requestAudioFocus", zoneId);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Requesting focus gain " + focusGain + " with usage "
+                    + AudioAttributes.usageToString(usage) + " and zoneId " + zoneId);
+        }
+        synchronized (mLock) {
+            HalAudioFocusRequest currentRequest = mHalFocusRequestsByZoneAndUsage.get(zoneId).get(
+                    usage);
+            if (currentRequest != null) {
+                if (Log.isLoggable(TAG, Log.DEBUG)) {
+                    Log.d(TAG, "A request already exists for zoneId " + zoneId + " and usage "
+                            + usage);
+                }
+                mAudioControlWrapper.onAudioFocusChange(usage, zoneId, currentRequest.mFocusStatus);
+            } else {
+                makeAudioFocusRequestLocked(usage, zoneId, focusGain);
+            }
+        }
+    }
+
+    @Override
+    public void abandonAudioFocus(int usage, int zoneId) throws RemoteException {
+        Preconditions.checkArgument(mHalFocusRequestsByZoneAndUsage.contains(zoneId),
+                "Invalid zoneId %d provided in abandonAudioFocus", zoneId);
+        if (Log.isLoggable(TAG, Log.DEBUG)) {
+            Log.d(TAG, "Abandoning focus with usage " + AudioAttributes.usageToString(usage)
+                    + " for zoneId " + zoneId);
+        }
+        synchronized (mLock) {
+            abandonAudioFocusLocked(usage, zoneId);
+        }
+    }
+
+    /**
+     * Clear out all existing focus requests. Called when HAL dies.
+     */
+    public void reset() {
+        Log.d(TAG, "Resetting HAL Audio Focus requests");
+        synchronized (mLock) {
+            for (int i = 0; i < mHalFocusRequestsByZoneAndUsage.size(); i++) {
+                int zoneId = mHalFocusRequestsByZoneAndUsage.keyAt(i);
+                SparseArray<HalAudioFocusRequest> requestsByUsage =
+                        mHalFocusRequestsByZoneAndUsage.valueAt(i);
+                int usageCount = requestsByUsage.size();
+                for (int j = 0; j < usageCount; j++) {
+                    int usage = requestsByUsage.keyAt(j);
+                    abandonAudioFocusLocked(usage, zoneId);
+                }
+            }
+        }
+    }
+
+    /**
+     * dumps the current state of the HalAudioFocus
+     *
+     * @param indent indent to append to each new line
+     * @param writer stream to write current state
+     */
+    public void dump(String indent, PrintWriter writer) {
+        writer.printf("%s*HalAudioFocus*\n", indent);
+
+        writer.printf("%s\tCurrent focus requests:\n", indent);
+        for (int i = 0; i < mHalFocusRequestsByZoneAndUsage.size(); i++) {
+            int zoneId = mHalFocusRequestsByZoneAndUsage.keyAt(i);
+            writer.printf("%s\t\tZone %s:\n", indent, zoneId);
+
+            SparseArray<HalAudioFocusRequest> requestsByUsage =
+                    mHalFocusRequestsByZoneAndUsage.valueAt(i);
+            for (int j = 0; j < requestsByUsage.size(); j++) {
+                int usage = requestsByUsage.keyAt(j);
+                HalAudioFocusRequest request = requestsByUsage.valueAt(j);
+                writer.printf("%s\t\t\t%s - focusGain: %s\n", indent,
+                        AudioAttributes.usageToString(usage), request.mFocusStatus);
+            }
+        }
+    }
+
+    private void abandonAudioFocusLocked(int usage, int zoneId) {
+        HalAudioFocusRequest currentRequest = mHalFocusRequestsByZoneAndUsage.get(zoneId)
+                .removeReturnOld(usage);
+
+        if (currentRequest == null) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "No focus to abandon for usage " + AudioAttributes.usageToString(usage)
+                        + " and zoneId " + zoneId);
+            }
+            return;
+        }
+
+        int result = mAudioManager.abandonAudioFocusRequest(currentRequest.mAudioFocusRequest);
+        if (result == AUDIOFOCUS_REQUEST_GRANTED) {
+            if (Log.isLoggable(TAG, Log.DEBUG)) {
+                Log.d(TAG, "Abandoned focus for usage " + AudioAttributes.usageToString(usage)
+                        + "and zoneId " + zoneId);
+            }
+            mAudioControlWrapper.onAudioFocusChange(usage, zoneId, AUDIOFOCUS_LOSS);
+        } else {
+            Log.w(TAG,
+                    "Failed to abandon focus for usage " + AudioAttributes.usageToString(usage)
+                            + " and zoneId " + zoneId);
+        }
+    }
+
+    private AudioAttributes generateAudioAttributes(int usage, int zoneId) {
+        AudioAttributes.Builder builder = new AudioAttributes.Builder();
+        Bundle bundle = new Bundle();
+        bundle.putInt(CarAudioManager.AUDIOFOCUS_EXTRA_REQUEST_ZONE_ID, zoneId);
+        builder.addBundle(bundle);
+
+        if (AudioAttributes.isSystemUsage(usage)) {
+            builder.setSystemUsage(usage);
+        } else {
+            builder.setUsage(usage);
+        }
+        return builder.build();
+    }
+
+    private AudioFocusRequest generateFocusRequestLocked(int usage, int zoneId, int focusGain) {
+        AudioAttributes attributes = generateAudioAttributes(usage, zoneId);
+        return new AudioFocusRequest.Builder(focusGain)
+                .setAudioAttributes(attributes)
+                .setOnAudioFocusChangeListener((int focusChange) -> {
+                    onAudioFocusChange(usage, zoneId, focusChange);
+                })
+                .build();
+    }
+
+    private void onAudioFocusChange(int usage, int zoneId, int focusChange) {
+        synchronized (mLock) {
+            HalAudioFocusRequest currentRequest = mHalFocusRequestsByZoneAndUsage.get(zoneId).get(
+                    usage);
+            if (currentRequest != null) {
+                if (focusChange == AUDIOFOCUS_LOSS) {
+                    mHalFocusRequestsByZoneAndUsage.get(zoneId).remove(usage);
+                } else {
+                    currentRequest.mFocusStatus = focusChange;
+                }
+                mAudioControlWrapper.onAudioFocusChange(usage, zoneId, focusChange);
+            }
+
+        }
+    }
+
+    private void makeAudioFocusRequestLocked(@AttributeUsage int usage, int zoneId, int focusGain) {
+        AudioFocusRequest audioFocusRequest = generateFocusRequestLocked(usage, zoneId, focusGain);
+
+        int requestResult = mAudioManager.requestAudioFocus(audioFocusRequest);
+
+        int resultingFocusGain = focusGain;
+
+        if (requestResult == AUDIOFOCUS_REQUEST_GRANTED) {
+            HalAudioFocusRequest halAudioFocusRequest = new HalAudioFocusRequest(audioFocusRequest,
+                    focusGain);
+            mHalFocusRequestsByZoneAndUsage.get(zoneId).append(usage, halAudioFocusRequest);
+        } else if (requestResult == AUDIOFOCUS_REQUEST_FAILED) {
+            resultingFocusGain = AUDIOFOCUS_LOSS;
+        } else if (requestResult == AUDIOFOCUS_REQUEST_DELAYED) {
+            Log.w(TAG, "Delayed result for request with usage "
+                    + AudioAttributes.usageToString(usage) + ", zoneId " + zoneId
+                    + ", and focusGain " + focusGain);
+            resultingFocusGain = AUDIOFOCUS_LOSS;
+        }
+
+        mAudioControlWrapper.onAudioFocusChange(usage, zoneId, resultingFocusGain);
+    }
+
+    private final class HalAudioFocusRequest {
+        final AudioFocusRequest mAudioFocusRequest;
+
+        int mFocusStatus;
+
+        HalAudioFocusRequest(AudioFocusRequest audioFocusRequest, int focusStatus) {
+            mAudioFocusRequest = audioFocusRequest;
+            mFocusStatus = focusStatus;
+        }
+    }
+}
diff --git a/service/src/com/android/car/cluster/InstrumentClusterService.java b/service/src/com/android/car/cluster/InstrumentClusterService.java
index 6be45b5..d8ac6ac 100644
--- a/service/src/com/android/car/cluster/InstrumentClusterService.java
+++ b/service/src/com/android/car/cluster/InstrumentClusterService.java
@@ -21,12 +21,14 @@
 import android.annotation.Nullable;
 import android.annotation.SystemApi;
 import android.app.ActivityOptions;
+import android.car.Car;
 import android.car.CarAppFocusManager;
 import android.car.cluster.IInstrumentClusterManagerCallback;
 import android.car.cluster.IInstrumentClusterManagerService;
 import android.car.cluster.renderer.IInstrumentCluster;
 import android.car.cluster.renderer.IInstrumentClusterHelper;
 import android.car.cluster.renderer.IInstrumentClusterNavigation;
+import android.car.navigation.CarNavigationInstrumentCluster;
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
@@ -50,12 +52,15 @@
 import com.android.car.CarLocalServices;
 import com.android.car.CarLog;
 import com.android.car.CarServiceBase;
+import com.android.car.ICarImpl;
 import com.android.car.R;
 import com.android.car.am.FixedActivityService;
 import com.android.car.user.CarUserService;
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.Objects;
 
 /**
@@ -69,6 +74,9 @@
     private static final String TAG = CarLog.TAG_CLUSTER;
     private static final ContextOwner NO_OWNER = new ContextOwner(0, 0);
 
+    private static final long RENDERER_SERVICE_WAIT_TIMEOUT_MS = 5000;
+    private static final long RENDERER_WAIT_MAX_RETRY = 2;
+
     private final Context mContext;
     private final AppFocusService mAppFocusService;
     private final CarInputService mCarInputService;
@@ -85,17 +93,65 @@
     private IInstrumentCluster mRendererService;
     // If renderer service crashed / stopped and this class fails to rebind with it immediately,
     // we should wait some time before next attempt. This may happen during APK update for example.
-    @GuardedBy("mLock")
-    private DeferredRebinder mDeferredRebinder;
+    private final DeferredRebinder mDeferredRebinder;
     // Whether {@link android.car.cluster.renderer.InstrumentClusterRendererService} is bound
     // (although not necessarily connected)
     @GuardedBy("mLock")
     private boolean mRendererBound = false;
 
+    private final String mRenderingServiceConfig;
+
+
+
+    @GuardedBy("mLock")
+    private IInstrumentClusterNavigation mIInstrumentClusterNavigationFromRenderer;
+
+    private final IInstrumentClusterNavigation mIInstrumentClusterNavigationnWrapper =
+            new IInstrumentClusterNavigation.Stub() {
+        @Override
+        public void onNavigationStateChanged(Bundle bundle) {
+            ICarImpl.assertPermission(mContext, Car.PERMISSION_CAR_NAVIGATION_MANAGER);
+            // No retry here as new events will be sent later.
+            IInstrumentClusterNavigation navigationBinder = getNavigationBinder(
+                    /* retryOnFail= */ false);
+            if (navigationBinder == null) {
+                Log.e(TAG, "onNavigationStateChanged failed, renderer not ready, Bundle:"
+                        + bundle);
+                return;
+            }
+            try {
+                navigationBinder.onNavigationStateChanged(bundle);
+            } catch (RemoteException e) {
+                Log.e(TAG, "onNavigationStateChanged failed, bundle:" + bundle, e);
+            }
+        }
+
+        @Override
+        public CarNavigationInstrumentCluster getInstrumentClusterInfo() {
+            ICarImpl.assertPermission(mContext, Car.PERMISSION_CAR_NAVIGATION_MANAGER);
+            // Failure in this call leads into an issue in the client, so throw exception
+            // when it cannot be recovered / retried.
+            for (int i = 0; i < RENDERER_WAIT_MAX_RETRY; i++) {
+                IInstrumentClusterNavigation navigationBinder = getNavigationBinder(
+                        /* retryOnFail= */ true);
+                if (navigationBinder == null) {
+                    continue;
+                }
+                try {
+                    return navigationBinder.getInstrumentClusterInfo();
+                } catch (RemoteException e) {
+                    Log.e(TAG, "getInstrumentClusterInfo failed", e);
+                }
+            }
+            throw new IllegalStateException("cannot access renderer service");
+        }
+    };
+
     /**
      * Connection to {@link android.car.cluster.renderer.InstrumentClusterRendererService}
      */
-    private final ServiceConnection mRendererServiceConnection = new ServiceConnection() {
+    @VisibleForTesting
+    final ServiceConnection mRendererServiceConnection = new ServiceConnection() {
         @Override
         public void onServiceConnected(ComponentName name, IBinder binder) {
             if (Log.isLoggable(TAG, Log.DEBUG)) {
@@ -106,6 +162,7 @@
             synchronized (mLock) {
                 mRendererService = service;
                 navContextOwner = mNavContextOwner;
+                mLock.notifyAll();
             }
             if (navContextOwner != null && service != null) {
                 notifyNavContextOwnerChanged(service, navContextOwner);
@@ -118,16 +175,13 @@
                 Log.d(TAG, "onServiceDisconnected, name: " + name);
             }
             mContext.unbindService(this);
-            DeferredRebinder rebinder;
             synchronized (mLock) {
                 mRendererBound = false;
                 mRendererService = null;
-                if (mDeferredRebinder == null) {
-                    mDeferredRebinder = new DeferredRebinder();
-                }
-                rebinder = mDeferredRebinder;
+                mIInstrumentClusterNavigationFromRenderer = null;
+
             }
-            rebinder.rebind();
+            mDeferredRebinder.rebind();
         }
     };
 
@@ -158,6 +212,53 @@
         mContext = context;
         mAppFocusService = appFocusService;
         mCarInputService = carInputService;
+        mRenderingServiceConfig = mContext.getString(R.string.instrumentClusterRendererService);
+        mDeferredRebinder = new DeferredRebinder(this);
+    }
+
+    @GuardedBy("mLock")
+    private IInstrumentCluster waitForRendererLocked() {
+        if (mRendererService == null) {
+            try {
+                mLock.wait(RENDERER_SERVICE_WAIT_TIMEOUT_MS);
+            } catch (InterruptedException e) {
+                Log.d(TAG, "waitForRenderer, interrupted", e);
+                Thread.currentThread().interrupt();
+            }
+        }
+        return mRendererService;
+    }
+
+    private IInstrumentClusterNavigation getNavigationBinder(boolean retryOnFail) {
+        IInstrumentCluster renderer;
+        synchronized (mLock) {
+            if (mIInstrumentClusterNavigationFromRenderer != null) {
+                return mIInstrumentClusterNavigationFromRenderer;
+            }
+            renderer = waitForRendererLocked();
+        }
+        IInstrumentClusterNavigation navigationBinder = null;
+        for (int i = 0; i < RENDERER_WAIT_MAX_RETRY; i++) {
+            if (renderer == null) {
+                synchronized (mLock) {
+                    renderer = waitForRendererLocked();
+                }
+            }
+            try {
+                navigationBinder = renderer.getNavigationService();
+                break;
+            } catch (RemoteException e) {
+                Log.e(TAG, "RemoteException from renderer", e);
+                renderer = null;
+            }
+        }
+        if (navigationBinder == null) {
+            return navigationBinder;
+        }
+        synchronized (mLock) {
+            mIInstrumentClusterNavigationFromRenderer = navigationBinder;
+        }
+        return navigationBinder;
     }
 
     @Override
@@ -170,8 +271,17 @@
         mCarInputService.setInstrumentClusterKeyListener(this /* KeyEventListener */);
         // TODO(b/124246323) Start earlier once data storage for cluster is clarified
         //  for early boot.
+        if (!isRendererServiceEnabled()) {
+            synchronized (mLock) {
+                mRendererBound = false;
+            }
+            return;
+        }
         CarLocalServices.getService(CarUserService.class).runOnUser0Unlock(() -> {
-            mRendererBound = bindInstrumentClusterRendererService();
+            boolean bound = bindInstrumentClusterRendererService();
+            synchronized (mLock) {
+                mRendererBound = bound;
+            }
         });
     }
 
@@ -182,18 +292,25 @@
         }
 
         mAppFocusService.unregisterContextOwnerChangedCallback(this);
-        if (mRendererBound) {
-            mContext.unbindService(mRendererServiceConnection);
-            mRendererBound = false;
+        synchronized (mLock) {
+            if (mRendererBound) {
+                mContext.unbindService(mRendererServiceConnection);
+                mRendererBound = false;
+            }
         }
     }
 
     @Override
     public void dump(PrintWriter writer) {
         writer.println("**" + getClass().getSimpleName() + "**");
-        writer.println("bound with renderer: " + mRendererBound);
-        writer.println("renderer service: " + mRendererService);
-        writer.println("context owner: " + mNavContextOwner);
+        synchronized (mLock) {
+            writer.println("bound with renderer: " + mRendererBound);
+            writer.println("renderer service: " + mRendererService);
+            writer.println("context owner: " + mNavContextOwner);
+            writer.println("mRenderingServiceConfig:" + mRenderingServiceConfig);
+            writer.println("mIInstrumentClusterNavigationFromRenderer:"
+                    + mIInstrumentClusterNavigationFromRenderer);
+        }
     }
 
     @Override
@@ -243,24 +360,29 @@
         }
     }
 
-    private boolean bindInstrumentClusterRendererService() {
+    private boolean isRendererServiceEnabled() {
+        if (TextUtils.isEmpty(mRenderingServiceConfig)) {
+            Log.d(TAG, "Instrument cluster renderer was not configured");
+            return false;
+        }
         boolean explicitlyDisabled = "true".equals(Settings.Global
                 .getString(mContext.getContentResolver(), DISABLE_INSTRUMENTATION_SERVICE));
         if (explicitlyDisabled) {
             Log.i(TAG, "Instrument cluster renderer explicitly disabled by settings");
             return false;
         }
+        return true;
+    }
 
-        String rendererService = mContext.getString(R.string.instrumentClusterRendererService);
-        if (TextUtils.isEmpty(rendererService)) {
-            Log.i(TAG, "Instrument cluster renderer was not configured");
+    private boolean bindInstrumentClusterRendererService() {
+        if (!isRendererServiceEnabled()) {
             return false;
         }
 
-        Log.d(TAG, "bindInstrumentClusterRendererService, component: " + rendererService);
+        Log.d(TAG, "bindInstrumentClusterRendererService, component: " + mRenderingServiceConfig);
 
         Intent intent = new Intent();
-        intent.setComponent(ComponentName.unflattenFromString(rendererService));
+        intent.setComponent(ComponentName.unflattenFromString(mRenderingServiceConfig));
         // Litle bit inefficiency here as Intent.getIBinderExtra() is a hidden API.
         Bundle bundle = new Bundle();
         bundle.putBinder(EXTRA_BUNDLE_KEY_FOR_INSTRUMENT_CLUSTER_HELPER,
@@ -272,13 +394,11 @@
 
     @Nullable
     public IInstrumentClusterNavigation getNavigationService() {
-        try {
-            IInstrumentCluster service = getInstrumentClusterRendererService();
-            return service == null ? null : service.getNavigationService();
-        } catch (RemoteException e) {
-            Log.e(TAG, "getNavigationServiceBinder" , e);
+        if (!isRendererServiceEnabled()) {
             return null;
+
         }
+        return mIInstrumentClusterNavigationnWrapper;
     }
 
     /**
@@ -306,11 +426,9 @@
     }
 
     private IInstrumentCluster getInstrumentClusterRendererService() {
-        IInstrumentCluster service;
         synchronized (mLock) {
-            service = mRendererService;
+            return mRendererService;
         }
-        return service;
     }
 
     private static class ContextOwner {
@@ -365,14 +483,27 @@
         }
     }
 
-    private class DeferredRebinder extends Handler {
+    private static final class DeferredRebinder extends Handler {
+        private static final String TAG = DeferredRebinder.class.getSimpleName();
+
         private static final long NEXT_REBIND_ATTEMPT_DELAY_MS = 1000L;
         private static final int NUMBER_OF_ATTEMPTS = 10;
 
-        public void rebind() {
-            mRendererBound = bindInstrumentClusterRendererService();
+        private final WeakReference<InstrumentClusterService> mService;
 
-            if (!mRendererBound) {
+        private DeferredRebinder(InstrumentClusterService service) {
+            mService = new WeakReference<InstrumentClusterService>(service);
+        }
+
+        public void rebind() {
+            InstrumentClusterService service = mService.get();
+            if (service == null) {
+                Log.i(TAG, "rebind null service");
+                return;
+            }
+            service.mRendererBound = service.bindInstrumentClusterRendererService();
+
+            if (!service.mRendererBound) {
                 removeMessages(0);
                 sendMessageDelayed(obtainMessage(0, NUMBER_OF_ATTEMPTS, 0),
                         NEXT_REBIND_ATTEMPT_DELAY_MS);
@@ -381,9 +512,14 @@
 
         @Override
         public void handleMessage(Message msg) {
-            mRendererBound = bindInstrumentClusterRendererService();
+            InstrumentClusterService service = mService.get();
+            if (service == null) {
+                Log.i(TAG, "handleMessage null service");
+                return;
+            }
+            service.mRendererBound = service.bindInstrumentClusterRendererService();
 
-            if (mRendererBound) {
+            if (service.mRendererBound) {
                 Log.w(TAG, "Failed to bound to render service, next attempt in "
                         + NEXT_REBIND_ATTEMPT_DELAY_MS + "ms.");
 
diff --git a/service/src/com/android/car/hal/HalClient.java b/service/src/com/android/car/hal/HalClient.java
index db85892..bb96957 100644
--- a/service/src/com/android/car/hal/HalClient.java
+++ b/service/src/com/android/car/hal/HalClient.java
@@ -32,7 +32,9 @@
 import android.util.Log;
 
 import com.android.car.CarLog;
+import com.android.internal.annotations.VisibleForTesting;
 
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Arrays;
 
@@ -40,7 +42,11 @@
  * Vehicle HAL client. Interacts directly with Vehicle HAL interface {@link IVehicle}. Contains
  * some logic for retriable properties, redirects Vehicle notifications into given looper thread.
  */
-class  HalClient {
+final class HalClient {
+
+    private static final String TAG = CarLog.TAG_HAL;
+    private static final boolean DEBUG = false;
+
     /**
      * If call to vehicle HAL returns StatusCode.TRY_AGAIN, than {@link HalClient} will retry to
      * invoke that method again for this amount of milliseconds.
@@ -50,8 +56,9 @@
     private static final int SLEEP_BETWEEN_RETRIABLE_INVOKES_MS = 50;
 
     private final IVehicle mVehicle;
-
     private final IVehicleCallback mInternalCallback;
+    private final int mWaitCapMs;
+    private final int mSleepMs;
 
     /**
      * Create HalClient object
@@ -61,9 +68,18 @@
      * @param callback to propagate notifications from Vehicle HAL in the provided looper thread
      */
     HalClient(IVehicle vehicle, Looper looper, IVehicleCallback callback) {
+        this(vehicle, looper, callback, WAIT_CAP_FOR_RETRIABLE_RESULT_MS,
+                SLEEP_BETWEEN_RETRIABLE_INVOKES_MS);
+    }
+
+    @VisibleForTesting
+    HalClient(IVehicle vehicle, Looper looper, IVehicleCallback callback,
+            int waitCapMs, int sleepMs) {
         mVehicle = vehicle;
         Handler handler = new CallbackHandler(looper, callback);
         mInternalCallback = new VehicleCallback(handler);
+        mWaitCapMs = waitCapMs;
+        mSleepMs = sleepMs;
     }
 
     ArrayList<VehiclePropConfig> getAllPropConfigs() throws RemoteException {
@@ -83,45 +99,44 @@
             try {
                 return mVehicle.set(propValue);
             } catch (RemoteException e) {
-                Log.e(CarLog.TAG_HAL, "Failed to set value", e);
+                Log.e(TAG, getValueErrorMessage("set", propValue), e);
                 return StatusCode.TRY_AGAIN;
             }
-        }, WAIT_CAP_FOR_RETRIABLE_RESULT_MS, SLEEP_BETWEEN_RETRIABLE_INVOKES_MS);
+        }, mWaitCapMs, mSleepMs);
 
         if (StatusCode.INVALID_ARG == status) {
-            throw new IllegalArgumentException(
-                    String.format("Failed to set value for: 0x%s, areaId: 0x%s",
-                            Integer.toHexString(propValue.prop),
-                            Integer.toHexString(propValue.areaId)));
+            throw new IllegalArgumentException(getValueErrorMessage("set", propValue));
         }
 
         if (StatusCode.OK != status) {
-            Log.i(CarLog.TAG_HAL, String.format(
-                    "Failed to set property: 0x%s, areaId: 0x%s, code: %d",
-                    Integer.toHexString(propValue.prop),
-                    Integer.toHexString(propValue.areaId),
-                    status));
+            Log.e(TAG, getPropertyErrorMessage("set", propValue, status));
             throw new ServiceSpecificException(status,
                     "Failed to set property: 0x" + Integer.toHexString(propValue.prop)
                             + " in areaId: 0x" + Integer.toHexString(propValue.areaId));
         }
     }
 
+    private String getValueErrorMessage(String action, VehiclePropValue propValue) {
+        return String.format("Failed to %s value for: 0x%s, areaId: 0x%s", action,
+                Integer.toHexString(propValue.prop), Integer.toHexString(propValue.areaId));
+    }
+
+    private String getPropertyErrorMessage(String action, VehiclePropValue propValue, int status) {
+        return String.format("Failed to %s property: 0x%s, areaId: 0x%s, code: %d (%s)", action,
+                Integer.toHexString(propValue.prop), Integer.toHexString(propValue.areaId),
+                status, StatusCode.toString(status));
+    }
+
     VehiclePropValue getValue(VehiclePropValue requestedPropValue) {
         final ObjectWrapper<VehiclePropValue> valueWrapper = new ObjectWrapper<>();
         int status = invokeRetriable(() -> {
             ValueResult res = internalGet(requestedPropValue);
             valueWrapper.object = res.propValue;
             return res.status;
-        }, WAIT_CAP_FOR_RETRIABLE_RESULT_MS, SLEEP_BETWEEN_RETRIABLE_INVOKES_MS);
+        }, mWaitCapMs, mSleepMs);
 
-        int propId = requestedPropValue.prop;
-        int areaId = requestedPropValue.areaId;
         if (StatusCode.INVALID_ARG == status) {
-            throw new IllegalArgumentException(
-                    String.format("Failed to get value for: 0x%s, areaId: 0x%s",
-                            Integer.toHexString(propId),
-                            Integer.toHexString(areaId)));
+            throw new IllegalArgumentException(getValueErrorMessage("get", requestedPropValue));
         }
 
         if (StatusCode.OK != status || valueWrapper.object == null) {
@@ -130,11 +145,7 @@
             if (StatusCode.OK == status) {
                 status = StatusCode.NOT_AVAILABLE;
             }
-            Log.i(CarLog.TAG_HAL, String.format(
-                    "Failed to get property: 0x%s, areaId: 0x%s, code: %d",
-                    Integer.toHexString(requestedPropValue.prop),
-                    Integer.toHexString(requestedPropValue.areaId),
-                    status));
+            Log.e(TAG, getPropertyErrorMessage("get", requestedPropValue, status));
             throw new ServiceSpecificException(status,
                     "Failed to get property: 0x" + Integer.toHexString(requestedPropValue.prop)
                             + " in areaId: 0x" + Integer.toHexString(requestedPropValue.areaId));
@@ -152,7 +163,7 @@
                         result.propValue = propValue;
                     });
         } catch (RemoteException e) {
-            Log.e(CarLog.TAG_HAL, "Failed to get value from vehicle HAL", e);
+            Log.e(TAG, getValueErrorMessage("get", requestedPropValue), e);
             result.status = StatusCode.TRY_AGAIN;
         }
 
@@ -168,28 +179,35 @@
         int status = callback.action();
         long startTime = elapsedRealtime();
         while (StatusCode.TRY_AGAIN == status && (elapsedRealtime() - startTime) < timeoutMs) {
+            if (DEBUG) {
+                Log.d(TAG, "Status before sleeping " + sleepMs + "ms: "
+                        + StatusCode.toString(status));
+            }
             try {
                 Thread.sleep(sleepMs);
             } catch (InterruptedException e) {
-                Log.e(CarLog.TAG_HAL, "Thread was interrupted while waiting for vehicle HAL.", e);
+                Thread.currentThread().interrupt();
+                Log.e(TAG, "Thread was interrupted while waiting for vehicle HAL.", e);
                 break;
             }
 
             status = callback.action();
+            if (DEBUG) Log.d(TAG, "Status after waking up: " + StatusCode.toString(status));
         }
+        if (DEBUG) Log.d(TAG, "Returning status: " + StatusCode.toString(status));
         return status;
     }
 
-    private static class ObjectWrapper<T> {
+    private static final class ObjectWrapper<T> {
         T object;
     }
 
-    private static class ValueResult {
+    private static final class ValueResult {
         int status;
         VehiclePropValue propValue;
     }
 
-    private static class PropertySetError {
+    private static final class PropertySetError {
         final int errorCode;
         final int propId;
         final int areaId;
@@ -201,45 +219,49 @@
         }
     }
 
-    private static class CallbackHandler extends Handler {
+    private static final class CallbackHandler extends Handler {
         private static final int MSG_ON_PROPERTY_SET = 1;
         private static final int MSG_ON_PROPERTY_EVENT = 2;
         private static final int MSG_ON_SET_ERROR = 3;
 
-        private final IVehicleCallback mCallback;
+        private final WeakReference<IVehicleCallback> mCallback;
 
         CallbackHandler(Looper looper, IVehicleCallback callback) {
             super(looper);
-            mCallback = callback;
+            mCallback = new WeakReference<IVehicleCallback>(callback);
         }
 
         @Override
         public void handleMessage(Message msg) {
-            super.handleMessage(msg);
+            IVehicleCallback callback = mCallback.get();
+            if (callback == null) {
+                Log.i(TAG, "handleMessage null callback");
+                return;
+            }
 
             try {
                 switch (msg.what) {
                     case MSG_ON_PROPERTY_EVENT:
-                        mCallback.onPropertyEvent((ArrayList<VehiclePropValue>) msg.obj);
+                        callback.onPropertyEvent((ArrayList<VehiclePropValue>) msg.obj);
                         break;
                     case MSG_ON_PROPERTY_SET:
-                        mCallback.onPropertySet((VehiclePropValue) msg.obj);
+                        callback.onPropertySet((VehiclePropValue) msg.obj);
                         break;
                     case MSG_ON_SET_ERROR:
                         PropertySetError obj = (PropertySetError) msg.obj;
-                        mCallback.onPropertySetError(obj.errorCode, obj.propId, obj.areaId);
+                        callback.onPropertySetError(obj.errorCode, obj.propId, obj.areaId);
                         break;
                     default:
-                        Log.e(CarLog.TAG_HAL, "Unexpected message: " + msg.what);
+                        Log.e(TAG, "Unexpected message: " + msg.what);
                 }
             } catch (RemoteException e) {
-                Log.e(CarLog.TAG_HAL, "Message failed: " + msg.what);
+                Log.e(TAG, "Message failed: " + msg.what);
             }
         }
     }
 
-    private static class VehicleCallback extends IVehicleCallback.Stub {
-        private Handler mHandler;
+    private static final class VehicleCallback extends IVehicleCallback.Stub {
+        private final Handler mHandler;
 
         VehicleCallback(Handler handler) {
             mHandler = handler;
diff --git a/service/src/com/android/car/hal/PropertyHalService.java b/service/src/com/android/car/hal/PropertyHalService.java
index 192b7ec..15038cd 100644
--- a/service/src/com/android/car/hal/PropertyHalService.java
+++ b/service/src/com/android/car/hal/PropertyHalService.java
@@ -32,6 +32,7 @@
 import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
 import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
 import android.hardware.automotive.vehicle.V2_0.VehiclePropertyType;
+import android.os.Build;
 import android.util.Log;
 import android.util.SparseArray;
 
@@ -374,6 +375,12 @@
                     Log.e(TAG, "Property is not supported: 0x" + toHexString(v.prop));
                     continue;
                 }
+                // Check payload if it is a userdebug build.
+                if (Build.IS_DEBUGGABLE && !mPropIds.checkPayload(v)) {
+                    Log.e(TAG, "Drop event for property: " + v + " because it is failed "
+                            + "in payload checking.");
+                    continue;
+                }
                 int mgrPropId = halToManagerPropId(v.prop);
                 CarPropertyValue<?> propVal;
                 if (isMixedTypeProperty(v.prop)) {
diff --git a/service/src/com/android/car/hal/PropertyHalServiceIds.java b/service/src/com/android/car/hal/PropertyHalServiceIds.java
index b9f3134..3772843 100644
--- a/service/src/com/android/car/hal/PropertyHalServiceIds.java
+++ b/service/src/com/android/car/hal/PropertyHalServiceIds.java
@@ -21,15 +21,34 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.car.Car;
+import android.car.VehicleHvacFanDirection;
 import android.car.hardware.property.VehicleVendorPermission;
+import android.hardware.automotive.vehicle.V2_0.EvConnectorType;
+import android.hardware.automotive.vehicle.V2_0.FuelType;
+import android.hardware.automotive.vehicle.V2_0.PortLocationType;
+import android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat;
+import android.hardware.automotive.vehicle.V2_0.VehicleGear;
+import android.hardware.automotive.vehicle.V2_0.VehicleIgnitionState;
+import android.hardware.automotive.vehicle.V2_0.VehicleLightState;
+import android.hardware.automotive.vehicle.V2_0.VehicleLightSwitch;
+import android.hardware.automotive.vehicle.V2_0.VehicleOilLevel;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
 import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
 import android.hardware.automotive.vehicle.V2_0.VehiclePropertyGroup;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropertyType;
+import android.hardware.automotive.vehicle.V2_0.VehicleSeatOccupancyState;
+import android.hardware.automotive.vehicle.V2_0.VehicleTurnSignal;
+import android.hardware.automotive.vehicle.V2_0.VehicleUnit;
 import android.util.Log;
 import android.util.Pair;
 import android.util.SparseArray;
 
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * Helper class to define which property IDs are used by PropertyHalService.  This class binds the
@@ -45,7 +64,37 @@
      */
     private final SparseArray<Pair<String, String>> mProps;
     private final HashSet<Integer> mPropForUnits;
+    // Key: propId, Value: possible value for the property
+    private final HashMap<Integer, Set<Integer>> mPropToValidValue;
+    private final HashMap<Integer, Integer> mPropToValidBitFlag;
     private static final String TAG = "PropertyHalServiceIds";
+    // Enums are used as return value in Vehicle HAL.
+    private static final Set<Integer> FUEL_TYPE =
+            new HashSet<>(getIntegersFromDataEnums(FuelType.class));
+    private static final Set<Integer> EV_CONNECTOR_TYPE =
+            new HashSet<>(getIntegersFromDataEnums(EvConnectorType.class));
+    private static final Set<Integer> PORT_LOCATION =
+            new HashSet<>(getIntegersFromDataEnums(PortLocationType.class));
+    private static final Set<Integer> VEHICLE_SEAT =
+            new HashSet<>(getIntegersFromDataEnums(VehicleAreaSeat.class));
+    private static final Set<Integer> OIL_LEVEL =
+            new HashSet<>(getIntegersFromDataEnums(VehicleOilLevel.class));
+    private static final Set<Integer> VEHICLE_GEAR =
+            new HashSet<>(getIntegersFromDataEnums(VehicleGear.class));
+    private static final Set<Integer> TURN_SIGNAL =
+            new HashSet<>(getIntegersFromDataEnums(VehicleTurnSignal.class));
+    private static final Set<Integer> IGNITION_STATE =
+            new HashSet<>(getIntegersFromDataEnums(VehicleIgnitionState.class));
+    private static final Set<Integer> VEHICLE_UNITS =
+            new HashSet<>(getIntegersFromDataEnums(VehicleUnit.class));
+    private static final Set<Integer> SEAT_OCCUPANCY_STATE =
+            new HashSet<>(getIntegersFromDataEnums(VehicleSeatOccupancyState.class));
+    private static final Set<Integer> VEHICLE_LIGHT_STATE =
+            new HashSet<>(getIntegersFromDataEnums(VehicleLightState.class));
+    private static final Set<Integer> VEHICLE_LIGHT_SWITCH =
+            new HashSet<>(getIntegersFromDataEnums(VehicleLightSwitch.class));
+    private static final int HVAC_FAN_DIRECTION_COMBINATIONS =
+            generateAllCombination(VehicleHvacFanDirection.class);
 
     // default vendor permission
     private static final int PERMISSION_CAR_VENDOR_DEFAULT = 0x00000000;
@@ -103,6 +152,8 @@
     public PropertyHalServiceIds() {
         mProps = new SparseArray<>();
         mPropForUnits = new HashSet<>();
+        mPropToValidValue = new HashMap<>();
+        mPropToValidBitFlag = new HashMap<>();
         // Add propertyId and read/write permissions
         // Cabin Properties
         mProps.put(VehicleProperty.DOOR_POS, new Pair<>(
@@ -485,6 +536,42 @@
         mProps.put(VehicleProperty.SUPPORT_CUSTOMIZE_VENDOR_PERMISSION, new Pair<>(
                 Car.PERMISSION_READ_CAR_VENDOR_PERMISSION_INFO,
                 null));
+
+        // mPropToValidValue should contain all properties which has @data_enum in types.hal
+        mPropToValidValue.put(VehicleProperty.INFO_FUEL_TYPE, FUEL_TYPE);
+        mPropToValidValue.put(VehicleProperty.INFO_EV_CONNECTOR_TYPE, EV_CONNECTOR_TYPE);
+        mPropToValidValue.put(VehicleProperty.INFO_FUEL_DOOR_LOCATION, PORT_LOCATION);
+        mPropToValidValue.put(VehicleProperty.INFO_DRIVER_SEAT, VEHICLE_SEAT);
+        mPropToValidValue.put(VehicleProperty.INFO_MULTI_EV_PORT_LOCATIONS, PORT_LOCATION);
+        mPropToValidValue.put(VehicleProperty.ENGINE_OIL_LEVEL, OIL_LEVEL);
+        mPropToValidValue.put(VehicleProperty.GEAR_SELECTION, VEHICLE_GEAR);
+        mPropToValidValue.put(VehicleProperty.CURRENT_GEAR, VEHICLE_GEAR);
+        mPropToValidValue.put(VehicleProperty.TURN_SIGNAL_STATE, TURN_SIGNAL);
+        mPropToValidValue.put(VehicleProperty.IGNITION_STATE, IGNITION_STATE);
+        mPropToValidValue.put(VehicleProperty.HVAC_TEMPERATURE_DISPLAY_UNITS, VEHICLE_UNITS);
+        mPropToValidValue.put(VehicleProperty.DISTANCE_DISPLAY_UNITS, VEHICLE_UNITS);
+        mPropToValidValue.put(VehicleProperty.FUEL_VOLUME_DISPLAY_UNITS, VEHICLE_UNITS);
+        mPropToValidValue.put(VehicleProperty.TIRE_PRESSURE_DISPLAY_UNITS, VEHICLE_UNITS);
+        mPropToValidValue.put(VehicleProperty.EV_BATTERY_DISPLAY_UNITS, VEHICLE_UNITS);
+        mPropToValidValue.put(VehicleProperty.SEAT_OCCUPANCY, SEAT_OCCUPANCY_STATE);
+        mPropToValidValue.put(VehicleProperty.HIGH_BEAM_LIGHTS_STATE, VEHICLE_LIGHT_STATE);
+        mPropToValidValue.put(VehicleProperty.HEADLIGHTS_STATE, VEHICLE_LIGHT_STATE);
+        mPropToValidValue.put(VehicleProperty.FOG_LIGHTS_STATE, VEHICLE_LIGHT_STATE);
+        mPropToValidValue.put(VehicleProperty.HAZARD_LIGHTS_STATE, VEHICLE_LIGHT_STATE);
+        mPropToValidValue.put(VehicleProperty.CABIN_LIGHTS_STATE, VEHICLE_LIGHT_STATE);
+        mPropToValidValue.put(VehicleProperty.READING_LIGHTS_STATE, VEHICLE_LIGHT_STATE);
+        mPropToValidValue.put(VehicleProperty.HEADLIGHTS_SWITCH, VEHICLE_LIGHT_SWITCH);
+        mPropToValidValue.put(VehicleProperty.HIGH_BEAM_LIGHTS_SWITCH, VEHICLE_LIGHT_SWITCH);
+        mPropToValidValue.put(VehicleProperty.FOG_LIGHTS_SWITCH, VEHICLE_LIGHT_SWITCH);
+        mPropToValidValue.put(VehicleProperty.HAZARD_LIGHTS_SWITCH, VEHICLE_LIGHT_SWITCH);
+        mPropToValidValue.put(VehicleProperty.CABIN_LIGHTS_SWITCH, VEHICLE_LIGHT_SWITCH);
+        mPropToValidValue.put(VehicleProperty.READING_LIGHTS_SWITCH, VEHICLE_LIGHT_SWITCH);
+
+        // mPropToValidBitFlag contains all properties which return values are combinations of bits
+        mPropToValidBitFlag.put(VehicleProperty.HVAC_FAN_DIRECTION_AVAILABLE,
+                HVAC_FAN_DIRECTION_COMBINATIONS);
+        mPropToValidBitFlag.put(VehicleProperty.HVAC_FAN_DIRECTION,
+                HVAC_FAN_DIRECTION_COMBINATIONS);
     }
 
     /**
@@ -666,4 +753,108 @@
         }
     }
 
+    /**
+     * Checks property value's format for all properties. Checks property value range if property
+     * has @data_enum flag in types.hal.
+     * @return true if property value's payload is valid.
+     */
+    public boolean checkPayload(VehiclePropValue propValue) {
+        // Mixed property uses config array to indicate the data format. Checked it when convert it
+        // to CarPropertyValue.
+        if ((propValue.prop & VehiclePropertyType.MASK) == VehiclePropertyType.MIXED) {
+            return true;
+        }
+        if (!checkFormatForAllProperties(propValue)) {
+            Log.e(TAG, "Property value" + propValue + "has an invalid data format");
+            return false;
+        }
+        if (mPropToValidValue.containsKey(propValue.prop)) {
+            return checkDataEnum(propValue);
+        }
+        if (mPropToValidBitFlag.containsKey(propValue.prop)) {
+            return checkValidBitFlag(propValue);
+        }
+        return true;
+    }
+
+    private boolean checkValidBitFlag(VehiclePropValue propValue) {
+        int flagCombination = mPropToValidBitFlag.get(propValue.prop);
+        for (int value : propValue.value.int32Values) {
+            if ((value & flagCombination) != value) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private boolean checkFormatForAllProperties(VehiclePropValue propValue) {
+        int propId = propValue.prop;
+        VehiclePropValue.RawValue rawValue = propValue.value;
+        //Records sum size of int32values, floatValue, int64Values, bytes, String
+        int sizeOfAllValue = rawValue.int32Values.size() + rawValue.floatValues.size()
+                + rawValue.int64Values.size() + rawValue.bytes.size()
+                + rawValue.stringValue.length();
+        if (sizeOfAllValue == 0) {
+            Log.e(TAG, "Property value is empty: " + propValue);
+            return false;
+        }
+        switch (propId & VehiclePropertyType.MASK) {
+            case VehiclePropertyType.BOOLEAN:
+            case VehiclePropertyType.INT32:
+                return sizeOfAllValue == 1 && rawValue.int32Values.size() == 1;
+            case VehiclePropertyType.FLOAT:
+                return sizeOfAllValue == 1 && rawValue.floatValues.size() == 1;
+            case VehiclePropertyType.INT64:
+                return sizeOfAllValue == 1 && rawValue.int64Values.size() == 1;
+            case VehiclePropertyType.FLOAT_VEC:
+                return sizeOfAllValue == rawValue.floatValues.size();
+            case VehiclePropertyType.INT64_VEC:
+                return sizeOfAllValue == rawValue.int64Values.size();
+            case VehiclePropertyType.INT32_VEC:
+                return sizeOfAllValue == rawValue.int32Values.size();
+            case VehiclePropertyType.BYTES:
+                return sizeOfAllValue == rawValue.bytes.size();
+            case VehiclePropertyType.STRING:
+                return sizeOfAllValue == rawValue.stringValue.length();
+            default:
+                throw new IllegalArgumentException("Unexpected property type for propId: "
+                        + Integer.toHexString(propId));
+        }
+    }
+    private boolean checkDataEnum(VehiclePropValue propValue) {
+        int propId = propValue.prop;
+        VehiclePropValue.RawValue rawValue = propValue.value;
+        Set<Integer> validValue = mPropToValidValue.get(propId);
+        for (int value : rawValue.int32Values) {
+            if (!validValue.contains(value)) {
+                return false;
+            }
+        }
+        return true;
+    }
+
+    private static List<Integer> getIntegersFromDataEnums(Class clazz) {
+        Field[] fields = clazz.getDeclaredFields();
+        List<Integer> integerList = new ArrayList<>(5);
+        for (Field f : fields) {
+            if (f.getType() == int.class) {
+                try {
+                    integerList.add(f.getInt(clazz));
+                } catch (Exception e) {
+                    Log.w(TAG, "Failed to get value");
+                }
+            }
+        }
+        return integerList;
+    }
+
+    // Generate all combinations at once
+    private static int generateAllCombination(Class clazz) {
+        List<Integer> allBits = getIntegersFromDataEnums(clazz);
+        int combination = allBits.get(0);
+        for (int i = 1; i < allBits.size(); i++) {
+            combination |= allBits.get(i);
+        }
+        return combination;
+    }
 }
diff --git a/service/src/com/android/car/hal/UserHalService.java b/service/src/com/android/car/hal/UserHalService.java
index 595ada5..ce43be4 100644
--- a/service/src/com/android/car/hal/UserHalService.java
+++ b/service/src/com/android/car/hal/UserHalService.java
@@ -17,19 +17,27 @@
 
 import static android.car.VehiclePropertyIds.INITIAL_USER_INFO;
 import static android.car.VehiclePropertyIds.SWITCH_USER;
+import static android.car.VehiclePropertyIds.USER_IDENTIFICATION_ASSOCIATION;
 
 import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.app.ActivityManager;
 import android.car.hardware.property.CarPropertyManager;
+import android.car.user.CarUserManager;
 import android.car.userlib.HalCallback;
+import android.car.userlib.UserHalHelper;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponse;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserMessageType;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserResponse;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
 import android.hardware.automotive.vehicle.V2_0.UserInfo;
 import android.hardware.automotive.vehicle.V2_0.UsersInfo;
 import android.hardware.automotive.vehicle.V2_0.VehiclePropConfig;
@@ -37,18 +45,24 @@
 import android.os.Handler;
 import android.os.Looper;
 import android.os.ServiceSpecificException;
-import android.os.SystemClock;
 import android.os.UserHandle;
 import android.sysprop.CarProperties;
+import android.text.TextUtils;
+import android.util.EventLog;
 import android.util.Log;
-import android.util.Pair;
-import android.util.Slog;
 import android.util.SparseArray;
+import android.util.SparseBooleanArray;
 
+import com.android.car.CarLocalServices;
+import com.android.car.user.CarUserService;
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.car.EventLogTags;
+import com.android.internal.util.FunctionalUtils;
 import com.android.internal.util.Preconditions;
 
 import java.io.PrintWriter;
+import java.io.StringWriter;
 import java.util.Collection;
 import java.util.List;
 import java.util.Objects;
@@ -59,13 +73,14 @@
  */
 public final class UserHalService extends HalServiceBase {
 
-    private static final String UNSUPPORTED_MSG = "Vehicle HAL does not support user management";
-
     private static final String TAG = UserHalService.class.getSimpleName();
 
+    private static final String UNSUPPORTED_MSG = "Vehicle HAL does not support user management";
+
     private static final int[] SUPPORTED_PROPERTIES = new int[]{
             INITIAL_USER_INFO,
-            SWITCH_USER
+            SWITCH_USER,
+            USER_IDENTIFICATION_ASSOCIATION
     };
 
     // TODO(b/150413515): STOPSHIP - change to false before R is launched
@@ -82,7 +97,7 @@
     // This handler handles 2 types of messages:
     // - "Anonymous" messages (what=0) containing runnables.
     // - "Identifiable" messages used to check for timeouts (whose 'what' is the request id).
-    private final Handler mHandler = new Handler(Looper.getMainLooper());
+    private final Handler mHandler;
 
     /**
      * Value used on the next request.
@@ -94,10 +109,16 @@
      * Map of callbacks by request id.
      */
     @GuardedBy("mLock")
-    private SparseArray<Pair<Class<?>, HalCallback<?>>> mPendingCallbacks = new SparseArray<>();
+    private final SparseArray<PendingRequest<?, ?>> mPendingRequests = new SparseArray<>();
 
     public UserHalService(VehicleHal hal) {
+        this(hal, new Handler(Looper.getMainLooper()));
+    }
+
+    @VisibleForTesting
+    UserHalService(VehicleHal hal, Handler handler) {
         mHal = hal;
+        mHandler = handler;
     }
 
     @Override
@@ -136,10 +157,14 @@
                     break;
                 case SWITCH_USER:
                     mHandler.sendMessage(obtainMessage(
-                            UserHalService::handleOnSwicthUserResponse, this, value));
+                            UserHalService::handleOnSwitchUserResponse, this, value));
+                    break;
+                case USER_IDENTIFICATION_ASSOCIATION:
+                    mHandler.sendMessage(obtainMessage(
+                            UserHalService::handleOnUserIdentificationAssociation, this, value));
                     break;
                 default:
-                    Slog.w(TAG, "received unsupported event from HAL: " + value);
+                    Log.w(TAG, "received unsupported event from HAL: " + value);
             }
         }
     }
@@ -147,7 +172,7 @@
     @Override
     public void onPropertySetError(int property, int area,
             @CarPropertyManager.CarSetPropertyErrorCode int errorCode) {
-        if (DBG)Log.d(TAG, "handlePropertySetError(" + property + "/" + area + ")");
+        if (DBG) Log.d(TAG, "handlePropertySetError(" + property + "/" + area + ")");
     }
 
     @Override
@@ -202,33 +227,37 @@
         if (DBG) Log.d(TAG, "getInitialInfo(" + requestType + ")");
         Preconditions.checkArgumentPositive(timeoutMs, "timeout must be positive");
         Objects.requireNonNull(usersInfo);
-        // TODO(b/150413515): use helper method to convert request to prop value and check usersInfo
-        // is valid
+        // TODO(b/150413515): use helper method to check usersInfo is valid
         Objects.requireNonNull(callback);
 
-        VehiclePropValue propRequest = new VehiclePropValue();
-        propRequest.prop = INITIAL_USER_INFO;
+        VehiclePropValue propRequest;
         int requestId;
         synchronized (mLock) {
             checkSupportedLocked();
             if (hasPendingRequestLocked(InitialUserInfoResponse.class, callback)) return;
-            requestId = mNextRequestId++;
-            propRequest.value.int32Values.add(requestId);
-            propRequest.value.int32Values.add(requestType);
-            addUsersInfo(propRequest, usersInfo);
-            setTimestamp(propRequest);
+            requestId = getNextRequestId();
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_INITIAL_USER_INFO_REQ, requestId,
+                    requestType, timeoutMs);
+            propRequest = UserHalHelper.createPropRequest(INITIAL_USER_INFO, requestId,
+                    requestType);
+            UserHalHelper.addUsersInfo(propRequest, usersInfo);
             addPendingRequestLocked(requestId, InitialUserInfoResponse.class, callback);
         }
 
+        sendHalRequest(requestId, timeoutMs, propRequest, callback);
+    }
+
+    private void sendHalRequest(int requestId, int timeoutMs, @NonNull VehiclePropValue request,
+            @NonNull HalCallback<?> callback) {
         mHandler.sendMessageDelayed(obtainMessage(
                 UserHalService::handleCheckIfRequestTimedOut, this, requestId).setWhat(requestId),
                 timeoutMs);
         try {
-            if (DBG) Log.d(TAG, "Calling hal.set(): " + propRequest);
-            mHal.set(propRequest);
+            if (DBG) Log.d(TAG, "Calling hal.set(): " + request);
+            mHal.set(request);
         } catch (ServiceSpecificException e) {
             handleRemovePendingRequest(requestId);
-            Log.w(TAG, "Failed to set INITIAL_USER_INFO", e);
+            Log.w(TAG, "Failed to set " + request, e);
             callback.onResponse(HalCallback.STATUS_HAL_SET_TIMEOUT, null);
         }
     }
@@ -247,64 +276,306 @@
     public void switchUser(@NonNull UserInfo targetInfo, int timeoutMs,
             @NonNull UsersInfo usersInfo, @NonNull HalCallback<SwitchUserResponse> callback) {
         if (DBG) Log.d(TAG, "switchUser(" + targetInfo + ")");
+        // TODO(b/150413515): check that targetInfo is not null / add unit test
         Preconditions.checkArgumentPositive(timeoutMs, "timeout must be positive");
         Objects.requireNonNull(usersInfo);
-        // TODO(b/150413515): use helper method to convert request to prop value and check usersInfo
-        // is valid
+        // TODO(b/150413515): use helper method to check usersInfo is valid
         Objects.requireNonNull(callback);
 
-        VehiclePropValue propRequest = new VehiclePropValue();
-        propRequest.prop = SWITCH_USER;
+        VehiclePropValue propRequest;
         int requestId;
         synchronized (mLock) {
             checkSupportedLocked();
             if (hasPendingRequestLocked(SwitchUserResponse.class, callback)) return;
-            requestId = mNextRequestId++;
-            // TODO(b/150413515): use helper method to convert request to prop value
-            propRequest.value.int32Values.add(requestId);
-            propRequest.value.int32Values.add(SwitchUserMessageType.ANDROID_SWITCH);
-            propRequest.value.int32Values.add(targetInfo.userId);
-            propRequest.value.int32Values.add(targetInfo.flags);
-            addUsersInfo(propRequest, usersInfo);
-            setTimestamp(propRequest);
+            requestId = getNextRequestId();
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_SWITCH_USER_REQ, requestId,
+                    targetInfo.userId, timeoutMs);
+            propRequest = getPropRequestForSwitchUserLocked(requestId,
+                    SwitchUserMessageType.ANDROID_SWITCH, targetInfo, usersInfo);
             addPendingRequestLocked(requestId, SwitchUserResponse.class, callback);
         }
 
-        mHandler.sendMessageDelayed(
-                obtainMessage(UserHalService::handleCheckIfRequestTimedOut, this, requestId)
-                        .setWhat(requestId),
-                timeoutMs);
+        sendHalRequest(requestId, timeoutMs, propRequest, callback);
+    }
+
+    /**
+     * Calls HAL after android user switch.
+     *
+     * @param requestId for which switch response is sent.
+     * @param targetInfo target user info.
+     * @param usersInfo current state of Android users.
+     */
+    public void postSwitchResponse(int requestId, @NonNull UserInfo targetInfo,
+            @NonNull UsersInfo usersInfo) {
+        EventLog.writeEvent(EventLogTags.CAR_USER_HAL_POST_SWITCH_USER_REQ, requestId,
+                targetInfo.userId, usersInfo.currentUser.userId);
+        if (DBG) Log.d(TAG, "postSwitchResponse(" + targetInfo + ")");
+        Objects.requireNonNull(usersInfo);
+        // TODO(b/150413515): use helper method to check usersInfo is valid
+
+        VehiclePropValue propRequest;
+        synchronized (mLock) {
+            checkSupportedLocked();
+            propRequest = getPropRequestForSwitchUserLocked(requestId,
+                    SwitchUserMessageType.ANDROID_POST_SWITCH, targetInfo, usersInfo);
+        }
 
         try {
             if (DBG) Log.d(TAG, "Calling hal.set(): " + propRequest);
             mHal.set(propRequest);
         } catch (ServiceSpecificException e) {
-            handleRemovePendingRequest(requestId);
-            Log.w(TAG, "Failed to set ANDROID SWITCH", e);
-            callback.onResponse(HalCallback.STATUS_HAL_SET_TIMEOUT, null);
+            Log.w(TAG, "Failed to set ANDROID POST SWITCH", e);
         }
     }
 
-    private static void addUsersInfo(VehiclePropValue propRequest, @NonNull UsersInfo usersInfo) {
-        // TODO(b/150419600) it should be moved to UserHalHelper and tested
-        propRequest.value.int32Values.add(usersInfo.currentUser.userId);
-        propRequest.value.int32Values.add(usersInfo.currentUser.flags);
-        propRequest.value.int32Values.add(usersInfo.numberUsers);
-        for (int i = 0; i < usersInfo.numberUsers; i++) {
-            UserInfo userInfo = usersInfo.existingUsers.get(i);
-            propRequest.value.int32Values.add(userInfo.userId);
-            propRequest.value.int32Values.add(userInfo.flags);
+    /**
+     * Calls HAL to switch user after legacy Android user switch. Legacy Android user switch means
+     * user switch is not requested by {@link CarUserManager} or OEM, and user switch is directly
+     * requested by {@link ActivityManager}
+     *
+     * @param targetInfo target user info.
+     * @param usersInfo current state of Android users.
+     */
+    public void legacyUserSwitch(@NonNull UserInfo targetInfo, @NonNull UsersInfo usersInfo) {
+        if (DBG) Log.d(TAG, "userSwitchLegacy(" + targetInfo + ")");
+        Objects.requireNonNull(usersInfo);
+        // TODO(b/150413515): use helper method to check usersInfo is valid
+
+        VehiclePropValue propRequest;
+        synchronized (mLock) {
+            checkSupportedLocked();
+            int requestId = getNextRequestId();
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_LEGACY_SWITCH_USER_REQ, requestId,
+                    targetInfo.userId, usersInfo.currentUser.userId);
+            propRequest = getPropRequestForSwitchUserLocked(requestId,
+                    SwitchUserMessageType.LEGACY_ANDROID_SWITCH, targetInfo, usersInfo);
+        }
+
+        try {
+            if (DBG) Log.d(TAG, "Calling hal.set(): " + propRequest);
+            mHal.set(propRequest);
+        } catch (ServiceSpecificException e) {
+            Log.w(TAG, "Failed to set LEGACY ANDROID SWITCH", e);
+        }
+    }
+
+    private static VehiclePropValue getPropRequestForSwitchUserLocked(int requestId,
+            int requestType, @NonNull UserInfo targetInfo, @NonNull UsersInfo usersInfo) {
+        VehiclePropValue propRequest =
+                UserHalHelper.createPropRequest(SWITCH_USER, requestId, requestType);
+        UserHalHelper.addUserInfo(propRequest, targetInfo);
+        UserHalHelper.addUsersInfo(propRequest, usersInfo);
+        return propRequest;
+    }
+
+    /**
+     * Calls HAL to get the value of the user identifications associated with the given user.
+     *
+     * @return HAL response or {@code null} if it was invalid (for example, mismatch on the
+     * requested number of associations).
+     *
+     * @throws IllegalArgumentException if request is invalid (mismatch on number of associations,
+     *   duplicated association, invalid association type values, etc).
+     */
+    @Nullable
+    public UserIdentificationResponse getUserAssociation(
+            @NonNull UserIdentificationGetRequest request) {
+        Objects.requireNonNull(request, "request cannot be null");
+
+        // Check that it doesn't have dupes
+        SparseBooleanArray types = new SparseBooleanArray(request.numberAssociationTypes);
+        for (int i = 0; i < request.numberAssociationTypes; i++) {
+            int type = request.associationTypes.get(i);
+            Preconditions.checkArgument(!types.get(type), "type %s found more than once on %s",
+                    UserIdentificationAssociationType.toString(type), request);
+            types.put(type, true);
+        }
+
+        request.requestId = getNextRequestId();
+
+        if (DBG) Log.d(TAG, "getUserAssociation(): req=" + request);
+
+        VehiclePropValue requestAsPropValue = UserHalHelper.toVehiclePropValue(request);
+        EventLog.writeEvent(EventLogTags.CAR_USER_HAL_GET_USER_AUTH_REQ,
+                requestAsPropValue.value.int32Values.toArray());
+
+        VehiclePropValue responseAsPropValue = mHal.get(requestAsPropValue);
+        if (responseAsPropValue == null) {
+            Log.w(TAG, "HAL returned null for request " + requestAsPropValue);
+            return null;
+        }
+
+        logEventWithErrorMessage(EventLogTags.CAR_USER_HAL_GET_USER_AUTH_RESP, responseAsPropValue);
+        if (DBG) Log.d(TAG, "getUserAssociation(): responseAsPropValue=" + responseAsPropValue);
+
+        UserIdentificationResponse response;
+        try {
+            response = UserHalHelper.toUserIdentificationResponse(responseAsPropValue);
+        } catch (IllegalArgumentException e) {
+            Log.w(TAG, "invalid response from HAL for " + requestAsPropValue, e);
+            return null;
+        }
+        if (DBG) Log.d(TAG, "getUserAssociation(): response=" + response);
+
+        // Validate the response according to the request
+        if (response.requestId != request.requestId) {
+            Log.w(TAG, "invalid request id (should be " + request.requestId + ") on HAL response: "
+                    + response);
+            return null;
+        }
+        if (response.numberAssociation != request.numberAssociationTypes) {
+            Log.w(TAG, "Wrong number of association types on HAL response (expected "
+                    + request.numberAssociationTypes + ") for request " + requestAsPropValue
+                    + ": " + response);
+            return null;
+        }
+        for (int i = 0; i < request.numberAssociationTypes; i++) {
+            int expectedType = request.associationTypes.get(i);
+            int actualType = response.associations.get(i).type;
+            if (actualType != expectedType) {
+                Log.w(TAG, "Wrong type on index " + i + " of HAL response (" + response + ") for "
+                        + "request " + requestAsPropValue + " : expected "
+                        + UserIdentificationAssociationType.toString(expectedType)
+                        + ", got " + UserIdentificationAssociationType.toString(actualType));
+                return null;
+            }
+        }
+
+        return response;
+    }
+
+    /**
+     * Calls HAL to set the value of the user identifications associated with the given user.
+     *
+     * @throws IllegalArgumentException if request is invalid (mismatch on number of associations,
+     *   duplicated association, invalid association type values, etc).
+     */
+    public void setUserAssociation(int timeoutMs, @NonNull UserIdentificationSetRequest request,
+            @NonNull HalCallback<UserIdentificationResponse> callback) {
+        if (DBG) Log.d(TAG, "setUserAssociation(" + request + ")");
+        Preconditions.checkArgumentPositive(timeoutMs, "timeout must be positive");
+        Objects.requireNonNull(request, "request cannot be null");
+        Objects.requireNonNull(callback, "callback cannot be null");
+
+        // Check that it doesn't have dupes
+        SparseBooleanArray types = new SparseBooleanArray(request.numberAssociations);
+        for (int i = 0; i < request.numberAssociations; i++) {
+            int type = request.associations.get(i).type;
+            Preconditions.checkArgument(!types.get(type), "type %s found more than once on %s",
+                    UserIdentificationAssociationType.toString(type), request);
+            types.put(type, true);
+        }
+
+        VehiclePropValue propRequest;
+        int requestId;
+        synchronized (mLock) {
+            checkSupportedLocked();
+            if (hasPendingRequestLocked(UserIdentificationResponse.class, callback)) return;
+            requestId = request.requestId = getNextRequestId();
+            propRequest = UserHalHelper.toVehiclePropValue(request);
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_SET_USER_AUTH_REQ,
+                    propRequest.value.int32Values.toArray());
+
+            addPendingRequestLocked(requestId, UserIdentificationSetRequest.class,
+                    UserIdentificationResponse.class, request, callback);
+        }
+        sendHalRequest(requestId, timeoutMs, propRequest, callback);
+    }
+
+    private void handleOnUserIdentificationAssociation(@NonNull VehiclePropValue value) {
+        logEventWithErrorMessage(EventLogTags.CAR_USER_HAL_SET_USER_AUTH_RESP, value);
+        if (DBG) Log.d(TAG, "handleOnUserIdentificationAssociation(): " + value);
+
+        int requestId = value.value.int32Values.get(0);
+        HalCallback<UserIdentificationResponse> callback = handleGetPendingCallback(requestId,
+                UserIdentificationResponse.class);
+        if (callback == null) {
+            Log.w(TAG, "no callback for requestId " + requestId + ": " + value);
+            return;
+        }
+        PendingRequest<?, ?> pendingRequest = handleRemovePendingRequest(requestId);
+        UserIdentificationResponse response;
+        try {
+            response = UserHalHelper.toUserIdentificationResponse(value);
+        } catch (RuntimeException e) {
+            Log.w(TAG, "error parsing UserIdentificationResponse (" + value + ")", e);
+            callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
+            return;
+        }
+
+        // Validate the response according to the request
+        UserIdentificationSetRequest request = PendingRequest.getRequest(pendingRequest,
+                UserIdentificationSetRequest.class, requestId);
+
+        if (request == null) {
+            // already logged on PendingRequest.getRequest
+            callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
+        }
+
+        if (response.numberAssociation != request.numberAssociations) {
+            Log.w(TAG, "Wrong number of association types on HAL response (expected "
+                    + request.numberAssociations + ") for request " + request
+                    + ": " + response);
+            callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
+            return;
+        }
+
+        for (int i = 0; i < request.numberAssociations; i++) {
+            int expectedType = request.associations.get(i).type;
+            int actualType = response.associations.get(i).type;
+            if (actualType != expectedType) {
+                Log.w(TAG, "Wrong type on index " + i + " of HAL response (" + response + ") for "
+                        + "request " + value + " : expected "
+                        + UserIdentificationAssociationType.toString(expectedType)
+                        + ", got " + UserIdentificationAssociationType.toString(actualType));
+                callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
+                return;
+            }
+        }
+
+
+        if (DBG) Log.d(TAG, "replying to request " + requestId + " with " + response);
+        callback.onResponse(HalCallback.STATUS_OK, response);
+    }
+
+    private static void logEventWithErrorMessage(int eventTag, @NonNull VehiclePropValue value) {
+        if (TextUtils.isEmpty(value.value.stringValue)) {
+            EventLog.writeEvent(eventTag, value.value.int32Values.toArray());
+        } else {
+            // Must manually append the error message to the array of values
+            int size = value.value.int32Values.size();
+            Object[] list = new Object[size + 1];
+            value.value.int32Values.toArray(list);
+            list[list.length - 1] = value.value.stringValue;
+            EventLog.writeEvent(eventTag, list);
+        }
+    }
+
+    @VisibleForTesting
+    int getNextRequestId() {
+        synchronized (mLock) {
+            return ++mNextRequestId;
         }
     }
 
     @GuardedBy("mLock")
-    private void addPendingRequestLocked(int requestId, @NonNull Class<?> responseClass,
-            @NonNull HalCallback<?> callback) {
+    private <REQ, RESP> void addPendingRequestLocked(int requestId,
+            @NonNull Class<REQ> requestClass, @NonNull Class<RESP> responseClass,
+            @NonNull REQ request, @NonNull HalCallback<RESP> callback) {
+        PendingRequest<?, RESP> pendingRequest = new PendingRequest<>(responseClass, request,
+                callback);
         if (DBG) {
-            Log.d(TAG, "adding pending callback (of type " + responseClass.getName()
-                    + ") for request " + requestId);
+            Log.d(TAG, "adding pending request (" + pendingRequest + ") for requestId "
+                    + requestId);
         }
-        mPendingCallbacks.put(requestId, new Pair<>(responseClass, callback));
+        mPendingRequests.put(requestId, pendingRequest);
+    }
+
+    @GuardedBy("mLock")
+    private <RESP> void addPendingRequestLocked(int requestId, @NonNull Class<RESP> responseClass,
+            @NonNull HalCallback<RESP> callback) {
+        addPendingRequestLocked(requestId, Void.class, responseClass, /* request= */ null,
+                callback);
     }
 
     /**
@@ -312,12 +583,12 @@
      * with {@link HalCallback#STATUS_CONCURRENT_OPERATION} when there is.
      */
     @GuardedBy("mLock")
-    private boolean hasPendingRequestLocked(@NonNull Class<?> requestClass,
+    private boolean hasPendingRequestLocked(@NonNull Class<?> responseClass,
             @NonNull HalCallback<?> callback) {
-        for (int i = 0; i < mPendingCallbacks.size(); i++) {
-            Pair<Class<?>, HalCallback<?>> pair = mPendingCallbacks.valueAt(i);
-            if (pair.first == requestClass) {
-                Log.w(TAG, "Already have pending request of type " + requestClass);
+        for (int i = 0; i < mPendingRequests.size(); i++) {
+            PendingRequest<?, ?> pendingRequest = mPendingRequests.valueAt(i);
+            if (pendingRequest.responseClass == responseClass) {
+                Log.w(TAG, "Already have pending request of type " + responseClass);
                 callback.onResponse(HalCallback.STATUS_CONCURRENT_OPERATION, null);
                 return true;
             }
@@ -328,27 +599,31 @@
     /**
      * Removes the pending request and its timeout callback.
      */
-    private void handleRemovePendingRequest(int requestId) {
+    @Nullable
+    private PendingRequest<?, ?> handleRemovePendingRequest(int requestId) {
         if (DBG) Log.d(TAG, "Removing pending request #" + requestId);
         mHandler.removeMessages(requestId);
+        PendingRequest<?, ?> pendingRequest;
         synchronized (mLock) {
-            mPendingCallbacks.remove(requestId);
+            pendingRequest = mPendingRequests.get(requestId);
+            mPendingRequests.remove(requestId);
         }
+        return pendingRequest;
     }
 
     private void handleCheckIfRequestTimedOut(int requestId) {
-        Pair<Class<?>, HalCallback<?>> pair = getPendingCallback(requestId);
-        if (pair == null) return;
+        PendingRequest<?, ?> pendingRequest = getPendingRequest(requestId);
+        if (pendingRequest == null) return;
 
         Log.w(TAG, "Request #" + requestId + " timed out");
         handleRemovePendingRequest(requestId);
-        pair.second.onResponse(HalCallback.STATUS_HAL_RESPONSE_TIMEOUT, null);
+        pendingRequest.callback.onResponse(HalCallback.STATUS_HAL_RESPONSE_TIMEOUT, null);
     }
 
     @Nullable
-    private Pair<Class<?>, HalCallback<?>> getPendingCallback(int requestId) {
+    private PendingRequest<?, ?> getPendingRequest(int requestId) {
         synchronized (mLock) {
-            return mPendingCallbacks.get(requestId);
+            return mPendingRequests.get(requestId);
         }
     }
 
@@ -358,6 +633,8 @@
         HalCallback<InitialUserInfoResponse> callback = handleGetPendingCallback(requestId,
                 InitialUserInfoResponse.class);
         if (callback == null) {
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_INITIAL_USER_INFO_RESP, requestId,
+                    HalCallback.STATUS_INVALID);
             Log.w(TAG, "no callback for requestId " + requestId + ": " + value);
             return;
         }
@@ -382,19 +659,72 @@
                 break;
             default:
                 Log.e(TAG, "invalid action (" + response.action + ") from HAL: " + value);
+                EventLog.writeEvent(EventLogTags.CAR_USER_HAL_INITIAL_USER_INFO_RESP, requestId,
+                        HalCallback.STATUS_WRONG_HAL_RESPONSE);
                 callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
                 return;
         }
-
+        EventLog.writeEvent(EventLogTags.CAR_USER_HAL_INITIAL_USER_INFO_RESP, requestId,
+                HalCallback.STATUS_OK, response.action,
+                response.userToSwitchOrCreate.userId, response.userToSwitchOrCreate.flags,
+                response.userNameToCreate);
         if (DBG) Log.d(TAG, "replying to request " + requestId + " with " + response);
         callback.onResponse(HalCallback.STATUS_OK, response);
     }
 
-    private void handleOnSwicthUserResponse(VehiclePropValue value) {
+    private void handleOnSwitchUserResponse(VehiclePropValue value) {
+        int requestId = value.value.int32Values.get(0);
+        int messageType = value.value.int32Values.get(1);
+
+        if (messageType == SwitchUserMessageType.VEHICLE_RESPONSE) {
+            handleVehicleResponse(value);
+            return;
+        }
+
+        if (messageType == SwitchUserMessageType.VEHICLE_REQUEST) {
+            handleVehicleRequest(value);
+            return;
+        }
+
+        Log.e(TAG, "handleOnSwitchUserResponse invalid message type (" + messageType
+                + ") from HAL: " + value);
+
+        // check if a callback exists for the request ID
+        HalCallback<SwitchUserResponse> callback =
+                handleGetPendingCallback(requestId, SwitchUserResponse.class);
+        if (callback != null) {
+            handleRemovePendingRequest(requestId);
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_SWITCH_USER_RESP, requestId,
+                    HalCallback.STATUS_WRONG_HAL_RESPONSE, SwitchUserStatus.FAILURE);
+            callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
+            return;
+        }
+    }
+
+    private void handleVehicleRequest(VehiclePropValue value) {
+        int requestId = value.value.int32Values.get(0);
+        // Index 1 is message type, which is not required in this call.
+        int targetUserId = value.value.int32Values.get(2);
+        EventLog.writeEvent(EventLogTags.CAR_USER_HAL_OEM_SWITCH_USER_REQ, requestId, targetUserId);
+
+        // HAL vehicle request should have negative request ID
+        if (requestId >= 0) {
+            Log.e(TAG, "handleVehicleRequest invalid requestId (" + requestId + ") from HAL: "
+                    + value);
+            return;
+        }
+
+        CarUserService userService = CarLocalServices.getService(CarUserService.class);
+        userService.switchAndroidUserFromHal(requestId, targetUserId);
+    }
+
+    private void handleVehicleResponse(VehiclePropValue value) {
         int requestId = value.value.int32Values.get(0);
         HalCallback<SwitchUserResponse> callback =
                 handleGetPendingCallback(requestId, SwitchUserResponse.class);
         if (callback == null) {
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_SWITCH_USER_RESP, requestId,
+                    HalCallback.STATUS_INVALID);
             Log.w(TAG, "no callback for requestId " + requestId + ": " + value);
             return;
         }
@@ -402,43 +732,38 @@
         SwitchUserResponse response = new SwitchUserResponse();
         response.requestId = requestId;
         response.messageType = value.value.int32Values.get(1);
-        if (response.messageType != SwitchUserMessageType.VEHICLE_RESPONSE) {
-            Log.e(TAG, "invalid message type (" + response.messageType + ") from HAL: " + value);
-            callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
-            return;
-        }
         response.status = value.value.int32Values.get(2);
         if (response.status == SwitchUserStatus.SUCCESS
                 || response.status == SwitchUserStatus.FAILURE) {
             if (DBG) {
                 Log.d(TAG, "replying to request " + requestId + " with " + response);
             }
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_SWITCH_USER_RESP, requestId,
+                    HalCallback.STATUS_OK, response.status);
             callback.onResponse(HalCallback.STATUS_OK, response);
         } else {
+            EventLog.writeEvent(EventLogTags.CAR_USER_HAL_SWITCH_USER_RESP, requestId,
+                    HalCallback.STATUS_WRONG_HAL_RESPONSE, response.status);
             Log.e(TAG, "invalid status (" + response.status + ") from HAL: " + value);
             callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, null);
         }
     }
 
     private <T> HalCallback<T> handleGetPendingCallback(int requestId, Class<T> clazz) {
-        Pair<Class<?>, HalCallback<?>> pair = getPendingCallback(requestId);
-        if (pair == null) return null;
+        PendingRequest<?, ?> pendingRequest = getPendingRequest(requestId);
+        if (pendingRequest == null) return null;
 
-        if (pair.first != clazz) {
-            Slog.e(TAG, "Invalid callback class for request " + requestId + ": expected" + clazz
-                    + ", but got is " + pair.first);
+        if (pendingRequest.responseClass != clazz) {
+            Log.e(TAG, "Invalid callback class for request " + requestId + ": expected" + clazz
+                    + ", but got is " + pendingRequest.responseClass);
             // TODO(b/150413515): add unit test for this scenario once it supports other properties
             return null;
         }
         @SuppressWarnings("unchecked")
-        HalCallback<T> callback = (HalCallback<T>) pair.second;
+        HalCallback<T> callback = (HalCallback<T>) pendingRequest.callback;
         return callback;
     }
 
-    private void setTimestamp(@NonNull VehiclePropValue propRequest) {
-        propRequest.timestamp = SystemClock.elapsedRealtime();
-    }
-
     @Override
     public void dump(PrintWriter writer) {
         String indent = "  ";
@@ -460,18 +785,81 @@
             }
             writer.printf("next request id: %d\n", mNextRequestId);
 
-            if (mPendingCallbacks.size() == 0) {
+            int numberPendingCallbacks = mPendingRequests.size();
+            if (numberPendingCallbacks == 0) {
                 writer.println("no pending callbacks");
             } else {
-                writer.printf("pending callbacks: %s\n", mPendingCallbacks);
+                writer.printf("%d pending callbacks: %s\n", numberPendingCallbacks);
+                for (int i = 0; i < numberPendingCallbacks; i++) {
+                    writer.print(indent);
+                    mPendingRequests.valueAt(i).dump(writer);
+                    writer.println();
+                }
             }
         }
     }
 
-    private void dumpSystemProperty(@NonNull PrintWriter writer, @NonNull String indent,
+    private static void dumpSystemProperty(@NonNull PrintWriter writer, @NonNull String indent,
             @NonNull String name, Optional<?> prop) {
         String value = prop.isPresent() ? prop.get().toString() : "<NOT SET>";
         writer.printf("%s%s=%s\n", indent, name, value);
     }
 
+    private static final class PendingRequest<REQ, RESP> {
+        @NonNull
+        public final Class<RESP> responseClass;
+
+        @Nullable
+        public final REQ request;
+
+        @NonNull
+        public final HalCallback<RESP> callback;
+
+        PendingRequest(@NonNull Class<RESP> responseClass, @Nullable REQ request,
+                @NonNull HalCallback<RESP> callback) {
+            this.responseClass = responseClass;
+            this.request = request;
+            this.callback = callback;
+        }
+
+        /**
+         * Gets the safely cast request for a given pending request.
+         */
+        @Nullable
+        private static <T> T getRequest(@Nullable PendingRequest<?, ?> pendingRequest,
+                @NonNull Class<T> clazz, int requestId) {
+            if (pendingRequest == null) {
+                Log.e(TAG, "No pending request for id " + requestId);
+                return null;
+
+            }
+            Object request = pendingRequest.request;
+            if (!clazz.isInstance(request)) {
+                Log.e(TAG, "Wrong pending request for id " + requestId + ": " + pendingRequest);
+                return null;
+            }
+            return clazz.cast(request);
+        }
+
+        public void dump(@NonNull PrintWriter pw) {
+            pw.printf("Class: %s Callback: %s", responseClass.getSimpleName(),
+                    FunctionalUtils.getLambdaName(callback));
+            if (request != null) {
+                pw.printf(" Request: %s", request);
+            }
+        }
+
+        @Override
+        public String toString() {
+            StringWriter sw = new StringWriter();
+            PrintWriter pw = new PrintWriter(sw);
+            pw.print("[PendingRequest: ");
+            dump(pw);
+            pw.print("]");
+            pw.flush();
+            return sw.toString();
+        }
+
+    }
+
 }
diff --git a/service/src/com/android/car/hal/VehicleHal.java b/service/src/com/android/car/hal/VehicleHal.java
index 55eff7b..8706c00 100644
--- a/service/src/com/android/car/hal/VehicleHal.java
+++ b/service/src/com/android/car/hal/VehicleHal.java
@@ -46,6 +46,7 @@
 import android.util.SparseArray;
 
 import com.android.car.CarLog;
+import com.android.car.CarServiceUtils;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
 
@@ -59,6 +60,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -104,8 +106,7 @@
     private static final String DATA_DELIMITER = ",";
 
     public VehicleHal(Context context, IVehicle vehicle) {
-        mHandlerThread = new HandlerThread("VEHICLE-HAL");
-        mHandlerThread.start();
+        mHandlerThread = CarServiceUtils.getHandlerThread(VehicleHal.class.getSimpleName());
         // passing this should be safe as long as it is just kept and not used in constructor
         mPowerHal = new PowerHalService(this);
         mPropertyHal = new PropertyHalService(this);
@@ -712,14 +713,16 @@
      * @param property the Vehicle property Id as defined in the HAL
      * @param zone     Zone that this event services
      * @param value    Data value of the event
+     * @param delayTime Add a certain duration to event timestamp
      */
-    public void injectVhalEvent(String property, String zone, String value)
+    public void injectVhalEvent(String property, String zone, String value, String delayTime)
             throws NumberFormatException {
         if (value == null || zone == null || property == null) {
             return;
         }
         int propId = Integer.decode(property);
         int zoneId = Integer.decode(zone);
+        int duration = Integer.decode(delayTime);
         VehiclePropValue v = createPropValue(propId, zoneId);
         int propertyType = propId & VehiclePropertyType.MASK;
         // Values can be comma separated list
@@ -745,7 +748,7 @@
                 Log.e(CarLog.TAG_HAL, "Property type unsupported:" + propertyType);
                 return;
         }
-        v.timestamp = SystemClock.elapsedRealtimeNanos();
+        v.timestamp = SystemClock.elapsedRealtimeNanos() + TimeUnit.SECONDS.toNanos(duration);
         onPropertyEvent(Lists.newArrayList(v));
     }
 
diff --git a/service/src/com/android/car/hal/VmsHalService.java b/service/src/com/android/car/hal/VmsHalService.java
index a0ccdff..f740f10 100644
--- a/service/src/com/android/car/hal/VmsHalService.java
+++ b/service/src/com/android/car/hal/VmsHalService.java
@@ -51,6 +51,7 @@
 import androidx.annotation.VisibleForTesting;
 
 import com.android.car.CarLocalServices;
+import com.android.car.CarServiceUtils;
 import com.android.car.vms.VmsBrokerService;
 
 import java.io.FileDescriptor;
@@ -83,7 +84,9 @@
     private static final byte[] DEFAULT_PUBLISHER_INFO = new byte[0];
 
     private final VehicleHal mVehicleHal;
-    private final HandlerThread mHandlerThread;
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mHandler = new Handler(mHandlerThread.getLooper());
     private final int mCoreId;
     private final BiFunction<Handler, VmsClientCallback, VmsClient> mInitVmsClient;
     private final int mClientMetricsProperty;
@@ -96,8 +99,6 @@
     private boolean mIsSupported;
     @GuardedBy("mLock")
     private VmsClient mClient;
-    @GuardedBy("mLock")
-    private Handler mHandler;
 
     private final VmsClientCallback mClientCallback = new VmsClientCallback() {
         @Override
@@ -139,7 +140,6 @@
             BiFunction<Handler, VmsClientCallback, VmsClient> initVmsClient,
             boolean propagatePropertyException) {
         mVehicleHal = vehicleHal;
-        mHandlerThread = new HandlerThread(TAG);
         mCoreId = (int) (getCoreId.get() % Integer.MAX_VALUE);
         mInitVmsClient = initVmsClient;
         mClientMetricsProperty = getClientMetricsProperty(context);
@@ -193,8 +193,6 @@
                 Log.i(TAG, "VmsHalService VHAL property not supported");
                 return; // Do not continue initialization
             }
-            mHandlerThread.start();
-            mHandler = new Handler(mHandlerThread.getLooper());
             connectVmsClient();
         }
 
@@ -209,7 +207,6 @@
     public void release() {
         synchronized (mLock) {
             disconnectVmsClient();
-            mHandlerThread.quitSafely();
             if (!mIsSupported) {
                 return;
             }
diff --git a/service/src/com/android/car/pm/ActivityBlockingActivity.java b/service/src/com/android/car/pm/ActivityBlockingActivity.java
index a054d2d..991c966 100644
--- a/service/src/com/android/car/pm/ActivityBlockingActivity.java
+++ b/service/src/com/android/car/pm/ActivityBlockingActivity.java
@@ -285,6 +285,11 @@
                 continue;
             }
 
+            if (!stackInfo.visible) {
+                // ignore stacks that aren't visible
+                continue;
+            }
+
             if (topStackBehindAba == null || topStackBehindAba.position < stackInfo.position) {
                 topStackBehindAba = stackInfo;
             }
@@ -378,7 +383,10 @@
         super.onDestroy();
         mCar.disconnect();
         mUxRManager.unregisterListener();
-        mToggleDebug.getViewTreeObserver().removeOnGlobalLayoutListener(mOnGlobalLayoutListener);
+        if (mToggleDebug != null) {
+            mToggleDebug.getViewTreeObserver().removeOnGlobalLayoutListener(
+                    mOnGlobalLayoutListener);
+        }
         mCar.disconnect();
     }
 
diff --git a/service/src/com/android/car/pm/CarPackageManagerService.java b/service/src/com/android/car/pm/CarPackageManagerService.java
index d08d7fb..1d1bbb6 100644
--- a/service/src/com/android/car/pm/CarPackageManagerService.java
+++ b/service/src/com/android/car/pm/CarPackageManagerService.java
@@ -75,6 +75,7 @@
 import com.google.android.collect.Sets;
 
 import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -100,8 +101,9 @@
     private final ActivityManager mActivityManager;
     private final DisplayManager mDisplayManager;
 
-    private final HandlerThread mHandlerThread;
-    private final PackageHandler mHandler;
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final PackageHandler mHandler  = new PackageHandler(mHandlerThread.getLooper(), this);
     private final Object mLock = new Object();
 
     // For dumpsys logging.
@@ -198,9 +200,6 @@
         mPackageManager = mContext.getPackageManager();
         mActivityManager = mContext.getSystemService(ActivityManager.class);
         mDisplayManager = mContext.getSystemService(DisplayManager.class);
-        mHandlerThread = new HandlerThread(CarLog.TAG_PACKAGE);
-        mHandlerThread.start();
-        mHandler = new PackageHandler(mHandlerThread.getLooper());
         Resources res = context.getResources();
         mEnableActivityBlocking = res.getBoolean(R.bool.enableActivityBlockingForSafety);
         String blockingActivity = res.getString(R.string.activityBlockingActivity);
@@ -1195,14 +1194,19 @@
     /**
      * Reading policy and setting policy can take time. Run it in a separate handler thread.
      */
-    private class PackageHandler extends Handler {
+    private static final class PackageHandler extends Handler {
+        private static final String TAG = PackageHandler.class.getSimpleName();
+
         private static final int MSG_INIT = 0;
         private static final int MSG_PARSE_PKG = 1;
         private static final int MSG_UPDATE_POLICY = 2;
         private static final int MSG_RELEASE = 3;
 
-        private PackageHandler(Looper looper) {
+        private final WeakReference<CarPackageManagerService> mService;
+
+        private PackageHandler(Looper looper, CarPackageManagerService service) {
             super(looper);
+            mService = new WeakReference<CarPackageManagerService>(service);
         }
 
         private void requestInit() {
@@ -1237,20 +1241,25 @@
 
         @Override
         public void handleMessage(Message msg) {
+            CarPackageManagerService service = mService.get();
+            if (service == null) {
+                Log.i(TAG, "handleMessage null service");
+                return;
+            }
             switch (msg.what) {
                 case MSG_INIT:
-                    doHandleInit();
+                    service.doHandleInit();
                     break;
                 case MSG_PARSE_PKG:
-                    doParseInstalledPackages();
+                    service.doParseInstalledPackages();
                     break;
                 case MSG_UPDATE_POLICY:
                     Pair<String, CarAppBlockingPolicy> pair =
                             (Pair<String, CarAppBlockingPolicy>) msg.obj;
-                    doUpdatePolicy(pair.first, pair.second, msg.arg1);
+                    service.doUpdatePolicy(pair.first, pair.second, msg.arg1);
                     break;
                 case MSG_RELEASE:
-                    doHandleRelease();
+                    service.doHandleRelease();
                     break;
             }
         }
diff --git a/service/src/com/android/car/pm/blurredbackground/BlurredSurfaceRenderer.java b/service/src/com/android/car/pm/blurredbackground/BlurredSurfaceRenderer.java
index 2f6eb6d..fb97113 100644
--- a/service/src/com/android/car/pm/blurredbackground/BlurredSurfaceRenderer.java
+++ b/service/src/com/android/car/pm/blurredbackground/BlurredSurfaceRenderer.java
@@ -131,7 +131,9 @@
      * cleans up the OpenGL program
      */
     public void onPause() {
-        mProgram.cleanupResources();
+        if (mProgram != null) {
+            mProgram.cleanupResources();
+        }
         deleteScreenshotTexture();
     }
 
diff --git a/service/src/com/android/car/user/CarUserService.java b/service/src/com/android/car/user/CarUserService.java
index cfd3364..d570ccb 100644
--- a/service/src/com/android/car/user/CarUserService.java
+++ b/service/src/com/android/car/user/CarUserService.java
@@ -31,10 +31,15 @@
 import android.car.settings.CarSettings;
 import android.car.user.CarUserManager;
 import android.car.user.CarUserManager.UserLifecycleEvent;
+import android.car.user.CarUserManager.UserLifecycleEventType;
 import android.car.user.CarUserManager.UserLifecycleListener;
+import android.car.user.UserIdentificationAssociationResponse;
+import android.car.user.UserSwitchResult;
 import android.car.userlib.CarUserManagerHelper;
+import android.car.userlib.CommonConstants.CarUserServiceConstants;
 import android.car.userlib.HalCallback;
 import android.car.userlib.UserHalHelper;
+import android.car.userlib.UserHelper;
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
@@ -42,26 +47,40 @@
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponse;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
 import android.hardware.automotive.vehicle.V2_0.UsersInfo;
 import android.location.LocationManager;
 import android.os.Binder;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.HandlerThread;
 import android.os.RemoteException;
 import android.os.Trace;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
 import android.sysprop.CarProperties;
+import android.text.TextUtils;
+import android.util.EventLog;
 import android.util.Log;
 import android.util.SparseArray;
 import android.util.TimingsTraceLog;
 
 import com.android.car.CarServiceBase;
+import com.android.car.CarServiceUtils;
 import com.android.car.R;
 import com.android.car.hal.UserHalService;
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.annotations.VisibleForTesting;
+import com.android.internal.car.EventLogTags;
+import com.android.internal.infra.AndroidFuture;
 import com.android.internal.os.IResultReceiver;
+import com.android.internal.util.ArrayUtils;
+import com.android.internal.util.FunctionalUtils;
+import com.android.internal.util.Preconditions;
 import com.android.internal.util.UserIcons;
 
 import java.io.PrintWriter;
@@ -71,6 +90,8 @@
 import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
 
 /**
  * User service for cars. Manages users at boot time. Including:
@@ -84,14 +105,17 @@
  */
 public final class CarUserService extends ICarUserService.Stub implements CarServiceBase {
 
+    private static final String TAG = TAG_USER;
+
     /** {@code int} extra used to represent a user id in a {@link IResultReceiver} response. */
-    public static final String BUNDLE_USER_ID = "user.id";
+    public static final String BUNDLE_USER_ID = CarUserServiceConstants.BUNDLE_USER_ID;
     /** {@code int} extra used to represent user flags in a {@link IResultReceiver} response. */
-    public static final String BUNDLE_USER_FLAGS = "user.flags";
+    public static final String BUNDLE_USER_FLAGS = CarUserServiceConstants.BUNDLE_USER_FLAGS;
     /** {@code String} extra used to represent a user name in a {@link IResultReceiver} response. */
-    public static final String BUNDLE_USER_NAME = "user.name";
+    public static final String BUNDLE_USER_NAME = CarUserServiceConstants.BUNDLE_USER_NAME;
     /** {@code int} extra used to represent the info action {@link IResultReceiver} response. */
-    public static final String BUNDLE_INITIAL_INFO_ACTION = "initial_info.action";
+    public static final String BUNDLE_INITIAL_INFO_ACTION =
+            CarUserServiceConstants.BUNDLE_INITIAL_INFO_ACTION;
 
     private final Context mContext;
     private final CarUserManagerHelper mCarUserManagerHelper;
@@ -122,23 +146,46 @@
 
     private final UserHalService mHal;
 
+    // HandlerThread and Handler used when notifying app listeners (mAppLifecycleListeners).
+    private final HandlerThread mHandlerThread = CarServiceUtils.getHandlerThread(
+            getClass().getSimpleName());
+    private final Handler mHandler = new Handler(mHandlerThread.getLooper());
+
     /**
      * List of listeners to be notified on new user activities events.
+     * This collection should be accessed and manipulated by mHandlerThread only.
      */
-    private final CopyOnWriteArrayList<UserLifecycleListener>
-            mUserLifecycleListeners = new CopyOnWriteArrayList<>();
+    private final List<UserLifecycleListener> mUserLifecycleListeners = new ArrayList<>();
 
     /**
      * List of lifecycle listeners by uid.
+     * This collection should be accessed and manipulated by mHandlerThread only.
+     */
+    private final SparseArray<IResultReceiver> mAppLifecycleListeners = new SparseArray<>();
+
+    /**
+     * User Id for the user switch in process, if any.
      */
     @GuardedBy("mLockUser")
-    private final SparseArray<IResultReceiver> mLifecycleListeners = new SparseArray<>();
-
+    private int mUserIdForUserSwitchInProcess = UserHandle.USER_NULL;
+    /**
+     * Request Id for the user switch in process, if any.
+     */
+    @GuardedBy("mLockUser")
+    private int mRequestIdForUserSwitchInProcess;
     private final int mHalTimeoutMs = CarProperties.user_hal_timeout().orElse(5_000);
 
     private final CopyOnWriteArrayList<PassengerCallback> mPassengerCallbacks =
             new CopyOnWriteArrayList<>();
 
+    @Nullable
+    @GuardedBy("mLockUser")
+    private UserInfo mInitialUser;
+
+    private UserMetrics mUserMetrics;
+
+    private IResultReceiver mUserSwitchUiReceiver;
+
     /** Interface for callbaks related to passenger activities. */
     public interface PassengerCallback {
         /** Called when passenger is started at a certain zone. */
@@ -165,8 +212,16 @@
     private ZoneUserBindingHelper mZoneUserBindingHelper;
 
     public CarUserService(@NonNull Context context, @NonNull UserHalService hal,
-            @NonNull CarUserManagerHelper carUserManagerHelper,
-            @NonNull UserManager userManager, @NonNull IActivityManager am, int maxRunningUsers) {
+            @NonNull CarUserManagerHelper carUserManagerHelper, @NonNull UserManager userManager,
+            @NonNull IActivityManager am, int maxRunningUsers) {
+        this(context, hal, carUserManagerHelper, userManager, am, maxRunningUsers,
+                new UserMetrics());
+    }
+
+    @VisibleForTesting
+    CarUserService(@NonNull Context context, @NonNull UserHalService hal,
+            @NonNull CarUserManagerHelper carUserManagerHelper, @NonNull UserManager userManager,
+            @NonNull IActivityManager am, int maxRunningUsers, UserMetrics userMetrics) {
         if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
             Log.d(TAG_USER, "constructed");
         }
@@ -178,6 +233,7 @@
         mUserManager = userManager;
         mLastPassengerId = UserHandle.USER_NULL;
         mEnablePassengerSupport = context.getResources().getBoolean(R.bool.enablePassengerSupport);
+        mUserMetrics = userMetrics;
     }
 
     @Override
@@ -199,51 +255,106 @@
         checkAtLeastOnePermission("dump()", android.Manifest.permission.DUMP);
         writer.println("*CarUserService*");
         String indent = "  ";
+        handleDumpListeners(writer, indent);
+        writer.printf("User switch UI receiver %s\n", mUserSwitchUiReceiver);
         synchronized (mLockUser) {
-            int numberListeners = mLifecycleListeners.size();
-            if (numberListeners == 0) {
-                writer.println("No lifecycle listeners");
-            } else {
-                writer.printf("%d lifecycle listeners\n", numberListeners);
-                for (int i = 0; i < numberListeners; i++) {
-                    int uid = mLifecycleListeners.keyAt(i);
-                    IResultReceiver listener = mLifecycleListeners.valueAt(i);
-                    writer.printf("%suid: %d Listener %s\n", indent, uid, listener);
-                }
-            }
             writer.println("User0Unlocked: " + mUser0Unlocked);
-            writer.println("MaxRunningUsers: " + mMaxRunningUsers);
             writer.println("BackgroundUsersToRestart: " + mBackgroundUsersToRestart);
             writer.println("BackgroundUsersRestarted: " + mBackgroundUsersRestartedHere);
-            List<UserInfo> allDrivers = getAllDrivers();
-            int driversSize = allDrivers.size();
-            writer.println("NumberOfDrivers: " + driversSize);
-            for (int i = 0; i < driversSize; i++) {
-                int driverId = allDrivers.get(i).id;
-                writer.print(indent + "#" + i + ": id=" + driverId);
-                List<UserInfo> passengers = getPassengers(driverId);
-                int passengersSize = passengers.size();
-                writer.print(" NumberPassengers: " + passengersSize);
-                if (passengersSize > 0) {
-                    writer.print(" [");
-                    for (int j = 0; j < passengersSize; j++) {
-                        writer.print(passengers.get(j).id);
-                        if (j < passengersSize - 1) {
-                            writer.print(" ");
-                        }
+        }
+        writer.println("MaxRunningUsers: " + mMaxRunningUsers);
+        List<UserInfo> allDrivers = getAllDrivers();
+        int driversSize = allDrivers.size();
+        writer.println("NumberOfDrivers: " + driversSize);
+        for (int i = 0; i < driversSize; i++) {
+            int driverId = allDrivers.get(i).id;
+            writer.print(indent + "#" + i + ": id=" + driverId);
+            List<UserInfo> passengers = getPassengers(driverId);
+            int passengersSize = passengers.size();
+            writer.print(" NumberPassengers: " + passengersSize);
+            if (passengersSize > 0) {
+                writer.print(" [");
+                for (int j = 0; j < passengersSize; j++) {
+                    writer.print(passengers.get(j).id);
+                    if (j < passengersSize - 1) {
+                        writer.print(" ");
                     }
-                    writer.print("]");
                 }
-                writer.println();
+                writer.print("]");
             }
-            writer.println("EnablePassengerSupport: " + mEnablePassengerSupport);
-            writer.println("User HAL timeout: " + mHalTimeoutMs + "ms");
-            writer.println("Relevant overlayable  properties");
-            Resources res = mContext.getResources();
-            writer.printf("%sowner_name=%s\n", indent,
-                    res.getString(com.android.internal.R.string.owner_name));
-            writer.printf("%sdefault_guest_name=%s\n", indent,
-                    res.getString(R.string.default_guest_name));
+            writer.println();
+        }
+        writer.printf("EnablePassengerSupport: %s\n", mEnablePassengerSupport);
+        writer.printf("User HAL timeout: %dms\n",  mHalTimeoutMs);
+        writer.printf("Initial user: %s\n", mInitialUser);
+        writer.println("Relevant overlayable properties");
+        Resources res = mContext.getResources();
+        writer.printf("%sowner_name=%s\n", indent,
+                res.getString(com.android.internal.R.string.owner_name));
+        writer.printf("%sdefault_guest_name=%s\n", indent,
+                res.getString(R.string.default_guest_name));
+        writer.printf("User switch in process=%d\n", mUserIdForUserSwitchInProcess);
+        writer.printf("Request Id for the user switch in process=%d\n ",
+                    mRequestIdForUserSwitchInProcess);
+
+        dumpUserMetrics(writer);
+    }
+
+    /**
+     * Dumps user metrics.
+     */
+    public void dumpUserMetrics(@NonNull PrintWriter writer) {
+        mUserMetrics.dump(writer);
+    }
+
+    /**
+     * Dumps first user unlocking time.
+     */
+    public void dumpFirstUserUnlockDuration(PrintWriter writer) {
+        mUserMetrics.dumpFirstUserUnlockDuration(writer);
+    }
+
+    private void handleDumpListeners(@NonNull PrintWriter writer, String indent) {
+        CountDownLatch latch = new CountDownLatch(1);
+        mHandler.post(() -> {
+            handleDumpUserLifecycleListeners(writer);
+            handleDumpAppLifecycleListeners(writer, indent);
+            latch.countDown();
+        });
+        int timeout = 5;
+        try {
+            if (!latch.await(timeout, TimeUnit.SECONDS)) {
+                writer.printf("Handler thread didn't respond in %ds when dumping listeners\n",
+                        timeout);
+            }
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            writer.println("Interrupted waiting for handler thread to dump app and user listeners");
+        }
+    }
+
+    private void handleDumpUserLifecycleListeners(@NonNull PrintWriter writer) {
+        if (mUserLifecycleListeners.isEmpty()) {
+            writer.println("No user lifecycle listeners");
+            return;
+        }
+        writer.printf("%d user lifecycle listeners\n", mUserLifecycleListeners.size());
+        for (UserLifecycleListener listener : mUserLifecycleListeners) {
+            writer.printf("Listener %s\n", listener);
+        }
+    }
+
+    private void handleDumpAppLifecycleListeners(@NonNull PrintWriter writer, String indent) {
+        int numberListeners = mAppLifecycleListeners.size();
+        if (numberListeners == 0) {
+            writer.println("No lifecycle listeners");
+            return;
+        }
+        writer.printf("%d lifecycle listeners\n", numberListeners);
+        for (int i = 0; i < numberListeners; i++) {
+            int uid = mAppLifecycleListeners.keyAt(i);
+            IResultReceiver listener = mAppLifecycleListeners.valueAt(i);
+            writer.printf("%suid: %d Listener %s\n", indent, uid, listener);
         }
     }
 
@@ -339,10 +450,8 @@
     @NonNull
     public List<UserInfo> getAllDrivers() {
         checkManageUsersOrDumpPermission("getAllDrivers");
-        return getUsers((user) -> {
-            return !isSystemUser(user.id) && user.isEnabled() && !user.isManagedProfile()
-                    && !user.isEphemeral();
-        });
+        return getUsers((user) -> !isSystemUser(user.id) && user.isEnabled()
+                && !user.isManagedProfile() && !user.isEphemeral());
     }
 
     /**
@@ -454,6 +563,7 @@
     @Override
     public void setLifecycleListenerForUid(IResultReceiver listener) {
         int uid = Binder.getCallingUid();
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SET_LIFECYCLE_LISTENER, uid);
         checkInteractAcrossUsersPermission("setLifecycleListenerForUid" + uid);
 
         try {
@@ -461,71 +571,116 @@
         } catch (RemoteException e) {
             Log.wtf(TAG_USER, "Cannot listen to death of " + uid);
         }
-        synchronized (mLockUser) {
-            mLifecycleListeners.append(uid, listener);
-        }
+        mHandler.post(() -> mAppLifecycleListeners.append(uid, listener));
     }
 
     private void onListenerDeath(int uid) {
         Log.i(TAG_USER, "Removing listeners for uid " + uid + " on binder death");
-        synchronized (mLockUser) {
-            removeLifecycleListenerLocked(uid);
-        }
+        mHandler.post(() -> mAppLifecycleListeners.remove(uid));
     }
 
     @Override
     public void resetLifecycleListenerForUid() {
         int uid = Binder.getCallingUid();
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_RESET_LIFECYCLE_LISTENER, uid);
         checkInteractAcrossUsersPermission("resetLifecycleListenerForUid-" + uid);
-
-        synchronized (mLockUser) {
-            removeLifecycleListenerLocked(uid);
-        }
-    }
-
-    private void removeLifecycleListenerLocked(int uid) {
-        mLifecycleListeners.remove(uid);
+        mHandler.post(() -> mAppLifecycleListeners.remove(uid));
     }
 
     @Override
     public void getInitialUserInfo(int requestType, int timeoutMs,
             @NonNull IResultReceiver receiver) {
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_INITIAL_USER_INFO_REQ, requestType,
+                timeoutMs);
         Objects.requireNonNull(receiver, "receiver cannot be null");
         checkManageUsersPermission("getInitialInfo");
         UsersInfo usersInfo = getUsersInfo();
         mHal.getInitialUserInfo(requestType, timeoutMs, usersInfo, (status, resp) -> {
-            try {
-                Bundle resultData = null;
-                if (resp != null) {
-                    switch (resp.action) {
-                        case InitialUserInfoResponseAction.SWITCH:
-                            resultData = new Bundle();
-                            resultData.putInt(BUNDLE_INITIAL_INFO_ACTION, resp.action);
-                            resultData.putInt(BUNDLE_USER_ID, resp.userToSwitchOrCreate.userId);
-                            break;
-                        case InitialUserInfoResponseAction.CREATE:
-                            resultData = new Bundle();
-                            resultData.putInt(BUNDLE_INITIAL_INFO_ACTION, resp.action);
-                            resultData.putInt(BUNDLE_USER_FLAGS, resp.userToSwitchOrCreate.flags);
-                            resultData.putString(BUNDLE_USER_NAME, resp.userNameToCreate);
-                            break;
-                        case InitialUserInfoResponseAction.DEFAULT:
-                            resultData = new Bundle();
-                            resultData.putInt(BUNDLE_INITIAL_INFO_ACTION, resp.action);
-                            break;
-                        default:
-                            // That's ok, it will be the same as DEFAULT...
-                            Log.w(TAG_USER, "invalid response action on " + resp);
-                    }
+            Bundle resultData = null;
+            if (resp != null) {
+                EventLog.writeEvent(EventLogTags.CAR_USER_SVC_INITIAL_USER_INFO_RESP,
+                        status, resp.action, resp.userToSwitchOrCreate.userId,
+                        resp.userToSwitchOrCreate.flags, resp.userNameToCreate);
+                switch (resp.action) {
+                    case InitialUserInfoResponseAction.SWITCH:
+                        resultData = new Bundle();
+                        resultData.putInt(BUNDLE_INITIAL_INFO_ACTION, resp.action);
+                        resultData.putInt(BUNDLE_USER_ID, resp.userToSwitchOrCreate.userId);
+                        break;
+                    case InitialUserInfoResponseAction.CREATE:
+                        resultData = new Bundle();
+                        resultData.putInt(BUNDLE_INITIAL_INFO_ACTION, resp.action);
+                        resultData.putInt(BUNDLE_USER_FLAGS, resp.userToSwitchOrCreate.flags);
+                        resultData.putString(BUNDLE_USER_NAME, resp.userNameToCreate);
+                        break;
+                    case InitialUserInfoResponseAction.DEFAULT:
+                        resultData = new Bundle();
+                        resultData.putInt(BUNDLE_INITIAL_INFO_ACTION, resp.action);
+                        break;
+                    default:
+                        // That's ok, it will be the same as DEFAULT...
+                        Log.w(TAG_USER, "invalid response action on " + resp);
                 }
-                receiver.send(status, resultData);
-            } catch (RemoteException e) {
-                Log.w(TAG_USER, "Could not send result back to receiver", e);
+            } else {
+                EventLog.writeEvent(EventLogTags.CAR_USER_SVC_INITIAL_USER_INFO_RESP, status);
             }
+            sendResult(receiver, status, resultData);
         });
     }
 
     /**
+     * Gets the initial foreground user after the device boots or resumes from suspension.
+     *
+     * <p>When the OEM supports the User HAL, the initial user won't be available until the HAL
+     * returns the initial value to {@code CarService} - if HAL takes too long or times out, this
+     * method returns {@code null}.
+     *
+     * <p>If the HAL eventually times out, {@code CarService} will fallback to its default behavior
+     * (like switching to the last active user), and this method will return the result of such
+     * operation.
+     *
+     * <p>Notice that if {@code CarService} crashes, subsequent calls to this method will return
+     * {@code null}.
+     *
+     * @hide
+     */
+    @Nullable
+    public UserInfo getInitialUser() {
+        checkInteractAcrossUsersPermission("getInitialUser");
+        synchronized (mLockUser) {
+            return mInitialUser;
+        }
+    }
+
+    // TODO(b/150413515): temporary method called by ICarImpl.setInitialUser(int userId), as for
+    // some reason passing the whole UserInfo through a raw binder transaction  is not working.
+    /**
+     * Sets the initial foreground user after the device boots or resumes from suspension.
+     */
+    public void setInitialUser(@UserIdInt int userId) {
+        UserInfo initialUser = userId == UserHandle.USER_NULL ? null
+                : mUserManager.getUserInfo(userId);
+        setInitialUser(initialUser);
+    }
+
+    /**
+     * Sets the initial foreground user after the device boots or resumes from suspension.
+     */
+    public void setInitialUser(@Nullable UserInfo user) {
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SET_INITIAL_USER,
+                user == null ? UserHandle.USER_NULL : user.id);
+        synchronized (mLockUser) {
+            mInitialUser = user;
+        }
+        if (user == null) {
+            // This mean InitialUserSetter failed and could not fallback, so the initial user was
+            // not switched (and most likely is SYSTEM_USER).
+            // TODO(b/153104378): should we set it to ActivityManager.getCurrentUser() instead?
+            Log.wtf(TAG_USER, "Initial user set to null");
+        }
+    }
+
+    /**
      * Calls the User HAL to get the initial user info.
      *
      * @param requestType type as defined by {@code InitialUserInfoRequestType}.
@@ -533,6 +688,8 @@
      */
     public void getInitialUserInfo(int requestType,
             HalCallback<InitialUserInfoResponse> callback) {
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_INITIAL_USER_INFO_REQ, requestType,
+                mHalTimeoutMs);
         Objects.requireNonNull(callback, "callback cannot be null");
         checkManageUsersPermission("getInitialUserInfo");
         UsersInfo usersInfo = getUsersInfo();
@@ -540,38 +697,144 @@
     }
 
     /**
-     * Calls the User HAL to switch user.
+     * Calls the {@link UserHalService} and {@link IActivityManager} for user switch.
      *
-     * @param targetUser - target user info
+     * <p>
+     * When everything works well, the workflow is:
+     * <ol>
+     *   <li> {@link UserHalService} is called for HAL user switch with ANDROID_SWITCH request
+     *   type, current user id, target user id, and a callback.
+     *   <li> HAL called back with SUCCESS.
+     *   <li> {@link IActivityManager} is called for Android user switch.
+     *   <li> Receiver would receive {@code STATUS_SUCCESSFUL}.
+     *   <li> Once user is unlocked, {@link UserHalService} is again called with ANDROID_POST_SWITCH
+     *   request type, current user id, and target user id. In this case, the current and target
+     *   user IDs would be same.
+     * <ol/>
+     *
+     * <p>
+     * Corner cases:
+     * <ul>
+     *   <li> If target user is already the current user, no user switch is performed and receiver
+     *   would receive {@code STATUS_ALREADY_REQUESTED_USER} right away.
+     *   <li> If HAL user switch call fails, no Android user switch. Receiver would receive
+     *   {@code STATUS_HAL_INTERNAL_FAILURE}.
+     *   <li> If HAL user switch call is successful, but android user switch call fails,
+     *   {@link UserHalService} is again called with request type POST_SWITCH, current user id, and
+     *   target user id, but in this case the current and target user IDs would be different.
+     *   <li> If another user switch request for the same target user is received while previous
+     *   request is in process, receiver would receive
+     *   {@code STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO} for the new request right away.
+     *   <li> If a user switch request is received while another user switch request for different
+     *   target user is in process, the previous request would be abandoned and new request will be
+     *   processed. No POST_SWITCH would be sent for the previous request.
+     * <ul/>
+     *
+     * @param targetUserId - target user Id
      * @param timeoutMs - timeout for HAL to wait
      * @param receiver - receiver for the results
      */
-    public void switchUser(@NonNull UserInfo targetUser, int timeoutMs,
-            @NonNull IResultReceiver receiver) {
+    @Override
+    public void switchUser(@UserIdInt int targetUserId, int timeoutMs,
+            @NonNull AndroidFuture<UserSwitchResult> receiver) {
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SWITCH_USER_REQ, targetUserId, timeoutMs);
         checkManageUsersPermission("switchUser");
+        Objects.requireNonNull(receiver);
+        UserInfo targetUser = mUserManager.getUserInfo(targetUserId);
+        Preconditions.checkArgument(targetUser != null, "Target user doesn't exist");
+
+        int currentUser = ActivityManager.getCurrentUser();
+        if (currentUser == targetUserId) {
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG_USER, "Current user is same as requested target user: " + targetUserId);
+            }
+            int resultStatus = UserSwitchResult.STATUS_ALREADY_REQUESTED_USER;
+            sendResult(receiver, resultStatus);
+            return;
+        }
+
+        synchronized (mLockUser) {
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG_USER, "switchUser(" + targetUserId + "): currentuser=" + currentUser
+                        + ", mUserIdForUserSwitchInProcess=" + mUserIdForUserSwitchInProcess);
+            }
+
+            // If there is another request for the same target user, return another request in
+            // process, else {@link mUserIdForUserSwitchInProcess} is updated and {@link
+            // mRequestIdForUserSwitchInProcess} is reset. It is possible that there may be another
+            // user switch request in process for different target user, but that request is now
+            // ignored.
+            if (mUserIdForUserSwitchInProcess == targetUserId) {
+                if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                    Log.d(TAG_USER,
+                            "Another user switch request in process for the requested target user: "
+                                    + targetUserId);
+                }
+
+                int resultStatus = UserSwitchResult.STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO;
+                sendResult(receiver, resultStatus);
+                return;
+            }
+            else {
+                mUserIdForUserSwitchInProcess = targetUserId;
+                mRequestIdForUserSwitchInProcess = 0;
+            }
+        }
+
         UsersInfo usersInfo = getUsersInfo();
-        android.hardware.automotive.vehicle.V2_0.UserInfo halUser =
+        android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
                 new android.hardware.automotive.vehicle.V2_0.UserInfo();
-        halUser.userId = targetUser.id;
-        halUser.flags = UserHalHelper.convertFlags(targetUser);
-        mHal.switchUser(halUser, timeoutMs, usersInfo, (status, resp) -> {
-            Bundle resultData = null;
-            resultData = new Bundle();
-            resultData.putInt(CarUserManager.BUNDLE_USER_SWITCH_STATUS, resp.status);
-            resultData.putInt(CarUserManager.BUNDLE_USER_SWITCH_MSG_TYPE, resp.messageType);
-            int resultStatus = CarUserManager.USER_SWICTH_STATUS_UNKNOWN;
-            if (resp != null) {
+        halTargetUser.userId = targetUser.id;
+        halTargetUser.flags = UserHalHelper.convertFlags(targetUser);
+        mHal.switchUser(halTargetUser, timeoutMs, usersInfo, (status, resp) -> {
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG, "switch response: status="
+                        + UserHalHelper.halCallbackStatusToString(status) + ", resp=" + resp);
+            }
+
+            int resultStatus = UserSwitchResult.STATUS_HAL_INTERNAL_FAILURE;
+
+            synchronized (mLockUser) {
+                if (status != HalCallback.STATUS_OK) {
+                    EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SWITCH_USER_RESP, status);
+                    Log.w(TAG, "invalid callback status ("
+                            + UserHalHelper.halCallbackStatusToString(status) + ") for response "
+                            + resp);
+                    sendResult(receiver, resultStatus);
+                    mUserIdForUserSwitchInProcess = UserHandle.USER_NULL;
+                    return;
+                }
+
+                EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SWITCH_USER_RESP, status, resp.status,
+                        resp.errorMessage);
+
+                if (mUserIdForUserSwitchInProcess != targetUserId) {
+                    // Another user switch request received while HAL responded. No need to process
+                    // this request further
+                    if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                        Log.d(TAG_USER, "Another user switch received while HAL responsed. Request "
+                                + "abondoned for : " + targetUserId + ". Current user in process: "
+                                + mUserIdForUserSwitchInProcess);
+                    }
+                    resultStatus =
+                            UserSwitchResult.STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST;
+                    sendResult(receiver, resultStatus);
+                    mUserIdForUserSwitchInProcess = UserHandle.USER_NULL;
+                    return;
+                }
+
                 switch (resp.status) {
                     case SwitchUserStatus.SUCCESS:
-                        boolean result;
+                        boolean switched;
                         try {
-                            result = mAm.switchUser(targetUser.id);
-                            // TODO(b/150409110): post user switch OK/FAIL to Hal using
-                            // ANDROID_POST_SWITCH
-                            if (result) {
-                                resultStatus = CarUserManager.USER_SWICTH_STATUS_SUCCESSFUL;
+                            switched = mAm.switchUser(targetUserId);
+                            if (switched) {
+                                sendUserSwitchUiCallback(targetUserId);
+                                resultStatus = UserSwitchResult.STATUS_SUCCESSFUL;
+                                mRequestIdForUserSwitchInProcess = resp.requestId;
                             } else {
-                                resultStatus = CarUserManager.USER_SWICTH_STATUS_ANDROID_FAILURE;
+                                resultStatus = UserSwitchResult.STATUS_ANDROID_FAILURE;
+                                postSwitchHalResponse(resp.requestId, targetUserId);
                             }
                         } catch (RemoteException e) {
                             // ignore
@@ -581,23 +844,213 @@
                         break;
                     case SwitchUserStatus.FAILURE:
                         // HAL failed to switch user
-                        resultStatus = CarUserManager.USER_SWICTH_STATUS_HAL_FAILURE;
-                        if (resp.errorMessage != null) {
-                            resultData.putString(CarUserManager.BUNDLE_USER_SWITCH_ERROR_MSG,
-                                    resp.errorMessage);
-                        }
+                        resultStatus = UserSwitchResult.STATUS_HAL_FAILURE;
                         break;
                 }
-                try {
-                    receiver.send(resultStatus, resultData);
-                } catch (RemoteException e) {
-                    // ignore
-                    Log.w(TAG_USER, "error while sending results", e);
+
+                if (mRequestIdForUserSwitchInProcess == 0) {
+                    mUserIdForUserSwitchInProcess = UserHandle.USER_NULL;
                 }
             }
+            sendResult(receiver, resultStatus, resp.errorMessage);
         });
     }
 
+    private void sendUserSwitchUiCallback(@UserIdInt int targetUserId) {
+        if (mUserSwitchUiReceiver == null) {
+            Log.w(TAG_USER, "No User switch UI receiver.");
+            return;
+        }
+
+        try {
+            EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SWITCH_USER_UI_REQ, targetUserId);
+            mUserSwitchUiReceiver.send(targetUserId, null);
+        } catch (RemoteException e) {
+            Log.e(TAG_USER, "Error calling user switch UI receiver.", e);
+        }
+    }
+
+    @Override
+    public UserIdentificationAssociationResponse getUserIdentificationAssociation(int[] types) {
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(types), "must have at least one type");
+        checkManageUsersPermission("getUserIdentificationAssociation");
+
+        int uid = getCallingUid();
+        int userId = UserHandle.getUserId(uid);
+        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_GET_USER_AUTH_REQ, uid, userId);
+
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.userInfo.userId = userId;
+        request.userInfo.flags = getHalUserInfoFlags(userId);
+
+        request.numberAssociationTypes = types.length;
+        for (int i = 0; i < types.length; i++) {
+            request.associationTypes.add(types[i]);
+        }
+
+        UserIdentificationResponse halResponse = mHal.getUserAssociation(request);
+        if (halResponse == null) {
+            Log.w(TAG, "getUserIdentificationAssociation(): HAL returned null for "
+                    + Arrays.toString(types));
+            return UserIdentificationAssociationResponse.forFailure();
+        }
+
+        int[] values = new int[halResponse.associations.size()];
+        for (int i = 0; i < values.length; i++) {
+            values[i] = halResponse.associations.get(i).value;
+        }
+        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_GET_USER_AUTH_RESP, values.length);
+
+        return UserIdentificationAssociationResponse.forSuccess(values, halResponse.errorMessage);
+    }
+
+    @Override
+    public void setUserIdentificationAssociation(int timeoutMs, int[] types, int[] values,
+            AndroidFuture<UserIdentificationAssociationResponse> result) {
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(types), "must have at least one type");
+        Preconditions.checkArgument(!ArrayUtils.isEmpty(values), "must have at least one value");
+        if (types.length != values.length) {
+            throw new IllegalArgumentException("types (" + Arrays.toString(types) + ") and values ("
+                    + Arrays.toString(values) + ") should have the same length");
+        }
+        checkManageUsersPermission("setUserIdentificationAssociation");
+
+        int uid = getCallingUid();
+        int userId = UserHandle.getUserId(uid);
+        EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SET_USER_AUTH_REQ, uid, userId, types.length);
+
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.userInfo.userId = userId;
+        request.userInfo.flags = getHalUserInfoFlags(userId);
+
+        request.numberAssociations = types.length;
+        for (int i = 0; i < types.length; i++) {
+            UserIdentificationSetAssociation association = new UserIdentificationSetAssociation();
+            association.type = types[i];
+            association.value = values[i];
+            request.associations.add(association);
+        }
+
+        mHal.setUserAssociation(timeoutMs, request, (status, resp) -> {
+            if (status != HalCallback.STATUS_OK) {
+                Log.w(TAG, "setUserIdentificationAssociation(): invalid callback status ("
+                        + UserHalHelper.halCallbackStatusToString(status) + ") for response "
+                        + resp);
+                if (resp == null || TextUtils.isEmpty(resp.errorMessage)) {
+                    EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SET_USER_AUTH_RESP, 0);
+                    result.complete(UserIdentificationAssociationResponse.forFailure());
+                    return;
+                }
+                EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SET_USER_AUTH_RESP, 0,
+                        resp.errorMessage);
+                result.complete(
+                        UserIdentificationAssociationResponse.forFailure(resp.errorMessage));
+                return;
+            }
+            int respSize = resp.associations.size();
+            EventLog.writeEvent(EventLogTags.CAR_USER_MGR_SET_USER_AUTH_RESP, respSize,
+                    resp.errorMessage);
+
+            int[] responseTypes = new int[respSize];
+            for (int i = 0; i < respSize; i++) {
+                responseTypes[i] = resp.associations.get(i).value;
+            }
+            UserIdentificationAssociationResponse response = UserIdentificationAssociationResponse
+                    .forSuccess(responseTypes, resp.errorMessage);
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG, "setUserIdentificationAssociation(): resp= " + resp
+                        + ", converted=" + response);
+            }
+            result.complete(response);
+        });
+    }
+
+    /**
+     * Gets the User HAL flags for the given user.
+     *
+     * @throws IllegalArgumentException if the user does not exist.
+     */
+    private int getHalUserInfoFlags(@UserIdInt int userId) {
+        UserInfo user = mUserManager.getUserInfo(userId);
+        Preconditions.checkArgument(user != null, "no user for id %d", userId);
+        return UserHalHelper.convertFlags(user);
+    }
+
+    private void sendResult(@NonNull IResultReceiver receiver, int resultCode,
+            @Nullable Bundle resultData) {
+        try {
+            receiver.send(resultCode, resultData);
+        } catch (RemoteException e) {
+            // ignore
+            Log.w(TAG_USER, "error while sending results", e);
+        }
+    }
+
+    private void sendResult(@NonNull AndroidFuture<UserSwitchResult> receiver,
+            @UserSwitchResult.Status int status) {
+        sendResult(receiver, status, /* errorMessage= */ null);
+    }
+
+    private void sendResult(@NonNull AndroidFuture<UserSwitchResult> receiver,
+            @UserSwitchResult.Status int status, @Nullable String errorMessage) {
+        receiver.complete(new UserSwitchResult(status, errorMessage));
+    }
+
+    /**
+     * Calls activity manager for user switch.
+     *
+     * <p><b>NOTE</b> This method is meant to be called just by UserHalService.
+     *
+     * @param requestId for the user switch request
+     * @param targetUserId of the target user
+     *
+     * @hide
+     */
+    public void switchAndroidUserFromHal(int requestId, @UserIdInt int targetUserId) {
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_SWITCH_USER_FROM_HAL_REQ, requestId,
+                targetUserId);
+        Log.i(TAG_USER, "User hal requested a user switch. Target user id " + targetUserId);
+
+        try {
+            boolean result = mAm.switchUser(targetUserId);
+            if (result) {
+                updateUserSwitchInProcess(requestId, targetUserId);
+            } else {
+                postSwitchHalResponse(requestId, targetUserId);
+            }
+        } catch (RemoteException e) {
+            // ignore
+            Log.w(TAG_USER, "error while switching user " + targetUserId, e);
+        }
+    }
+
+    private void updateUserSwitchInProcess(int requestId, @UserIdInt int targetUserId) {
+        synchronized (mLockUser) {
+            if (mUserIdForUserSwitchInProcess != UserHandle.USER_NULL) {
+                // Some other user switch is in process.
+                if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                    Log.d(TAG_USER, "User switch for user: " + mUserIdForUserSwitchInProcess
+                            + " is in process. Abandoning it as a new user switch is requested"
+                            + " for the target user: " + targetUserId);
+                }
+            }
+            mUserIdForUserSwitchInProcess = targetUserId;
+            mRequestIdForUserSwitchInProcess = requestId;
+        }
+    }
+
+    private void postSwitchHalResponse(int requestId, @UserIdInt int targetUserId) {
+        UserInfo targetUser = mUserManager.getUserInfo(targetUserId);
+        UsersInfo usersInfo = getUsersInfo();
+        android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
+                new android.hardware.automotive.vehicle.V2_0.UserInfo();
+        halTargetUser.userId = targetUser.id;
+        halTargetUser.flags = UserHalHelper.convertFlags(targetUser);
+        EventLog.writeEvent(EventLogTags.CAR_USER_SVC_POST_SWITCH_USER_REQ, requestId,
+                targetUserId, usersInfo.currentUser.userId);
+        mHal.postSwitchResponse(requestId, halTargetUser, usersInfo);
+    }
+
     /**
      * Checks if the User HAL is supported.
      */
@@ -605,7 +1058,21 @@
         return mHal.isSupported();
     }
 
-    // TODO(b/144120654): use helper to generate UsersInfo
+    /**
+     * Sets a callback which is invoked before user switch.
+     *
+     * <p>
+     * This method should only be called by the Car System UI. The purpose of this call is to notify
+     * Car System UI to show the user switch UI before the user switch.
+     */
+    @Override
+    public void setUserSwitchUiCallback(@NonNull IResultReceiver receiver) {
+        // TODO(b/154958003): check UID, only carSysUI should be allowed to set it.
+        checkManageUsersPermission("setUserSwitchUiCallback");
+        mUserSwitchUiReceiver = receiver;
+    }
+
+    // TODO(b/150413515): use helper to generate UsersInfo
     private UsersInfo getUsersInfo() {
         UserInfo currentUser;
         try {
@@ -614,6 +1081,11 @@
             // shouldn't happen
             throw new IllegalStateException("Could not get current user: ", e);
         }
+        return getUsersInfo(currentUser);
+    }
+
+    // TODO(b/150413515): use helper to generate UsersInfo
+    private UsersInfo getUsersInfo(@NonNull UserInfo currentUser) {
         List<UserInfo> existingUsers = mUserManager.getUsers();
         int size = existingUsers.size();
 
@@ -663,7 +1135,7 @@
      */
     public void addUserLifecycleListener(@NonNull UserLifecycleListener listener) {
         Objects.requireNonNull(listener, "listener cannot be null");
-        mUserLifecycleListeners.add(listener);
+        mHandler.post(() -> mUserLifecycleListeners.add(listener));
     }
 
     /**
@@ -671,7 +1143,7 @@
      */
     public void removeUserLifecycleListener(@NonNull UserLifecycleListener listener) {
         Objects.requireNonNull(listener, "listener cannot be null");
-        mUserLifecycleListeners.remove(listener);
+        mHandler.post(() -> mUserLifecycleListeners.remove(listener));
     }
 
     /** Adds callback to listen to passenger activity events. */
@@ -693,13 +1165,10 @@
         }
     }
 
-    private void unlockUser(@UserIdInt int userId) {
-        TimingsTraceLog t = new TimingsTraceLog(TAG_USER, Trace.TRACE_TAG_SYSTEM_SERVER);
-        notifyUserLifecycleListeners(
-                new UserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING, userId));
-        t.traceBegin("UnlockTasks-" + userId);
+    private void onUserUnlocked(@UserIdInt int userId) {
         ArrayList<Runnable> tasks = null;
         synchronized (mLockUser) {
+            sendPostSwitchToHalLocked(userId);
             if (userId == UserHandle.USER_SYSTEM) {
                 if (!mUser0Unlocked) { // user 0, unlocked, do this only once
                     updateDefaultUserRestriction();
@@ -733,7 +1202,6 @@
                 r.run();
             }
         }
-        t.traceEnd();
     }
 
     /**
@@ -823,94 +1291,154 @@
     /**
      * Notifies all registered {@link UserLifecycleListener} with the event passed as argument.
      */
-    public void onUserLifecycleEvent(UserLifecycleEvent event) {
-        int userId = event.getUserId();
-        if (event.getEventType() == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING) {
-            onSwitchUser(userId);
-        } else if (event.getEventType() == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING) {
-            unlockUser(userId);
+    public void onUserLifecycleEvent(@UserLifecycleEventType int eventType, long timestampMs,
+            @UserIdInt int fromUserId, @UserIdInt int toUserId) {
+        int userId = toUserId;
+
+        // Handle special cases first...
+        if (eventType == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING) {
+            onUserSwitching(fromUserId, toUserId);
+        } else if (eventType == CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKED) {
+            onUserUnlocked(userId);
         }
 
-        // TODO(b/144120654): right now just the app listeners are running in the background so the
-        // CTS tests pass (as otherwise they might fail if a car service callback takes too long),
-        // but once we refactor the car service callback into lifecycle listeners, we should use a
-        // proper thread management (like a Threadpool / executor);
+        // ...then notify listeners.
+        UserLifecycleEvent event = new UserLifecycleEvent(eventType, fromUserId, userId);
 
-        // Notify all user listeners
-        notifyUserLifecycleListeners(event);
+        mHandler.post(() -> {
+            handleNotifyServiceUserLifecycleListeners(event);
+            handleNotifyAppUserLifecycleListeners(event);
+        });
 
-        // Notify all app listeners
-        notifyAppLifecycleListeners(event);
+        // Finally, update metrics.
+        mUserMetrics.onEvent(eventType, timestampMs, fromUserId, toUserId);
     }
 
-    private void notifyAppLifecycleListeners(UserLifecycleEvent event) {
-        int listenersSize = mLifecycleListeners.size();
-        if (listenersSize == 0) {
-            Log.i(TAG_USER, "No app listener to be notified");
+    /**
+     * Sets the first user unlocking metrics.
+     */
+    public void onFirstUserUnlocked(@UserIdInt int userId, long timestampMs, long duration,
+            int halResponseTime) {
+        mUserMetrics.logFirstUnlockedUser(userId, timestampMs, duration, halResponseTime);
+    }
+
+    private void sendPostSwitchToHalLocked(@UserIdInt int userId) {
+        if (mUserIdForUserSwitchInProcess == UserHandle.USER_NULL
+                || mUserIdForUserSwitchInProcess != userId
+                || mRequestIdForUserSwitchInProcess == 0) {
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG_USER, "No user switch request Id. No android post switch sent.");
+            }
             return;
         }
-        new Thread(() -> {
-            // Must use a different TimingsTraceLog because it's another thread
-            TimingsTraceLog t = new TimingsTraceLog(TAG_USER, Trace.TRACE_TAG_SYSTEM_SERVER);
-            Log.i(TAG_USER, "Notifying " + listenersSize + " app listeners");
-            int userId = event.getUserId();
-            for (int i = 0; i < listenersSize; i++) {
-                int uid = mLifecycleListeners.keyAt(i);
-                IResultReceiver listener = mLifecycleListeners.valueAt(i);
-                t.traceBegin("notify-" + event.getEventType() + "-app-listener-" + uid);
-                Bundle data = new Bundle();
-                data.putInt(CarUserManager.BUNDLE_PARAM_ACTION, event.getEventType());
-                // TODO(b/144120654): should pass currentId from CarServiceHelperService so it
-                // can set BUNDLE_PARAM_PREVIOUS_USER_ID (and unit test it)
-                if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
-                    Log.d(TAG_USER, "Notifying listener for uid " + uid);
-                }
-                try {
-                    listener.send(userId, data);
-                } catch (RemoteException e) {
-                    Log.e(TAG_USER, "Error calling lifecycle listener", e);
-                } finally {
-                    t.traceEnd();
-                }
-            }
-        }, "SwitchUser-" + event.getUserId() + "-Listeners").start();
+        postSwitchHalResponse(mRequestIdForUserSwitchInProcess, mUserIdForUserSwitchInProcess);
+        mUserIdForUserSwitchInProcess = UserHandle.USER_NULL;
+        mRequestIdForUserSwitchInProcess = 0;
     }
 
-    private void notifyUserLifecycleListeners(UserLifecycleEvent event) {
+    private void handleNotifyAppUserLifecycleListeners(UserLifecycleEvent event) {
+        int listenersSize = mAppLifecycleListeners.size();
+        if (listenersSize == 0) {
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG_USER, "No app listener to be notified of " + event);
+            }
+            return;
+        }
+        // Must use a different TimingsTraceLog because it's another thread
+        if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+            Log.d(TAG_USER, "Notifying " + listenersSize + " app listeners of " + event);
+        }
+        int userId = event.getUserId();
+        TimingsTraceLog t = new TimingsTraceLog(TAG_USER, Trace.TRACE_TAG_SYSTEM_SERVER);
+        t.traceBegin("notify-app-listeners-user-" + userId + "-event-" + event.getEventType());
+        for (int i = 0; i < listenersSize; i++) {
+            int uid = mAppLifecycleListeners.keyAt(i);
+            IResultReceiver listener = mAppLifecycleListeners.valueAt(i);
+            Bundle data = new Bundle();
+            data.putInt(CarUserManager.BUNDLE_PARAM_ACTION, event.getEventType());
+
+            int fromUid = event.getPreviousUserId();
+            if (fromUid != UserHandle.USER_NULL) {
+                data.putInt(CarUserManager.BUNDLE_PARAM_PREVIOUS_USER_ID, fromUid);
+            }
+
+            if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+                Log.d(TAG_USER, "Notifying listener for uid " + uid);
+            }
+            try {
+                t.traceBegin("notify-app-listener-" + uid);
+                listener.send(userId, data);
+            } catch (RemoteException e) {
+                Log.e(TAG_USER, "Error calling lifecycle listener", e);
+            } finally {
+                t.traceEnd();
+            }
+        }
+        t.traceEnd(); // notify-app-listeners-user-USERID-event-EVENT_TYPE
+    }
+
+    private void handleNotifyServiceUserLifecycleListeners(UserLifecycleEvent event) {
         TimingsTraceLog t = new TimingsTraceLog(TAG_USER, Trace.TRACE_TAG_SYSTEM_SERVER);
         if (mUserLifecycleListeners.isEmpty()) {
-            Log.i(TAG_USER, "Not notifying internal UserLifecycleListeners");
+            Log.w(TAG_USER, "Not notifying internal UserLifecycleListeners");
             return;
+        } else if (Log.isLoggable(TAG_USER, Log.DEBUG)) {
+            Log.d(TAG_USER, "Notifying " + mUserLifecycleListeners.size() + " service listeners of "
+                    + event);
         }
-        t.traceBegin("notifyInternalUserLifecycleListeners");
+
+        t.traceBegin("notify-listeners-user-" + event.getUserId() + "-event-"
+                + event.getEventType());
         for (UserLifecycleListener listener : mUserLifecycleListeners) {
-            t.traceBegin("notify-" + event.getEventType() + "-listener-" + listener);
+            String listenerName = FunctionalUtils.getLambdaName(listener);
             try {
+                t.traceBegin("notify-listener-" + listenerName);
                 listener.onEvent(event);
             } catch (RuntimeException e) {
                 Log.e(TAG_USER,
-                        "Exception raised when invoking onEvent for " + listener, e);
+                        "Exception raised when invoking onEvent for " + listenerName, e);
+            } finally {
+                t.traceEnd();
             }
-            t.traceEnd();
         }
-        t.traceEnd();
+        t.traceEnd(); // notify-listeners-user-USERID-event-EVENT_TYPE
     }
 
-    private void onSwitchUser(@UserIdInt int userId) {
-        Log.i(TAG_USER, "onSwitchUser() callback for user " + userId);
+    private void onUserSwitching(@UserIdInt int fromUserId, @UserIdInt int toUserId) {
+        Log.i(TAG_USER, "onSwitchUser() callback for user " + toUserId);
         TimingsTraceLog t = new TimingsTraceLog(TAG_USER, Trace.TRACE_TAG_SYSTEM_SERVER);
-        t.traceBegin("onSwitchUser-" + userId);
+        t.traceBegin("onUserSwitching-" + toUserId);
 
-        if (!isSystemUser(userId)) {
-            mCarUserManagerHelper.setLastActiveUser(userId);
+        // Switch HAL users if user switch is not requested by CarUserService
+        notifyHalLegacySwitch(fromUserId, toUserId);
+
+        if (!UserHelper.isHeadlessSystemUser(toUserId)) {
+            mCarUserManagerHelper.setLastActiveUser(toUserId);
         }
         if (mLastPassengerId != UserHandle.USER_NULL) {
             stopPassengerInternal(mLastPassengerId, false);
         }
         if (mEnablePassengerSupport && isPassengerDisplayAvailable()) {
             setupPassengerUser();
-            startFirstPassenger(userId);
+            startFirstPassenger(toUserId);
         }
+        t.traceEnd();
+    }
+
+    private void notifyHalLegacySwitch(@UserIdInt int fromUserId, @UserIdInt int toUserId) {
+        synchronized (mLockUser) {
+            if (mUserIdForUserSwitchInProcess != UserHandle.USER_NULL) return;
+        }
+
+        // switch HAL user
+        UserInfo targetUser = mUserManager.getUserInfo(toUserId);
+        android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
+                new android.hardware.automotive.vehicle.V2_0.UserInfo();
+        halTargetUser.userId = targetUser.id;
+        halTargetUser.flags = UserHalHelper.convertFlags(targetUser);
+        UserInfo currentUser = mUserManager.getUserInfo(fromUserId);
+        UsersInfo usersInfo = getUsersInfo(currentUser);
+        mHal.legacyUserSwitch(halTargetUser, usersInfo);
     }
 
     /**
diff --git a/service/src/com/android/car/user/UserMetrics.java b/service/src/com/android/car/user/UserMetrics.java
index 6c94f28..62b9755 100644
--- a/service/src/com/android/car/user/UserMetrics.java
+++ b/service/src/com/android/car/user/UserMetrics.java
@@ -35,6 +35,7 @@
 import android.util.TimeUtils;
 
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
@@ -53,7 +54,7 @@
  * {{@link #INITIAL_CAPACITY}} occurrences of each when the operation finished (so it can be dumped
  * later).
  */
-public final class UserMetrics {
+final class UserMetrics {
 
     private static final String TAG = UserMetrics.class.getSimpleName();
 
@@ -64,7 +65,7 @@
     // garage mode
     private static final int INITIAL_CAPACITY = 2;
 
-    // TODO(b/144120654): read from resources
+    // TODO(b/150413515): read from resources
     private static final int LOG_SIZE = 10;
 
     private final Object mLock = new Object();
@@ -82,6 +83,9 @@
     @GuardedBy("mLock")
     private final SparseLongArray mFirstUserUnlockDuration = new SparseLongArray(1);
 
+    @GuardedBy("mLock")
+    private int mHalResponseTime;
+
     /**
      * Logs a user lifecycle event.
      */
@@ -116,13 +120,29 @@
     /**
      * Logs when the first user was unlocked.
      */
-    public void logFirstUnlockedUser(int userId, long timestampMs, long duration) {
+    public void logFirstUnlockedUser(int userId, long timestampMs, long duration,
+            int halResponseTime) {
         synchronized (mLock) {
+            mHalResponseTime = halResponseTime;
             mFirstUserUnlockDuration.put(userId, duration);
             onUserUnlockedEventLocked(timestampMs, userId);
         }
     }
 
+    @VisibleForTesting
+    SparseArray<UserStartingMetric> getUserStartMetrics() {
+        synchronized (mLock) {
+            return mUserStartingMetrics;
+        }
+    }
+
+    @VisibleForTesting
+    SparseArray<UserStoppingMetric> getUserStopMetrics() {
+        synchronized (mLock) {
+            return mUserStoppingMetrics;
+        }
+    }
+
     private void onUserStartingEventLocked(long timestampMs, @UserIdInt int userId) {
         if (mUserStartingMetrics == null) {
             mUserStartingMetrics = new SparseArray<>(INITIAL_CAPACITY);
@@ -131,7 +151,7 @@
         UserStartingMetric existingMetrics = mUserStartingMetrics.get(userId);
         if (existingMetrics != null) {
             Slog.w(TAG, "user re-started: " + existingMetrics);
-            finishUserStartingLocked(existingMetrics);
+            finishUserStartingLocked(existingMetrics, /* removeMetric= */ false);
         }
 
         mUserStartingMetrics.put(userId, new UserStartingMetric(userId, timestampMs));
@@ -159,7 +179,7 @@
 
         metrics.unlockedTime = timestampMs;
 
-        finishUserStartingLocked(metrics);
+        finishUserStartingLocked(metrics, /* removeMetric= */ true);
     }
 
     private void onUserStoppingEventLocked(long timestampMs, @UserIdInt int userId) {
@@ -169,7 +189,7 @@
         UserStoppingMetric existingMetrics = mUserStoppingMetrics.get(userId);
         if (existingMetrics != null) {
             Slog.w(TAG, "user re-stopped: " + existingMetrics);
-            finishUserStoppingLocked(existingMetrics);
+            finishUserStoppingLocked(existingMetrics, /* removeMetric= */ false);
         }
         mUserStoppingMetrics.put(userId, new UserStoppingMetric(userId, timestampMs));
     }
@@ -179,12 +199,16 @@
         if (metrics == null) return;
 
         metrics.shutdownTime = timestampMs;
-        finishUserStoppingLocked(metrics);
+        finishUserStoppingLocked(metrics, /* removeMetric= */ true);
     }
 
     @Nullable
     private <T extends BaseUserMetric> T getExistingMetricsLocked(
             @NonNull SparseArray<? extends BaseUserMetric> metrics, @UserIdInt int userId) {
+        if (metrics == null) {
+            Slog.w(TAG, "getExistingMetricsLocked() should not pass null metrics, except on tests");
+            return null;
+        }
         @SuppressWarnings("unchecked")
         T metric = (T) metrics.get(userId);
         if (metric == null) {
@@ -206,14 +230,20 @@
         }
     }
 
-    private void finishUserStartingLocked(@NonNull UserStartingMetric metrics) {
+    private void finishUserStartingLocked(@NonNull UserStartingMetric metrics,
+            boolean removeMetric) {
         mUserStartedLogs.log(metrics.toString());
-        removeExistingMetricsLogged(mUserStartingMetrics, metrics.userId);
+        if (removeMetric) {
+            removeExistingMetricsLogged(mUserStartingMetrics, metrics.userId);
+        }
     }
 
-    private void finishUserStoppingLocked(@NonNull UserStoppingMetric metrics) {
+    private void finishUserStoppingLocked(@NonNull UserStoppingMetric metrics,
+            boolean removeMetric) {
         mUserStoppedLogs.log(metrics.toString());
-        removeExistingMetricsLogged(mUserStoppingMetrics, metrics.userId);
+        if (removeMetric) {
+            removeExistingMetricsLogged(mUserStoppingMetrics, metrics.userId);
+        }
     }
 
     /**
@@ -239,6 +269,17 @@
 
             pw.printf("Last %d stopped users\n", LOG_SIZE);
             mUserStoppedLogs.dump("  ", pw);
+
+            pw.print("HAL response time: ");
+            if (mHalResponseTime == 0) {
+                pw.print("N/A");
+            } else if (mHalResponseTime < 0) {
+                pw.print("not replied yet, sent at ");
+                TimeUtils.formatUptime(-mHalResponseTime);
+            } else {
+                TimeUtils.formatDuration(mHalResponseTime, pw);
+            }
+            pw.println();
         }
     }
 
@@ -291,7 +332,8 @@
         abstract void dump(@NonNull PrintWriter pw);
     }
 
-    private final class UserStartingMetric extends BaseUserMetric {
+    @VisibleForTesting
+    final class UserStartingMetric extends BaseUserMetric {
         public final long startTime;
         public long switchTime;
         public long unlockingTime;
@@ -331,7 +373,8 @@
         }
     }
 
-    private final class UserStoppingMetric extends BaseUserMetric {
+    @VisibleForTesting
+    final class UserStoppingMetric extends BaseUserMetric {
         public final long stopTime;
         public long shutdownTime;
 
diff --git a/service/src/com/android/car/vms/VmsBrokerService.java b/service/src/com/android/car/vms/VmsBrokerService.java
index 9ecfc3e..aed7e69 100644
--- a/service/src/com/android/car/vms/VmsBrokerService.java
+++ b/service/src/com/android/car/vms/VmsBrokerService.java
@@ -125,18 +125,20 @@
         mStatsService.getVmsClientLogger(clientUid)
                 .logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
 
+        IBinder.DeathRecipient deathRecipient;
+        try {
+            deathRecipient = () -> unregisterClient(clientToken,
+                    VmsClientLogger.ConnectionState.DISCONNECTED);
+            callback.asBinder().linkToDeath(deathRecipient, 0);
+        } catch (RemoteException e) {
+            mStatsService.getVmsClientLogger(clientUid)
+                    .logConnectionState(VmsClientLogger.ConnectionState.DISCONNECTED);
+            throw new IllegalStateException("Client callback is already dead");
+        }
+
         synchronized (mLock) {
-            try {
-                callback.asBinder().linkToDeath(
-                        () -> unregisterClient(clientToken,
-                                VmsClientLogger.ConnectionState.DISCONNECTED), 0);
-                mClientMap.put(clientToken, new VmsClientInfo(clientUid, clientPackage, callback,
-                        legacyClient));
-            } catch (RemoteException e) {
-                Log.w(TAG, "Client process is already dead", e);
-                mStatsService.getVmsClientLogger(clientUid)
-                        .logConnectionState(VmsClientLogger.ConnectionState.DISCONNECTED);
-            }
+            mClientMap.put(clientToken, new VmsClientInfo(clientUid, clientPackage, callback,
+                    legacyClient, deathRecipient));
             return new VmsRegistrationInfo(
                     mAvailableLayers.getAvailableLayers(),
                     mSubscriptionState);
@@ -252,15 +254,17 @@
     }
 
     private void unregisterClient(IBinder clientToken, int connectionState) {
+        VmsClientInfo client;
         synchronized (mLock) {
-            VmsClientInfo client = mClientMap.remove(clientToken);
-            if (client != null) {
-                mStatsService.getVmsClientLogger(client.getUid())
-                        .logConnectionState(connectionState);
-            }
+            client = mClientMap.remove(clientToken);
         }
-        updateAvailableLayers();
-        updateSubscriptionState();
+        if (client != null) {
+            client.getCallback().asBinder().unlinkToDeath(client.getDeathRecipient(), 0);
+            mStatsService.getVmsClientLogger(client.getUid())
+                    .logConnectionState(connectionState);
+            updateAvailableLayers();
+            updateSubscriptionState();
+        }
     }
 
     private VmsClientInfo getClient(IBinder clientToken) {
diff --git a/service/src/com/android/car/vms/VmsClientInfo.java b/service/src/com/android/car/vms/VmsClientInfo.java
index 05a11dd..b1ad912 100644
--- a/service/src/com/android/car/vms/VmsClientInfo.java
+++ b/service/src/com/android/car/vms/VmsClientInfo.java
@@ -21,6 +21,7 @@
 import android.car.vms.VmsLayer;
 import android.car.vms.VmsLayerDependency;
 import android.car.vms.VmsLayersOffering;
+import android.os.IBinder;
 import android.util.ArraySet;
 import android.util.SparseArray;
 import android.util.SparseBooleanArray;
@@ -43,6 +44,7 @@
     private final String mPackageName;
     private final IVmsClientCallback mCallback;
     private final boolean mLegacyClient;
+    private final IBinder.DeathRecipient mDeathRecipient;
 
     private final Object mLock = new Object();
     @GuardedBy("mLock")
@@ -58,11 +60,13 @@
     @GuardedBy("mLock")
     private boolean mMonitoringEnabled;
 
-    VmsClientInfo(int uid, String packageName, IVmsClientCallback callback, boolean legacyClient) {
+    VmsClientInfo(int uid, String packageName, IVmsClientCallback callback, boolean legacyClient,
+            IBinder.DeathRecipient deathRecipient) {
         mUid = uid;
         mPackageName = packageName;
         mCallback = callback;
         mLegacyClient = legacyClient;
+        mDeathRecipient = deathRecipient;
     }
 
     int getUid() {
@@ -77,6 +81,14 @@
         return mCallback;
     }
 
+    boolean isLegacyClient() {
+        return mLegacyClient;
+    }
+
+    IBinder.DeathRecipient getDeathRecipient() {
+        return mDeathRecipient;
+    }
+
     void addProviderId(int providerId) {
         synchronized (mLock) {
             mProviderIds.put(providerId, true);
@@ -168,10 +180,6 @@
         }
     }
 
-    boolean isLegacyClient() {
-        return mLegacyClient;
-    }
-
     private static <K, V> Map<K, Set<V>> deepCopy(Map<K, Set<V>> original) {
         return original.entrySet().stream().collect(Collectors.toMap(
                 Map.Entry::getKey,
diff --git a/service/src/com/android/car/watchdog/CarWatchdogService.java b/service/src/com/android/car/watchdog/CarWatchdogService.java
index 7ea94f0..041ba29 100644
--- a/service/src/com/android/car/watchdog/CarWatchdogService.java
+++ b/service/src/com/android/car/watchdog/CarWatchdogService.java
@@ -26,7 +26,6 @@
 import static com.android.internal.util.function.pooled.PooledLambda.obtainMessage;
 
 import android.annotation.NonNull;
-import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.automotive.watchdog.ICarWatchdogClient;
 import android.automotive.watchdog.PowerCycle;
@@ -49,13 +48,12 @@
 import android.util.SparseArray;
 import android.util.SparseBooleanArray;
 
-import androidx.annotation.VisibleForTesting;
-
 import com.android.car.CarLocalServices;
 import com.android.car.CarPowerManagementService;
 import com.android.car.CarServiceBase;
 import com.android.car.user.CarUserService;
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.io.PrintWriter;
 import java.lang.ref.WeakReference;
@@ -108,20 +106,16 @@
     @GuardedBy("mLock")
     private final SparseArray<Boolean> mClientCheckInProgress = new SparseArray<>();
     @GuardedBy("mLock")
-    private final ArrayList<Integer> mClientsNotResponding = new ArrayList<>();
+    private final ArrayList<ClientInfo> mClientsNotResponding = new ArrayList<>();
     @GuardedBy("mMainHandler")
     private int mLastSessionId;
     @GuardedBy("mMainHandler")
     private final SparseBooleanArray mStoppedUser = new SparseBooleanArray();
 
-    public CarWatchdogService(Context context) {
-        this(context, new CarWatchdogDaemonHelper(TAG_WATCHDOG));
-    }
-
     @VisibleForTesting
-    public CarWatchdogService(Context context, CarWatchdogDaemonHelper carWatchdogDaemonHelper) {
+    public CarWatchdogService(Context context) {
         mContext = context;
-        mCarWatchdogDaemonHelper = carWatchdogDaemonHelper;
+        mCarWatchdogDaemonHelper = new CarWatchdogDaemonHelper(TAG_WATCHDOG);
         mWatchdogClient = new ICarWatchdogClientImpl(this);
     }
 
@@ -263,13 +257,21 @@
         }
     }
 
+    @VisibleForTesting
+    protected int getClientCount(int timeout) {
+        synchronized (mLock) {
+            ArrayList<ClientInfo> clients = mClientMap.get(timeout);
+            return clients != null ? clients.size() : 0;
+        }
+    }
+
     private void registerToDaemon() {
         try {
             mCarWatchdogDaemonHelper.registerMediator(mWatchdogClient);
             if (DEBUG) {
                 Log.d(TAG, "CarWatchdogService registers to car watchdog daemon");
             }
-        } catch (RemoteException | IllegalArgumentException | IllegalStateException e) {
+        } catch (RemoteException | RuntimeException e) {
             Log.w(TAG, "Cannot register to car watchdog daemon: " + e);
         }
         UserManager userManager = UserManager.get(mContext);
@@ -287,7 +289,7 @@
                     mStoppedUser.delete(info.id);
                 }
             }
-        } catch (IllegalArgumentException | RemoteException e) {
+        } catch (RemoteException | RuntimeException e) {
             Log.w(TAG, "Notifying system state change failed: " + e);
         }
     }
@@ -298,7 +300,7 @@
             if (DEBUG) {
                 Log.d(TAG, "CarWatchdogService unregisters from car watchdog daemon");
             }
-        } catch (RemoteException | IllegalArgumentException | IllegalStateException e) {
+        } catch (RemoteException | RuntimeException e) {
             Log.w(TAG, "Cannot unregister from car watchdog daemon: " + e);
         }
     }
@@ -309,6 +311,10 @@
         }
     }
 
+    private void postHealthCheckMessage(int sessionId) {
+        mMainHandler.sendMessage(obtainMessage(CarWatchdogService::doHealthCheck, this, sessionId));
+    }
+
     private void doHealthCheck(int sessionId) {
         // For critical clients, the response status are checked just before reporting to car
         // watchdog daemon. For moderate and normal clients, the status are checked after allowed
@@ -325,14 +331,13 @@
         // and killed at the next response of CarWatchdogService to car watchdog daemon.
         SparseArray<ClientInfo> pingedClients = mPingedClientMap.get(timeout);
         synchronized (mLock) {
-            // Unhealthy clients are eventually removed from the list through binderDied when they
-            // are killed.
             for (int i = 0; i < pingedClients.size(); i++) {
                 ClientInfo clientInfo = pingedClients.valueAt(i);
                 if (mStoppedUser.get(clientInfo.userId)) {
                     continue;
                 }
-                mClientsNotResponding.add(clientInfo.pid);
+                mClientsNotResponding.add(clientInfo);
+                removeClientLocked(clientInfo.client.asBinder(), timeout);
             }
             mClientCheckInProgress.setValueAt(timeout, false);
         }
@@ -387,7 +392,6 @@
         return mLastSessionId;
     }
 
-    @Nullable
     private void removeClientLocked(IBinder clientBinder, int timeout) {
         ArrayList<ClientInfo> clients = mClientMap.get(timeout);
         for (int i = 0; i < clients.size(); i++) {
@@ -401,14 +405,26 @@
 
     private void reportHealthCheckResult(int sessionId) {
         int[] clientsNotResponding;
+        ArrayList<ClientInfo> clientsToNotify;
         synchronized (mLock) {
             clientsNotResponding = toIntArray(mClientsNotResponding);
+            clientsToNotify = new ArrayList<>(mClientsNotResponding);
             mClientsNotResponding.clear();
         }
+        for (int i = 0; i < clientsToNotify.size(); i++) {
+            ClientInfo clientInfo = clientsToNotify.get(i);
+            try {
+                clientInfo.client.prepareProcessTermination();
+            } catch (RemoteException e) {
+                Log.w(TAG, "Notifying prepareProcessTermination to client(pid: " + clientInfo.pid
+                        + ") failed: " + e);
+            }
+        }
+
         try {
             mCarWatchdogDaemonHelper.tellMediatorAlive(mWatchdogClient, clientsNotResponding,
                     sessionId);
-        } catch (RemoteException | IllegalArgumentException | IllegalStateException e) {
+        } catch (RemoteException | RuntimeException e) {
             Log.w(TAG, "Cannot respond to car watchdog daemon (sessionId=" + sessionId + "): " + e);
         }
     }
@@ -442,12 +458,13 @@
                 try {
                     mCarWatchdogDaemonHelper.notifySystemStateChange(StateType.POWER_CYCLE,
                             powerCycle, /* arg2= */ -1);
-                } catch (IllegalArgumentException | RemoteException e) {
+                    if (DEBUG) {
+                        Log.d(TAG, "Notified car watchdog daemon a power cycle("
+                                + powerCycle + ")");
+                    }
+                } catch (RemoteException | RuntimeException e) {
                     Log.w(TAG, "Notifying system state change failed: " + e);
                 }
-                if (DEBUG) {
-                    Log.d(TAG, "Notified car watchdog daemon a power cycle(" + powerCycle + ")");
-                }
             }
         });
     }
@@ -481,13 +498,13 @@
             try {
                 mCarWatchdogDaemonHelper.notifySystemStateChange(StateType.USER_STATE, userId,
                         userState);
-            } catch (IllegalArgumentException | RemoteException e) {
+                if (DEBUG) {
+                    Log.d(TAG, "Notified car watchdog daemon a user state: userId = " + userId
+                            + ", userState = " + userStateDesc);
+                }
+            } catch (RemoteException | RuntimeException e) {
                 Log.w(TAG, "Notifying system state change failed: " + e);
             }
-            if (DEBUG) {
-                Log.d(TAG, "Notified car watchdog daemon a user state: userId = " + userId
-                        + ", userState = " + userStateDesc);
-            }
         });
     }
 
@@ -501,11 +518,11 @@
     }
 
     @NonNull
-    private int[] toIntArray(@NonNull ArrayList<Integer> list) {
+    private int[] toIntArray(@NonNull ArrayList<ClientInfo> list) {
         int size = list.size();
         int[] intArray = new int[size];
         for (int i = 0; i < size; i++) {
-            intArray[i] = list.get(i);
+            intArray[i] = list.get(i).pid;
         }
         return intArray;
     }
@@ -538,7 +555,7 @@
         }
     }
 
-    private final class ICarWatchdogClientImpl extends ICarWatchdogClient.Stub {
+    private static final class ICarWatchdogClientImpl extends ICarWatchdogClient.Stub {
         private final WeakReference<CarWatchdogService> mService;
 
         private ICarWatchdogClientImpl(CarWatchdogService service) {
@@ -552,8 +569,22 @@
                 Log.w(TAG, "CarWatchdogService is not available");
                 return;
             }
-            mMainHandler.sendMessage(obtainMessage(CarWatchdogService::doHealthCheck,
-                    CarWatchdogService.this, sessionId));
+            service.postHealthCheckMessage(sessionId);
+        }
+
+        @Override
+        public void prepareProcessTermination() {
+            Log.w(TAG, "CarWatchdogService is about to be killed by car watchdog daemon");
+        }
+
+        @Override
+        public int getInterfaceVersion() {
+            return this.VERSION;
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return this.HASH;
         }
     }
 
@@ -571,6 +602,12 @@
             this.timeout = timeout;
         }
 
+        @Override
+        public void binderDied() {
+            Log.w(TAG, "Client(pid: " + pid + ") died");
+            onClientDeath(client, timeout);
+        }
+
         private void linkToDeath() throws RemoteException {
             client.asBinder().linkToDeath(this, 0);
         }
@@ -578,10 +615,5 @@
         private void unlinkToDeath() {
             client.asBinder().unlinkToDeath(this, 0);
         }
-
-        @Override
-        public void binderDied() {
-            onClientDeath(client, timeout);
-        }
     }
 }
diff --git a/surround_view/app/Android.bp b/surround_view/app/Android.bp
new file mode 100644
index 0000000..efdbd43
--- /dev/null
+++ b/surround_view/app/Android.bp
@@ -0,0 +1,62 @@
+// Copyright 2020 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.
+//
+//
+
+//#################################
+cc_binary {
+    name: "sv_app",
+
+    srcs: [
+        "SurroundViewServiceCallback.cpp",
+        "shader.cpp",
+        "sv_app.cpp",
+    ],
+
+    shared_libs: [
+        "android.hardware.automotive.evs@1.1",
+        "android.hardware.automotive.sv@1.0",
+        "libEGL",
+        "libGLESv2",
+        "libbase",
+        "libbinder",
+        "libcutils",
+        "libhardware",
+        "libhidlbase",
+        "libutils",
+        "libui",
+    ],
+
+    static_libs: [
+        "libjsoncpp",
+        "libmath",
+    ],
+
+    strip: {
+        keep_symbols: true,
+    },
+
+    init_rc: ["sv_app.rc"],
+
+    cflags: [
+        "-DLOG_TAG=\"SvApp\"",
+        "-DGL_GLEXT_PROTOTYPES",
+        "-DEGL_EGLEXT_PROTOTYPES",
+        "-Wall",
+        "-Werror",
+        "-Wunused",
+        "-Wunreachable-code",
+    ],
+}
+
diff --git a/surround_view/app/SurroundViewServiceCallback.cpp b/surround_view/app/SurroundViewServiceCallback.cpp
new file mode 100644
index 0000000..05a598f
--- /dev/null
+++ b/surround_view/app/SurroundViewServiceCallback.cpp
@@ -0,0 +1,569 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#include "SurroundViewServiceCallback.h"
+
+#include <android-base/logging.h>
+#include <math/mat4.h>
+#include <ui/GraphicBuffer.h>
+#include <utils/Log.h>
+
+#include "shader_simpleTex.h"
+#include "shader.h"
+
+using android::GraphicBuffer;
+using android::hardware::automotive::evs::V1_0::DisplayState;
+using android::hardware::automotive::evs::V1_0::EvsResult;
+using android::hardware::Return;
+using android::sp;
+using std::string;
+
+EGLDisplay   SurroundViewServiceCallback::sGLDisplay;
+GLuint       SurroundViewServiceCallback::sFrameBuffer;
+GLuint       SurroundViewServiceCallback::sColorBuffer;
+GLuint       SurroundViewServiceCallback::sDepthBuffer;
+GLuint       SurroundViewServiceCallback::sTextureId;
+EGLImageKHR  SurroundViewServiceCallback::sKHRimage;
+
+const char* SurroundViewServiceCallback::getEGLError(void) {
+    switch (eglGetError()) {
+        case EGL_SUCCESS:
+            return "EGL_SUCCESS";
+        case EGL_NOT_INITIALIZED:
+            return "EGL_NOT_INITIALIZED";
+        case EGL_BAD_ACCESS:
+            return "EGL_BAD_ACCESS";
+        case EGL_BAD_ALLOC:
+            return "EGL_BAD_ALLOC";
+        case EGL_BAD_ATTRIBUTE:
+            return "EGL_BAD_ATTRIBUTE";
+        case EGL_BAD_CONTEXT:
+            return "EGL_BAD_CONTEXT";
+        case EGL_BAD_CONFIG:
+            return "EGL_BAD_CONFIG";
+        case EGL_BAD_CURRENT_SURFACE:
+            return "EGL_BAD_CURRENT_SURFACE";
+        case EGL_BAD_DISPLAY:
+            return "EGL_BAD_DISPLAY";
+        case EGL_BAD_SURFACE:
+            return "EGL_BAD_SURFACE";
+        case EGL_BAD_MATCH:
+            return "EGL_BAD_MATCH";
+        case EGL_BAD_PARAMETER:
+            return "EGL_BAD_PARAMETER";
+        case EGL_BAD_NATIVE_PIXMAP:
+            return "EGL_BAD_NATIVE_PIXMAP";
+        case EGL_BAD_NATIVE_WINDOW:
+            return "EGL_BAD_NATIVE_WINDOW";
+        case EGL_CONTEXT_LOST:
+            return "EGL_CONTEXT_LOST";
+        default:
+            return "Unknown error";
+    }
+}
+
+const string SurroundViewServiceCallback::getGLFramebufferError(void) {
+    switch (glCheckFramebufferStatus(GL_FRAMEBUFFER)) {
+    case GL_FRAMEBUFFER_COMPLETE:
+        return "GL_FRAMEBUFFER_COMPLETE";
+    case GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT:
+        return "GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT";
+    case GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:
+        return "GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";
+    case GL_FRAMEBUFFER_UNSUPPORTED:
+        return "GL_FRAMEBUFFER_UNSUPPORTED";
+    case GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS:
+        return "GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS";
+    default:
+        return std::to_string(glCheckFramebufferStatus(GL_FRAMEBUFFER));
+    }
+}
+
+bool SurroundViewServiceCallback::prepareGL() {
+    LOG(DEBUG) << __FUNCTION__;
+
+    // Just trivially return success if we're already prepared
+    if (sGLDisplay != EGL_NO_DISPLAY) {
+        return true;
+    }
+
+    // Hardcoded to RGBx output display
+    const EGLint config_attribs[] = {
+        // Tag                  Value
+        EGL_RENDERABLE_TYPE,    EGL_OPENGL_ES2_BIT,
+        EGL_RED_SIZE,           8,
+        EGL_GREEN_SIZE,         8,
+        EGL_BLUE_SIZE,          8,
+        EGL_NONE
+    };
+
+    // Select OpenGL ES v 3
+    const EGLint context_attribs[] = {EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE};
+
+    // Set up our OpenGL ES context associated with the default display
+    // (though we won't be visible)
+    EGLDisplay display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
+    if (display == EGL_NO_DISPLAY) {
+        LOG(ERROR) << "Failed to get egl display";
+        return false;
+    }
+
+    EGLint major = 0;
+    EGLint minor = 0;
+    if (!eglInitialize(display, &major, &minor)) {
+        LOG(ERROR) << "Failed to initialize EGL: "
+                   << getEGLError();
+        return false;
+    } else {
+        LOG(INFO) << "Initialized EGL at "
+                  << major
+                  << "."
+                  << minor;
+    }
+
+    // Select the configuration that "best" matches our desired characteristics
+    EGLConfig egl_config;
+    EGLint num_configs;
+    if (!eglChooseConfig(display, config_attribs, &egl_config, 1,
+                         &num_configs)) {
+        LOG(ERROR) << "eglChooseConfig() failed with error: "
+                   << getEGLError();
+        return false;
+    }
+
+    // Create a dummy pbuffer so we have a surface to bind -- we never intend
+    // to draw to this because attachRenderTarget will be called first.
+    EGLint surface_attribs[] = { EGL_WIDTH, 1, EGL_HEIGHT, 1, EGL_NONE };
+    EGLSurface sDummySurface = eglCreatePbufferSurface(display, egl_config,
+                                                       surface_attribs);
+    if (sDummySurface == EGL_NO_SURFACE) {
+        LOG(ERROR) << "Failed to create OpenGL ES Dummy surface: "
+                   << getEGLError();
+        return false;
+    } else {
+        LOG(INFO) << "Dummy surface looks good!  :)";
+    }
+
+    //
+    // Create the EGL context
+    //
+    EGLContext context = eglCreateContext(display, egl_config,
+                                          EGL_NO_CONTEXT, context_attribs);
+    if (context == EGL_NO_CONTEXT) {
+        LOG(ERROR) << "Failed to create OpenGL ES Context: "
+                   << getEGLError();
+        return false;
+    }
+
+    // Activate our render target for drawing
+    if (!eglMakeCurrent(display, sDummySurface, sDummySurface, context)) {
+        LOG(ERROR) << "Failed to make the OpenGL ES Context current: "
+                   << getEGLError();
+        return false;
+    } else {
+        LOG(INFO) << "We made our context current!  :)";
+    }
+
+    // Report the extensions available on this implementation
+    const char* gl_extensions = (const char*) glGetString(GL_EXTENSIONS);
+    LOG(INFO) << "GL EXTENSIONS:\n  "
+              << gl_extensions;
+
+    // Reserve handles for the color and depth targets we'll be setting up
+    glGenRenderbuffers(1, &sColorBuffer);
+    glGenRenderbuffers(1, &sDepthBuffer);
+
+    // Set up the frame buffer object we can modify and use for off screen
+    // rendering
+    glGenFramebuffers(1, &sFrameBuffer);
+    glBindFramebuffer(GL_FRAMEBUFFER, sFrameBuffer);
+
+    LOG(INFO) << "FrameBuffer is bound to "
+              << sFrameBuffer;
+
+    // New (from TextWrapper)
+    glGenTextures(1, &sTextureId);
+
+    // Now that we're assured success, store object handles we constructed
+    sGLDisplay = display;
+
+    GLuint mShaderProgram = 0;
+    // Load our shader program if we don't have it already
+    if (!mShaderProgram) {
+        mShaderProgram = buildShaderProgram(kVtxShaderSimpleTexture,
+                                            kPixShaderSimpleTexture,
+                                            "simpleTexture");
+        if (!mShaderProgram) {
+            LOG(ERROR) << "Error building shader program";
+            return false;
+        }
+    }
+
+    // Select our screen space simple texture shader
+    glUseProgram(mShaderProgram);
+
+    // Set up the model to clip space transform (identity matrix if we're
+    // modeling in screen space)
+    GLint loc = glGetUniformLocation(mShaderProgram, "cameraMat");
+    if (loc < 0) {
+        LOG(ERROR) << "Couldn't set shader parameter 'cameraMat'";
+    } else {
+        const android::mat4 identityMatrix;
+        glUniformMatrix4fv(loc, 1, false, identityMatrix.asArray());
+    }
+
+    GLint sampler = glGetUniformLocation(mShaderProgram, "tex");
+    if (sampler < 0) {
+        LOG(ERROR) << "Couldn't set shader parameter 'tex'";
+    } else {
+        // Tell the sampler we looked up from the shader to use texture slot 0
+        // as its source
+        glUniform1i(sampler, 0);
+    }
+
+    return true;
+}
+
+BufferDesc SurroundViewServiceCallback::convertBufferDesc(
+    const BufferDesc_1_0& src) {
+    BufferDesc dst = {};
+    AHardwareBuffer_Desc* pDesc =
+        reinterpret_cast<AHardwareBuffer_Desc *>(&dst.buffer.description);
+    pDesc->width  = src.width;
+    pDesc->height = src.height;
+    pDesc->layers = 1;
+    pDesc->format = src.format;
+    pDesc->usage  = static_cast<uint64_t>(src.usage);
+    pDesc->stride = src.stride;
+
+    dst.buffer.nativeHandle = src.memHandle;
+    dst.pixelSize = src.pixelSize;
+    dst.bufferId = src.bufferId;
+
+    return dst;
+}
+
+bool SurroundViewServiceCallback::attachRenderTarget(
+    const BufferDesc& tgtBuffer) {
+    const AHardwareBuffer_Desc* pDesc =
+        reinterpret_cast<const AHardwareBuffer_Desc *>(
+            &tgtBuffer.buffer.description);
+    // Hardcoded to RGBx for now
+    if (pDesc->format != HAL_PIXEL_FORMAT_RGBA_8888) {
+        LOG(ERROR) << "Unsupported target buffer format";
+        return false;
+    }
+
+    // create a GraphicBuffer from the existing handle
+    sp<GraphicBuffer> pGfxBuffer =
+        new GraphicBuffer(tgtBuffer.buffer.nativeHandle,
+                          GraphicBuffer::CLONE_HANDLE,
+                          pDesc->width,
+                          pDesc->height,
+                          pDesc->format,
+                          pDesc->layers,
+                          GRALLOC_USAGE_HW_RENDER,
+                          pDesc->stride);
+    if (pGfxBuffer == nullptr) {
+        LOG(ERROR) << "Failed to allocate GraphicBuffer to wrap image handle";
+        return false;
+    }
+
+    // Get a GL compatible reference to the graphics buffer we've been given
+    EGLint eglImageAttributes[] = {EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE};
+    EGLClientBuffer clientBuf = static_cast<EGLClientBuffer>(
+        pGfxBuffer->getNativeBuffer());
+
+    // Destroy current KHR image due to new request.
+    if (sKHRimage != EGL_NO_IMAGE_KHR) {
+        eglDestroyImageKHR(sGLDisplay, sKHRimage);
+    }
+
+    sKHRimage = eglCreateImageKHR(sGLDisplay, EGL_NO_CONTEXT,
+                                  EGL_NATIVE_BUFFER_ANDROID, clientBuf,
+                                  eglImageAttributes);
+    if (sKHRimage == EGL_NO_IMAGE_KHR) {
+        LOG(ERROR) << "error creating EGLImage for target buffer: "
+                   << getEGLError();
+        return false;
+    }
+
+    glBindFramebuffer(GL_FRAMEBUFFER, sFrameBuffer);
+
+    // Construct a render buffer around the external buffer
+    glBindRenderbuffer(GL_RENDERBUFFER, sColorBuffer);
+    glEGLImageTargetRenderbufferStorageOES(
+        GL_RENDERBUFFER, static_cast<GLeglImageOES>(sKHRimage));
+    if (eglGetError() != EGL_SUCCESS) {
+        LOG(INFO) << "glEGLImageTargetRenderbufferStorageOES => %s"
+                  << getEGLError();
+        return false;
+    }
+
+    glFramebufferRenderbuffer(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,
+                              GL_RENDERBUFFER, sColorBuffer);
+    if (eglGetError() != EGL_SUCCESS) {
+        LOG(ERROR) << "glFramebufferRenderbuffer => %s", getEGLError();
+        return false;
+    }
+
+    GLenum checkResult = glCheckFramebufferStatus(GL_FRAMEBUFFER);
+    if (checkResult != GL_FRAMEBUFFER_COMPLETE) {
+        LOG(ERROR) << "Offscreen framebuffer not configured successfully ("
+                   << checkResult
+                   << ": "
+                   << getGLFramebufferError().c_str()
+                   << ")";
+        if (eglGetError() != EGL_SUCCESS) {
+            LOG(ERROR) << "glCheckFramebufferStatus => "
+                       << getEGLError();
+        }
+        return false;
+    }
+
+    // Set the viewport
+    glViewport(0, 0, pDesc->width, pDesc->height);
+
+    // We don't actually need the clear if we're going to cover the whole
+    // screen anyway
+    // Clear the color buffer
+    glClearColor(0.8f, 0.1f, 0.2f, 1.0f);
+    glClear(GL_COLOR_BUFFER_BIT);
+
+    return true;
+}
+
+void SurroundViewServiceCallback::detachRenderTarget() {
+    // Drop our external render target
+    if (sKHRimage != EGL_NO_IMAGE_KHR) {
+        eglDestroyImageKHR(sGLDisplay, sKHRimage);
+        sKHRimage = EGL_NO_IMAGE_KHR;
+    }
+}
+
+SurroundViewServiceCallback::SurroundViewServiceCallback(
+    sp<IEvsDisplay> pDisplay,
+    sp<ISurroundViewSession> pSession) :
+    mDisplay(pDisplay),
+    mSession(pSession) {
+    // Nothing but member initialization
+}
+
+Return<void> SurroundViewServiceCallback::notify(SvEvent svEvent) {
+    // Waiting for STREAM_STARTED event.
+    if (svEvent == SvEvent::STREAM_STARTED) {
+        LOG(INFO) << "Received STREAM_STARTED event";
+
+        // Set the display state to VISIBLE_ON_NEXT_FRAME
+        if (mDisplay != nullptr) {
+            Return<EvsResult> result =
+                mDisplay->setDisplayState(DisplayState::VISIBLE_ON_NEXT_FRAME);
+            if (result != EvsResult::OK) {
+              LOG(ERROR) << "Failed to setDisplayState";
+            }
+        } else {
+            LOG(WARNING) << "setDisplayState is ignored since EVS display"
+                         << " is null";
+        }
+
+        // Set up OpenGL (exit if fail)
+        if (!prepareGL()) {
+            LOG(ERROR) << "Error while setting up OpenGL!";
+            exit(EXIT_FAILURE);
+        }
+    } else if (svEvent == SvEvent::CONFIG_UPDATED) {
+        LOG(INFO) << "Received CONFIG_UPDATED event";
+    } else if (svEvent == SvEvent::STREAM_STOPPED) {
+        LOG(INFO) << "Received STREAM_STOPPED event";
+    } else if (svEvent == SvEvent::FRAME_DROPPED) {
+        LOG(INFO) << "Received FRAME_DROPPED event";
+    } else if (svEvent == SvEvent::TIMEOUT) {
+        LOG(INFO) << "Received TIMEOUT event";
+    } else {
+        LOG(INFO) << "Received unknown event";
+    }
+    return {};
+}
+
+Return<void> SurroundViewServiceCallback::receiveFrames(
+    const SvFramesDesc& svFramesDesc) {
+    LOG(INFO) << "Incoming frames with svBuffers size: "
+              << svFramesDesc.svBuffers.size();
+    if (svFramesDesc.svBuffers.size() == 0) {
+        return {};
+    }
+
+    // Now we assume there is only one frame for both 2d and 3d.
+    auto handle =
+          svFramesDesc.svBuffers[0].hardwareBuffer.nativeHandle
+          .getNativeHandle();
+    const AHardwareBuffer_Desc* pDesc =
+          reinterpret_cast<const AHardwareBuffer_Desc *>(
+              &svFramesDesc.svBuffers[0].hardwareBuffer.description);
+
+    LOG(INFO) << "App received frames";
+    LOG(INFO) << "descData: "
+              << pDesc->width
+              << pDesc->height
+              << pDesc->layers
+              << pDesc->format
+              << pDesc->usage
+              << pDesc->stride;
+    LOG(INFO) << "nativeHandle: "
+              << handle;
+
+    // Only process the frame when EVS display is valid. If
+    // not, ignore the coming frame.
+    if (mDisplay == nullptr) {
+        LOG(WARNING) << "Display is not ready. Skip the frame";
+    } else {
+        // Get display buffer from EVS display
+        BufferDesc_1_0 tgtBuffer = {};
+        mDisplay->getTargetBuffer([&tgtBuffer](const BufferDesc_1_0& buff) {
+            tgtBuffer = buff;
+        });
+
+        if (!attachRenderTarget(convertBufferDesc(tgtBuffer))) {
+            LOG(ERROR) << "Failed to attach render target";
+            return {};
+        } else {
+            LOG(INFO) << "Successfully attached render target";
+        }
+
+        // Call HIDL API "doneWithFrames" to return the ownership
+        // back to SV service
+        if (mSession == nullptr) {
+            LOG(ERROR) << "SurroundViewSession in callback is invalid";
+            return {};
+        } else {
+            mSession->doneWithFrames(svFramesDesc);
+        }
+
+        // Render frame to EVS display
+        LOG(INFO) << "Rendering to display buffer";
+        sp<GraphicBuffer> graphicBuffer =
+            new GraphicBuffer(handle,
+                              GraphicBuffer::CLONE_HANDLE,
+                              pDesc->width,
+                              pDesc->height,
+                              pDesc->format,
+                              pDesc->layers,  // layer count
+                              pDesc->usage,
+                              pDesc->stride);
+
+        EGLImageKHR KHRimage = EGL_NO_IMAGE_KHR;
+
+        // Get a GL compatible reference to the graphics buffer we've been given
+        EGLint eglImageAttributes[] = {
+            EGL_IMAGE_PRESERVED_KHR,
+            EGL_TRUE,
+            EGL_NONE
+        };
+        EGLClientBuffer clientBuf = static_cast<EGLClientBuffer>(
+            graphicBuffer->getNativeBuffer());
+        KHRimage = eglCreateImageKHR(sGLDisplay, EGL_NO_CONTEXT,
+                                     EGL_NATIVE_BUFFER_ANDROID, clientBuf,
+                                     eglImageAttributes);
+        if (KHRimage == EGL_NO_IMAGE_KHR) {
+            const char *msg = getEGLError();
+            LOG(ERROR) << "error creating EGLImage: "
+                       << msg;
+            return {};
+        } else {
+            LOG(INFO) << "Successfully created EGLImage";
+
+            // Update the texture handle we already created to refer to
+            // this gralloc buffer
+            glActiveTexture(GL_TEXTURE0);
+            glBindTexture(GL_TEXTURE_2D, sTextureId);
+            glEGLImageTargetTexture2DOES(GL_TEXTURE_2D,
+                                         static_cast<GLeglImageOES>(KHRimage));
+
+            // Initialize the sampling properties (it seems the sample may
+            // not work if this isn't done)
+            // The user of this texture may very well want to set their own
+            // filtering, but we're going to pay the (minor) price of
+            // setting this up for them to avoid the dreaded "black image"
+            // if they forget.
+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER,
+                            GL_LINEAR);
+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER,
+                            GL_NEAREST);
+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S,
+                            GL_CLAMP_TO_EDGE);
+            glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T,
+                            GL_CLAMP_TO_EDGE);
+        }
+
+        // Bind the texture and assign it to the shader's sampler
+        glActiveTexture(GL_TEXTURE0);
+        glBindTexture(GL_TEXTURE_2D, sTextureId);
+
+        // We want our image to show up opaque regardless of alpha values
+        glDisable(GL_BLEND);
+
+        // Draw a rectangle on the screen
+        const GLfloat vertsCarPos[] = {
+            -1.0,  1.0, 0.0f,   // left top in window space
+            1.0,  1.0, 0.0f,    // right top
+            -1.0, -1.0, 0.0f,   // left bottom
+            1.0, -1.0, 0.0f     // right bottom
+        };
+        const GLfloat vertsCarTex[] = {
+            0.0f, 0.0f,   // left top
+            1.0f, 0.0f,   // right top
+            0.0f, 1.0f,   // left bottom
+            1.0f, 1.0f    // right bottom
+        };
+        glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, vertsCarPos);
+        glVertexAttribPointer(1, 2, GL_FLOAT, GL_FALSE, 0, vertsCarTex);
+        glEnableVertexAttribArray(0);
+        glEnableVertexAttribArray(1);
+
+        glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
+
+        glDisableVertexAttribArray(0);
+        glDisableVertexAttribArray(1);
+
+        // Now that everything is submitted, release our hold on the
+        // texture resource
+        detachRenderTarget();
+
+        // Wait for the rendering to finish
+        glFinish();
+        detachRenderTarget();
+
+        // Drop our external render target
+        if (KHRimage != EGL_NO_IMAGE_KHR) {
+            eglDestroyImageKHR(sGLDisplay, KHRimage);
+            KHRimage = EGL_NO_IMAGE_KHR;
+        }
+
+        LOG(DEBUG) << "Rendering finished. Going to return the buffer";
+
+        // Call HIDL API "doneWithFrames" to return the ownership
+        // back to SV service
+        if (mSession == nullptr) {
+            LOG(WARNING) << "SurroundViewSession in callback is invalid";
+        } else {
+            mSession->doneWithFrames(svFramesDesc);
+        }
+
+        // Return display buffer back to EVS display
+        mDisplay->returnTargetBufferForDisplay(tgtBuffer);
+    }
+    return {};
+}
diff --git a/surround_view/app/SurroundViewServiceCallback.h b/surround_view/app/SurroundViewServiceCallback.h
new file mode 100644
index 0000000..b2ab831
--- /dev/null
+++ b/surround_view/app/SurroundViewServiceCallback.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2020 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.
+ */
+#include <stdio.h>
+
+#include <utils/StrongPointer.h>
+
+#include <android/hardware/automotive/sv/1.0/ISurroundViewService.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewStream.h>
+#include <android/hardware/automotive/evs/1.1/IEvsEnumerator.h>
+#include <android/hardware_buffer.h>
+
+#include <EGL/egl.h>
+#include <EGL/eglext.h>
+#include <GLES2/gl2.h>
+#include <GLES2/gl2ext.h>
+#include <GLES3/gl3.h>
+#include <GLES3/gl3ext.h>
+
+using namespace android::hardware::automotive::sv::V1_0;
+using namespace android::hardware::automotive::evs::V1_1;
+
+using BufferDesc_1_0  = ::android::hardware::automotive::evs::V1_0::BufferDesc;
+
+class SurroundViewServiceCallback : public ISurroundViewStream {
+public:
+    SurroundViewServiceCallback(android::sp<IEvsDisplay> pDisplay,
+                                android::sp<ISurroundViewSession> pSession);
+
+    // Methods from ::android::hardware::automotive::sv::V1_0::ISurroundViewStream.
+    android::hardware::Return<void> notify(SvEvent svEvent) override;
+    android::hardware::Return<void> receiveFrames(const SvFramesDesc& svFramesDesc) override;
+
+private:
+    static const char* getEGLError(void);
+    static const std::string getGLFramebufferError(void);
+
+    bool prepareGL();
+    BufferDesc convertBufferDesc(const BufferDesc_1_0& src);
+    bool attachRenderTarget(const BufferDesc& tgtBuffer);
+    void detachRenderTarget();
+
+    static EGLDisplay   sGLDisplay;
+    static GLuint       sFrameBuffer;
+    static GLuint       sColorBuffer;
+    static GLuint       sDepthBuffer;
+    static GLuint       sTextureId;
+    static EGLImageKHR  sKHRimage;
+
+    android::sp<IEvsDisplay> mDisplay;
+    android::sp<ISurroundViewSession> mSession;
+};
diff --git a/surround_view/app/shader.cpp b/surround_view/app/shader.cpp
new file mode 100644
index 0000000..3ca6f74
--- /dev/null
+++ b/surround_view/app/shader.cpp
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#include "shader.h"
+
+#include <android-base/logging.h>
+#include <memory>
+#include <stdio.h>
+
+// Given shader source, load and compile it
+static GLuint loadShader(GLenum type, const char *shaderSrc, const char *name) {
+    // Create the shader object
+    GLuint shader = glCreateShader (type);
+    if (shader == 0) {
+        return 0;
+    }
+
+    // Load and compile the shader
+    glShaderSource(shader, 1, &shaderSrc, nullptr);
+    glCompileShader(shader);
+
+    // Verify the compilation worked as expected
+    GLint compiled = 0;
+    glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
+    if (!compiled) {
+        LOG(ERROR) << "Error compiling "
+                   << (type==GL_VERTEX_SHADER ? "vtx":"pxl")
+                   << " shader for "
+                   << name;
+
+        GLint size = 0;
+        glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &size);
+        if (size > 0) {
+            // Get and report the error message
+            std::unique_ptr<char> infoLog(new char[size]);
+            glGetShaderInfoLog(shader, size, NULL, infoLog.get());
+            LOG(ERROR) << "  msg:\n"
+                       << infoLog.get();
+        }
+
+        glDeleteShader(shader);
+        return 0;
+    }
+
+    return shader;
+}
+
+
+// Create a program object given vertex and pixels shader source
+GLuint buildShaderProgram(const char* vtxSrc, const char* pxlSrc, const char* name) {
+    GLuint program = glCreateProgram();
+    if (program == 0) {
+        LOG(ERROR) << "Failed to allocate program object";
+        return 0;
+    }
+
+    // Compile the shaders and bind them to this program
+    GLuint vertexShader = loadShader(GL_VERTEX_SHADER, vtxSrc, name);
+    if (vertexShader == 0) {
+        LOG(ERROR) << "Failed to load vertex shader";
+        glDeleteProgram(program);
+        return 0;
+    }
+    GLuint pixelShader = loadShader(GL_FRAGMENT_SHADER, pxlSrc, name);
+    if (pixelShader == 0) {
+        LOG(ERROR) << "Failed to load pixel shader";
+        glDeleteProgram(program);
+        glDeleteShader(vertexShader);
+        return 0;
+    }
+    glAttachShader(program, vertexShader);
+    glAttachShader(program, pixelShader);
+
+    // Link the program
+    glLinkProgram(program);
+    GLint linked = 0;
+    glGetProgramiv(program, GL_LINK_STATUS, &linked);
+    if (!linked) {
+        LOG(ERROR) << "Error linking program.";
+        GLint size = 0;
+        glGetProgramiv(program, GL_INFO_LOG_LENGTH, &size);
+        if (size > 0) {
+            // Get and report the error message
+            std::unique_ptr<char> infoLog(new char[size]);
+            glGetProgramInfoLog(program, size, NULL, infoLog.get());
+            LOG(ERROR) << "  msg:  "
+                       << infoLog.get();
+        }
+
+        glDeleteProgram(program);
+        glDeleteShader(vertexShader);
+        glDeleteShader(pixelShader);
+        return 0;
+    }
+
+    return program;
+}
+
diff --git a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java b/surround_view/app/shader.h
similarity index 66%
copy from tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
copy to surround_view/app/shader.h
index 22b460e..63d5795 100644
--- a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/IncarTestingFragment.java
+++ b/surround_view/app/shader.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright 2020 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.
@@ -13,10 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package com.google.android.car.garagemode.testapp;
 
-import androidx.fragment.app.Fragment;
+#ifndef SHADER_H
+#define SHADER_H
 
-public class IncarTestingFragment extends Fragment {
+#include <GLES2/gl2.h>
 
-}
+// Create a program object given vertex and pixels shader source
+GLuint buildShaderProgram(const char* vtxSrc, const char* pxlSrc, const char* name);
+
+#endif // SHADER_H
diff --git a/surround_view/app/shader_simpleTex.h b/surround_view/app/shader_simpleTex.h
new file mode 100644
index 0000000..4caf633
--- /dev/null
+++ b/surround_view/app/shader_simpleTex.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#ifndef SHADER_SIMPLE_TEX_H
+#define SHADER_SIMPLE_TEX_H
+
+const char kVtxShaderSimpleTexture[] = ""
+        "#version 300 es                        \n"
+        "layout(location = 0) in vec4 posCoord; \n"
+        "layout(location = 1) in vec2 texCoord; \n"
+        "uniform mat4 cameraMat;                \n"
+        "out vec2 TexCoord;                     \n"
+        "void main()                            \n"
+        "{                                      \n"
+        "   gl_Position = cameraMat * posCoord; \n"
+        "   TexCoord = texCoord;                \n"
+        "}                                      \n";
+
+const char kPixShaderSimpleTexture[] =
+        "#version 300 es                                  \n"
+        "precision mediump float;                         \n"
+        "uniform sampler2D texSampler;                    \n"
+        "in vec2 TexCoord;                                \n"
+        "out vec4 color;                                  \n"
+        "void main()                                      \n"
+        "{                                                \n"
+        "    vec4 texel = texture(texSampler, TexCoord);  \n"
+        "    color = texel;                               \n"
+        "}                                                \n";
+
+#endif // SHADER_SIMPLE_TEX_H
diff --git a/surround_view/app/sv_app.cpp b/surround_view/app/sv_app.cpp
new file mode 100644
index 0000000..2fe0c86
--- /dev/null
+++ b/surround_view/app/sv_app.cpp
@@ -0,0 +1,258 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#include <android-base/logging.h>
+#include <android/hardware/automotive/evs/1.1/IEvsEnumerator.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewService.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundView2dSession.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundView3dSession.h>
+#include <hidl/HidlTransportSupport.h>
+#include <stdio.h>
+#include <utils/StrongPointer.h>
+#include <utils/Log.h>
+#include <thread>
+
+#include "SurroundViewServiceCallback.h"
+
+// libhidl:
+using android::hardware::configureRpcThreadpool;
+using android::hardware::joinRpcThreadpool;
+
+using android::sp;
+using android::hardware::Return;
+using android::hardware::automotive::evs::V1_0::EvsResult;
+
+using BufferDesc_1_0  = android::hardware::automotive::evs::V1_0::BufferDesc;
+using DisplayState = android::hardware::automotive::evs::V1_0::DisplayState;
+
+using namespace android::hardware::automotive::sv::V1_0;
+using namespace android::hardware::automotive::evs::V1_1;
+
+const int kLowResolutionWidth = 120;
+const int kLowResolutionHeight = 90;
+
+enum DemoMode {
+    UNKNOWN,
+    DEMO_2D,
+    DEMO_3D,
+};
+
+bool run2dSurroundView(sp<ISurroundViewService> pSurroundViewService,
+                       sp<IEvsDisplay> pDisplay) {
+    LOG(INFO) << "Run 2d Surround View demo";
+
+    // Call HIDL API "start2dSession"
+    sp<ISurroundView2dSession> surroundView2dSession;
+
+    SvResult svResult;
+    pSurroundViewService->start2dSession(
+        [&surroundView2dSession, &svResult](
+            const sp<ISurroundView2dSession>& session, SvResult result) {
+        surroundView2dSession = session;
+        svResult = result;
+    });
+
+    if (surroundView2dSession == nullptr || svResult != SvResult::OK) {
+        LOG(ERROR) << "Failed to start2dSession";
+        return false;
+    } else {
+        LOG(INFO) << "start2dSession succeeded";
+    }
+
+    sp<SurroundViewServiceCallback> sv2dCallback
+        = new SurroundViewServiceCallback(pDisplay, surroundView2dSession);
+
+    // Start 2d stream with callback
+    if (surroundView2dSession->startStream(sv2dCallback) != SvResult::OK) {
+        LOG(ERROR) << "Failed to start 2d stream";
+        return false;
+    }
+
+    // Let the SV algorithm run for 10 seconds for HIGH_QUALITY
+    std::this_thread::sleep_for(std::chrono::seconds(10));
+
+    // Switch to low quality and lower resolution
+    Sv2dConfig config;
+    config.width = kLowResolutionWidth;
+    config.blending = SvQuality::LOW;
+    if (surroundView2dSession->set2dConfig(config) != SvResult::OK) {
+        LOG(ERROR) << "Failed to set2dConfig";
+        return false;
+    }
+
+    // Let the SV algorithm run for 10 seconds for LOW_QUALITY
+    std::this_thread::sleep_for(std::chrono::seconds(10));
+
+    // TODO(b/150412555): wait for the last frame
+    // Stop the 2d stream and session
+    surroundView2dSession->stopStream();
+
+    pSurroundViewService->stop2dSession(surroundView2dSession);
+    surroundView2dSession = nullptr;
+
+    LOG(INFO) << "SV 2D session finished.";
+
+    return true;
+};
+
+bool run3dSurroundView(sp<ISurroundViewService> pSurroundViewService,
+                       sp<IEvsDisplay> pDisplay) {
+    LOG(INFO) << "Run 3d Surround View demo";
+
+    // Call HIDL API "start3dSession"
+    sp<ISurroundView3dSession> surroundView3dSession;
+
+    SvResult svResult;
+    pSurroundViewService->start3dSession(
+        [&surroundView3dSession, &svResult](
+            const sp<ISurroundView3dSession>& session, SvResult result) {
+        surroundView3dSession = session;
+        svResult = result;
+    });
+
+    if (surroundView3dSession == nullptr || svResult != SvResult::OK) {
+        LOG(ERROR) << "Failed to start3dSession";
+        return false;
+    } else {
+        LOG(INFO) << "start3dSession succeeded";
+    }
+
+    // TODO(b/150412555): now we have the dummy view here since the views are
+    // set in service. This should be fixed.
+    std::vector<View3d> singleView(1);
+    surroundView3dSession->setViews(singleView);
+
+    if (surroundView3dSession->setViews(singleView) != SvResult::OK) {
+        LOG(ERROR) << "Failed to setViews";
+        return false;
+    }
+
+    sp<SurroundViewServiceCallback> sv3dCallback
+        = new SurroundViewServiceCallback(pDisplay, surroundView3dSession);
+
+    // Start 3d stream with callback
+    if (surroundView3dSession->startStream(sv3dCallback) != SvResult::OK) {
+        LOG(ERROR) << "Failed to start 3d stream";
+        return false;
+    }
+
+    // Let the SV algorithm run for 10 seconds for HIGH_QUALITY
+    std::this_thread::sleep_for(std::chrono::seconds(10));
+
+    // Switch to low quality and lower resolution
+    Sv3dConfig config;
+    config.width = kLowResolutionWidth;
+    config.height = kLowResolutionHeight;
+    config.carDetails = SvQuality::LOW;
+    if (surroundView3dSession->set3dConfig(config) != SvResult::OK) {
+        LOG(ERROR) << "Failed to set3dConfig";
+        return false;
+    }
+
+    // Let the SV algorithm run for 10 seconds for LOW_QUALITY
+    std::this_thread::sleep_for(std::chrono::seconds(10));
+
+    // TODO(b/150412555): wait for the last frame
+    // Stop the 3d stream and session
+    surroundView3dSession->stopStream();
+
+    pSurroundViewService->stop3dSession(surroundView3dSession);
+    surroundView3dSession = nullptr;
+
+    LOG(DEBUG) << "SV 3D session finished.";
+
+    return true;
+};
+
+// Main entry point
+int main(int argc, char** argv) {
+    // Start up
+    LOG(INFO) << "SV app starting";
+
+    DemoMode mode = UNKNOWN;
+    for (int i=1; i< argc; i++) {
+        if (strcmp(argv[i], "--use2d") == 0) {
+            mode = DEMO_2D;
+        } else if (strcmp(argv[i], "--use3d") == 0) {
+            mode = DEMO_3D;
+        } else {
+            LOG(WARNING) << "Ignoring unrecognized command line arg: "
+                         << argv[i];
+        }
+    }
+
+    if (mode == UNKNOWN) {
+        LOG(ERROR) << "No demo mode is specified. Exiting";
+        return EXIT_FAILURE;
+    }
+
+    // Set thread pool size to one to avoid concurrent events from the HAL.
+    // This pool will handle the SurroundViewStream callbacks.
+    configureRpcThreadpool(1, false /* callerWillJoin */);
+
+    // Try to connect to EVS service
+    LOG(INFO) << "Acquiring EVS Enumerator";
+    sp<IEvsEnumerator> evs = IEvsEnumerator::getService();
+    if (evs == nullptr) {
+        LOG(ERROR) << "getService(default) returned NULL.  Exiting.";
+        return EXIT_FAILURE;
+    }
+
+    // Try to connect to SV service
+    LOG(INFO) << "Acquiring SV Service";
+    android::sp<ISurroundViewService> surroundViewService
+        = ISurroundViewService::getService("default");
+
+    if (surroundViewService == nullptr) {
+        LOG(ERROR) << "getService(default) returned NULL.";
+        return EXIT_FAILURE;
+    } else {
+        LOG(INFO) << "Get ISurroundViewService default";
+    }
+
+    // Connect to evs display
+    int displayId;
+    evs->getDisplayIdList([&displayId](auto idList) {
+        displayId = idList[0];
+    });
+
+    LOG(INFO) << "Acquiring EVS Display with ID: "
+              << displayId;
+    sp<IEvsDisplay> display = evs->openDisplay_1_1(displayId);
+    if (display == nullptr) {
+        LOG(ERROR) << "EVS Display unavailable.  Exiting.";
+        return EXIT_FAILURE;
+    }
+
+    if (mode == DEMO_2D) {
+        if (!run2dSurroundView(surroundViewService, display)) {
+            LOG(ERROR) << "Something went wrong in 2d surround view demo. "
+                       << "Exiting.";
+            return EXIT_FAILURE;
+        }
+    } else if (mode == DEMO_3D) {
+        if (!run3dSurroundView(surroundViewService, display)) {
+            LOG(ERROR) << "Something went wrong in 3d surround view demo. "
+                       << "Exiting.";
+            return EXIT_FAILURE;
+        }
+    }
+
+    evs->closeDisplay(display);
+
+    LOG(DEBUG) << "SV sample app finished running successfully";
+    return EXIT_SUCCESS;
+}
diff --git a/surround_view/app/sv_app.rc b/surround_view/app/sv_app.rc
new file mode 100644
index 0000000..74ad768
--- /dev/null
+++ b/surround_view/app/sv_app.rc
@@ -0,0 +1,6 @@
+service sv_app /system/bin/sv_app
+    class hal
+    priority -20
+    user automotive_evs
+    group automotive_evs
+    disabled # will not automatically start with its class; must be explicitly started.
diff --git a/surround_view/sepolicy/file_contexts b/surround_view/sepolicy/file_contexts
new file mode 100644
index 0000000..34d2677
--- /dev/null
+++ b/surround_view/sepolicy/file_contexts
@@ -0,0 +1,8 @@
+
+###################################
+# Binaries associated with the Surround View
+#
+/system/bin/sv_app                                              u:object_r:sv_app_exec:s0
+/vendor/bin/android\.automotive\.sv\.service@1\.[0-9]+-impl     u:object_r:sv_service_impl_exec:s0
+
+###################################
diff --git a/surround_view/sepolicy/sv_app.te b/surround_view/sepolicy/sv_app.te
new file mode 100644
index 0000000..b1aca2d
--- /dev/null
+++ b/surround_view/sepolicy/sv_app.te
@@ -0,0 +1,9 @@
+# surround view sample app
+type sv_app, domain, coredomain;
+
+# allow init to launch processes in this context
+type sv_app_exec, exec_type, file_type, system_file_type;
+init_daemon_domain(sv_app)
+
+# Allow use of binder
+binder_use(sv_app);
diff --git a/surround_view/sepolicy/sv_service_impl.te b/surround_view/sepolicy/sv_service_impl.te
new file mode 100644
index 0000000..2bff1f9
--- /dev/null
+++ b/surround_view/sepolicy/sv_service_impl.te
@@ -0,0 +1,7 @@
+# surround view default service implementation
+type sv_service_impl, domain;
+
+# allow init to launch processes in this context
+type sv_service_impl_exec, exec_type, file_type, vendor_file_type;
+init_daemon_domain(sv_service_impl)
+binder_use(sv_service_impl)
diff --git a/surround_view/service-impl/Android.bp b/surround_view/service-impl/Android.bp
new file mode 100644
index 0000000..b4dac9f
--- /dev/null
+++ b/surround_view/service-impl/Android.bp
@@ -0,0 +1,114 @@
+//
+// Copyright 2020 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.
+//
+
+cc_binary {
+    name: "android.automotive.sv.service@1.0-impl",
+    vendor: true,
+    srcs: [
+        "CoreLibSetupHelper.cpp",
+        "SurroundViewService.cpp",
+        "SurroundView2dSession.cpp",
+        "SurroundView3dSession.cpp",
+        "service.cpp",
+    ],
+    init_rc: ["android.automotive.sv.service@1.0-impl.rc"],
+    shared_libs: [
+        "android.hardware.automotive.sv@1.0",
+        "android.hidl.memory@1.0",
+        "libbase",
+        "libbinder",
+        "libcore_lib_shared",
+        "libcutils",
+        "libhardware",
+        "libhidlbase",
+        "libhidlmemory",
+        "libui",
+        "libutils",
+    ],
+    required: [
+        "cam0.png",
+        "cam1.png",
+        "cam2.png",
+        "cam3.png",
+    ],
+    // Disable builds except for arm64 and emulator devices
+    enabled: false,
+    arch: {
+        arm64: {
+            enabled: true,
+        },
+        x86: {
+            enabled: true,
+        },
+        x86_64: {
+            enabled: true,
+        },
+    },
+    vintf_fragments: [
+        "manifest_android.hardware.automotive.sv@1.0.xml",
+    ],
+}
+
+cc_prebuilt_library_shared {
+    name: "libcore_lib_shared",
+    proprietary: true,
+    arch: {
+        arm64: {
+            srcs: ["lib/arm64/libcore_lib_shared.so"]
+        },
+        x86: {
+            srcs: ["lib/x86/libcore_lib.so"]
+        },
+        x86_64: {
+            srcs: ["lib/x86-64/libcore_lib.so"]
+        },
+    },
+    shared_libs: [
+        "libEGL",
+        "libGLESv2",
+        "libGLESv3",
+        "libc",
+        "libm",
+        "libdl",
+        "libz",
+        "liblog",
+    ],
+}
+
+prebuilt_etc {
+    name: "cam0.png",
+    src: "test_data/0.png",
+    sub_dir: "automotive/sv",
+}
+
+prebuilt_etc {
+    name: "cam1.png",
+    src: "test_data/1.png",
+    sub_dir: "automotive/sv",
+}
+
+prebuilt_etc {
+    name: "cam2.png",
+    src: "test_data/2.png",
+    sub_dir: "automotive/sv",
+}
+
+prebuilt_etc {
+    name: "cam3.png",
+    src: "test_data/3.png",
+    sub_dir: "automotive/sv",
+}
+
diff --git a/surround_view/service-impl/CoreLibSetupHelper.cpp b/surround_view/service-impl/CoreLibSetupHelper.cpp
new file mode 100644
index 0000000..4812efe
--- /dev/null
+++ b/surround_view/service-impl/CoreLibSetupHelper.cpp
@@ -0,0 +1,208 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#include "CoreLibSetupHelper.h"
+
+using namespace android_auto::surround_view;
+
+namespace android_auto {
+namespace surround_view {
+
+vector<SurroundViewCameraParams> GetCameras() {
+  std::vector<android_auto::surround_view::SurroundViewCameraParams> cameras;
+
+  // Camera 1.
+  {
+    android_auto::surround_view::SurroundViewCameraParams camera_params;
+
+    camera_params.intrinsics[0] = 608.0026093794693;
+    camera_params.intrinsics[1] = 0.0;
+    camera_params.intrinsics[2] = 968.699544102168;
+    camera_params.intrinsics[3] = 0.0;
+    camera_params.intrinsics[4] = 608.205469489769;
+    camera_params.intrinsics[5] = 476.38843298898996;
+    camera_params.intrinsics[6] = 0.0;
+    camera_params.intrinsics[7] = 0.0;
+    camera_params.intrinsics[8] = 1.0;
+
+    camera_params.distorion[0] = -0.03711481733589263;
+    camera_params.distorion[1] = -0.0014805627895442888;
+    camera_params.distorion[2] = -0.00030212056866592464;
+    camera_params.distorion[3] = -0.00020149538570397933;
+
+    camera_params.rvec[0] = 2.26308;
+    camera_params.rvec[1] = 0.0382788;
+    camera_params.rvec[2] = -0.0220549;
+
+    camera_params.tvec[0] = -7.8028875403817685e-02;
+    camera_params.tvec[1] = 1.4537396465103221e+00;
+    camera_params.tvec[2] = -8.4197165554645001e-02;
+
+    camera_params.size.width = 1920;
+    camera_params.size.height = 1024;
+
+    camera_params.circular_fov = 179;
+
+    cameras.push_back(camera_params);
+  }
+
+  // Camera 2.
+  {
+    android_auto::surround_view::SurroundViewCameraParams camera_params;
+
+    camera_params.intrinsics[0] = 607.8691721095306;
+    camera_params.intrinsics[1] = 0.0;
+    camera_params.intrinsics[2] = 975.5686146375716;
+    camera_params.intrinsics[3] = 0.0;
+    camera_params.intrinsics[4] = 608.0112887189435;
+    camera_params.intrinsics[5] = 481.1938786570715;
+    camera_params.intrinsics[6] = 0.0;
+    camera_params.intrinsics[7] = 0.0;
+    camera_params.intrinsics[8] = 1.0;
+
+    camera_params.distorion[0] = -0.040116809827977926;
+    camera_params.distorion[1] = 0.0028769489398543014;
+    camera_params.distorion[2] = -0.002651039958977229;
+    camera_params.distorion[3] = 0.00024260630476736675;
+
+    camera_params.rvec[0] = 1.67415;
+    camera_params.rvec[1] = -1.74075;
+    camera_params.rvec[2] = 0.789399;
+
+    camera_params.tvec[0] = 2.9715052384687407e-01;
+    camera_params.tvec[1] = 1.1407102692699396e+00;
+    camera_params.tvec[2] = 3.0074545273489206e-01;
+
+    camera_params.size.width = 1920;
+    camera_params.size.height = 1024;
+
+    camera_params.circular_fov = 179;
+
+    cameras.push_back(camera_params);
+  }
+
+  // Camera 3.
+  {
+    android_auto::surround_view::SurroundViewCameraParams camera_params;
+
+    camera_params.intrinsics[0] = 608.557299289448;
+    camera_params.intrinsics[1] = 0.0;
+    camera_params.intrinsics[2] = 960.1949354417656;
+    camera_params.intrinsics[3] = 0.0;
+    camera_params.intrinsics[4] = 608.8093878512448;
+    camera_params.intrinsics[5] = 474.74744054048256;
+    camera_params.intrinsics[6] = 0.0;
+    camera_params.intrinsics[7] = 0.0;
+    camera_params.intrinsics[8] = 1.0;
+
+    camera_params.distorion[0] = -0.03998488563470043;
+    camera_params.distorion[1] = 0.0024786686909103388;
+    camera_params.distorion[2] = -0.002354736769480817;
+    camera_params.distorion[3] = 0.00018369619088506146;
+
+    camera_params.rvec[0] = -0.106409;
+    camera_params.rvec[1] = -2.83697;
+    camera_params.rvec[2] = 1.28629;
+
+    camera_params.tvec[0] = 1.7115269161259747e-01;
+    camera_params.tvec[1] = 1.4376160762596599e+00;
+    camera_params.tvec[2] = -1.9028844233159006e-02;
+
+    camera_params.size.width = 1920;
+    camera_params.size.height = 1024;
+
+    camera_params.circular_fov = 179;
+
+    cameras.push_back(camera_params);
+  }
+
+  // Camera 4.
+  {
+    android_auto::surround_view::SurroundViewCameraParams camera_params;
+
+    camera_params.intrinsics[0] = 608.1221963545495;
+    camera_params.intrinsics[1] = 0.0;
+    camera_params.intrinsics[2] = 943.6280444638576;
+    camera_params.intrinsics[3] = 0.0;
+    camera_params.intrinsics[4] = 608.0523818661524;
+    camera_params.intrinsics[5] = 474.8564698210861;
+    camera_params.intrinsics[6] = 0.0;
+    camera_params.intrinsics[7] = 0.0;
+    camera_params.intrinsics[8] = 1.0;
+
+    camera_params.distorion[0] = -0.038096507459563965;
+    camera_params.distorion[1] = 0.0004008114278766646;
+    camera_params.distorion[2] = -0.0013549275607082035;
+    camera_params.distorion[3] = -5.9961182248325556e-06;
+
+    camera_params.rvec[0] = 1.63019;
+    camera_params.rvec[1] = 1.76475;
+    camera_params.rvec[2] = -0.827941;
+
+    camera_params.tvec[0] = -3.0842691427126512e-01;
+    camera_params.tvec[1] = 1.0884122033556984e+00;
+    camera_params.tvec[2] = 3.4419058255954926e-01;
+
+    camera_params.size.width = 1920;
+    camera_params.size.height = 1024;
+
+    camera_params.circular_fov = 179;
+
+    cameras.push_back(camera_params);
+  }
+  return cameras;
+
+}
+
+SurroundView2dParams Get2dParams() {
+  android_auto::surround_view::Size2dInteger
+      resolution{ /*width=*/ 1024, /*height*/ 768};
+  // make sure resolution has the same ratio with physical_size.
+  // {480 *360 }
+  android_auto::surround_view::Size2dFloat physical_size{8.0, 6.0};
+  android_auto::surround_view::Coordinate2dFloat physical_center{0, 0};
+
+  return android_auto::surround_view::SurroundView2dParams(
+      resolution, physical_size, physical_center);
+}
+
+SurroundView3dParams Get3dParams() {
+  return android_auto::surround_view::SurroundView3dParams(
+      /*plane_radius=*/ 8.0f,
+      /*plane_divisions=*/ 50,
+      /*curve_height=*/ 6.0f,
+      /*curve_divisions=*/ 50,
+      /*angular_divisions=*/ 90,
+      /*curve_coefficient=*/ 3.0f,
+      /*resolution=*/ Size2dInteger(1024, 768));
+}
+
+BoundingBox GetBoundingBox() {
+  return android_auto::surround_view::BoundingBox(
+      /*x=*/ -0.01f,
+      /*y=*/ 0.01f,
+      /*width=*/ 0.01f,
+      /*height=*/ 0.01f);
+}
+
+vector<float> GetUndistortionScales() {
+  return vector<float>{1.0f, 1.0f, 1.0f, 1.0f};
+}
+
+
+} // namespace surround_view
+} // namespace audroid_auto
+
diff --git a/surround_view/service-impl/CoreLibSetupHelper.h b/surround_view/service-impl/CoreLibSetupHelper.h
new file mode 100644
index 0000000..889ebf2
--- /dev/null
+++ b/surround_view/service-impl/CoreLibSetupHelper.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#pragma once
+
+#include <string>
+#include <vector>
+#include "core_lib.h"
+
+using namespace std;
+
+// TODO(b/150412555): The helper method should only be used for testing
+// purposes once EVS camera is used.
+namespace android_auto {
+namespace surround_view {
+
+vector<SurroundViewCameraParams> GetCameras();
+
+SurroundView2dParams Get2dParams();
+
+SurroundView3dParams Get3dParams();
+
+BoundingBox GetBoundingBox();
+
+vector<float> GetUndistortionScales();
+
+}  // namespace surround_view
+}  // namespace android_auto
+
diff --git a/surround_view/service-impl/README b/surround_view/service-impl/README
new file mode 100644
index 0000000..d7b5e7c
--- /dev/null
+++ b/surround_view/service-impl/README
@@ -0,0 +1 @@
+The core_lib.h and the .so files are copied from google3 at Mar 19, 2020.
diff --git a/surround_view/service-impl/SurroundView2dSession.cpp b/surround_view/service-impl/SurroundView2dSession.cpp
new file mode 100644
index 0000000..f1a789b
--- /dev/null
+++ b/surround_view/service-impl/SurroundView2dSession.cpp
@@ -0,0 +1,421 @@
+/*
+ * Copyright 2020 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.
+ */
+#define LOG_TAG "SurroundViewService"
+
+#include <android-base/logging.h>
+#include <android/hardware_buffer.h>
+#include <utils/SystemClock.h>
+
+#include "SurroundView2dSession.h"
+#include "CoreLibSetupHelper.h"
+
+using namespace android_auto::surround_view;
+
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace sv {
+namespace V1_0 {
+namespace implementation {
+
+static const uint8_t kGrayColor = 128;
+static const int kNumChannels = 3;
+static const int kFrameDelayInMilliseconds = 30;
+
+SurroundView2dSession::SurroundView2dSession() :
+    mStreamState(STOPPED) {
+    mEvsCameraIds = {"0", "1", "2", "3"};
+}
+
+// Methods from ::android::hardware::automotive::sv::V1_0::ISurroundViewSession
+Return<SvResult> SurroundView2dSession::startStream(
+    const sp<ISurroundViewStream>& stream) {
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock<mutex> lock(mAccessLock);
+
+    if (!mIsInitialized && !initialize()) {
+        LOG(ERROR) << "There is an error while initializing the use case. "
+                   << "Exiting";
+        return SvResult::INTERNAL_ERROR;
+    }
+
+    if (mStreamState != STOPPED) {
+        LOG(ERROR) << "Ignoring startVideoStream call"
+                   << "when a stream is already running.";
+        return SvResult::INTERNAL_ERROR;
+    }
+
+    if (stream == nullptr) {
+        LOG(ERROR) << "The input stream is invalid";
+        return SvResult::INTERNAL_ERROR;
+    }
+    mStream = stream;
+
+    LOG(DEBUG) << "Notify SvEvent::STREAM_STARTED";
+    mStream->notify(SvEvent::STREAM_STARTED);
+
+    // Start the frame generation thread
+    mStreamState = RUNNING;
+    mCaptureThread = thread([this](){
+        generateFrames();
+    });
+
+    return SvResult::OK;
+}
+
+Return<void> SurroundView2dSession::stopStream() {
+    LOG(DEBUG) << __FUNCTION__;
+    unique_lock<mutex> lock(mAccessLock);
+
+    if (mStreamState == RUNNING) {
+        // Tell the GenerateFrames loop we want it to stop
+        mStreamState = STOPPING;
+
+        // Block outside the mutex until the "stop" flag has been acknowledged
+        // We won't send any more frames, but the client might still get some
+        // already in flight
+        LOG(DEBUG) << __FUNCTION__ << "Waiting for stream thread to end...";
+        lock.unlock();
+        mCaptureThread.join();
+        lock.lock();
+
+        mStreamState = STOPPED;
+        mStream = nullptr;
+        LOG(DEBUG) << "Stream marked STOPPED.";
+    }
+
+    return {};
+}
+
+Return<void> SurroundView2dSession::doneWithFrames(
+    const SvFramesDesc& svFramesDesc){
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock <mutex> lock(mAccessLock);
+
+    framesRecord.inUse = false;
+
+    (void)svFramesDesc;
+    return {};
+}
+
+// Methods from ISurroundView2dSession follow.
+Return<void> SurroundView2dSession::get2dMappingInfo(
+    get2dMappingInfo_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+
+    _hidl_cb(mInfo);
+    return {};
+}
+
+Return<SvResult> SurroundView2dSession::set2dConfig(
+    const Sv2dConfig& sv2dConfig) {
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock <mutex> lock(mAccessLock);
+
+    if (sv2dConfig.width <=0 || sv2dConfig.width > 4096) {
+        LOG(WARNING) << "The width of 2d config is out of the range (0, 4096]"
+                     << "Ignored!";
+        return SvResult::INVALID_ARG;
+    }
+
+    mConfig.width = sv2dConfig.width;
+    mConfig.blending = sv2dConfig.blending;
+    mHeight = mConfig.width * mInfo.height / mInfo.width;
+
+    if (mStream != nullptr) {
+        LOG(DEBUG) << "Notify SvEvent::CONFIG_UPDATED";
+        mStream->notify(SvEvent::CONFIG_UPDATED);
+    }
+
+    return SvResult::OK;
+}
+
+Return<void> SurroundView2dSession::get2dConfig(get2dConfig_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+
+    _hidl_cb(mConfig);
+    return {};
+}
+
+Return<void> SurroundView2dSession::projectCameraPoints(
+        const hidl_vec<Point2dInt>& points2dCamera,
+        const hidl_string& cameraId,
+        projectCameraPoints_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock <mutex> lock(mAccessLock);
+
+    bool cameraIdFound = false;
+    for (auto& evsCameraId : mEvsCameraIds) {
+      if (cameraId == evsCameraId) {
+          cameraIdFound = true;
+          LOG(INFO) << "Camera id found.";
+          break;
+      }
+    }
+
+    if (!cameraIdFound) {
+        LOG(ERROR) << "Camera id not found.";
+        _hidl_cb({});
+        return {};
+    }
+
+    hidl_vec<Point2dFloat> outPoints;
+    outPoints.resize(points2dCamera.size());
+
+    int width = mConfig.width;
+    int height = mHeight;
+    for (int i=0; i<points2dCamera.size(); i++) {
+        // Assuming all the points in the image frame can be projected into 2d
+        // Surround View space. Otherwise cannot.
+        if (points2dCamera[i].x < 0 || points2dCamera[i].x > width-1 ||
+            points2dCamera[i].y < 0 || points2dCamera[i].y > height-1) {
+            LOG(WARNING) << __FUNCTION__
+                         << ": gets invalid 2d camera points. Ignored";
+            outPoints[i].isValid = false;
+            outPoints[i].x = 10000;
+            outPoints[i].y = 10000;
+        } else {
+            outPoints[i].isValid = true;
+            outPoints[i].x = 0;
+            outPoints[i].y = 0;
+        }
+    }
+
+    _hidl_cb(outPoints);
+    return {};
+}
+
+void SurroundView2dSession::generateFrames() {
+    int sequenceId = 0;
+
+    while(true) {
+        {
+            scoped_lock<mutex> lock(mAccessLock);
+
+            if (mStreamState != RUNNING) {
+                // Break out of our main thread loop
+                LOG(INFO) << "StreamState does not equal to RUNNING. "
+                          << "Exiting the loop";
+                break;
+            }
+
+            if (mOutputWidth != mConfig.width || mOutputHeight != mHeight) {
+                LOG(DEBUG) << "Config changed. Re-allocate memory."
+                           << " Old width: "
+                           << mOutputWidth
+                           << " Old height: "
+                           << mOutputHeight
+                           << " New width: "
+                           << mConfig.width
+                           << " New height: "
+                           << mHeight;
+                delete[] static_cast<char*>(mOutputPointer.data_pointer);
+                mOutputWidth = mConfig.width;
+                mOutputHeight = mHeight;
+                mOutputPointer.height = mOutputHeight;
+                mOutputPointer.width = mOutputWidth;
+                mOutputPointer.format = Format::RGB;
+                mOutputPointer.data_pointer =
+                    new char[mOutputHeight * mOutputWidth * kNumChannels];
+
+                if (!mOutputPointer.data_pointer) {
+                    LOG(ERROR) << "Memory allocation failed. Exiting.";
+                    break;
+                }
+
+                Size2dInteger size = Size2dInteger(mOutputWidth, mOutputHeight);
+                mSurroundView->Update2dOutputResolution(size);
+
+                mSvTexture = new GraphicBuffer(mOutputWidth,
+                                               mOutputHeight,
+                                               HAL_PIXEL_FORMAT_RGB_888,
+                                               1,
+                                               GRALLOC_USAGE_HW_TEXTURE,
+                                               "SvTexture");
+                if (mSvTexture->initCheck() == OK) {
+                    LOG(INFO) << "Successfully allocated Graphic Buffer";
+                } else {
+                    LOG(ERROR) << "Failed to allocate Graphic Buffer";
+                    break;
+                }
+            }
+        }
+
+        if (mSurroundView->Get2dSurroundView(mInputPointers, &mOutputPointer)) {
+            LOG(INFO) << "Get2dSurroundView succeeded";
+        } else {
+            LOG(ERROR) << "Get2dSurroundView failed. "
+                       << "Using memset to initialize to gray";
+            memset(mOutputPointer.data_pointer, kGrayColor,
+                   mOutputHeight * mOutputWidth * kNumChannels);
+        }
+
+        void* textureDataPtr = nullptr;
+        mSvTexture->lock(GRALLOC_USAGE_SW_WRITE_OFTEN
+                         | GRALLOC_USAGE_SW_READ_NEVER,
+                         &textureDataPtr);
+        if (!textureDataPtr) {
+            LOG(ERROR) << "Failed to gain write access to GraphicBuffer!";
+            break;
+        }
+
+        // Note: there is a chance that the stride of the texture is not the same
+        // as the width. For example, when the input frame is 1920 * 1080, the
+        // width is 1080, but the stride is 2048. So we'd better copy the data line
+        // by line, instead of single memcpy.
+        uint8_t* writePtr = static_cast<uint8_t*>(textureDataPtr);
+        uint8_t* readPtr = static_cast<uint8_t*>(mOutputPointer.data_pointer);
+        const int readStride = mOutputWidth * kNumChannels;
+        const int writeStride = mSvTexture->getStride() * kNumChannels;
+        if (readStride == writeStride) {
+            memcpy(writePtr, readPtr, readStride * mSvTexture->getHeight());
+        } else {
+            for (int i=0; i<mSvTexture->getHeight(); i++) {
+                memcpy(writePtr, readPtr, readStride);
+                writePtr = writePtr + writeStride;
+                readPtr = readPtr + readStride;
+            }
+        }
+        LOG(INFO) << "memcpy finished";
+        mSvTexture->unlock();
+
+        ANativeWindowBuffer* buffer = mSvTexture->getNativeBuffer();
+        LOG(DEBUG) << "ANativeWindowBuffer->handle: "
+                   << buffer->handle;
+
+        framesRecord.frames.svBuffers.resize(1);
+        SvBuffer& svBuffer = framesRecord.frames.svBuffers[0];
+        svBuffer.viewId = 0;
+        svBuffer.hardwareBuffer.nativeHandle = buffer->handle;
+        AHardwareBuffer_Desc* pDesc =
+            reinterpret_cast<AHardwareBuffer_Desc *>(
+                &svBuffer.hardwareBuffer.description);
+        pDesc->width = mOutputWidth;
+        pDesc->height = mOutputHeight;
+        pDesc->layers = 1;
+        pDesc->usage = GRALLOC_USAGE_HW_TEXTURE;
+        pDesc->stride = mSvTexture->getStride();
+        pDesc->format = HAL_PIXEL_FORMAT_RGB_888;
+        framesRecord.frames.timestampNs = elapsedRealtimeNano();
+        framesRecord.frames.sequenceId = sequenceId++;
+
+        {
+            scoped_lock<mutex> lock(mAccessLock);
+
+            if (framesRecord.inUse) {
+                LOG(DEBUG) << "Notify SvEvent::FRAME_DROPPED";
+                mStream->notify(SvEvent::FRAME_DROPPED);
+            } else {
+                framesRecord.inUse = true;
+                mStream->receiveFrames(framesRecord.frames);
+            }
+        }
+
+        // TODO(b/150412555): adding delays explicitly. This delay should be
+        // removed when EVS camera is used.
+        this_thread::sleep_for(chrono::milliseconds(
+            kFrameDelayInMilliseconds));
+    }
+
+    // If we've been asked to stop, send an event to signal the actual
+    // end of stream
+    LOG(DEBUG) << "Notify SvEvent::STREAM_STOPPED";
+    mStream->notify(SvEvent::STREAM_STOPPED);
+}
+
+bool SurroundView2dSession::initialize() {
+    lock_guard<mutex> lock(mAccessLock, adopt_lock);
+
+    // TODO(b/150412555): ask core-lib team to add API description for "create"
+    // method in the .h file.
+    // The create method will never return a null pointer based the API
+    // description.
+    mSurroundView = unique_ptr<SurroundView>(Create());
+
+    mSurroundView->SetStaticData(GetCameras(), Get2dParams(), Get3dParams(),
+                                 GetUndistortionScales(), GetBoundingBox());
+
+    // TODO(b/150412555): remove after EVS camera is used
+    mInputPointers = mSurroundView->ReadImages(
+        "/etc/automotive/sv/cam0.png",
+        "/etc/automotive/sv/cam1.png",
+        "/etc/automotive/sv/cam2.png",
+        "/etc/automotive/sv/cam3.png");
+    if (mInputPointers.size() == 4
+        && mInputPointers[0].cpu_data_pointer != nullptr) {
+        LOG(INFO) << "ReadImages succeeded";
+    } else {
+        LOG(ERROR) << "Failed to read images";
+        return false;
+    }
+
+    mOutputWidth = Get2dParams().resolution.width;
+    mOutputHeight = Get2dParams().resolution.height;
+
+    mConfig.width = mOutputWidth;
+    mConfig.blending = SvQuality::HIGH;
+    mHeight = mOutputHeight;
+
+    mOutputPointer.height = mOutputHeight;
+    mOutputPointer.width = mOutputWidth;
+    mOutputPointer.format = mInputPointers[0].format;
+    mOutputPointer.data_pointer = new char[
+        mOutputHeight * mOutputWidth * kNumChannels];
+
+    if (!mOutputPointer.data_pointer) {
+        LOG(ERROR) << "Memory allocation failed. Exiting.";
+        return false;
+    }
+
+    mSvTexture = new GraphicBuffer(mOutputWidth,
+                                   mOutputHeight,
+                                   HAL_PIXEL_FORMAT_RGB_888,
+                                   1,
+                                   GRALLOC_USAGE_HW_TEXTURE,
+                                   "SvTexture");
+
+    //TODO(b/150412555): the 2d mapping info should be read from config file.
+    mInfo.width = 8;
+    mInfo.height = 6;
+    mInfo.center.isValid = true;
+    mInfo.center.x = 0;
+    mInfo.center.y = 0;
+
+    if (mSvTexture->initCheck() == OK) {
+        LOG(INFO) << "Successfully allocated Graphic Buffer";
+    } else {
+        LOG(ERROR) << "Failed to allocate Graphic Buffer";
+        return false;
+    }
+
+    if (mSurroundView->Start2dPipeline()) {
+        LOG(INFO) << "Start2dPipeline succeeded";
+    } else {
+        LOG(ERROR) << "Start2dPipeline failed";
+        return false;
+    }
+
+    mIsInitialized = true;
+    return true;
+}
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace sv
+}  // namespace automotive
+}  // namespace hardware
+}  // namespace android
+
diff --git a/surround_view/service-impl/SurroundView2dSession.h b/surround_view/service-impl/SurroundView2dSession.h
new file mode 100644
index 0000000..c9591f1
--- /dev/null
+++ b/surround_view/service-impl/SurroundView2dSession.h
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#pragma once
+
+#include <android/hardware/automotive/sv/1.0/types.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewStream.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundView2dSession.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+#include "CoreLibSetupHelper.h"
+#include <thread>
+
+#include <ui/GraphicBuffer.h>
+
+using namespace ::android::hardware::automotive::sv::V1_0;
+using ::android::hardware::Return;
+using ::android::hardware::hidl_vec;
+using ::android::sp;
+
+using namespace android_auto::surround_view;
+
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace sv {
+namespace V1_0 {
+namespace implementation {
+
+class SurroundView2dSession : public ISurroundView2dSession {
+public:
+    SurroundView2dSession();
+
+    // Methods from ::android::hardware::automotive::sv::V1_0::ISurroundViewSession.
+    Return<SvResult> startStream(
+        const sp<ISurroundViewStream>& stream) override;
+    Return<void> stopStream() override;
+    Return<void> doneWithFrames(const SvFramesDesc& svFramesDesc) override;
+
+    // Methods from ISurroundView2dSession follow.
+    Return<void> get2dMappingInfo(get2dMappingInfo_cb _hidl_cb) override;
+    Return<SvResult> set2dConfig(const Sv2dConfig& sv2dConfig) override;
+    Return<void> get2dConfig(get2dConfig_cb _hidl_cb) override;
+    Return<void> projectCameraPoints(
+        const hidl_vec<Point2dInt>& points2dCamera,
+        const hidl_string& cameraId,
+        projectCameraPoints_cb _hidl_cb) override;
+
+private:
+    void generateFrames();
+    bool initialize();
+
+    enum StreamStateValues {
+        STOPPED,
+        RUNNING,
+        STOPPING,
+        DEAD,
+    };
+    StreamStateValues mStreamState GUARDED_BY(mAccessLock);
+
+    // Stream subscribed for the session.
+    sp<ISurroundViewStream> mStream GUARDED_BY(mAccessLock);
+
+    Sv2dConfig mConfig GUARDED_BY(mAccessLock);
+    int mHeight GUARDED_BY(mAccessLock);
+    Sv2dMappingInfo mInfo GUARDED_BY(mAccessLock);
+
+    thread mCaptureThread GUARDED_BY(mAccessLock);
+
+    struct FramesRecord {
+        SvFramesDesc frames;
+        bool inUse = false;
+    };
+
+    FramesRecord framesRecord GUARDED_BY(mAccessLock);
+
+    // Synchronization necessary to deconflict mCaptureThread from the main
+    // service thread
+    mutex mAccessLock;
+
+    vector<string> mEvsCameraIds GUARDED_BY(mAccessLock);
+
+    unique_ptr<SurroundView> mSurroundView GUARDED_BY(mAccessLock);
+
+    vector<SurroundViewInputBufferPointers>
+        mInputPointers GUARDED_BY(mAccessLock);
+    SurroundViewResultPointer mOutputPointer GUARDED_BY(mAccessLock);
+    int mOutputWidth, mOutputHeight GUARDED_BY(mAccessLock);
+
+    sp<GraphicBuffer> mSvTexture GUARDED_BY(mAccessLock);
+
+    bool mIsInitialized GUARDED_BY(mAccessLock) = false;
+};
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace sv
+}  // namespace automotive
+}  // namespace hardware
+}  // namespace android
+
diff --git a/surround_view/service-impl/SurroundView3dSession.cpp b/surround_view/service-impl/SurroundView3dSession.cpp
new file mode 100644
index 0000000..0204b55
--- /dev/null
+++ b/surround_view/service-impl/SurroundView3dSession.cpp
@@ -0,0 +1,511 @@
+/*
+ * Copyright 2020 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.
+ */
+#define LOG_TAG "SurroundViewService"
+
+#include <android-base/logging.h>
+#include <android/hardware_buffer.h>
+#include <android/hidl/memory/1.0/IMemory.h>
+#include <hidlmemory/mapping.h>
+#include <set>
+#include <utils/SystemClock.h>
+
+#include "SurroundView3dSession.h"
+#include "sv_3d_params.h"
+
+using ::android::hidl::memory::V1_0::IMemory;
+using ::android::hardware::hidl_memory;
+
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace sv {
+namespace V1_0 {
+namespace implementation {
+
+static const uint8_t kGrayColor = 128;
+static const int kNumChannels = 4;
+
+SurroundView3dSession::SurroundView3dSession() :
+    mStreamState(STOPPED){
+    mEvsCameraIds = {"0" , "1", "2", "3"};
+}
+
+// Methods from ::android::hardware::automotive::sv::V1_0::ISurroundViewSession.
+Return<SvResult> SurroundView3dSession::startStream(
+    const sp<ISurroundViewStream>& stream) {
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock<mutex> lock(mAccessLock);
+
+    if (!mIsInitialized && !initialize()) {
+        LOG(ERROR) << "There is an error while initializing the use case. "
+                   << "Exiting";
+        return SvResult::INTERNAL_ERROR;
+    }
+
+    if (mStreamState != STOPPED) {
+        LOG(ERROR) << "Ignoring startVideoStream call when a stream is "
+                   << "already running.";
+        return SvResult::INTERNAL_ERROR;
+    }
+
+    if (mViews.empty()) {
+        LOG(ERROR) << "No views have been set for current Surround View"
+                   << "3d Session. Please call setViews before starting"
+                   << "the stream.";
+        return SvResult::VIEW_NOT_SET;
+    }
+
+    if (stream == nullptr) {
+        LOG(ERROR) << "The input stream is invalid";
+        return SvResult::INTERNAL_ERROR;
+    }
+    mStream = stream;
+
+    LOG(DEBUG) << "Notify SvEvent::STREAM_STARTED";
+    mStream->notify(SvEvent::STREAM_STARTED);
+
+    // Start the frame generation thread
+    mStreamState = RUNNING;
+    mCaptureThread = thread([this](){
+        generateFrames();
+    });
+
+    return SvResult::OK;
+}
+
+Return<void> SurroundView3dSession::stopStream() {
+    LOG(DEBUG) << __FUNCTION__;
+    unique_lock <mutex> lock(mAccessLock);
+
+    if (mStreamState == RUNNING) {
+        // Tell the GenerateFrames loop we want it to stop
+        mStreamState = STOPPING;
+
+        // Block outside the mutex until the "stop" flag has been acknowledged
+        // We won't send any more frames, but the client might still get some
+        // already in flight
+        LOG(DEBUG) << __FUNCTION__ << ": Waiting for stream thread to end...";
+        lock.unlock();
+        mCaptureThread.join();
+        lock.lock();
+
+        mStreamState = STOPPED;
+        mStream = nullptr;
+        LOG(DEBUG) << "Stream marked STOPPED.";
+    }
+
+    return {};
+}
+
+Return<void> SurroundView3dSession::doneWithFrames(
+    const SvFramesDesc& svFramesDesc){
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock <mutex> lock(mAccessLock);
+
+    framesRecord.inUse = false;
+
+    (void)svFramesDesc;
+    return {};
+}
+
+// Methods from ISurroundView3dSession follow.
+Return<SvResult> SurroundView3dSession::setViews(
+    const hidl_vec<View3d>& views) {
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock <mutex> lock(mAccessLock);
+
+    mViews.resize(views.size());
+    for (int i=0; i<views.size(); i++) {
+        mViews[i] = views[i];
+    }
+
+    return SvResult::OK;
+}
+
+Return<SvResult> SurroundView3dSession::set3dConfig(const Sv3dConfig& sv3dConfig) {
+    LOG(DEBUG) << __FUNCTION__;
+    scoped_lock <mutex> lock(mAccessLock);
+
+    if (sv3dConfig.width <=0 || sv3dConfig.width > 4096) {
+        LOG(WARNING) << "The width of 3d config is out of the range (0, 4096]"
+                     << "Ignored!";
+        return SvResult::INVALID_ARG;
+    }
+
+    if (sv3dConfig.height <=0 || sv3dConfig.height > 4096) {
+        LOG(WARNING) << "The height of 3d config is out of the range (0, 4096]"
+                     << "Ignored!";
+        return SvResult::INVALID_ARG;
+    }
+
+    mConfig.width = sv3dConfig.width;
+    mConfig.height = sv3dConfig.height;
+    mConfig.carDetails = sv3dConfig.carDetails;
+
+    if (mStream != nullptr) {
+        LOG(DEBUG) << "Notify SvEvent::CONFIG_UPDATED";
+        mStream->notify(SvEvent::CONFIG_UPDATED);
+    }
+
+    return SvResult::OK;
+}
+
+Return<void> SurroundView3dSession::get3dConfig(get3dConfig_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+
+    _hidl_cb(mConfig);
+    return {};
+}
+
+bool VerifyOverlayData(const OverlaysData& overlaysData) {
+    // Check size of shared memory matches overlaysMemoryDesc.
+    const int kVertexSize = 16;
+    const int kIdSize = 2;
+    int memDescSize = 0;
+    for (auto& overlayMemDesc : overlaysData.overlaysMemoryDesc) {
+        memDescSize += kIdSize + kVertexSize * overlayMemDesc.verticesCount;
+    }
+    if (memDescSize != overlaysData.overlaysMemory.size()) {
+        LOG(ERROR) << "shared memory and overlaysMemoryDesc size mismatch.";
+        return false;
+    }
+
+    // Map memory.
+    sp<IMemory> pSharedMemory = mapMemory(overlaysData.overlaysMemory);
+    if(pSharedMemory == nullptr) {
+        LOG(ERROR) << "mapMemory failed.";
+        return false;
+    }
+
+    // Get Data pointer.
+    uint8_t* pData = static_cast<uint8_t*>(
+        static_cast<void*>(pSharedMemory->getPointer()));
+    if (pData == nullptr) {
+        LOG(ERROR) << "Shared memory getPointer() failed.";
+        return false;
+    }
+
+    int idOffset = 0;
+    set<uint16_t> overlayIdSet;
+    for (auto& overlayMemDesc : overlaysData.overlaysMemoryDesc) {
+
+        if (overlayIdSet.find(overlayMemDesc.id) != overlayIdSet.end()) {
+            LOG(ERROR) << "Duplicate id within memory descriptor.";
+            return false;
+        }
+        overlayIdSet.insert(overlayMemDesc.id);
+
+        if(overlayMemDesc.verticesCount < 3) {
+            LOG(ERROR) << "Less than 3 vertices.";
+            return false;
+        }
+
+        if (overlayMemDesc.overlayPrimitive == OverlayPrimitive::TRIANGLES &&
+                overlayMemDesc.verticesCount % 3 != 0) {
+            LOG(ERROR) << "Triangles primitive does not have vertices "
+                       << "multiple of 3.";
+            return false;
+        }
+
+        const uint16_t overlayId = *((uint16_t*)(pData + idOffset));
+
+        if (overlayId != overlayMemDesc.id) {
+            LOG(ERROR) << "Overlay id mismatch "
+                       << overlayId
+                       << ", "
+                       << overlayMemDesc.id;
+            return false;
+        }
+
+        idOffset += kIdSize + (kVertexSize * overlayMemDesc.verticesCount);
+    }
+
+    return true;
+}
+
+// TODO(b/150412555): the overlay related methods are incomplete.
+Return<SvResult>  SurroundView3dSession::updateOverlays(
+        const OverlaysData& overlaysData) {
+
+    if(!VerifyOverlayData(overlaysData)) {
+        LOG(ERROR) << "VerifyOverlayData failed.";
+        return SvResult::INVALID_ARG;
+    }
+
+    return SvResult::OK;
+}
+
+Return<void> SurroundView3dSession::projectCameraPointsTo3dSurface(
+    const hidl_vec<Point2dInt>& cameraPoints,
+    const hidl_string& cameraId,
+    projectCameraPointsTo3dSurface_cb _hidl_cb) {
+
+    vector<Point3dFloat> points3d;
+    bool cameraIdFound = false;
+    for (auto& evsCameraId : mEvsCameraIds) {
+      if (cameraId == evsCameraId) {
+          cameraIdFound = true;
+          LOG(INFO) << "Camera id found.";
+          break;
+      }
+    }
+
+    if (!cameraIdFound) {
+        LOG(ERROR) << "Camera id not found.";
+        _hidl_cb(points3d);
+        return {};
+    }
+
+    for (const auto& cameraPoint : cameraPoints) {
+        Point3dFloat point3d;
+        point3d.isValid = (cameraPoint.x >= 0
+                           && cameraPoint.x < mConfig.width
+                           && cameraPoint.y >= 0
+                           && cameraPoint.y < mConfig.height);
+        if (!point3d.isValid) {
+            LOG(WARNING) << "Camera point out of bounds.";
+        }
+        points3d.push_back(point3d);
+    }
+    _hidl_cb(points3d);
+    return {};
+}
+
+void SurroundView3dSession::generateFrames() {
+    int sequenceId = 0;
+
+    // TODO(b/150412555): do not use the setViews for frames generation
+    // since there is a discrepancy between the HIDL APIs and core lib APIs.
+    vector<vector<float>> matrix;
+    matrix.resize(4);
+    for (int i=0; i<4; i++) {
+        matrix[i].resize(4);
+    }
+
+    while(true) {
+        {
+            scoped_lock<mutex> lock(mAccessLock);
+
+            if (mStreamState != RUNNING) {
+                // Break out of our main thread loop
+                LOG(INFO) << "StreamState does not equal to RUNNING. "
+                          << "Exiting the loop";
+                break;
+            }
+
+            if (mOutputWidth != mConfig.width
+                || mOutputHeight != mConfig.height) {
+                LOG(DEBUG) << "Config changed. Re-allocate memory. "
+                           << "Old width: "
+                           << mOutputWidth
+                           << ", old height: "
+                           << mOutputHeight
+                           << "; New width: "
+                           << mConfig.width
+                           << ", new height: "
+                           << mConfig.height;
+                delete[] static_cast<char*>(mOutputPointer.data_pointer);
+                mOutputWidth = mConfig.width;
+                mOutputHeight = mConfig.height;
+                mOutputPointer.height = mOutputHeight;
+                mOutputPointer.width = mOutputWidth;
+                mOutputPointer.format = Format::RGBA;
+                mOutputPointer.data_pointer =
+                    new char[mOutputHeight * mOutputWidth * kNumChannels];
+
+                if (!mOutputPointer.data_pointer) {
+                    LOG(ERROR) << "Memory allocation failed. Exiting.";
+                    break;
+                }
+
+                Size2dInteger size = Size2dInteger(mOutputWidth, mOutputHeight);
+                mSurroundView->Update3dOutputResolution(size);
+
+                mSvTexture = new GraphicBuffer(mOutputWidth,
+                                               mOutputHeight,
+                                               HAL_PIXEL_FORMAT_RGBA_8888,
+                                               1,
+                                               GRALLOC_USAGE_HW_TEXTURE,
+                                               "SvTexture");
+                if (mSvTexture->initCheck() == OK) {
+                    LOG(INFO) << "Successfully allocated Graphic Buffer";
+                } else {
+                    LOG(ERROR) << "Failed to allocate Graphic Buffer";
+                    break;
+                }
+            }
+        }
+
+        // TODO(b/150412555): use hard-coded views for now. Change view every 10
+        // frames.
+        int recViewId = sequenceId / 10 % 16;
+        for (int i=0; i<4; i++)
+            for (int j=0; j<4; j++) {
+                matrix[i][j] = kRecViews[recViewId][i*4+j];
+        }
+
+        if (mSurroundView->Get3dSurroundView(
+            mInputPointers, matrix, &mOutputPointer)) {
+            LOG(INFO) << "Get3dSurroundView succeeded";
+        } else {
+            LOG(ERROR) << "Get3dSurroundView failed. "
+                       << "Using memset to initialize to gray.";
+            memset(mOutputPointer.data_pointer, kGrayColor,
+                   mOutputHeight * mOutputWidth * kNumChannels);
+        }
+
+        void* textureDataPtr = nullptr;
+        mSvTexture->lock(GRALLOC_USAGE_SW_WRITE_OFTEN
+                        | GRALLOC_USAGE_SW_READ_NEVER,
+                        &textureDataPtr);
+        if (!textureDataPtr) {
+            LOG(ERROR) << "Failed to gain write access to GraphicBuffer!";
+            break;
+        }
+
+        // Note: there is a chance that the stride of the texture is not the
+        // same as the width. For example, when the input frame is 1920 * 1080,
+        // the width is 1080, but the stride is 2048. So we'd better copy the
+        // data line by line, instead of single memcpy.
+        uint8_t* writePtr = static_cast<uint8_t*>(textureDataPtr);
+        uint8_t* readPtr = static_cast<uint8_t*>(mOutputPointer.data_pointer);
+        const int readStride = mOutputWidth * kNumChannels;
+        const int writeStride = mSvTexture->getStride() * kNumChannels;
+        if (readStride == writeStride) {
+            memcpy(writePtr, readPtr, readStride * mSvTexture->getHeight());
+        } else {
+            for (int i=0; i<mSvTexture->getHeight(); i++) {
+                memcpy(writePtr, readPtr, readStride);
+                writePtr = writePtr + writeStride;
+                readPtr = readPtr + readStride;
+            }
+        }
+        LOG(INFO) << "memcpy finished!";
+        mSvTexture->unlock();
+
+        ANativeWindowBuffer* buffer = mSvTexture->getNativeBuffer();
+        LOG(DEBUG) << "ANativeWindowBuffer->handle: " << buffer->handle;
+
+        framesRecord.frames.svBuffers.resize(1);
+        SvBuffer& svBuffer = framesRecord.frames.svBuffers[0];
+        svBuffer.viewId = 0;
+        svBuffer.hardwareBuffer.nativeHandle = buffer->handle;
+        AHardwareBuffer_Desc* pDesc =
+            reinterpret_cast<AHardwareBuffer_Desc *>(
+                &svBuffer.hardwareBuffer.description);
+        pDesc->width = mOutputWidth;
+        pDesc->height = mOutputHeight;
+        pDesc->layers = 1;
+        pDesc->usage = GRALLOC_USAGE_HW_TEXTURE;
+        pDesc->stride = mSvTexture->getStride();
+        pDesc->format = HAL_PIXEL_FORMAT_RGBA_8888;
+        framesRecord.frames.timestampNs = elapsedRealtimeNano();
+        framesRecord.frames.sequenceId = sequenceId++;
+
+        {
+            scoped_lock<mutex> lock(mAccessLock);
+
+            if (framesRecord.inUse) {
+                LOG(DEBUG) << "Notify SvEvent::FRAME_DROPPED";
+                mStream->notify(SvEvent::FRAME_DROPPED);
+            } else {
+                framesRecord.inUse = true;
+                mStream->receiveFrames(framesRecord.frames);
+            }
+        }
+    }
+
+    // If we've been asked to stop, send an event to signal the actual end of stream
+    LOG(DEBUG) << "Notify SvEvent::STREAM_STOPPED";
+    mStream->notify(SvEvent::STREAM_STOPPED);
+}
+
+bool SurroundView3dSession::initialize() {
+    lock_guard<mutex> lock(mAccessLock, adopt_lock);
+
+    // TODO(b/150412555): ask core-lib team to add API description for "create"
+    // method in the .h file.
+    // The create method will never return a null pointer based the API
+    // description.
+    mSurroundView = unique_ptr<SurroundView>(Create());
+
+    mSurroundView->SetStaticData(GetCameras(), Get2dParams(), Get3dParams(),
+                                 GetUndistortionScales(), GetBoundingBox());
+
+    // TODO(b/150412555): remove after EVS camera is used
+    mInputPointers = mSurroundView->ReadImages(
+        "/etc/automotive/sv/cam0.png",
+        "/etc/automotive/sv/cam1.png",
+        "/etc/automotive/sv/cam2.png",
+        "/etc/automotive/sv/cam3.png");
+    if (mInputPointers.size() == 4
+        && mInputPointers[0].cpu_data_pointer != nullptr) {
+        LOG(INFO) << "ReadImages succeeded";
+    } else {
+        LOG(ERROR) << "Failed to read images";
+        return false;
+    }
+
+    mOutputWidth = Get3dParams().resolution.width;
+    mOutputHeight = Get3dParams().resolution.height;
+
+    mConfig.width = mOutputWidth;
+    mConfig.height = mOutputHeight;
+    mConfig.carDetails = SvQuality::HIGH;
+
+    mOutputPointer.height = mOutputHeight;
+    mOutputPointer.width = mOutputWidth;
+    mOutputPointer.format = Format::RGBA;
+    mOutputPointer.data_pointer = new char[
+        mOutputHeight * mOutputWidth * kNumChannels];
+
+    if (!mOutputPointer.data_pointer) {
+        LOG(ERROR) << "Memory allocation failed. Exiting.";
+        return false;
+    }
+
+    mSvTexture = new GraphicBuffer(mOutputWidth,
+                                   mOutputHeight,
+                                   HAL_PIXEL_FORMAT_RGBA_8888,
+                                   1,
+                                   GRALLOC_USAGE_HW_TEXTURE,
+                                   "SvTexture");
+
+    if (mSvTexture->initCheck() == OK) {
+        LOG(INFO) << "Successfully allocated Graphic Buffer";
+    } else {
+        LOG(ERROR) << "Failed to allocate Graphic Buffer";
+        return false;
+    }
+
+    if (mSurroundView->Start3dPipeline()) {
+        LOG(INFO) << "Start3dPipeline succeeded";
+    } else {
+        LOG(ERROR) << "Start3dPipeline failed";
+        return false;
+    }
+
+    mIsInitialized = true;
+    return true;
+}
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace sv
+}  // namespace automotive
+}  // namespace hardware
+}  // namespace android
+
diff --git a/surround_view/service-impl/SurroundView3dSession.h b/surround_view/service-impl/SurroundView3dSession.h
new file mode 100644
index 0000000..12337b6
--- /dev/null
+++ b/surround_view/service-impl/SurroundView3dSession.h
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#pragma once
+
+#include <android/hardware/automotive/sv/1.0/types.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewStream.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundView3dSession.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+#include "CoreLibSetupHelper.h"
+#include <thread>
+
+#include <ui/GraphicBuffer.h>
+
+using namespace ::android::hardware::automotive::sv::V1_0;
+using ::android::hardware::Return;
+using ::android::hardware::hidl_vec;
+using ::android::sp;
+
+using namespace android_auto::surround_view;
+
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace sv {
+namespace V1_0 {
+namespace implementation {
+
+class SurroundView3dSession : public ISurroundView3dSession {
+public:
+    SurroundView3dSession();
+
+    // Methods from ::android::hardware::automotive::sv::V1_0::ISurroundViewSession.
+    Return<SvResult> startStream(
+        const sp<ISurroundViewStream>& stream) override;
+    Return<void> stopStream() override;
+    Return<void> doneWithFrames(const SvFramesDesc& svFramesDesc) override;
+
+    // Methods from ISurroundView3dSession follow.
+    Return<SvResult> setViews(const hidl_vec<View3d>& views) override;
+    Return<SvResult> set3dConfig(const Sv3dConfig& sv3dConfig) override;
+    Return<void> get3dConfig(get3dConfig_cb _hidl_cb) override;
+    Return<SvResult>  updateOverlays(const OverlaysData& overlaysData);
+    Return<void> projectCameraPointsTo3dSurface(
+        const hidl_vec<Point2dInt>& cameraPoints,
+        const hidl_string& cameraId,
+        projectCameraPointsTo3dSurface_cb _hidl_cb);
+
+private:
+    void generateFrames();
+    bool initialize();
+
+    enum StreamStateValues {
+        STOPPED,
+        RUNNING,
+        STOPPING,
+        DEAD,
+    };
+
+    // Stream subscribed for the session.
+    sp<ISurroundViewStream> mStream GUARDED_BY(mAccessLock);
+    StreamStateValues mStreamState GUARDED_BY(mAccessLock);
+
+    thread mCaptureThread; // The thread we'll use to synthesize frames
+
+    struct FramesRecord {
+        SvFramesDesc frames;
+        bool inUse = false;
+    };
+
+    FramesRecord framesRecord GUARDED_BY(mAccessLock);
+
+    // Synchronization necessary to deconflict mCaptureThread from the main service thread
+    mutex mAccessLock;
+
+    vector<View3d> mViews GUARDED_BY(mAccessLock);
+
+    Sv3dConfig mConfig GUARDED_BY(mAccessLock);
+
+    vector<string> mEvsCameraIds GUARDED_BY(mAccessLock);
+
+    unique_ptr<SurroundView> mSurroundView GUARDED_BY(mAccessLock);
+
+    vector<SurroundViewInputBufferPointers>
+        mInputPointers GUARDED_BY(mAccessLock);
+    SurroundViewResultPointer mOutputPointer GUARDED_BY(mAccessLock);
+    int mOutputWidth, mOutputHeight GUARDED_BY(mAccessLock);
+
+    sp<GraphicBuffer> mSvTexture GUARDED_BY(mAccessLock);
+
+    bool mIsInitialized GUARDED_BY(mAccessLock) = false;
+};
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace sv
+}  // namespace automotive
+}  // namespace hardware
+}  // namespace android
diff --git a/surround_view/service-impl/SurroundViewService.cpp b/surround_view/service-impl/SurroundViewService.cpp
new file mode 100644
index 0000000..8e6a683
--- /dev/null
+++ b/surround_view/service-impl/SurroundViewService.cpp
@@ -0,0 +1,116 @@
+/*
+ * Copyright 2020 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.
+ */
+#define LOG_TAG "SurroundViewService"
+
+#include <android-base/logging.h>
+
+#include "CoreLibSetupHelper.h"
+#include "SurroundViewService.h"
+
+using namespace android_auto::surround_view;
+
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace sv {
+namespace V1_0 {
+namespace implementation {
+
+std::mutex SurroundViewService::sLock;
+sp<SurroundViewService> SurroundViewService::sService;
+sp<SurroundView2dSession> SurroundViewService::sSurroundView2dSession;
+sp<SurroundView3dSession> SurroundViewService::sSurroundView3dSession;
+
+const std::string kCameraIds[] = {"0", "1", "2", "3"};
+
+sp<SurroundViewService> SurroundViewService::getInstance() {
+    std::scoped_lock<std::mutex> lock(sLock);
+    if (sService == nullptr) {
+        sService = new SurroundViewService();
+    }
+    return sService;
+}
+
+Return<void> SurroundViewService::getCameraIds(getCameraIds_cb _hidl_cb) {
+    hidl_vec<hidl_string> cameraIds = {kCameraIds[0], kCameraIds[1],
+        kCameraIds[2], kCameraIds[3]};
+    _hidl_cb(cameraIds);
+    return {};
+}
+
+Return<void> SurroundViewService::start2dSession(start2dSession_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+    std::scoped_lock<std::mutex> lock(sLock);
+
+    if (sSurroundView2dSession != nullptr) {
+        LOG(WARNING) << "Only one 2d session is supported at the same time";
+        _hidl_cb(nullptr, SvResult::INTERNAL_ERROR);
+    } else {
+        sSurroundView2dSession = new SurroundView2dSession();
+        _hidl_cb(sSurroundView2dSession, SvResult::OK);
+    }
+    return {};
+}
+
+Return<SvResult> SurroundViewService::stop2dSession(
+    const sp<ISurroundView2dSession>& sv2dSession) {
+    LOG(DEBUG) << __FUNCTION__;
+    std::scoped_lock<std::mutex> lock(sLock);
+
+    if (sv2dSession != nullptr && sv2dSession == sSurroundView2dSession) {
+        sSurroundView2dSession = nullptr;
+        return SvResult::OK;
+    } else {
+        LOG(ERROR) << __FUNCTION__ << ": Invalid argument";
+        return SvResult::INVALID_ARG;
+    }
+}
+
+Return<void> SurroundViewService::start3dSession(start3dSession_cb _hidl_cb) {
+    LOG(DEBUG) << __FUNCTION__;
+    std::scoped_lock<std::mutex> lock(sLock);
+
+    if (sSurroundView3dSession != nullptr) {
+        LOG(WARNING) << "Only one 3d session is supported at the same time";
+        _hidl_cb(nullptr, SvResult::INTERNAL_ERROR);
+    } else {
+        sSurroundView3dSession = new SurroundView3dSession();
+        _hidl_cb(sSurroundView3dSession, SvResult::OK);
+    }
+    return {};
+}
+
+Return<SvResult> SurroundViewService::stop3dSession(
+    const sp<ISurroundView3dSession>& sv3dSession) {
+    LOG(DEBUG) << __FUNCTION__;
+    std::scoped_lock<std::mutex> lock(sLock);
+
+    if (sv3dSession != nullptr && sv3dSession == sSurroundView3dSession) {
+        sSurroundView3dSession = nullptr;
+        return SvResult::OK;
+    } else {
+        LOG(ERROR) << __FUNCTION__ << ": Invalid argument";
+        return SvResult::INVALID_ARG;
+    }
+}
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace sv
+}  // namespace automotive
+}  // namespace hardware
+}  // namespace android
+
diff --git a/surround_view/service-impl/SurroundViewService.h b/surround_view/service-impl/SurroundViewService.h
new file mode 100644
index 0000000..7518463
--- /dev/null
+++ b/surround_view/service-impl/SurroundViewService.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#pragma once
+
+#include "SurroundView2dSession.h"
+#include "SurroundView3dSession.h"
+
+#include <android/hardware/automotive/sv/1.0/types.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewService.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewStream.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundView2dSession.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundView3dSession.h>
+#include <hidl/MQDescriptor.h>
+#include <hidl/Status.h>
+
+#include <thread>
+
+using namespace ::android::hardware::automotive::sv::V1_0;
+using ::android::hardware::Return;
+using ::android::sp;
+
+namespace android {
+namespace hardware {
+namespace automotive {
+namespace sv {
+namespace V1_0 {
+namespace implementation {
+
+class SurroundViewService : public ISurroundViewService {
+public:
+    // Methods from ::android::hardware::automotive::sv::V1_0::ISurroundViewService follow.
+    Return<void> getCameraIds(getCameraIds_cb _hidl_cb) override;
+    Return<void> start2dSession(start2dSession_cb _hidl_cb) override;
+    Return<SvResult> stop2dSession(
+        const sp<ISurroundView2dSession>& sv2dSession) override;
+
+    Return<void> start3dSession(start3dSession_cb _hidl_cb) override;
+    Return<SvResult> stop3dSession(
+        const sp<ISurroundView3dSession>& sv3dSession) override;
+
+    static sp<SurroundViewService> getInstance();
+private:
+    SurroundViewService() {};
+
+    static std::mutex sLock;
+    static sp<SurroundViewService> sService GUARDED_BY(sLock);
+
+    static sp<SurroundView2dSession> sSurroundView2dSession GUARDED_BY(sLock);
+    static sp<SurroundView3dSession> sSurroundView3dSession GUARDED_BY(sLock);
+};
+
+}  // namespace implementation
+}  // namespace V1_0
+}  // namespace sv
+}  // namespace automotive
+}  // namespace hardware
+}  // namespace android
diff --git a/surround_view/service-impl/android.automotive.sv.service@1.0-impl.rc b/surround_view/service-impl/android.automotive.sv.service@1.0-impl.rc
new file mode 100644
index 0000000..4207e8f
--- /dev/null
+++ b/surround_view/service-impl/android.automotive.sv.service@1.0-impl.rc
@@ -0,0 +1,5 @@
+service sv_service_impl /vendor/bin/android.automotive.sv.service@1.0-impl
+    class hal
+    user automotive_evs
+    group automotive_evs
+    disabled
diff --git a/surround_view/service-impl/core_lib.h b/surround_view/service-impl/core_lib.h
new file mode 100644
index 0000000..04ff43a
--- /dev/null
+++ b/surround_view/service-impl/core_lib.h
@@ -0,0 +1,528 @@
+#ifndef WIRELESS_ANDROID_AUTOMOTIVE_CAML_SURROUND_VIEW_CORE_LIB_H_
+#define WIRELESS_ANDROID_AUTOMOTIVE_CAML_SURROUND_VIEW_CORE_LIB_H_
+
+#include <cstdint>
+#include <vector>
+
+namespace android_auto {
+namespace surround_view {
+
+// bounding box (bb)
+// It is used to describe the car model bounding box in 3D.
+// It assumes z = 0 and only x, y are used in the struct.
+// Of course, it is compatible to the 2d version bounding box and may be used
+// for other bounding box purpose (e.g., 2d bounding box in image).
+struct BoundingBox {
+  // (x,y) is bounding box's top left corner coordinate.
+  float x;
+  float y;
+
+  // (width, height) is the size of the bounding box.
+  float width;
+  float height;
+
+  BoundingBox() : x(0.0f), y(0.0f), width(0.0f), height(0.0f) {}
+
+  BoundingBox(float x_, float y_, float width_, float height_)
+      : x(x_), y(y_), width(width_), height(height_) {}
+
+  BoundingBox(const BoundingBox& bb_)
+      : x(bb_.x), y(bb_.y), width(bb_.width), height(bb_.height) {}
+
+  // Checks if data is valid.
+  bool IsValid() const { return width >= 0 && height >= 0; }
+
+  bool operator==(const BoundingBox& rhs) const {
+    return x == rhs.x && y == rhs.y && width == rhs.width &&
+           height == rhs.height;
+  }
+
+  BoundingBox& operator=(const BoundingBox& rhs) {
+    x = rhs.x;
+    y = rhs.y;
+    width = rhs.width;
+    height = rhs.height;
+    return *this;
+  }
+};
+
+template <typename T>
+struct Coordinate2dBase {
+  // x coordinate.
+  T x;
+
+  // y coordinate.
+  T y;
+
+  Coordinate2dBase() : x(0), y(0) {}
+
+  Coordinate2dBase(T x_, T y_) : x(x_), y(y_) {}
+
+  bool operator==(const Coordinate2dBase& rhs) const {
+    return x == rhs.x && y == rhs.y;
+  }
+
+  Coordinate2dBase& operator=(const Coordinate2dBase& rhs) {
+    x = rhs.x;
+    y = rhs.y;
+    return *this;
+  }
+};
+
+// integer type size.
+typedef Coordinate2dBase<int> Coordinate2dInteger;
+
+// float type size.
+typedef Coordinate2dBase<float> Coordinate2dFloat;
+
+struct Coordinate3dFloat {
+  // x coordinate.
+  float x;
+
+  // y coordinate.
+  float y;
+
+  // z coordinate.
+  float z;
+
+  Coordinate3dFloat() : x(0), y(0), z(0) {}
+
+  Coordinate3dFloat(float x_, float y_, float z_) : x(x_), y(y_), z(z_) {}
+
+  bool operator==(const Coordinate3dFloat& rhs) const {
+    return x == rhs.x && y == rhs.y;
+  }
+
+  Coordinate3dFloat& operator=(const Coordinate3dFloat& rhs) {
+    x = rhs.x;
+    y = rhs.y;
+    return *this;
+  }
+};
+
+//  pixel weight used for illumination assessment
+struct PixelWeight {
+  // x and y are the coordinates (absolute value) in image space.
+  // pixel coordinate x in horizontal direction.
+  float x;
+
+  // pixel coordinate y in vertical direction.
+  float y;
+
+  // pixel weight, range in [0, 1].
+  float weight;
+
+  PixelWeight() : x(-1), y(-1), weight(0) {}
+
+  PixelWeight(int x_, int y_, int weight_) : x(x_), y(y_), weight(weight_) {}
+
+  bool operator==(const PixelWeight& rhs) const {
+    return x == rhs.x && y == rhs.y && weight == rhs.weight;
+  }
+
+  PixelWeight& operator=(const PixelWeight& rhs) {
+    x = rhs.x;
+    y = rhs.y;
+    weight = rhs.weight;
+    return *this;
+  }
+};
+
+// base size 2d type template.
+template <typename T>
+struct Size2dBase {
+  // width of size.
+  T width;
+
+  // height of size.
+  T height;
+
+  Size2dBase() : width(0), height(0) {}
+
+  Size2dBase(T width_, T height_) : width(width_), height(height_) {}
+
+  bool IsValid() const { return width > 0 && height > 0; }
+
+  bool operator==(const Size2dBase& rhs) const {
+    return width == rhs.width && height == rhs.height;
+  }
+
+  Size2dBase& operator=(const Size2dBase& rhs) {
+    width = rhs.width;
+    height = rhs.height;
+    return *this;
+  }
+};
+
+// integer type size.
+typedef Size2dBase<int> Size2dInteger;
+
+// float type size.
+typedef Size2dBase<float> Size2dFloat;
+
+//  surround view 2d parameters
+struct SurroundView2dParams {
+  // surround view 2d image resolution (width, height).
+  Size2dInteger resolution;
+
+  // the physical size of surround view 2d area in surround view coordinate.
+  // (surround view coordinate is defined as X rightward, Y forward and
+  // the origin lies on the center of the (symmetric) bowl (ground).
+  // When bowl is not used, surround view coordinate origin lies on the
+  // center of car model bounding box.)
+  // The unit should be consistent with camera extrinsics (translation).
+  Size2dFloat physical_size;
+
+  // the center of surround view 2d area in surround view coordinate
+  // (consistent with extrinsics coordinate).
+  Coordinate2dFloat physical_center;
+
+  SurroundView2dParams()
+      : resolution{0, 0},
+        physical_size{0.0f, 0.0f},
+        physical_center{0.0f, 0.0f} {}
+
+  SurroundView2dParams(Size2dInteger resolution_, Size2dFloat physical_size_,
+                       Coordinate2dFloat physical_center_)
+      : resolution(resolution_),
+        physical_size(physical_size_),
+        physical_center(physical_center_) {}
+
+  // Checks if data is valid.
+  bool IsValid() const {
+    return resolution.IsValid() && physical_size.IsValid();
+  }
+
+  bool operator==(const SurroundView2dParams& rhs) const {
+    return resolution == rhs.resolution && physical_size == rhs.physical_size &&
+           physical_center == rhs.physical_center;
+  }
+
+  SurroundView2dParams& operator=(const SurroundView2dParams& rhs) {
+    resolution = rhs.resolution;
+    physical_size = rhs.physical_size;
+    physical_center = rhs.physical_center;
+    return *this;
+  }
+};
+
+//  surround view 3d parameters
+struct SurroundView3dParams {
+  // Bowl center is the origin of the surround view coordinate. If surround view
+  // coordinate is different from the global one, a coordinate system
+  // transformation function is required.
+
+  // planar area radius.
+  // Range in (0, +Inf).
+  float plane_radius;
+
+  // the number of divisions on the plane area of bowl, in the direction
+  // of the radius.
+  // Range in [1, +Inf).
+  int plane_divisions;
+
+  // bowl curve curve height.
+  // Range in (0, +Inf).
+  float curve_height;
+
+  // the number of points on bowl curve curve along radius direction.
+  // Range in [1, +Inf).
+  int curve_divisions;
+
+  // the number of points along circle (360 degrees)
+  // Range in [1, +Inf).
+  int angular_divisions;
+
+  // the parabola coefficient of bowl curve curve.
+  // The curve formula is z = a * (x^2 + y^2) for sqrt(x^2 + y^2) >
+  // plane_radius; a is curve_coefficient.
+  // Range in (0, +Inf).
+  float curve_coefficient;
+
+  // render output image size.
+  Size2dInteger resolution;
+
+  SurroundView3dParams()
+      : plane_radius(0.0f),
+        plane_divisions(0),
+        curve_height(0.0f),
+        curve_divisions(0),
+        angular_divisions(0),
+        curve_coefficient(0.0f),
+        resolution(0, 0) {}
+
+  SurroundView3dParams(float plane_radius_, int plane_divisions_,
+                       float curve_height_, int curve_divisions_,
+                       int angular_divisions_, float curve_coefficient_,
+                       Size2dInteger resolution_)
+      : plane_radius(plane_radius_),
+        plane_divisions(plane_divisions_),
+        curve_height(curve_height_),
+        curve_divisions(curve_divisions_),
+        angular_divisions(angular_divisions_),
+        curve_coefficient(curve_coefficient_),
+        resolution(resolution_) {}
+
+  // Checks if data is valid.
+  bool IsValid() const {
+    return plane_radius > 0 && plane_divisions > 0 && curve_height > 0 &&
+           angular_divisions > 0 && curve_coefficient > 0 &&
+           curve_divisions > 0 && resolution.IsValid();
+  }
+
+  bool operator==(const SurroundView3dParams& rhs) const {
+    return plane_radius == rhs.plane_radius &&
+           plane_divisions == rhs.plane_divisions &&
+           curve_height == rhs.curve_height &&
+           curve_divisions == rhs.curve_divisions &&
+           angular_divisions == rhs.angular_divisions &&
+           curve_coefficient == rhs.curve_coefficient &&
+           resolution == rhs.resolution;
+  }
+
+  SurroundView3dParams& operator=(const SurroundView3dParams& rhs) {
+    plane_radius = rhs.plane_radius;
+    plane_divisions = rhs.plane_divisions;
+    curve_height = rhs.curve_height;
+    curve_divisions = rhs.curve_divisions;
+    angular_divisions = rhs.angular_divisions;
+    curve_coefficient = rhs.curve_coefficient;
+    resolution = rhs.resolution;
+    return *this;
+  }
+};
+
+// surround view camera parameters with native types only.
+struct SurroundViewCameraParams {
+  // All calibration data |intrinsics|, |rvec| and |tvec|
+  // follow OpenCV format excepting using native arrays, refer:
+  // https://docs.opencv.org/3.4.0/db/d58/group__calib3d__fisheye.html
+  // camera intrinsics. It is the 1d array of camera matrix(3X3) with row first.
+  float intrinsics[9];
+
+  // lens distortion parameters.
+  float distorion[4];
+
+  // rotation vector.
+  float rvec[3];
+
+  // translation vector.
+  float tvec[3];
+
+  // camera image size (width, height).
+  Size2dInteger size;
+
+  // fisheye circular fov.
+  float circular_fov;
+
+  bool operator==(const SurroundViewCameraParams& rhs) const {
+    return (0 == std::memcmp(intrinsics, rhs.intrinsics, 9 * sizeof(float))) &&
+           (0 == std::memcmp(distorion, rhs.distorion, 4 * sizeof(float))) &&
+           (0 == std::memcmp(rvec, rhs.rvec, 3 * sizeof(float))) &&
+           (0 == std::memcmp(tvec, rhs.tvec, 3 * sizeof(float))) &&
+           size == rhs.size && circular_fov == rhs.circular_fov;
+  }
+
+  SurroundViewCameraParams& operator=(const SurroundViewCameraParams& rhs) {
+    std::memcpy(intrinsics, rhs.intrinsics, 9 * sizeof(float));
+    std::memcpy(distorion, rhs.distorion, 4 * sizeof(float));
+    std::memcpy(rvec, rhs.rvec, 3 * sizeof(float));
+    std::memcpy(tvec, rhs.tvec, 3 * sizeof(float));
+    size = rhs.size;
+    circular_fov = rhs.circular_fov;
+    return *this;
+  }
+};
+
+// 3D vertex of an overlay object.
+struct OverlayVertex {
+  // Position in 3d coordinates in world space in order X,Y,Z.
+  float pos[3];
+  // RGBA values, A is used for transparency.
+  uint8_t rgba[4];
+
+  // normalized texture coordinates, in width and height direction. Range [0,
+  // 1].
+  float tex[2];
+
+  // normalized vertex normal.
+  float nor[3];
+
+  bool operator==(const OverlayVertex& rhs) const {
+    return (0 == std::memcmp(pos, rhs.pos, 3 * sizeof(float))) &&
+           (0 == std::memcmp(rgba, rhs.rgba, 4 * sizeof(uint8_t))) &&
+           (0 == std::memcmp(tex, rhs.tex, 2 * sizeof(float))) &&
+           (0 == std::memcmp(nor, rhs.nor, 3 * sizeof(float)));
+  }
+
+  OverlayVertex& operator=(const OverlayVertex& rhs) {
+    std::memcpy(pos, rhs.pos, 3 * sizeof(float));
+    std::memcpy(rgba, rhs.rgba, 4 * sizeof(uint8_t));
+    std::memcpy(tex, rhs.tex, 2 * sizeof(float));
+    std::memcpy(nor, rhs.nor, 3 * sizeof(float));
+    return *this;
+  }
+};
+
+// Overlay is a list of vertices (may be a single or multiple objects in scene)
+// coming from a single source or type of sensor.
+struct Overlay {
+  // Uniqiue Id identifying each overlay.
+  uint16_t id;
+
+  // List of overlay vertices. 3 consecutive vertices form a triangle.
+  std::vector<OverlayVertex> vertices;
+
+  // Constructor initializing all member.
+  Overlay(uint16_t id_, const std::vector<OverlayVertex>& vertices_) {
+    id = id_;
+    vertices = vertices_;
+  }
+
+  // Default constructor.
+  Overlay() {
+    id = 0;
+    vertices = std::vector<OverlayVertex>();
+  }
+};
+
+enum Format {
+  GRAY = 0,
+  RGB = 1,
+  RGBA = 2,
+};
+
+struct SurroundViewInputBufferPointers {
+  void* gpu_data_pointer;
+  void* cpu_data_pointer;
+  Format format;
+  int width;
+  int height;
+  SurroundViewInputBufferPointers()
+      : gpu_data_pointer(nullptr),
+        cpu_data_pointer(nullptr),
+        width(0),
+        height(0) {}
+  SurroundViewInputBufferPointers(void* gpu_data_pointer_,
+                                  void* cpu_data_pointer_, Format format_,
+                                  int width_, int height_)
+      : gpu_data_pointer(gpu_data_pointer_),
+        cpu_data_pointer(cpu_data_pointer_),
+        format(format_),
+        width(width_),
+        height(height_) {}
+};
+
+struct SurroundViewResultPointer {
+  void* data_pointer;
+  Format format;
+  int width;
+  int height;
+  SurroundViewResultPointer() : data_pointer(nullptr), width(0), height(0) {}
+  SurroundViewResultPointer(Format format_, int width_, int height_)
+      : format(format_), width(width_), height(height_) {
+    // default formate is gray.
+    const int byte_per_pixel = format_ == RGB ? 3 : format_ == RGBA ? 4 : 1;
+    data_pointer =
+        static_cast<void*>(new char[width * height * byte_per_pixel]);
+  }
+  ~SurroundViewResultPointer() {
+    if (data_pointer) {
+      // delete[] static_cast<char*>(data_pointer);
+      data_pointer = nullptr;
+    }
+  }
+};
+
+class SurroundView {
+ public:
+  virtual ~SurroundView() = default;
+
+  // Sets SurroundView static data.
+  // For each input, please refer to the definition.
+  virtual bool SetStaticData(
+      const std::vector<SurroundViewCameraParams>& cameras_params,
+      const SurroundView2dParams& surround_view_2d_params,
+      const SurroundView3dParams& surround_view_3d_params,
+      const std::vector<float>& undistortion_focal_length_scales,
+      const BoundingBox& car_model_bb) = 0;
+
+  // Starts 2d pipeline. Returns false if error occurs.
+  virtual bool Start2dPipeline() = 0;
+
+  // Starts 3d pipeline. Returns false if error occurs.
+  virtual bool Start3dPipeline() = 0;
+
+  // Stops 2d pipleline. It releases resource owned by the pipeline.
+  // Returns false if error occurs.
+  virtual void Stop2dPipeline() = 0;
+
+  // Stops 3d pipeline. It releases resource owned by the pipeline.
+  virtual void Stop3dPipeline() = 0;
+
+  // Updates 2d output resolution on-the-fly. Starts2dPipeline() must be called
+  // before this can be called. For quality assurance, the resolution should not
+  // be larger than the original one. This call is not thread safe and there is
+  // no sync between Get2dSurroundView() and this call.
+  virtual bool Update2dOutputResolution(const Size2dInteger& resolution) = 0;
+
+  // Updates 3d output resolution on-the-fly. Starts3dPipeline() must be called
+  // before this can be called. For quality assurance, the resolution should not
+  // be larger than the original one. This call is not thread safe and there is
+  // no sync between Get3dSurroundView() and this call.
+  virtual bool Update3dOutputResolution(const Size2dInteger& resolution) = 0;
+
+  // Projects camera's pixel location to surround view 2d image location.
+  // camera_point is the pixel location in raw camera's space.
+  // camera_index is the camera's index.
+  // surround_view_2d_point is the surround view 2d image pixel location.
+  virtual bool GetProjectionPointFromRawCameraToSurroundView2d(
+      const Coordinate2dInteger& camera_point, int camera_index,
+      Coordinate2dFloat* surround_view_2d_point) = 0;
+
+  // Projects camera's pixel location to surround view 3d bowl coordinate.
+  // camera_point is the pixel location in raw camera's space.
+  // camera_index is the camera's index.
+  // surround_view_3d_point is the surround view 3d vertex.
+  virtual bool GetProjectionPointFromRawCameraToSurroundView3d(
+      const Coordinate2dInteger& camera_point, int camera_index,
+      Coordinate3dFloat* surround_view_3d_point) = 0;
+
+  // Gets 2d surround view image.
+  // It takes input_pointers as input, and output is result_pointer.
+  // Please refer to the definition of SurroundViewInputBufferPointers and
+  // SurroundViewResultPointer.
+  virtual bool Get2dSurroundView(
+      const std::vector<SurroundViewInputBufferPointers>& input_pointers,
+      SurroundViewResultPointer* result_pointer) = 0;
+
+  // Gets 3d surround view image.
+  // It takes input_pointers and view_matrix as input, and output is
+  // result_pointer. view_matrix is 4 x 4 matrix.
+  // Please refer to the definition of
+  // SurroundViewInputBufferPointers and
+  // SurroundViewResultPointer.
+  virtual bool Get3dSurroundView(
+      const std::vector<SurroundViewInputBufferPointers>& input_pointers,
+      const std::vector<std::vector<float>> view_matrix,
+      SurroundViewResultPointer* result_pointer) = 0;
+
+  // Sets 3d overlays.
+  virtual bool Set3dOverlay(const std::vector<Overlay>& overlays) = 0;
+
+  // for test only.
+  // TODO(xxqian): remove thest two fns.
+  virtual std::vector<SurroundViewInputBufferPointers> ReadImages(
+      const char* filename0, const char* filename1, const char* filename2,
+      const char* filename3) = 0;
+
+  virtual void WriteImage(const SurroundViewResultPointer result_pointerer,
+                          const char* filename) = 0;
+};
+
+SurroundView* Create();
+
+}  // namespace surround_view
+}  // namespace android_auto
+
+#endif  // WIRELESS_ANDROID_AUTOMOTIVE_CAML_SURROUND_VIEW_CORE_LIB_H_
diff --git a/surround_view/service-impl/lib/arm64/libcore_lib_shared.so b/surround_view/service-impl/lib/arm64/libcore_lib_shared.so
new file mode 100644
index 0000000..0175c16
--- /dev/null
+++ b/surround_view/service-impl/lib/arm64/libcore_lib_shared.so
Binary files differ
diff --git a/surround_view/service-impl/lib/x86-64/libcore_lib.so b/surround_view/service-impl/lib/x86-64/libcore_lib.so
new file mode 100755
index 0000000..96479c6
--- /dev/null
+++ b/surround_view/service-impl/lib/x86-64/libcore_lib.so
Binary files differ
diff --git a/surround_view/service-impl/lib/x86/libcore_lib.so b/surround_view/service-impl/lib/x86/libcore_lib.so
new file mode 100755
index 0000000..34e3bcb
--- /dev/null
+++ b/surround_view/service-impl/lib/x86/libcore_lib.so
Binary files differ
diff --git a/surround_view/service-impl/manifest_android.hardware.automotive.sv@1.0.xml b/surround_view/service-impl/manifest_android.hardware.automotive.sv@1.0.xml
new file mode 100644
index 0000000..f9e4548
--- /dev/null
+++ b/surround_view/service-impl/manifest_android.hardware.automotive.sv@1.0.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2020 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.
+-->
+<manifest version="1.0" type="device" >
+    <hal format="hidl">
+        <name>android.hardware.automotive.sv</name>
+        <transport>hwbinder</transport>
+        <version>1.0</version>
+        <interface>
+            <name>ISurroundViewService</name>
+            <instance>default</instance>
+        </interface>
+    </hal>
+</manifest>
diff --git a/surround_view/service-impl/service.cpp b/surround_view/service-impl/service.cpp
new file mode 100644
index 0000000..a7ce6f3
--- /dev/null
+++ b/surround_view/service-impl/service.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2020 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.
+ */
+#define LOG_TAG "SurroundViewService"
+
+#include <android-base/logging.h>
+#include <android/hardware/automotive/sv/1.0/ISurroundViewStream.h>
+#include <android/hardware_buffer.h>
+#include <hidl/HidlTransportSupport.h>
+#include <thread>
+#include <ui/GraphicBuffer.h>
+#include <utils/Errors.h>
+#include <utils/StrongPointer.h>
+#include <utils/SystemClock.h>
+
+#include "SurroundViewService.h"
+
+// libhidl:
+using android::hardware::configureRpcThreadpool;
+using android::hardware::joinRpcThreadpool;
+
+// implementation:
+using android::hardware::automotive::sv::V1_0::implementation::SurroundViewService;
+
+int main() {
+    LOG(INFO) << "ISurroundViewService default implementation is starting";
+    android::sp<ISurroundViewService> service = SurroundViewService::getInstance();
+
+    configureRpcThreadpool(1, true /* callerWillJoin */);
+
+    // Register our service -- if somebody is already registered by our name,
+    // they will be killed (their thread pool will throw an exception).
+    android::status_t status = service->registerAsService();
+
+    if (status != android::OK) {
+        LOG(ERROR) << "Could not register default Surround View Service. Status: "
+                   << status;
+    }
+
+    joinRpcThreadpool();
+
+    // In normal operation, we don't expect the thread pool to exit
+    LOG(ERROR) << "Surround View Service is shutting down";
+    return 1;
+}
diff --git a/surround_view/service-impl/sv_3d_params.h b/surround_view/service-impl/sv_3d_params.h
new file mode 100644
index 0000000..b0df5fa
--- /dev/null
+++ b/surround_view/service-impl/sv_3d_params.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#ifndef SV_3D_PARAMS_H
+#define SV_3D_PARAMS_H
+
+#include <vector>
+#include <hidl/HidlSupport.h>
+
+using ::android::hardware::hidl_vec;
+
+static std::vector<android::hardware::hidl_vec<float>> kRecViews = {
+    {0, -0.747409, 0.664364, 0, 1, 0, -0, 0, -0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {-0.382683, -0.690516, 0.613792, 0, 0.92388, -0.286021, 0.254241, 0, 0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {-0.707107, -0.528498, 0.469776, 0, 0.707107, -0.528498, 0.469776, 0, 0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {-0.92388, -0.286021, 0.254241, 0, 0.382683, -0.690516, 0.613792, 0, 0, 0.664364, 0.747409, 0, -1.19209e-07, 1.32873, -4.52598, 1},
+    {-1, 3.26703e-08, -2.90403e-08, 0, -4.37114e-08, -0.747409, 0.664364, 0, 0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {-0.92388, 0.286021, -0.254241, 0, -0.382683, -0.690516, 0.613792, 0, 0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {-0.707107, 0.528498, -0.469776, 0, -0.707107, -0.528498, 0.469776, 0, 0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {-0.382683, 0.690516, -0.613792, 0, -0.92388, -0.286021, 0.254241, 0, 0, 0.664364, 0.747409, 0, 1.19209e-07, 1.32873, -4.52598, 1},
+    {8.74228e-08, 0.747409, -0.664364, 0, -1, 6.53406e-08, -5.80805e-08, 0, 0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {0.382683, 0.690516, -0.613792, 0, -0.92388, 0.286021, -0.254241, 0, 0, 0.664364, 0.747409, 0, 1.19209e-07, 1.32873, -4.52598, 1},
+    {0.707107, 0.528498, -0.469776, 0, -0.707107, 0.528498, -0.469776, 0, 0, 0.664364, 0.747409, 0, 1.19209e-07, 1.32873, -4.52598, 1},
+    {0.92388, 0.286021, -0.254241, 0, -0.382684, 0.690516, -0.613792, 0, 0, 0.664364, 0.747409, 0, 1.19209e-07, 1.32873, -4.52598, 1},
+    {1, -8.91277e-09, 7.92246e-09, 0, 1.19249e-08, 0.747409, -0.664364, 0, -0, 0.664364, 0.747409, 0, 3.55271e-15, 1.32873, -4.52598, 1},
+    {0.92388, -0.286021, 0.254241, 0, 0.382684, 0.690516, -0.613792, 0, -0, 0.664364, 0.747409, 0, -0, 1.32873, -4.52598, 1},
+    {0.707107, -0.528498, 0.469776, 0, 0.707107, 0.528498, -0.469776, 0, -0, 0.664364, 0.747409, 0, -1.19209e-07, 1.32873, -4.52598, 1},
+    {0.382683, -0.690516, 0.613792, 0, 0.92388, 0.286021, -0.254241, 0, -0, 0.664364, 0.747409, 0, -1.19209e-07, 1.32873, -4.52598, 1},
+};
+
+#endif // SV_3D_PARAMS_H
+
diff --git a/surround_view/service-impl/test_data/0.png b/surround_view/service-impl/test_data/0.png
new file mode 100644
index 0000000..283751b
--- /dev/null
+++ b/surround_view/service-impl/test_data/0.png
Binary files differ
diff --git a/surround_view/service-impl/test_data/1.png b/surround_view/service-impl/test_data/1.png
new file mode 100644
index 0000000..55abd66
--- /dev/null
+++ b/surround_view/service-impl/test_data/1.png
Binary files differ
diff --git a/surround_view/service-impl/test_data/2.png b/surround_view/service-impl/test_data/2.png
new file mode 100644
index 0000000..c66dd61
--- /dev/null
+++ b/surround_view/service-impl/test_data/2.png
Binary files differ
diff --git a/surround_view/service-impl/test_data/3.png b/surround_view/service-impl/test_data/3.png
new file mode 100644
index 0000000..f9d2c60
--- /dev/null
+++ b/surround_view/service-impl/test_data/3.png
Binary files differ
diff --git a/tests/BugReportApp/res/layout/bug_info_view.xml b/tests/BugReportApp/res/layout/bug_info_view.xml
index 199b368..1841f9c 100644
--- a/tests/BugReportApp/res/layout/bug_info_view.xml
+++ b/tests/BugReportApp/res/layout/bug_info_view.xml
@@ -30,8 +30,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="left"
-            android:textColor="@*android:color/car_yellow_500"
-            android:textSize="@dimen/bug_report_default_text_size" />
+            style="@style/TextAppearance.BugReportUi.Title" />
 
         <LinearLayout
             android:layout_width="wrap_content"
@@ -42,12 +41,12 @@
                 android:layout_height="wrap_content"
                 android:layout_marginRight="@dimen/bug_report_horizontal_layout_children_margin"
                 android:text="@string/bugreport_info_status"
-                android:textSize="@dimen/bug_report_default_text_size" />
+                style="@style/TextAppearance.BugReportUi.Body" />
             <TextView
                 android:id="@+id/bug_info_row_status"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:textSize="@dimen/bug_report_default_text_size" />
+                style="@style/TextAppearance.BugReportUi.Body" />
         </LinearLayout>
 
         <TextView
@@ -55,7 +54,7 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:visibility="gone"
-            android:textSize="@dimen/bug_report_default_text_size" />
+            style="@style/TextAppearance.BugReportUi.Body" />
 
         <LinearLayout
             android:layout_width="wrap_content"
@@ -68,8 +67,8 @@
                 android:layout_marginTop="@dimen/bug_report_user_action_button_padding"
                 android:layout_marginRight="@dimen/bug_report_horizontal_layout_children_margin"
                 android:visibility="gone"
-                android:textSize="@dimen/bug_report_button_text_size"
-                android:text="@string/bugreport_add_audio_button_text" />
+                android:text="@string/bugreport_add_audio_button_text"
+                style="@style/Widget.BugReportUi.InfoActionButton" />
             <Button
                 android:id="@+id/bug_info_upload_button"
                 android:layout_width="wrap_content"
@@ -77,16 +76,16 @@
                 android:layout_marginTop="@dimen/bug_report_user_action_button_padding"
                 android:layout_marginRight="@dimen/bug_report_horizontal_layout_children_margin"
                 android:visibility="gone"
-                android:textSize="@dimen/bug_report_button_text_size"
-                android:text="@string/bugreport_upload_button_text" />
+                android:text="@string/bugreport_upload_button_text"
+                style="@style/Widget.BugReportUi.InfoActionButton" />
             <Button
                 android:id="@+id/bug_info_move_button"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/bug_report_user_action_button_padding"
                 android:visibility="gone"
-                android:textSize="@dimen/bug_report_button_text_size"
-                android:text="@string/bugreport_move_button_text" />
+                android:text="@string/bugreport_move_button_text"
+                style="@style/Widget.BugReportUi.InfoActionButton" />
         </LinearLayout>
     </LinearLayout>
 
diff --git a/tests/BugReportApp/res/layout/bug_report_info_activity.xml b/tests/BugReportApp/res/layout/bug_report_info_activity.xml
index 1cbe9d4..4cc6fbf 100644
--- a/tests/BugReportApp/res/layout/bug_report_info_activity.xml
+++ b/tests/BugReportApp/res/layout/bug_report_info_activity.xml
@@ -32,13 +32,13 @@
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
             android:text="@string/bugreport_info_quit"
-            style="?android:attr/borderlessButtonStyle" />
+            style="@style/android:Widget.DeviceDefault.Button.Borderless.Colored" />
         <Button
             android:id="@+id/start_bug_report_button"
             android:layout_height="wrap_content"
             android:layout_width="wrap_content"
             android:text="@string/bugreport_info_start"
-            style="?android:attr/borderlessButtonStyle" />
+            style="@style/android:Widget.DeviceDefault.Button.Borderless.Colored" />
         <TextView
             android:id="@+id/version_text_view"
             android:layout_height="wrap_content"
@@ -46,7 +46,8 @@
             android:layout_weight="1"
             android:textSize="14sp"
             android:gravity="right"
-            android:text="" />
+            android:text=""
+            style="@style/android:TextAppearance.DeviceDefault" />
     </LinearLayout>
 
     <androidx.recyclerview.widget.RecyclerView
diff --git a/tests/BugReportApp/res/values-ky/strings.xml b/tests/BugReportApp/res/values-ky/strings.xml
index 6ef7370..0cdce1c 100644
--- a/tests/BugReportApp/res/values-ky/strings.xml
+++ b/tests/BugReportApp/res/values-ky/strings.xml
@@ -17,7 +17,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="app_name" msgid="2596316479611335185">"Мүчүлүштүк тууралуу кабар берүү"</string>
+    <string name="app_name" msgid="2596316479611335185">"Мүчүлүштүк тууралуу кабарлоо"</string>
     <string name="bugreport_info_quit" msgid="5590138890181142473">"Жабуу"</string>
     <string name="bugreport_info_start" msgid="667324824650830832">"Мүчүлүштүк тууралуу кабарды берип баштоо"</string>
     <string name="bugreport_info_status" msgid="7211044508792815451">"Абалы:"</string>
@@ -45,5 +45,5 @@
     <string name="toast_status_dump_state_failed" msgid="8072469535227541761">"Абал тууралуу маалымат алынган жок"</string>
     <string name="notification_bugreport_in_progress" msgid="8486454116357963238">"Мүчүлүштүк тууралуу кабар даярдалууда"</string>
     <string name="notification_bugreport_finished_title" msgid="3970195939909624320">"Мүчүлүштүк тууралуу кабар алынды"</string>
-    <string name="notification_bugreport_channel_name" msgid="776902295433824255">"Мүчүлүштүк тууралуу кабар берүү абалынын каналы"</string>
+    <string name="notification_bugreport_channel_name" msgid="776902295433824255">"Мүчүлүштүк тууралуу кабарлоо абалынын каналы"</string>
 </resources>
diff --git a/tests/BugReportApp/res/values/dimens.xml b/tests/BugReportApp/res/values/dimens.xml
index 7f7967f..cb41f89 100644
--- a/tests/BugReportApp/res/values/dimens.xml
+++ b/tests/BugReportApp/res/values/dimens.xml
@@ -20,6 +20,7 @@
     <dimen name="bug_report_padding">30dp</dimen>
 
     <dimen name="bug_report_default_text_size">28dp</dimen>
+    <dimen name="bug_report_small_text_size">24dp</dimen>
 
     <!-- VoiceRecordingView dimensions -->
     <dimen name="bug_report_voice_recording_margin_top">20dp</dimen>
diff --git a/tests/BugReportApp/res/values/styles.xml b/tests/BugReportApp/res/values/styles.xml
index 6d8dd96..9b146a2 100644
--- a/tests/BugReportApp/res/values/styles.xml
+++ b/tests/BugReportApp/res/values/styles.xml
@@ -22,4 +22,17 @@
     <item name="android:clickable">true</item>
     <item name="android:background">@drawable/item_background</item>
   </style>
+
+  <style name="Widget.BugReportUi.InfoActionButton" parent="android:Widget.DeviceDefault.Button">
+    <item name="android:textSize">@dimen/bug_report_button_text_size</item>
+  </style>
+
+  <style name="TextAppearance.BugReportUi.Title" parent="android:TextAppearance.DeviceDefault">
+    <item name="android:textSize">@dimen/bug_report_default_text_size</item>
+  </style>
+
+  <style name="TextAppearance.BugReportUi.Body" parent="android:TextAppearance.DeviceDefault">
+    <item name="android:textColor">@*android:color/car_body1</item>
+    <item name="android:textSize">@dimen/bug_report_small_text_size</item>
+  </style>
 </resources>
diff --git a/tests/BugReportApp/src/com/android/car/bugreport/BugReportService.java b/tests/BugReportApp/src/com/android/car/bugreport/BugReportService.java
index 6fe6a14..6d73052 100644
--- a/tests/BugReportApp/src/com/android/car/bugreport/BugReportService.java
+++ b/tests/BugReportApp/src/com/android/car/bugreport/BugReportService.java
@@ -18,6 +18,8 @@
 import static android.car.CarBugreportManager.CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_CONNECTION_FAILED;
 import static android.car.CarBugreportManager.CarBugreportManagerCallback.CAR_BUGREPORT_DUMPSTATE_FAILED;
 import static android.car.CarBugreportManager.CarBugreportManagerCallback.CAR_BUGREPORT_SERVICE_NOT_AVAILABLE;
+import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY;
 
 import static com.android.car.bugreport.PackageUtils.getPackageVersion;
 
@@ -33,6 +35,7 @@
 import android.car.CarNotConnectedException;
 import android.content.Context;
 import android.content.Intent;
+import android.hardware.display.DisplayManager;
 import android.media.AudioManager;
 import android.media.Ringtone;
 import android.media.RingtoneManager;
@@ -45,6 +48,7 @@
 import android.os.Message;
 import android.os.ParcelFileDescriptor;
 import android.util.Log;
+import android.view.Display;
 import android.widget.Toast;
 
 import com.google.common.base.Preconditions;
@@ -143,6 +147,7 @@
     private CarBugreportManager mBugreportManager;
     private CarBugreportManager.CarBugreportManagerCallback mCallback;
     private Config mConfig;
+    private Context mWindowContext;
 
     /** A handler on the main thread. */
     private Handler mHandler;
@@ -193,6 +198,11 @@
     public void onCreate() {
         Preconditions.checkState(Config.isBugReportEnabled(), "BugReport is disabled.");
 
+        DisplayManager dm = getSystemService(DisplayManager.class);
+        Display primaryDisplay = dm.getDisplay(DEFAULT_DISPLAY);
+        mWindowContext = createDisplayContext(primaryDisplay)
+                .createWindowContext(TYPE_APPLICATION_OVERLAY, null);
+
         mNotificationManager = getSystemService(NotificationManager.class);
         mNotificationManager.createNotificationChannel(new NotificationChannel(
                 PROGRESS_CHANNEL_ID,
@@ -221,7 +231,8 @@
     public int onStartCommand(final Intent intent, int flags, int startId) {
         if (mIsCollectingBugReport.getAndSet(true)) {
             Log.w(TAG, "bug report is already being collected, ignoring");
-            Toast.makeText(this, R.string.toast_bug_report_in_progress, Toast.LENGTH_SHORT).show();
+            Toast.makeText(mWindowContext,
+                    R.string.toast_bug_report_in_progress, Toast.LENGTH_SHORT).show();
             return START_NOT_STICKY;
         }
 
@@ -245,7 +256,7 @@
 
         // Show a short lived "bugreport started" toast message after a short delay.
         mHandlerStartedToast.postDelayed(() -> {
-            Toast.makeText(this,
+            Toast.makeText(mWindowContext,
                     getText(R.string.toast_bug_report_started), Toast.LENGTH_LONG).show();
         }, BUGREPORT_STARTED_TOAST_DELAY_MILLIS);
 
@@ -322,7 +333,8 @@
 
     private void showToast(@StringRes int resId) {
         // run on ui thread.
-        mHandler.post(() -> Toast.makeText(this, getText(resId), Toast.LENGTH_LONG).show());
+        mHandler.post(
+                () -> Toast.makeText(mWindowContext, getText(resId), Toast.LENGTH_LONG).show());
     }
 
     private void disconnectFromCarService() {
@@ -426,7 +438,7 @@
             }
         };
         if (mBugreportManager == null) {
-            mHandler.post(() -> Toast.makeText(this,
+            mHandler.post(() -> Toast.makeText(mWindowContext,
                     "Car service is not ready", Toast.LENGTH_LONG).show());
             Log.e(TAG, "CarBugReportManager is not ready");
             return;
diff --git a/tests/CarDeveloperOptions/res/values-af/arrays.xml b/tests/CarDeveloperOptions/res/values-af/arrays.xml
index 3b24efc..eee8364 100644
--- a/tests/CarDeveloperOptions/res/values-af/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-af/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Moet nooit toelaat dat"</item>
     <item msgid="8184570120217958741">"Laat altyd toe"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normaal"</item>
+    <item msgid="5101233285497327432">"Matig"</item>
+    <item msgid="1555861583162930714">"Laag"</item>
+    <item msgid="1719683776264798117">"Kritiek"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normaal"</item>
+    <item msgid="6107138933849816768">"Matig"</item>
+    <item msgid="182695359839047859">"Laag"</item>
+    <item msgid="8577246509202964244">"Kritiek"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Aanhoudend"</item>
     <item msgid="167418068739176448">"Topaktiwiteit"</item>
diff --git a/tests/CarDeveloperOptions/res/values-af/strings.xml b/tests/CarDeveloperOptions/res/values-af/strings.xml
index 740beee..9857323 100644
--- a/tests/CarDeveloperOptions/res/values-af/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-af/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Maak die teks op die skerm kleiner of groter."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Maak kleiner"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Maak groter"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Voorbeeldteks"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Die Wonderlike Towenaar van Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Hoofstuk 11: Die Wonderlike Smaragstad van Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobiel"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"As Wi-Fi onbeskikbaar is, moet jy mobiele netwerk gebruik"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"As mobiele netwerk onbeskikbaar is, gebruik Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Bel oor Wi-Fi. Die oproep sal eindig as jy nie meer Wi-Fi het nie."</string>
@@ -2307,9 +2309,9 @@
       <item quantity="other">Beperk %1$d programme?</item>
       <item quantity="one">Beperk program?</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Om batterykrag te bespaar, keer <xliff:g id="APP">%1$s</xliff:g> om die battery op die agtergrond te gebruik. Hierdie program sal dalk nie behoorlik werk nie en kennisgewings sal dalk vertraag word."</string>
-    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Om batterykrag te bespaar, keer hierdie programme om die battery op die agtergrond te gebruik. Beperkte programme sal dalk nie behoorlik werk nie en kennisgewings sal dalk vertraag word.\n\nProgramme:"</string>
-    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Om batterykrag te bespaar, keer hierdie programme om die battery op die agtergrond te gebruik. Beperkte programme sal dalk nie behoorlik werk nie en kennisgewings sal dalk vertraag word.\n\nProgramme:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Verhoed <xliff:g id="APP">%1$s</xliff:g> om die battery op die agtergrond te gebruik om so batterykrag te bespaar. Hierdie program sal dalk nie behoorlik werk nie en kennisgewings sal dalk vertraag word."</string>
+    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Verhoed hierdie programme om die battery op die agtergrond te gebruik om so batterykrag te bespaar. Beperkte programme sal dalk nie behoorlik werk nie en kennisgewings sal dalk vertraag word.\n\nProgramme:"</string>
+    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Verhoed hierdie programme om die battery op die agtergrond te gebruik om so batterykrag te bespaar. Beperkte programme sal dalk nie behoorlik werk nie en kennisgewings sal dalk vertraag word.\n\nProgramme:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Beperk"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Verwyder beperking?"</string>
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Hierdie program sal batterykrag op die agtergrond kan gebruik. Jou battery sal dalk gouer as verwag afloop."</string>
@@ -2627,8 +2629,8 @@
     <string name="remove_account_label" msgid="5885425720323823387">"Verwyder rekening"</string>
     <string name="header_add_an_account" msgid="8482614556580804956">"Voeg \'n rekening by"</string>
     <string name="really_remove_account_title" msgid="4166512362915154319">"Verwyder rekening?"</string>
-    <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Verwydering van hierdie rekening sal ook al sy boodskappe, kontakte en ander data van die tablet uitvee."</string>
-    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Verwydering van hierdie rekening sal ook al sy boodskappe, kontakte en ander data van die foon uitvee."</string>
+    <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Verwydering van hierdie rekening sal ook al sy boodskappe, kontakte en ander data van die tablet af uitvee."</string>
+    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Verwydering van hierdie rekening sal ook al sy boodskappe, kontakte en ander data van die foon af uitvee."</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"As hierdie rekening verwyder word, sal al sy boodskappe, kontakte en ander data van die toestel af uitgevee word!"</string>
     <string name="remove_account_failed" msgid="491458185327106966">"Hierdie verandering word nie deur jou administrateur toegelaat nie"</string>
     <string name="cant_sync_dialog_title" msgid="5483419398223189881">"Kan nie handmatig sinkroniseer nie"</string>
@@ -3706,7 +3708,7 @@
     </plurals>
     <string name="high_power_filter_on" msgid="5294209328473386403">"Nie geoptimeer nie"</string>
     <string name="high_power_on" msgid="3573501822510580334">"Nie geoptimeer nie"</string>
-    <string name="high_power_off" msgid="5906679734326490426">"Optimaliseer batterygebruik"</string>
+    <string name="high_power_off" msgid="5906679734326490426">"Optimeer batterygebruik"</string>
     <string name="high_power_system" msgid="739584574711292753">"Batteryoptimering is nie beskikbaar nie"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Moenie batteryoptimering toepas nie. Dit kan jou battery dalk vinniger pap maak."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Laat program altyd in die agtergrond loop?"</string>
diff --git a/tests/CarDeveloperOptions/res/values-am/arrays.xml b/tests/CarDeveloperOptions/res/values-am/arrays.xml
index 46bbc7e..acbc14e 100644
--- a/tests/CarDeveloperOptions/res/values-am/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-am/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"በጭራሽ አትፍቀድ"</item>
     <item msgid="8184570120217958741">"ሁልጊዜ ፍቀድ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"መደበኛ"</item>
+    <item msgid="5101233285497327432">"መጠነኛ"</item>
+    <item msgid="1555861583162930714">"ዝቅተኛ"</item>
+    <item msgid="1719683776264798117">"አሳሳቢ"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"መደበኛ"</item>
+    <item msgid="6107138933849816768">"መጠነኛ"</item>
+    <item msgid="182695359839047859">"ዝቅተኛ"</item>
+    <item msgid="8577246509202964244">"አሳሳቢ"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"የሚጸና"</item>
     <item msgid="167418068739176448">"ከፍተኛ እንቅስቃሴ"</item>
diff --git a/tests/CarDeveloperOptions/res/values-am/strings.xml b/tests/CarDeveloperOptions/res/values-am/strings.xml
index 7ba65c3..051b9cc 100644
--- a/tests/CarDeveloperOptions/res/values-am/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-am/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"በማያ ገጽ ላይ ያለውን ጽሑፍ ያሳንሱ ወይም ያተልቁ።"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"አነስ አድርግ"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"ተለቅ አድርግ"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"የናሙና ጽሑፍ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"አስደናቂው የኦዝ ምትሃተኛ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"ምዕራፍ 11፦ ኦዝ፣ አስደናቂዋ የኤምራልድ ከተማ"</string>
@@ -197,7 +196,7 @@
     <string name="proxy_settings_title" msgid="6014901859338211713">"ተኪ"</string>
     <string name="proxy_clear_text" msgid="498317431076294101">"አጽዳ"</string>
     <string name="proxy_port_label" msgid="8285157632538848509">"የእጅ አዙርወደብ"</string>
-    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"የእጅ አዙሩን በጎንእለፍ"</string>
+    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"የእጅ አዙሩን በጎን እለፍ"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"ወደ ነባሪዎች  እነበረበት መልስ"</string>
     <string name="proxy_action_text" msgid="814511434843981413">"ተከናውኗል"</string>
     <string name="proxy_hostname_label" msgid="6798891831427287847">"የእጅ አዙር ስመ ካዳም"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"ተንቀሳቃሽ ስልክ"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi የማይገኝ ከሆነ፣ የተንቀሳቃሽ ስልክ አውታረ መረብ ተጠቀም"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"የተንቀሳቃስሽ ስልክ አውታረ መረብ የማይገኝ ከሆነ፣ Wi‑Fi ይጠቀሙ"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"በ Wi-Fi በኩል ደውል። Wi‑Fi ከጠፋ፣ ጥሪ ያበቃል።"</string>
@@ -1525,7 +1527,7 @@
     <string name="battery_status_title" msgid="8731200319740671905">"የባትሪሁኔታ"</string>
     <string name="battery_level_title" msgid="5207775387973771646">"የባትሪደረጃ፡"</string>
     <string name="apn_settings" msgid="8130776653826271664">"APNs"</string>
-    <string name="apn_edit" msgid="4350571070853305357">"የድረስ ነጥብ አርትዕ"</string>
+    <string name="apn_edit" msgid="4350571070853305357">"የመዳረሻ ነጥብ አርትዕ"</string>
     <string name="apn_not_set" msgid="5344235604466825691">"አልተዘጋጀም"</string>
     <string name="apn_name" msgid="8431432886706852226">"ስም"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
@@ -2449,7 +2451,7 @@
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"ምንም መርሐግብር የለም"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"በዕለታዊ ተግባርዎ ላይ የተመሠረተ"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"በመቶኛ ላይ የተመሠረተ"</string>
-    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"በተመልዶ ባትሪዎ ከሚሞሉበት ቀጣዩ ጊዜ በፊት ባትሪዎ የማለቅ ዕድሉ ከፍ ያለ ከሆነ ባትሪ ቆጣቢ ይበራል።"</string>
+    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"በተለምዶ ባትሪዎ ከሚሞሉበት ቀጣዩ ጊዜ በፊት ባትሪዎ የማለቅ ዕድሉ ከፍ ያለ ከሆነ ባትሪ ቆጣቢ ይበራል።"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g> ላይ ይበራል"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"መርሐግብር ያቀናብሩ"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"ሙሉ በሙሉ ኃይል ሲሞላ አጥፋ"</string>
@@ -2490,7 +2492,7 @@
     <string name="menu_duration_12h" msgid="1435242738163843797">"12 ሰዓቶች"</string>
     <string name="menu_duration_1d" msgid="6476370834372352174">"1 ቀን"</string>
     <string name="menu_show_system" msgid="6315865548558708248">"ስርዓት አሳይ"</string>
-    <string name="menu_hide_system" msgid="8457027118873733782">"የመደበቂያ ስርዓት"</string>
+    <string name="menu_hide_system" msgid="8457027118873733782">"ስርዓት ደብቅ"</string>
     <string name="menu_show_percentage" msgid="6983272380729890884">"መቶኛዎችን አሳይ"</string>
     <string name="menu_use_uss" msgid="3765054705208926803">"ዩ ኤስ ኤስ ይጠቀሙ"</string>
     <string name="menu_proc_stats_type" msgid="2680179749566186247">"የስታቲስቲክስ አይነት"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ar/arrays.xml b/tests/CarDeveloperOptions/res/values-ar/arrays.xml
index e6e5ee5..30c8a65 100644
--- a/tests/CarDeveloperOptions/res/values-ar/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ar/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"التشغيل في الخلفية"</item>
     <item msgid="6423861043647911030">"مستوى صوت \"سهولة الاستخدام\""</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"الموقع"</item>
+    <item msgid="6656077694190491067">"الموقع"</item>
+    <item msgid="8790228218278477369">"الموقع"</item>
+    <item msgid="7836406246005211990">"اهتزاز"</item>
+    <item msgid="3951439024549922598">"قراءة جهات الاتصال"</item>
+    <item msgid="8802152411647068">"تعديل جهات الاتصال"</item>
+    <item msgid="229544934599698735">"قراءة سجل المكالمات"</item>
+    <item msgid="7396102294405899613">"تعديل سجل المكالمات"</item>
+    <item msgid="3597797992398484655">"قراءة التقويم"</item>
+    <item msgid="2705975774250907343">"تعديل التقويم"</item>
+    <item msgid="4668747371441932697">"الموقع"</item>
+    <item msgid="1487578921720243646">"نشر إشعار"</item>
+    <item msgid="4636080349724146638">"الموقع"</item>
+    <item msgid="673510900286463926">"اتصال هاتفي"</item>
+    <item msgid="542083422784609790">"قراءة الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="1033780373029588436">"كتابة الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="5647111115517787488">"تلقي الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="8591105601108455893">"تلقي الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="7730995008517841903">"تلقي الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="2613033109026626086">"تلقي الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="3037159047591081136">"إرسال الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="4726682243833913568">"قراءة الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="6555678522277865572">"كتابة الرسائل القصيرة SMS/رسائل الوسائط المتعددة"</item>
+    <item msgid="6981734935578130884">"تعديل الإعدادات"</item>
+    <item msgid="8705854389991425629">"رسم في الأعلى"</item>
+    <item msgid="5861356020344153651">"إشعارات الدخول"</item>
+    <item msgid="78432174621628659">"الكاميرا"</item>
+    <item msgid="3986116419882154794">"تسجيل الصوت"</item>
+    <item msgid="4516840825756409490">"تشغيل الصوت"</item>
+    <item msgid="6811712502798183957">"قراءة الحافظة"</item>
+    <item msgid="2780369012602289114">"تعديل الحافظة"</item>
+    <item msgid="2331359440170850868">"أزرار الوسائط"</item>
+    <item msgid="6133599737122751231">"التركيز على الصوت"</item>
+    <item msgid="6844485713404805301">"مستوى الصوت الرئيسي"</item>
+    <item msgid="1600379420669104929">"مستوى الصوت"</item>
+    <item msgid="6296768210470214866">"مستوى صوت الرنين"</item>
+    <item msgid="510690696071629241">"مستوى صوت الوسائط"</item>
+    <item msgid="406861638631430109">"مستوى صوت المنبّه"</item>
+    <item msgid="4715864795872233884">"مستوى صوت الإشعارات"</item>
+    <item msgid="2311478519251301183">"مستوى صوت البلوتوث"</item>
+    <item msgid="5133991377896747027">"ابق متيقظًا"</item>
+    <item msgid="2464189519136248621">"الموقع الجغرافي"</item>
+    <item msgid="2062677934050803037">"الموقع"</item>
+    <item msgid="1735171933192715957">"الحصول على إحصاءات الاستخدام"</item>
+    <item msgid="1014093788778383554">"كتم صوت/إلغاء كتم صوت الميكروفون"</item>
+    <item msgid="4199297950608622850">"عرض الإعلام المنبثق"</item>
+    <item msgid="2527962435313398821">"وسائط المشروع"</item>
+    <item msgid="5117506254221861929">"تفعيل الشبكة الافتراضية الخاصة"</item>
+    <item msgid="8291198322681891160">"كتابة الخلفية"</item>
+    <item msgid="7106921284621230961">"تركيبة مساعدة"</item>
+    <item msgid="4496533640894624799">"لقطة شاشة مساعدة"</item>
+    <item msgid="2598847264853993611">"قراءة حالة الهاتف"</item>
+    <item msgid="9215610846802973353">"إضافة بريد صوتي"</item>
+    <item msgid="9186411956086478261">"استخدام SIP"</item>
+    <item msgid="6884763100104539558">"معالجة المكالمات الصادرة"</item>
+    <item msgid="125513972170580692">"بصمة الإصبع"</item>
+    <item msgid="2556071024281275619">"أجهزة استشعار الجسم"</item>
+    <item msgid="617168514928339387">"قراءة رسائل البث الخلوي"</item>
+    <item msgid="7134693570516523585">"موقع وهمي"</item>
+    <item msgid="7224489175375229399">"قراءة مساحة التخزين"</item>
+    <item msgid="8472735063903258202">"كتابة مساحة التخزين"</item>
+    <item msgid="4069276819909595110">"تشغيل الشاشة"</item>
+    <item msgid="1228338896751121025">"الحصول على الحسابات"</item>
+    <item msgid="3181581793459233672">"التشغيل في الخلفية"</item>
+    <item msgid="2340936043025374076">"مستوى صوت \"سهولة الاستخدام\""</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"قصيرة"</item>
     <item msgid="4816511817309094890">"أهميّة متوسّطة"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"عدم السماح مطلقًا"</item>
     <item msgid="8184570120217958741">"السماح دومًا"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"عادية"</item>
+    <item msgid="5101233285497327432">"معتدلة"</item>
+    <item msgid="1555861583162930714">"منخفضة"</item>
+    <item msgid="1719683776264798117">"حرجة"</item>
+    <item msgid="1567326459340152525">"؟"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"عادية"</item>
+    <item msgid="6107138933849816768">"متوسطة"</item>
+    <item msgid="182695359839047859">"منخفضة"</item>
+    <item msgid="8577246509202964244">"حرجة"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ثابتة"</item>
     <item msgid="167418068739176448">"أهم نشاط"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ar/strings.xml b/tests/CarDeveloperOptions/res/values-ar/strings.xml
index fdcf5e7..2333cec 100644
--- a/tests/CarDeveloperOptions/res/values-ar/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ar/strings.xml
@@ -87,8 +87,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"يمكنك تصغير النص الظاهر على الشاشة أو تكبيره."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"تصغير"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"تكبير"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"نموذج نص"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ساحر أوز العجيب"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"الفصل ۱۱: مدينة أوز الزمردية العجيبة"</string>
@@ -155,7 +154,7 @@
     <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="7083038132794842691">"يريد أحد التطبيقات تفعيل البلوتوث وجعل جهازك اللوحي مرئيًا للأجهزة الأخرى. يمكنك تغيير هذا لاحقًا في إعدادات بلوتوث."</string>
     <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="3541668604020109525">"يريد أحد التطبيقات تفعيل البلوتوث وجعل هاتفك مرئيًا للأجهزة الأخرى. يمكنك تغيير هذا لاحقًا في إعدادات بلوتوث."</string>
     <string name="bluetooth_turning_on" msgid="6935183036449748493">"جارٍ تفعيل البلوتوث..."</string>
-    <string name="bluetooth_turning_off" msgid="9214026723789756620">"جارٍ إيقاف تفعيل البلوتوث..."</string>
+    <string name="bluetooth_turning_off" msgid="9214026723789756620">"جارٍ إيقاف البلوتوث..."</string>
     <string name="bluetooth_connection_permission_request" msgid="2382506002340643398">"طلب اتصال بلوتوث"</string>
     <string name="bluetooth_connection_notif_message" msgid="6824654400460127108">"انقر للاتصال بـ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"."</string>
     <string name="bluetooth_connection_dialog_text" msgid="5454660775522235951">"هل تريد الاتصال بـ \"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\"؟"</string>
@@ -212,8 +211,8 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"يلزمك إكمال حقل المنفذ."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"يجب أن يكون حقل المنفذ فارغًا إذا كان حقل المضيف فارغًا."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"المنفذ الذي كتبته غير صالح."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"يستخدم المتصفح الخادم الوكيل HTTP، ولكنه ربما لا تستخدمه التطبيقات الأخرى."</string>
-    <string name="proxy_url_title" msgid="882042361706435904">"عنوان URL لتهيئة PAC: "</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"يتم استخدام الخادم الوكيل HTTP على المتصفّح، ولكن قد لا تستخدمه التطبيقات الأخرى."</string>
+    <string name="proxy_url_title" msgid="882042361706435904">"عنوان URL لإعداد PAC: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"معدّل نقل بيانات DL (كيلوبت في الثانية):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"معدّل نقل بيانات UL (كيلوبت في الثانية):"</string>
     <string name="radio_info_signal_location_label" msgid="6788144906873498013">"معلومات الموقع الخلوية (تم الإيقاف):"</string>
@@ -359,7 +358,7 @@
     <string name="lock_after_timeout_summary" msgid="3160517585613694740">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> بعد السكون"</string>
     <string name="lock_immediately_summary_with_exception" msgid="6442552135409347556">"بعد السكون مباشرة، باستثناء عندما ميزة <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> تبقي الجهاز مفتوحًا"</string>
     <string name="lock_after_timeout_summary_with_exception" msgid="7218267834086717545">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> بعد السكون، باستثناء عندما ميزة <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> تبقي الجهاز مفتوحًا"</string>
-    <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"إظهار معلومات المالك في شاشة التأمين"</string>
+    <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"إظهار معلومات المالك في شاشة القفل"</string>
     <string name="owner_info_settings_title" msgid="2537966178998339896">"رسالة شاشة القفل"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"تفعيل الأدوات"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"تم إيقاف الإعداد بواسطة المشرف"</string>
@@ -373,7 +372,7 @@
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"جهاز Android الخاص بهاني مثلاً"</string>
     <string name="user_info_settings_title" msgid="1125111518759995748">"معلومات المستخدم"</string>
-    <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"إظهار معلومات الملف الشخصي في شاشة التأمين"</string>
+    <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"إظهار معلومات الملف الشخصي في شاشة القفل"</string>
     <string name="profile_info_settings_title" msgid="4855892878512562551">"معلومات الملف الشخصي"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"الحسابات"</string>
     <string name="location_settings_title" msgid="2707201457572301030">"الموقع الجغرافي"</string>
@@ -500,7 +499,7 @@
     <string name="lock_screen_pin_skip_title" msgid="8217519439213393785">"أتريد تخطي إعداد رقم التعريف الشخصي؟"</string>
     <string name="lock_screen_password_skip_title" msgid="3725788215672959827">"أتريد تخطّي إعداد كلمة المرور؟"</string>
     <string name="lock_screen_pattern_skip_title" msgid="4237030500353932005">"هل تريد تخطّي إعداد النقش؟"</string>
-    <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="9036983528330627756">"إعداد تأمين الشاشة"</string>
+    <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="9036983528330627756">"إعداد قفل الشاشة"</string>
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"تم"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"عفوًا، هذا ليس جهاز الاستشعار"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"المس زر الاستشعار في الجزء الخلفي لهاتفك. استخدم إصبع السبابة."</string>
@@ -531,8 +530,8 @@
     <string name="crypt_keeper_button_text" product="default" msgid="8737394386627318489">"ترميز الهاتف"</string>
     <string name="crypt_keeper_low_charge_text" msgid="1422879728632636311">"اشحن البطارية وأعد المحاولة."</string>
     <string name="crypt_keeper_unplugged_text" msgid="6597684068340036200">"صل الشاحن وأعد المحاولة."</string>
-    <string name="crypt_keeper_dialog_need_password_title" msgid="8532211509636340535">"ليس هناك رقم تعريف شخصي (PIN) أو كلمة مرور لتأمين الشاشة"</string>
-    <string name="crypt_keeper_dialog_need_password_message" msgid="1341590897367808702">"يجب تعيين رقم تعريف شخصي أو كلمة مرور لتأمين الشاشة قبل أن تتمكن من بدء عملية التشفير."</string>
+    <string name="crypt_keeper_dialog_need_password_title" msgid="8532211509636340535">"ليس هناك رقم تعريف شخصي (PIN) أو كلمة مرور لقفل الشاشة"</string>
+    <string name="crypt_keeper_dialog_need_password_message" msgid="1341590897367808702">"يجب تعيين رقم تعريف شخصي أو كلمة مرور لقفل الشاشة قبل أن تتمكن من بدء عملية التشفير."</string>
     <string name="crypt_keeper_confirm_title" msgid="8884417036062084547">"التشفير؟"</string>
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2713708841024805586">"لا يمكن التراجع عن عملية التشفير، وفي حالة مقاطعتها، ستفقد البيانات. تستغرق عملية التشفير ساعة أو أكثر، وسيتم خلالها إعادة تشغيل الجهاز اللوحي عدة مرات."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="2483549885938505746">"لا يمكن التراجع عن عملية التشفير، وفي حالة مقاطعتها، ستفقد البيانات. تستغرق عملية التشفير ساعة أو أكثر، وسيتم خلالها إعادة تشغيل الهاتف عدة مرات."</string>
@@ -577,9 +576,9 @@
     <string name="unlock_set_unlock_launch_picker_summary_lock_immediately" msgid="5596186270725220642">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / بعد النوم مباشرة"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="3861167251234952373">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / <xliff:g id="TIMEOUT_STRING">%2$s</xliff:g> بعد النوم"</string>
     <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"قفل الملف الشخصي للعمل"</string>
-    <string name="unlock_set_unlock_launch_picker_change_title" msgid="32310692507029407">"تغيير تأمين الشاشة"</string>
+    <string name="unlock_set_unlock_launch_picker_change_title" msgid="32310692507029407">"تغيير قفل الشاشة"</string>
     <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2072792784866320522">"تغيير أو إيقاف النقش أو رمز PIN أو أمان كلمة المرور"</string>
-    <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="9070847611379078795">"اختيار طريقة لتأمين الشاشة"</string>
+    <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="9070847611379078795">"اختيار طريقة لقفل الشاشة"</string>
     <string name="unlock_set_unlock_off_title" msgid="5049876793411416079">"بدون"</string>
     <string name="unlock_set_unlock_off_summary" msgid="3997346045783359119"></string>
     <string name="unlock_set_unlock_none_title" msgid="1922027966983146392">"التمرير السريع"</string>
@@ -609,7 +608,7 @@
     <string name="unlock_set_unlock_mode_pin" msgid="7828354651668392875">"رقم تعريف شخصي"</string>
     <string name="unlock_set_unlock_mode_password" msgid="397703731925549447">"كلمة مرور"</string>
     <string name="unlock_setup_wizard_fingerprint_details" msgid="6515136915205473675">"بعد إعداد قفل شاشة، يمكنك أيضًا إعداد بصمة إصبعك في الإعدادات &gt; الأمان."</string>
-    <string name="unlock_disable_lock_title" msgid="3508492427073600294">"إيقاف تأمين الشاشة"</string>
+    <string name="unlock_disable_lock_title" msgid="3508492427073600294">"إيقاف قفل الشاشة"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"هل تريد إزالة حماية الجهاز؟"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"هل تريد إزالة حماية الملف الشخصي؟"</string>
     <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"لن تعمل ميزات حماية الجهاز بدون النقش."</string>
@@ -1004,7 +1003,7 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"الخصوصية"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"عنوان MAC العشوائي"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"إضافة جهاز"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"توسيط رمز الاستجابة السريعة أدناه لإضافة الجهاز إلى \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"وضع رمز الاستجابة السريعة في الوسط أدناه لإضافة الجهاز إلى \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"المسح الضوئي لرمز الاستجابة السريعة"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"توسيط رمز الاستجابة السريعة أدناه للربط بالمعرِّف \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"يمكنك الانضمام إلى شبكة Wi‑Fi عن طريق المسح الضوئي لرمز مسح الاستجابة السريعة."</string>
@@ -1036,7 +1035,7 @@
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"يمكنك الاتصال بهذه الشبكة باستخدام رمز استجابة سريعة."</string>
     <string name="retry" msgid="8500839563577344702">"إعادة المحاولة"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"المشاركة مع مستخدمي الجهاز الآخرين"</string>
-    <string name="wifi_unchanged" msgid="6804964646942333992">"(لم يتم التغيير)"</string>
+    <string name="wifi_unchanged" msgid="6804964646942333992">"(لم يتم تغييره)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"يُرجى التحديد"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(تمت إضافة عدة شهادات)"</string>
     <string name="wifi_use_system_certs" msgid="4794489370929885022">"استخدام شهادات النظام"</string>
@@ -1175,7 +1174,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"الجوّال"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"إذا لم تكن شبكة Wi-Fi متاحة، يمكنك استخدام شبكة الجوّال."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"إذا لم تكن شبكة الجوّال متاحة، يمكنك استخدام شبكة Wi-Fi."</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"يمكنك الاتصال عبر شبكة Wi-Fi. وإذا لم تكن متوفرة، سيتم إنهاء المكالمة."</string>
@@ -1207,7 +1209,7 @@
     <string name="dock_settings_summary" msgid="3023630224867503210">"الإعدادات الصوتية للإرساء المرفق"</string>
     <string name="dtmf_tone_enable_title" msgid="3797301105270314782">"نغمات لمس لوحة الطلب"</string>
     <string name="sound_effects_enable_title" msgid="3693756476729696246">"أصوات النقر"</string>
-    <string name="lock_sounds_enable_title" msgid="6456726219456531315">"صوت تأمين الشاشة"</string>
+    <string name="lock_sounds_enable_title" msgid="6456726219456531315">"صوت قفل الشاشة"</string>
     <string name="audio_record_proc_title" msgid="5772134576781468721">"إلغاء الضجيج"</string>
     <string name="volume_media_description" msgid="3659485559976891268">"الموسيقى والفيديو والألعاب والوسائط الأخرى"</string>
     <string name="volume_ring_description" msgid="1975431532517579212">"نغمة الرنين والتنبيهات"</string>
@@ -1244,7 +1246,7 @@
     <string name="color_mode_title" msgid="8164858320869449142">"الألوان"</string>
     <string name="color_mode_option_natural" msgid="1292837781836645320">"طبيعي"</string>
     <string name="color_mode_option_boosted" msgid="453557938434778933">"مُحسن"</string>
-    <string name="color_mode_option_saturated" msgid="7758384943407859851">"مُشبع"</string>
+    <string name="color_mode_option_saturated" msgid="7758384943407859851">"مُشبعة"</string>
     <string name="color_mode_option_automatic" msgid="6572718611315165117">"توافقي"</string>
     <string name="color_mode_summary_natural" msgid="1247153893843263340">"استخدام الألوان الدقيقة فقط"</string>
     <string name="color_mode_summary_automatic" msgid="6066740785261330514">"ضبط إلى التبديل بين الألوان الزاهية والدقيقة"</string>
@@ -1271,7 +1273,7 @@
     <string name="auto_brightness_very_high_title" msgid="6649896560889239565">"مرتفع جدًا"</string>
     <string name="auto_brightness_subtitle" msgid="8516999348793100665">"مستوى السطوع المفضل بالنسبة لك"</string>
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"عدم ضبط السطوع بحسب الإضاءة المتاحة"</string>
-    <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"زيادة استخدام البطارية"</string>
+    <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"يزيد استخدام البطارية"</string>
     <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"يمكنك تحسين مستوى السطوع حسب الإضاءة. وعند تفعيل هذه الميزة، سيظل بإمكانك ضبط السطوع مؤقتًا."</string>
     <string name="auto_brightness_description" msgid="8209140379089535411">"سيتم ضبط سطوع الشاشة تلقائيًا حسب البيئة المحيطة والأنشطة. ويمكنك تحريك شريط التمرير يدويًا لضبط السطوع التكيُّفي حسبما تفضّل."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"موازنة اللون الأبيض للشاشة"</string>
@@ -1487,7 +1489,7 @@
     <string name="storage_menu_format" msgid="4285487419855632896">"تهيئة"</string>
     <string name="storage_menu_format_public" msgid="5361388353980722971">"تهيئة كوحدة تخزين محمولة"</string>
     <string name="storage_menu_format_private" msgid="5288599205435858720">"تهيئة كوحدة تخزين داخلية"</string>
-    <string name="storage_menu_migrate" msgid="1885806122515759703">"ترحيل البيانات"</string>
+    <string name="storage_menu_migrate" msgid="1885806122515759703">"نقل البيانات"</string>
     <string name="storage_menu_forget" msgid="4345021250834642640">"حذف"</string>
     <string name="storage_menu_set_up" msgid="2849170579745958513">"إعداد"</string>
     <string name="storage_menu_explore" msgid="3733439525636202662">"استكشاف"</string>
@@ -1717,7 +1719,7 @@
     <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"هل تريد استخدام <xliff:g id="NEW_APP">%1$s</xliff:g> بدلاً من <xliff:g id="CURRENT_APP">%2$s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"هل تريد استخدام <xliff:g id="NEW_APP">%s</xliff:g> لإدارة اتصالات الشبكة لديك؟"</string>
     <string name="mobile_unknown_sim_operator" msgid="872589370085135817">"مشغل SIM (مشغل شبكة الجوّال) غير معروف"</string>
-    <string name="mobile_no_provisioning_url" msgid="3216517414902166131">"ليس لدى <xliff:g id="OPERATOR">%1$s</xliff:g> موقع ويب معروف لإدارة حسابات"</string>
+    <string name="mobile_no_provisioning_url" msgid="3216517414902166131">"ليس لدى <xliff:g id="OPERATOR">%1$s</xliff:g> موقع إلكتروني معروف لإدارة حسابات"</string>
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"يُرجى إدخال شريحة SIM وإعادة التشغيل"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"يُرجى الاتصال بالإنترنت"</string>
     <string name="location_title" msgid="8664674161765477168">"موقعي"</string>
@@ -1760,8 +1762,8 @@
     <string name="location_sources_heading" msgid="8526658357120282741">"مصادر الموقع"</string>
     <string name="about_settings" product="tablet" msgid="4869626690708456341">"لمحة عن الجهاز اللوحي"</string>
     <string name="about_settings" product="default" msgid="6019547763377294261">"لمحة عن الهاتف"</string>
-    <string name="about_settings" product="device" msgid="1770438316234693655">"لمحة حول الجهاز"</string>
-    <string name="about_settings" product="emulator" msgid="4497482494770487014">"حول الجهاز في وضع المحاكاة"</string>
+    <string name="about_settings" product="device" msgid="1770438316234693655">"لمحة عن الجهاز"</string>
+    <string name="about_settings" product="emulator" msgid="4497482494770487014">"لمحة عن الجهاز في وضع المحاكاة"</string>
     <string name="about_settings_summary" msgid="4506081667462281647">"عرض المعلومات القانونية والحالة وإصدار البرنامج"</string>
     <string name="legal_information" msgid="2374267257615182139">"المعلومات القانونية"</string>
     <string name="contributors_title" msgid="6800028420806884340">"المساهمون"</string>
@@ -1841,7 +1843,7 @@
     <string name="lockpattern_continue_button_text" msgid="3328913552656376892">"متابعة"</string>
     <string name="lockpattern_settings_title" msgid="5152005866870766842">"نقش فتح القفل"</string>
     <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"النقش مطلوب"</string>
-    <string name="lockpattern_settings_enable_summary" msgid="8027605503917737512">"يجب رسم نقش لإلغاء تأمين الشاشة"</string>
+    <string name="lockpattern_settings_enable_summary" msgid="8027605503917737512">"يجب رسم نقش لإلغاء قفل الشاشة"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"جعل النقش مرئيًا"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"إظهار نقش الملف الشخصي"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"اهتزاز عند النقر"</string>
@@ -1959,7 +1961,7 @@
     <string name="move_app_to_internal" product="default" msgid="1031111519418252055">"نقل إلى الهاتف"</string>
     <string name="move_app_to_sdcard" product="nosdcard" msgid="5555917755995563518">"نقل إلى وحدة تخزين USB"</string>
     <string name="move_app_to_sdcard" product="default" msgid="2348845109583354505">"نقل إلى بطاقة SD"</string>
-    <string name="another_migration_already_in_progress" msgid="3159694008286196454">"هناك عملية ترحيل أخرى قيد التقدم حاليًا."</string>
+    <string name="another_migration_already_in_progress" msgid="3159694008286196454">"هناك عملية نقل أخرى قيد التقدم حاليًا."</string>
     <string name="insufficient_storage" msgid="7089626244018569405">"ليست هناك مساحة تخزين كافية."</string>
     <string name="does_not_exist" msgid="4821267479183197109">"التطبيق غير موجود."</string>
     <string name="invalid_location" msgid="8057409982223429673">"موقع التثبيت غير صالح."</string>
@@ -2145,7 +2147,7 @@
     <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="6477234309484795550">"تم تعيين زر إمكانية الوصول لخدمة <xliff:g id="SERVICE">%1$s</xliff:g>. لاستخدام التكبير، المس زر إمكانية الوصول مع الاستمرار ثم اختر التكبير."</string>
     <string name="accessibility_global_gesture_preference_title" msgid="3842279082831426816">"مفتاح الاختصار لمستوى الصوت"</string>
     <string name="accessibility_shortcut_service_title" msgid="3516052294376744060">"خدمة الاختصار"</string>
-    <string name="accessibility_shortcut_service_on_lock_screen_title" msgid="1279441617927949980">"السماح من شاشة التأمين"</string>
+    <string name="accessibility_shortcut_service_on_lock_screen_title" msgid="1279441617927949980">"السماح من شاشة القفل"</string>
     <string name="accessibility_shortcut_description" msgid="1427049334225166395">"عندما يكون مفتاح الاختصار قيد التفعيل، يمكنك الضغط على مفتاحي مستوى الصوت لمدة 3 ثوانٍ لبدء تشغيل إحدى ميزات إمكانية الوصول."</string>
     <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="5652244684961877255">"نص ذو درجة تباين عالية"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="2466317284195934003">"التحديث التلقائي لتكبير الشاشة"</string>
@@ -2395,7 +2397,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"قد تنفد البطارية قبل الوقت المعتاد."</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"تم تفعيل \"ميزة توفير شحن البطارية\"."</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"قد تكون بعض الميزات مقيّدة."</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"الهاتف المستخدَم أكثر من المعتاد"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"مقدار استخدام الهاتف أكثر من المعتاد"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"الجهاز اللوحي المستخدَم أكثر من المعتاد"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"الجهاز المستخدَم أكثر من المعتاد"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"قد تنفد البطارية قبل الوقت المعتاد."</string>
@@ -2425,7 +2427,7 @@
       <item quantity="few">هناك %2$d تطبيقات تستخدم البطارية في الخلفية بدرجة عالية</item>
       <item quantity="many">هناك %2$d تطبيقًا يستخدم البطارية في الخلفية بدرجة عالية</item>
       <item quantity="other">هناك %2$d تطبيق يستخدم البطارية في الخلفية بدرجة عالية</item>
-      <item quantity="one">يستخدم تطبيق %1$s البطارية في الخلفية بدرجة عالية</item>
+      <item quantity="one">هناك تطبيق واحد (%1$s) يستخدم البطارية في الخلفية بدرجة عالية</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="zero">يتعذّر تشغيل هذه التطبيقات في الخلفية.</item>
@@ -2609,7 +2611,7 @@
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"البطارية عند مستوى <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"نسبة شحن البطارية"</string>
     <string name="battery_percentage_description" msgid="9219875229166700610">"عرض نسبة شحن البطارية في شريط الحالة"</string>
-    <string name="process_stats_summary_title" msgid="9189588417488537954">"إحصائيات العمليات"</string>
+    <string name="process_stats_summary_title" msgid="9189588417488537954">"إحصاءات العمليات"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"الإحصائيات التقنية حول العمليات الجارية"</string>
     <string name="app_memory_use" msgid="5126237308545653706">"استخدام الذاكرة"</string>
     <string name="process_stats_total_duration" msgid="4013432468516155868">"تم استخدام <xliff:g id="USEDRAM">%1$s</xliff:g> من إجمالي <xliff:g id="TOTALRAM">%2$s</xliff:g> خلال آخر <xliff:g id="TIMEDURATION">%3$s</xliff:g>"</string>
@@ -2787,7 +2789,7 @@
     <string name="starting_android" msgid="4774187626261253089">"جارٍ تشغيل Android…"</string>
     <string name="delete" msgid="2325292565700865366">"حذف"</string>
     <string name="misc_files" msgid="1012397035001764693">"ملفات متنوعة"</string>
-    <string name="misc_files_selected_count" msgid="1434146080729502726">"تم تحديد <xliff:g id="NUMBER">%1$d</xliff:g> من إجمالي <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
+    <string name="misc_files_selected_count" msgid="1434146080729502726">"تم اختيار <xliff:g id="NUMBER">%1$d</xliff:g> من إجمالي <xliff:g id="TOTAL">%2$d</xliff:g>"</string>
     <string name="misc_files_selected_count_bytes" msgid="3752262902203465861">"<xliff:g id="NUMBER">%1$s</xliff:g> من إجمالي <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
     <string name="select_all" msgid="452240217913675728">"اختيار الكل"</string>
     <string name="data_usage_summary_title" msgid="7288431048564861043">"استخدام البيانات"</string>
@@ -2820,7 +2822,7 @@
     <string name="data_usage_label_foreground" msgid="2471091128648754601">"المقدمة"</string>
     <string name="data_usage_label_background" msgid="1618794447370396845">"الخلفية"</string>
     <string name="data_usage_app_restricted" msgid="7569077654579299326">"مقيَّد"</string>
-    <string name="data_usage_disable_mobile" msgid="4125335076749119451">"هل تريد إيقاف تفعيل بيانات الجوّال؟"</string>
+    <string name="data_usage_disable_mobile" msgid="4125335076749119451">"هل تريد إيقاف بيانات الجوّال؟"</string>
     <string name="data_usage_disable_mobile_limit" msgid="1937796699758613667">"تعيين حد لبيانات الجوال"</string>
     <string name="data_usage_disable_4g_limit" msgid="7131367986548147266">"تعيين حد بيانات لـ 4G"</string>
     <string name="data_usage_disable_3g_limit" msgid="6746819313032692220">"تعيين حد لبيانات 2G-3G"</string>
@@ -3039,7 +3041,7 @@
     <string name="user_cannot_manage_message" product="default" msgid="915260531390608092">"يمكن لمالك الهاتف فقط إدارة المستخدمين."</string>
     <string name="user_cannot_add_accounts_message" msgid="5993561303748749097">"لا يمكن للملفات الشخصية إضافة حسابات"</string>
     <string name="user_remove_user_menu" msgid="3505139157217459864">"حذف <xliff:g id="USER_NAME">%1$s</xliff:g> من هذا الجهاز"</string>
-    <string name="user_lockscreen_settings" msgid="3820813814848394568">"إعدادات شاشة التأمين"</string>
+    <string name="user_lockscreen_settings" msgid="3820813814848394568">"إعدادات شاشة القفل"</string>
     <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"إضافة المستخدمين من شاشة القفل"</string>
     <string name="user_new_user_name" msgid="3880395219777884838">"مستخدم جديد"</string>
     <string name="user_new_profile_name" msgid="3074939718101489937">"ملف شخصي جديد"</string>
@@ -3083,7 +3085,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"إلا إذا كان هناك تطبيق دفع آخر مفتوحًا"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"عند أحد أجهزة انقر وادفع الطرفية، يمكنك الدفع باستخدام:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"الدفع عند الجهاز الطرفي"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"يمكنك إعداد تطبيق للدفع، وبعد ذلك لن يلزمك سوى توصيل الجزء الخلفي من الهاتف بأي جهاز طرفي يحتوي على رمز عدم لمس الجهاز."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"يمكنك إعداد تطبيق للدفع، وبعد ذلك لن يلزمك سوى الإمساك بالجزء الخلفي من الهاتف أعلى جهاز طرفي يحتوي على رمز الدفع بدون تلامس الأجهزة."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"حسنًا"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"المزيد..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"هل تريد تعيينه كتفضيل؟"</string>
@@ -3141,7 +3143,7 @@
     <string name="wizard_finish" msgid="3742102879981212094">"إنهاء"</string>
     <string name="user_image_take_photo" msgid="2000247510236178111">"التقاط صورة"</string>
     <string name="user_image_choose_photo" msgid="4920315415203051898">"اختيار صورة"</string>
-    <string name="user_image_photo_selector" msgid="8429694590849882411">"تحديد صورة"</string>
+    <string name="user_image_photo_selector" msgid="8429694590849882411">"اختيار صورة"</string>
     <string name="regulatory_info_text" msgid="9112993912873512834"></string>
     <string name="sim_setup_wizard_title" msgid="77627575294867180">"بطاقات SIM"</string>
     <string name="sim_settings_title" msgid="8818243954752261922">"بطاقات SIM"</string>
@@ -3149,7 +3151,7 @@
     <string name="sim_cards_changed_message" msgid="1012486903583092731">"تم تغيير بطاقات SIM"</string>
     <string name="sim_cards_changed_message_summary" msgid="5753692480107865077">"انقر لتعيين الأنشطة."</string>
     <string name="sim_cellular_data_unavailable" msgid="1832472508352891641">"بيانات الجوّال غير متاحة"</string>
-    <string name="sim_cellular_data_unavailable_summary" msgid="3093797406601964131">"انقر لتحديد شريحة SIM للبيانات."</string>
+    <string name="sim_cellular_data_unavailable_summary" msgid="3093797406601964131">"انقر لاختيار شريحة SIM للبيانات."</string>
     <string name="sim_calls_always_use" msgid="5322696995795851734">"استخدام هذا للمكالمات دائمًا"</string>
     <string name="select_sim_for_data" msgid="2099705792885526394">"تحديد شريحة SIM للبيانات"</string>
     <string name="select_sim_for_sms" msgid="2481682560233370731">"اختيار شريحة SIM للرسائل القصيرة SMS"</string>
@@ -3269,8 +3271,8 @@
     <string name="keywords_financial_apps_sms_access" msgid="3236014691838121857">"تطبيق مالي، رسائل قصيرة sms، إذن"</string>
     <string name="keywords_systemui_theme" msgid="9150908170417305866">"مظهر مُعتِم"</string>
     <string name="keywords_device_feedback" msgid="6948977907405738490">"خطأ"</string>
-    <string name="keywords_ambient_display_screen" msgid="5873935693887583428">"العرض على الشاشة، عرض شاشة التأمين"</string>
-    <string name="keywords_lock_screen_notif" msgid="4914337222856805463">"إشعار شاشة التأمين، الإشعارات"</string>
+    <string name="keywords_ambient_display_screen" msgid="5873935693887583428">"العرض على الشاشة، عرض شاشة القفل"</string>
+    <string name="keywords_lock_screen_notif" msgid="4914337222856805463">"إشعار شاشة القفل، الإشعارات"</string>
     <string name="keywords_face_settings" msgid="4117345666006836599">"وجه"</string>
     <string name="keywords_fingerprint_settings" msgid="902902368701134163">"بصمة إصبع، إضافة بصمة إصبع"</string>
     <string name="keywords_display_auto_brightness" msgid="1810596220466483996">"تعتيم الشاشة، شاشة تعمل باللمس، بطارية، سطوع ذكي، سطوع ديناميكي"</string>
@@ -3278,10 +3280,10 @@
     <string name="keywords_auto_rotate" msgid="4320791369951647513">"تدوير، قلب، دوران، عمودي، أفقي، اتجاه، رأسي، عرضي"</string>
     <string name="keywords_system_update_settings" msgid="4419971277998986067">"ترقية، android"</string>
     <string name="keywords_zen_mode_settings" msgid="4103819458182535493">"الرجاء عدم الإزعاج، جدول زمني، إشعارات، حظر، صامت، اهتزاز، سكون، عمل، تركيز، صوت، كتم الصوت، يوم، يوم من الأسبوع، عطلة نهاية الأسبوع، ليلة من الأسبوع، حدث"</string>
-    <string name="keywords_screen_timeout" msgid="4328381362313993666">"شاشة، وقت القفل، مهلة، شاشة تأمين"</string>
+    <string name="keywords_screen_timeout" msgid="4328381362313993666">"شاشة، وقت القفل، مهلة، شاشة قفل"</string>
     <string name="keywords_storage_settings" msgid="6422454520424236476">"ذاكرة، تخزين مؤقت، بيانات، حذف، محو، فارغة، مساحة"</string>
     <string name="keywords_bluetooth_settings" msgid="1152229891590622822">"متصل، جهاز، سماعات رأس، سماعة، مكبر صوت، لاسلكي، إقران، سمّاعات أذن، موسيقى، وسائط"</string>
-    <string name="keywords_wallpaper" msgid="7665778626293643625">"خلفية، شاشة، شاشة تأمين، موضوع"</string>
+    <string name="keywords_wallpaper" msgid="7665778626293643625">"خلفية، شاشة، شاشة قفل، موضوع"</string>
     <string name="keywords_assist_input" msgid="8392362788794886564">"تلقائي، مساعد"</string>
     <string name="keywords_default_payment_app" msgid="845369409578423996">"دفع، تلقائي"</string>
     <string name="keywords_ambient_display" msgid="8835182491798487184">"إشعار وارد"</string>
@@ -3493,11 +3495,11 @@
     <string name="swipe_direction_ltr" msgid="944932514821822709">"التمرير سريعًا باتجاه اليسار للتجاهل، وباتجاه اليمين لعرض القائمة"</string>
     <string name="swipe_direction_rtl" msgid="4521416787262888813">"التمرير سريعًا باتجاه اليمين للتجاهل، وباتجاه اليسار لعرض القائمة"</string>
     <string name="notification_pulse_title" msgid="4861418327614907116">"وميض الضوء"</string>
-    <string name="lock_screen_notifications_title" msgid="6889072265118747835">"على شاشة التأمين"</string>
+    <string name="lock_screen_notifications_title" msgid="6889072265118747835">"على شاشة القفل"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"عند قفل الملف الشخصي للعمل"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"عرض محتوى الإشعارات كاملاً"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"إخفاء المحتوى الحساس"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"عدم عرض إشعارات على الإطلاق"</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"عدم عرض الإشعارات على الإطلاق"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"كيف تريد أن يتم عرض الإشعارات عندما يكون الجهاز مقفلاً؟"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"الإشعارات"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"عرض محتوى إشعارات العمل كاملًا"</string>
@@ -3614,7 +3616,7 @@
     <string name="notification_channel_badge_title" msgid="8228215248332054612">"إظهار نقطة الإشعار"</string>
     <string name="app_notification_override_dnd_title" msgid="1757042206738172601">"إلغاء وضع \"عدم الإزعاج\""</string>
     <string name="app_notification_override_dnd_summary" msgid="3152957611171210980">"السماح لهذه الإشعارات بمقاطعتك عندما يكون وضع \"عدم الإزعاج\" مفعلاً"</string>
-    <string name="app_notification_visibility_override_title" msgid="2349335170165637672">"على شاشة التأمين"</string>
+    <string name="app_notification_visibility_override_title" msgid="2349335170165637672">"على شاشة القفل"</string>
     <string name="app_notification_row_banned" msgid="2079325338122151677">"محظور"</string>
     <string name="app_notification_row_priority" msgid="432299064888787236">"الأولوية"</string>
     <string name="app_notification_row_sensitive" msgid="4919671519227722958">"حساس"</string>
@@ -3813,8 +3815,8 @@
     <string name="notifications_disabled" msgid="316658185757688983">"إيقاف"</string>
     <string name="notifications_partly_blocked" msgid="6330451240669068819">"تم إيقاف <xliff:g id="COUNT_0">%1$d</xliff:g> من <xliff:g id="COUNT_1">%2$d</xliff:g> من الفئات"</string>
     <string name="notifications_silenced" msgid="538923056987616372">"تم كتم الصوت"</string>
-    <string name="notifications_redacted" msgid="308836040236690014">"المحتوى الحساس ليس على شاشة التأمين"</string>
-    <string name="notifications_hidden" msgid="3665505522897010205">"ليست على شاشة التأمين"</string>
+    <string name="notifications_redacted" msgid="308836040236690014">"المحتوى الحساس ليس على شاشة القفل"</string>
+    <string name="notifications_hidden" msgid="3665505522897010205">"ليست على شاشة القفل"</string>
     <string name="notifications_priority" msgid="8849045645983017929">"تم تجاوز \"عدم الإزعاج\""</string>
     <string name="notifications_summary_divider" msgid="3148951310482572028">" / "</string>
     <string name="notification_summary_level" msgid="309162160355022027">"المستوى %d"</string>
@@ -3905,7 +3907,7 @@
     <string name="system_default_app" msgid="1454719098589351197">"(الإعداد التلقائي للنظام)"</string>
     <string name="apps_storage" msgid="5658466038269046038">"مساحة تخزين التطبيقات"</string>
     <string name="usage_access" msgid="2023443456361489516">"الوصول إلى بيانات الاستخدام"</string>
-    <string name="permit_usage_access" msgid="3321727608629752758">"السماح بالدخول إلى الاستخدام"</string>
+    <string name="permit_usage_access" msgid="3321727608629752758">"السماح بالوصول إلى بيانات الاستخدام"</string>
     <string name="app_usage_preference" msgid="5691545073101551727">"الإعدادات المفضّلة لاستخدام التطبيقات"</string>
     <string name="time_spent_in_app_pref_title" msgid="2803186835902798451">"وقت الشاشة"</string>
     <string name="usage_access_description" msgid="2178083292760305207">"عند السماح بالوصول إلى بيانات الاستخدام، سيتمكّن التطبيق من تتبع التطبيقات الأخرى التي تستخدمها ومدى تكرار استخدامها وكذلم تتبّع مشغّل شبكة الجوال وإعدادات اللغة بالإضافة إلى تفاصيل أخرى."</string>
@@ -4006,8 +4008,8 @@
     <string name="memory_details" msgid="5165105904103664110">"التفاصيل"</string>
     <string name="memory_use_summary" msgid="7676311343819965850">"متوسط الذاكرة المستخدمة خلال آخر ٣ ساعات: <xliff:g id="SIZE">%1$s</xliff:g>"</string>
     <string name="no_memory_use_summary" msgid="3966550113388917978">"لم يتم استخدام الذاكرة خلال آخر ٣ ساعات"</string>
-    <string name="sort_avg_use" msgid="78428601253054298">"الترتيب بحسب متوسط الاستخدام"</string>
-    <string name="sort_max_use" msgid="322772647893307413">"الترتيب بحسب الاستخدام الأقصى"</string>
+    <string name="sort_avg_use" msgid="78428601253054298">"الترتيب حسب متوسط الاستخدام"</string>
+    <string name="sort_max_use" msgid="322772647893307413">"الترتيب حسب الاستخدام الأقصى"</string>
     <string name="memory_performance" msgid="3506743771947250453">"الأداء"</string>
     <string name="total_memory" msgid="7352192982476976453">"إجمالي الذاكرة"</string>
     <string name="average_used" msgid="3022736210190754669">"متوسط استخدام الذاكرة (%)"</string>
@@ -4328,7 +4330,7 @@
     <string name="button_confirm_convert_fbe" msgid="419832223125147297">"مسح وتحويل"</string>
     <string name="reset_shortcut_manager_throttling" msgid="1912184636360233397">"إعادة ضبط تقييد المعدّل في ShortcutManager"</string>
     <string name="reset_shortcut_manager_throttling_complete" msgid="2932990541160593632">"تمت إعادة ضبط تقييد المعدّل في ShortcutManager."</string>
-    <string name="notification_suggestion_title" msgid="3292107671498148560">"التحكم في المعلومات على شاشة التأمين"</string>
+    <string name="notification_suggestion_title" msgid="3292107671498148560">"التحكم في المعلومات على شاشة القفل"</string>
     <string name="notification_suggestion_summary" msgid="6516827892359614597">"إظهار محتوى الإشعار أو إخفاؤه"</string>
     <string name="page_tab_title_summary" msgid="4824744863994538006">"الكل"</string>
     <string name="page_tab_title_support" msgid="5569262185010367870">"النصائح والدعم"</string>
diff --git a/tests/CarDeveloperOptions/res/values-as/arrays.xml b/tests/CarDeveloperOptions/res/values-as/arrays.xml
index f31c3f4..60b9ba7 100644
--- a/tests/CarDeveloperOptions/res/values-as/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-as/arrays.xml
@@ -29,9 +29,25 @@
     <item msgid="5194868215515664953">"প্ৰশান্ত মহাসাগৰীয়"</item>
     <item msgid="7044520255415007865">"সকলো"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for screen_timeout_entries:5 (5827960506924849753) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"১৫ ছেকেণ্ড"</item>
+    <item msgid="772029947136115322">"৩০ ছেকেণ্ড"</item>
+    <item msgid="8743663928349474087">"১ মিনিট"</item>
+    <item msgid="1506508631223164814">"২ মিনিট"</item>
+    <item msgid="8664703938127907662">"৫ মিনিট"</item>
+    <item msgid="5827960506924849753">"১০ মিনিট"</item>
+    <item msgid="6677424950124253938">"৩০ মিনিট"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"কেতিয়াও নহয়"</item>
+    <item msgid="2517785806387977252">"১৫ ছেকেণ্ড"</item>
+    <item msgid="6347954399441173672">"৩০ ছেকেণ্ড"</item>
+    <item msgid="4858305253279921789">"১ মিনিট"</item>
+    <item msgid="8109273437140044073">"২ মিনিট"</item>
+    <item msgid="2788593551142462622">"৫ মিনিট"</item>
+    <item msgid="8012672183888404961">"১০ মিনিট"</item>
+    <item msgid="8271452751594598661">"৩০ মিনিট"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"তৎক্ষণাৎ"</item>
     <item msgid="2038544972632026612">"৫ ছেকেণ্ড"</item>
@@ -43,17 +59,47 @@
     <item msgid="811192536981678974">"১০ মিনিট"</item>
     <item msgid="7258394417241706272">"৩০ মিনিট"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"সৰু"</item>
+    <item msgid="591935967183159581">"ডিফ’ল্ট"</item>
+    <item msgid="1714184661981538355">"ডাঙৰ"</item>
+    <item msgid="6195563047686707484">"সকলোতকৈ ডাঙৰ"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"স্কেন কৰি থকা হৈছে…"</item>
+    <item msgid="5597394826455877834">"সংযোগ কৰি থকা হৈছে…"</item>
+    <item msgid="5848277343965362748">"বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ কৰি থকা হৈছে…"</item>
+    <item msgid="3391238031431440676">"আইপি ঠিকনা সংগ্ৰহ কৰি থকা হৈছে…"</item>
+    <item msgid="5257597310494000224">"সংযোগ কৰা হ’ল"</item>
+    <item msgid="8472497592913050396">"স্থগিত"</item>
+    <item msgid="1228072488815999109">"সংযোগ বিচ্ছিন্ন কৰি থকা হৈছে…"</item>
+    <item msgid="7253087004422991731">"সংযোগ বিচ্ছিন্ন"</item>
+    <item msgid="4169850917304751227">"অসফল"</item>
+    <item msgid="6266658166690831131">"অৱৰোধিত"</item>
+    <item msgid="4517230805854909775">"কিছুসময়ৰ বাবে দুৰ্বল সংযোগ দেখুওৱা হোৱা নাই"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"স্কেন কৰি থকা হৈছে…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰি থকা হৈছে…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ জৰিয়তে বিশ্বাসযোগ্যতা প্ৰমাণীকৰণ কৰি থকা হৈছে…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ আইপি ঠিকনা পৰা সংগ্ৰহ কৰি থকা হৈছে…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰা হ’ল"</item>
+    <item msgid="6600156231416890902">"স্থগিত"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ৰ পৰা সংযোগ বিচ্ছিন্ন কৰি থকা হৈছে…"</item>
+    <item msgid="3980154971187953257">"সংযোগ বিচ্ছিন্ন"</item>
+    <item msgid="2847316776634969068">"অসফল"</item>
+    <item msgid="4390990424746035383">"অৱৰোধিত"</item>
+    <item msgid="3618248791367063949">"কিছুসময়ৰ বাবে দুৰ্বল সংযোগ দেখুওৱা হোৱা নাই"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"পুশ্ব বুটাম"</item>
+    <item msgid="7401896200768713930">"সংযুক্ত ডিভাইচৰ পৰা পিন"</item>
+    <item msgid="4526848028011846710">"এই ডিভাইচৰ পিন"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"সংযোগ কৰা হ’ল"</item>
     <item msgid="983792611851499732">"নিমন্ত্ৰিত"</item>
@@ -61,7 +107,12 @@
     <item msgid="4646663015449312554">"উপলব্ধ"</item>
     <item msgid="3230556734162006146">"সীমাৰ বাহিৰত"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"২ মিনিট"</item>
+    <item msgid="2759776603549270587">"৫ মিনিট"</item>
+    <item msgid="167772676068860015">"১ ঘণ্টা"</item>
+    <item msgid="5985477119043628504">"কেতিয়াও সময় উকলি নাযায়"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"ছিষ্টেম ডিফ\'ল্ট ব্যৱহাৰ কৰক: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"১"</item>
@@ -70,8 +121,13 @@
     <item msgid="1644506614010085798">"৪"</item>
     <item msgid="3132506679404897150">"৫"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"দুৰ্বল"</item>
+    <item msgid="7882129634982603782">"বেয়া"</item>
+    <item msgid="6457357501905996224">"গ্ৰহণযোগ্য"</item>
+    <item msgid="405271628162918841">"উচ্চ"</item>
+    <item msgid="999948812884919584">"উত্তম"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"যোৱা ৩০ দিন"</item>
     <item msgid="3211287705232736964">"ডেটা ব্যৱহাৰ চক্ৰ..."</item>
@@ -107,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"নিশ্চল"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"নাই"</item>
     <item msgid="1464741437353223198">"মেনুএল"</item>
@@ -124,8 +183,24 @@
     <item msgid="9148582221081416020">"IPv6"</item>
     <item msgid="4094895508821270572">"IPv4/IPv6"</item>
   </string-array>
-    <!-- no translation found for bearer_entries:0 (5231094118929435723) -->
-    <!-- no translation found for bearer_entries:9 (7246853278334311652) -->
+  <string-array name="bearer_entries">
+    <item msgid="5231094118929435723">"অনিৰ্দিষ্ট"</item>
+    <item msgid="2740477081395679090">"এলটিই"</item>
+    <item msgid="1807866878276630064">"HSPAP"</item>
+    <item msgid="7945352669463358624">"HSPA"</item>
+    <item msgid="4152166097223929133">"HSUPA"</item>
+    <item msgid="5134662517319988296">"HSDPA"</item>
+    <item msgid="4997539146036732961">"UMTS"</item>
+    <item msgid="4910169712073083585">"EDGE"</item>
+    <item msgid="3505904588897578792">"জিপিআৰএছ"</item>
+    <item msgid="7246853278334311652">"eHRPD"</item>
+    <item msgid="7037248100126710307">"EVDO_B"</item>
+    <item msgid="3440758673769932256">"EVDO_A"</item>
+    <item msgid="1782525731958596741">"EVDO_0"</item>
+    <item msgid="1819765960790884441">"1xRTT"</item>
+    <item msgid="3148192102183107944">"IS95B"</item>
+    <item msgid="3778273775365258534">"IS95A"</item>
+  </string-array>
   <string-array name="mvno_type_entries">
     <item msgid="6984770764726663331">"নাই"</item>
     <item msgid="1469208769491004112">"SPN"</item>
@@ -144,28 +219,185 @@
     <item msgid="8563996233342430477">"মিডিয়া"</item>
     <item msgid="5323851085993963783">"ডিভাইচ"</item>
   </string-array>
-    <!-- no translation found for app_ops_summaries:46 (4933375960222609935) -->
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
-    <!-- no translation found for app_ops_labels:48 (8291198322681891160) -->
+  <string-array name="app_ops_summaries">
+    <item msgid="2585253854462134715">"আনুমানিক অৱস্থান"</item>
+    <item msgid="1830619568689922920">"সঠিক অৱস্থান"</item>
+    <item msgid="3317274469481923141">"জিপিএছ"</item>
+    <item msgid="8931785990160383356">"কম্পন"</item>
+    <item msgid="8632513128515114092">"সম্পৰ্কসমূহ পঢ়ক"</item>
+    <item msgid="3741042113569620272">"সম্পৰ্কসমূহ সংশোধন কৰক"</item>
+    <item msgid="4204420969709009931">"কলৰ লগ পঢ়ক"</item>
+    <item msgid="2260380357119423209">"কলৰ লগ সংশোধন কৰক"</item>
+    <item msgid="6550710385014530934">"কেলেণ্ডাৰ পঢ়ক"</item>
+    <item msgid="3575906174264853951">"কেলেণ্ডাৰ সাল-সলনি কৰক"</item>
+    <item msgid="4319843242568057174">"ৱাই-ফাই স্কেন"</item>
+    <item msgid="2981791890467303819">"জাননী"</item>
+    <item msgid="6617825156152476692">"চেল স্কেন"</item>
+    <item msgid="8865260890611559753">"ফ\'ন ক\'ল কৰক"</item>
+    <item msgid="3254999273961542982">"এছএমএছ পঢ়ক"</item>
+    <item msgid="7711446453028825171">"এছএমএছ লিখক"</item>
+    <item msgid="6123238544099198034">"SMS পাওক"</item>
+    <item msgid="838342167431596036">"জৰূৰীকালীন এছএমএছ পাওক"</item>
+    <item msgid="8554432731560956686">"এমএমএছ পাওক"</item>
+    <item msgid="7464863464299515059">"WAP পুশ্ব পাওক"</item>
+    <item msgid="310463075729606765">"এছএমএছ পঠিয়াওক"</item>
+    <item msgid="7338021933527689514">"আইচিচি এছএমএছ পঢ়ক"</item>
+    <item msgid="6130369335466613036">"আইচিচি এছএমএছ লিখক"</item>
+    <item msgid="6536865581421670942">"ছেটিংবোৰ সংশোধন কৰক"</item>
+    <item msgid="4547203129183558973">"ওপৰত আঁকক"</item>
+    <item msgid="9080347512916542840">"জাননীত প্ৰৱেশ কৰক"</item>
+    <item msgid="5332718516635907742">"কেমেৰা"</item>
+    <item msgid="6098422447246167852">"ধ্বনি ৰেকৰ্ড কৰক"</item>
+    <item msgid="9182794235292595296">"অডিঅ’ প্লে কৰক"</item>
+    <item msgid="8760743229597702019">"ক্লিপব\'ৰ্ড পঢ়ক"</item>
+    <item msgid="2266923698240538544">"ক্লিপব\'ৰ্ড সংশোধন কৰক"</item>
+    <item msgid="1801619438618539275">"মিডিয়া বুটামসমূহ"</item>
+    <item msgid="31588119965784465">"অডিঅ\' ফ\'কাছ"</item>
+    <item msgid="7565226799008076833">"মাষ্টাৰ ভলিউম"</item>
+    <item msgid="5420704980305018295">"ধ্বনিৰ ভলিউম"</item>
+    <item msgid="5797363115508970204">"ৰিঙৰ ভলিউম"</item>
+    <item msgid="8233154098550715999">"মিডিয়াৰ ভলিউম"</item>
+    <item msgid="5196715605078153950">"এলাৰ্মৰ ভলিউম"</item>
+    <item msgid="394030698764284577">"জাননীৰ ভলিউম"</item>
+    <item msgid="8952898972491680178">"ব্লুটুথ ভলিউম"</item>
+    <item msgid="8506227454543690851">"সক্ৰিয় কৰি ৰাখক"</item>
+    <item msgid="1108160036049727420">"অৱস্থান নিৰীক্ষণ কৰক"</item>
+    <item msgid="1496205959751719491">"উচ্চ ক্ষমতাসম্পন্ন অৱস্থান নিৰীক্ষণ কৰক"</item>
+    <item msgid="3776296279910987380">"ব্যৱহাৰ পৰিসংখ্যা লাভ কৰক"</item>
+    <item msgid="8827100324471975602">"মাইক্ৰ\'ফ\'ন মিউট/আনমিউট কৰক"</item>
+    <item msgid="6880736730520126864">"ট’ষ্ট দেখুৱাওক"</item>
+    <item msgid="4933375960222609935">"মিডিয়া প্ৰ’জেক্ট কৰক"</item>
+    <item msgid="8357907018938895462">"VPN সক্ৰিয় কৰক"</item>
+    <item msgid="8143812849911310973">"ৱালপেপাৰ লিখক"</item>
+    <item msgid="6266277260961066535">"সহায়ৰ গাঁঠনি"</item>
+    <item msgid="7715498149883482300">"সহায়ক স্ক্ৰীণশ্বট"</item>
+    <item msgid="4046679376726313293">"ফ\'নৰ স্থিতি পঢ়ক"</item>
+    <item msgid="6329507266039719587">"ভইচমেইল যোগ কৰক"</item>
+    <item msgid="7692440726415391408">"ছিপ ব্যৱহাৰ কৰক"</item>
+    <item msgid="8572453398128326267">"বৰ্হিগামী কল সম্পাদন কৰক"</item>
+    <item msgid="7775674394089376306">"ফিংগাৰপ্ৰিণ্ট"</item>
+    <item msgid="3182815133441738779">"শৰীৰৰ ছেন্সৰসমূহ"</item>
+    <item msgid="2793100005496829513">"চেল সম্প্ৰচাৰসমূহ পঢ়ক"</item>
+    <item msgid="2633626056029384366">"নকল অৱস্থান"</item>
+    <item msgid="8356842191824684631">"সঞ্চয়াগাৰত পঢ়ক"</item>
+    <item msgid="5671906070163291500">"সঞ্চয়াগাৰত লিখক"</item>
+    <item msgid="2791955098549340418">"স্ক্ৰীণ অন কৰক"</item>
+    <item msgid="5599435119609178367">"একাউণ্টবোৰ বিচাৰক"</item>
+    <item msgid="1165623660533024666">"নেপথ্যত চলাওক"</item>
+    <item msgid="6423861043647911030">"দিব্যাংসকলৰ বাবে থকা সুবিধাসমূহৰ ভলিউম"</item>
+  </string-array>
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"অৱস্থান"</item>
+    <item msgid="6656077694190491067">"অৱস্থান"</item>
+    <item msgid="8790228218278477369">"অৱস্থান"</item>
+    <item msgid="7836406246005211990">"কম্পন"</item>
+    <item msgid="3951439024549922598">"সম্পৰ্কসূচী পঢ়ক"</item>
+    <item msgid="8802152411647068">"সম্পৰ্কসূচী সংশোধন"</item>
+    <item msgid="229544934599698735">"কল লগ পঢ়ক"</item>
+    <item msgid="7396102294405899613">"কল লগ সলনি কৰক"</item>
+    <item msgid="3597797992398484655">"কেলেণ্ডাৰ পঢ়ক"</item>
+    <item msgid="2705975774250907343">"কেলেণ্ডাৰ সংশোধন কৰক"</item>
+    <item msgid="4668747371441932697">"অৱস্থান"</item>
+    <item msgid="1487578921720243646">"প\'ষ্ট জাননী"</item>
+    <item msgid="4636080349724146638">"অৱস্থান"</item>
+    <item msgid="673510900286463926">"ফ\'ন নম্বৰত কল কৰক"</item>
+    <item msgid="542083422784609790">"এছএমএছ/এমএমএছ পঢ়ক"</item>
+    <item msgid="1033780373029588436">"SMS/MMS লিখক"</item>
+    <item msgid="5647111115517787488">"SMS/MMS পাওক"</item>
+    <item msgid="8591105601108455893">"SMS/MMS পাওক"</item>
+    <item msgid="7730995008517841903">"এছএমএছ/এমএমএছ পাওক"</item>
+    <item msgid="2613033109026626086">"এছএমএছ/এমএমএছ পাওক"</item>
+    <item msgid="3037159047591081136">"এছএমএছ/এমএমএছ পঠিয়াওক"</item>
+    <item msgid="4726682243833913568">"এছএমএছ/এমএমএছ পঢ়ক"</item>
+    <item msgid="6555678522277865572">"এছএমএছ/এমএমএছ লিখক"</item>
+    <item msgid="6981734935578130884">"ছেটিংসমূহ সংশোধন কৰক"</item>
+    <item msgid="8705854389991425629">"ওপৰত আঁকক"</item>
+    <item msgid="5861356020344153651">"প্ৰৱেশৰ জাননীসমূহ"</item>
+    <item msgid="78432174621628659">"কেমেৰা"</item>
+    <item msgid="3986116419882154794">"ধ্বনি ৰেকৰ্ড কৰক"</item>
+    <item msgid="4516840825756409490">"অডিঅ\' প্লে কৰক"</item>
+    <item msgid="6811712502798183957">"ক্লিপব\'ৰ্ড পঢ়ক"</item>
+    <item msgid="2780369012602289114">"ক্লিপব\'ৰ্ড সংশোধন কৰক"</item>
+    <item msgid="2331359440170850868">"মিডিয়া বুটাম"</item>
+    <item msgid="6133599737122751231">"অডিঅ\' ফ\'কাছ"</item>
+    <item msgid="6844485713404805301">"মাষ্টাৰ ভলিউম"</item>
+    <item msgid="1600379420669104929">"কণ্ঠস্বৰৰ ভলিউম"</item>
+    <item msgid="6296768210470214866">"ৰিঙৰ ভলিউম"</item>
+    <item msgid="510690696071629241">"মিডিয়াৰ ভলিউম"</item>
+    <item msgid="406861638631430109">"এলাৰ্মৰ ভলিউম"</item>
+    <item msgid="4715864795872233884">"জাননী-ধ্বনিৰ ভলিউম"</item>
+    <item msgid="2311478519251301183">"ব্লুটুথ ভলিউম"</item>
+    <item msgid="5133991377896747027">"জাগ্ৰত কৰি ৰাখক"</item>
+    <item msgid="2464189519136248621">"অৱস্থান"</item>
+    <item msgid="2062677934050803037">"অৱস্থান"</item>
+    <item msgid="1735171933192715957">"ব্যৱহাৰ পৰিসংখ্যা লাভ কৰক"</item>
+    <item msgid="1014093788778383554">"মাইক্ৰ\'ফ\'ন মিউট/আনমিউট কৰক"</item>
+    <item msgid="4199297950608622850">"ট\'ষ্ট দেখুৱাওক"</item>
+    <item msgid="2527962435313398821">"মিডিয়া প্ৰ’জেক্ট কৰক"</item>
+    <item msgid="5117506254221861929">"ভিপিএন সক্ৰিয় কৰক"</item>
+    <item msgid="8291198322681891160">"ৱালপেপাৰ লিখক"</item>
+    <item msgid="7106921284621230961">"সহায়ৰ গাঁথনি"</item>
+    <item msgid="4496533640894624799">"সহায় স্ক্ৰীণশ্বট"</item>
+    <item msgid="2598847264853993611">"ফ\'নৰ স্থিতি পঢ়ক"</item>
+    <item msgid="9215610846802973353">"ভইচমেইল যোগ কৰক"</item>
+    <item msgid="9186411956086478261">"ছিপ ব্যৱহাৰ কৰক"</item>
+    <item msgid="6884763100104539558">"বৰ্হিগামী কল সম্পাদন কৰক"</item>
+    <item msgid="125513972170580692">"ফিংগাৰপ্ৰিণ্ট"</item>
+    <item msgid="2556071024281275619">"শৰীৰৰ ছেন্সৰসমূহ"</item>
+    <item msgid="617168514928339387">"চেল সম্প্ৰচাৰবোৰ পঢ়ক"</item>
+    <item msgid="7134693570516523585">"নকল অৱস্থান"</item>
+    <item msgid="7224489175375229399">"সঞ্চয়াগাৰ পঢ়ক"</item>
+    <item msgid="8472735063903258202">"সঞ্চয়াগাৰত লিখক"</item>
+    <item msgid="4069276819909595110">"স্ক্ৰীণ অন কৰক"</item>
+    <item msgid="1228338896751121025">"একাউণ্টবোৰ বিচাৰক"</item>
+    <item msgid="3181581793459233672">"নেপথ্যত চলাওক"</item>
+    <item msgid="2340936043025374076">"দিব্যাংসকলৰ বাবে থকা সুবিধাসমূহৰ ভলিউম"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"চুটি"</item>
     <item msgid="4816511817309094890">"মধ্যমীয়া"</item>
     <item msgid="8305084671259331134">"দীঘল"</item>
   </string-array>
-    <!-- no translation found for captioning_typeface_selector_titles:4 (1487203730637617924) -->
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (8019330250538856521) -->
+  <string-array name="captioning_typeface_selector_titles">
+    <item msgid="6928465258504250174">"ডিফ’ল্ট"</item>
+    <item msgid="4147246073737933622">"ছানছ-ছেৰিফ"</item>
+    <item msgid="3117680749167407907">"ছানছ-ছেৰিফ ঘনীকৃত"</item>
+    <item msgid="6529379119163117545">"ছান-ছেৰিফ ম\'ন\'স্পেচ"</item>
+    <item msgid="1487203730637617924">"ছেৰিফ"</item>
+    <item msgid="4937790671987480464">"ছেৰিফ ম\'ন\'স্পেচ"</item>
+    <item msgid="4448481989108928248">"অনানুষ্ঠানিক"</item>
+    <item msgid="4627069151979553527">"পকোৱা আখৰ"</item>
+    <item msgid="6896773537705206194">"সৰু বৰফলাৰ আখৰ"</item>
+  </string-array>
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"নিচেই সৰু"</item>
+    <item msgid="5091603983404027034">"সৰু"</item>
+    <item msgid="176844712416932112">"সাধাৰণ"</item>
+    <item msgid="2784236342175159295">"ডাঙৰ"</item>
+    <item msgid="218913203203160606">"অতি ডাঙৰ"</item>
+  </string-array>
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="3865198759294188069">"ডিফ’ল্ট"</item>
+    <item msgid="6488643537808152001">"নাই"</item>
+    <item msgid="552332815156010137">"ৰূপৰেখা"</item>
+    <item msgid="7187891159463789272">"ছাঁযুক্ত আখৰ"</item>
+    <item msgid="8019330250538856521">"উঠঙা"</item>
+    <item msgid="8987385315647049787">"পোটোকা পৰা"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="313003243371588365">"২৫%"</item>
     <item msgid="4665048002584838262">"৫০%"</item>
     <item msgid="1874668269931014581">"৭৫%"</item>
     <item msgid="6462911487571123954">"১০০%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"এপৰ ডিফ\'ল্টসমূহ ব্যৱহাৰ কৰক"</item>
+    <item msgid="8611890312638868524">"ক\'লাৰ ওপৰত বগা"</item>
+    <item msgid="5891360837786277638">"বগা ওপৰত ক’লা"</item>
+    <item msgid="2798457065945456853">"ক\'লাৰ ওপৰত হালধীয়া"</item>
+    <item msgid="5799049811524553967">"নীলাৰ ওপৰত হালধীয়া"</item>
+    <item msgid="3673930830658169860">"কাষ্টম"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"পিপিটিপি ভিপিএন"</item>
     <item msgid="1349760781118368659">"পূৰ্বে ভাগ-বতৰা কৰা কীসমূহৰ সৈতে L2TP/IPSec ভিপিএন"</item>
@@ -174,16 +406,36 @@
     <item msgid="3319427315593649917">"প্ৰমাণপত্ৰ আৰু Xauth বিশ্ৱাসযোগ্যতা প্ৰামাণিকৰণৰ সৈতে IPSec ভিপিএন"</item>
     <item msgid="8258927774145391041">"প্ৰমাণপত্ৰ আৰু হাইব্ৰিড সত্যাপনসহ IPSec ভিপিএন"</item>
   </string-array>
-    <!-- no translation found for vpn_proxy_settings:0 (2958623927055120839) -->
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_proxy_settings">
+    <item msgid="2958623927055120839">"একো নাই"</item>
+    <item msgid="1157046369795346308">"মেনুএল"</item>
+  </string-array>
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"সংযোগ বিচ্ছিন্ন"</item>
+    <item msgid="8754480102834556765">"আৰম্ভ কৰা হৈছে…"</item>
+    <item msgid="3351334355574270250">"সংযোগ কৰি থকা হৈছে…"</item>
+    <item msgid="8303882153995748352">"সংযোগ কৰা হ’ল"</item>
+    <item msgid="9135049670787351881">"সময় উকলিছে"</item>
+    <item msgid="2124868417182583926">"অসফল"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"সোধক"</item>
     <item msgid="7718817231348607934">"কেতিয়াও অনুমতি নিদিব"</item>
     <item msgid="8184570120217958741">"চিৰদিনৰ বাবে অনুমোদন"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"স্বাভাৱিক"</item>
+    <item msgid="5101233285497327432">"মজলীয়া"</item>
+    <item msgid="1555861583162930714">"নিম্ন"</item>
+    <item msgid="1719683776264798117">"জটিল"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"সাধাৰণ"</item>
+    <item msgid="6107138933849816768">"মজলীয়া"</item>
+    <item msgid="182695359839047859">"নিম্ন"</item>
+    <item msgid="8577246509202964244">"জটিল"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"নেৰানেপেৰা"</item>
     <item msgid="167418068739176448">"শীৰ্ষ কাৰ্যকলাপ"</item>
@@ -245,7 +497,31 @@
     <item msgid="8444727359525554695">"কেৱল গৃহ পৃষ্ঠাত"</item>
     <item msgid="1161026694891024702">"স্বয়ংক্ৰিয়"</item>
   </string-array>
-    <!-- no translation found for preferred_network_mode_choices:11 (5713723042183940349) -->
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="1823884522189328861">"GSM/WCDMA অগ্ৰাধিকাৰপ্ৰাপ্ত"</item>
+    <item msgid="7581481130337402578">"কেৱল GSM"</item>
+    <item msgid="8579197487913425819">"কেৱল WCDMA"</item>
+    <item msgid="8465243227505412498">"GSM/WCDMA স্বয়ংক্ৰিয়"</item>
+    <item msgid="9107479914166352132">"CDMA/EvDo স্বয়ংক্ৰিয়"</item>
+    <item msgid="4219607161971472471">"CDMA w/o EvDo"</item>
+    <item msgid="7278975240951052041">"কেৱল EvDo"</item>
+    <item msgid="2295969832276827854">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="9059227943989034424">"CDMA + LTE/EvDo"</item>
+    <item msgid="463168068025354541">"GSM/WCDMA/LTE"</item>
+    <item msgid="1770755308983338311">"গোলকীয়"</item>
+    <item msgid="5713723042183940349">"LTE"</item>
+    <item msgid="8600184258612405670">"LTE / WCDMA"</item>
+    <item msgid="5638632460322750180">"কেৱল TDSCDMA"</item>
+    <item msgid="4346392996298714633">"TDSCDMA/WCDMA"</item>
+    <item msgid="5004811216708487615">"LTE/TDSCDMA"</item>
+    <item msgid="9191730167201068525">"TDSCDMA/GSM"</item>
+    <item msgid="5874623229495009031">"LTE/TDSCDMA/GSM"</item>
+    <item msgid="5096480046347789213">"TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="2075445917638134012">"LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3353351554070857366">"LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="2067289929099567494">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4959483620561891661">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+  </string-array>
   <string-array name="cdma_subscription_choices">
     <item msgid="7691437408632563841">"RUIM/SIM"</item>
     <item msgid="6219184455685527822">"NV"</item>
diff --git a/tests/CarDeveloperOptions/res/values-as/strings.xml b/tests/CarDeveloperOptions/res/values-as/strings.xml
index 83840d7..7e69418 100644
--- a/tests/CarDeveloperOptions/res/values-as/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-as/strings.xml
@@ -1102,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"ৱাই-ফাই"</item>
+    <item msgid="2271962426654621656">"ম’বাইল"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"যদি ৱাই-ফাই উপলব্ধ নহয়, তেন্তে ম’বাইল নেটৱৰ্ক ব্যৱহাৰ কৰক"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"যদি ম’বাইল নেটৱৰ্ক নাথাকে তেন্তে ৱাই-ফাই ব্যৱহাৰ কৰক"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ৱাই-ফাইৰ জৰিয়তে কল কৰক। ৱাই-ফাই সংযোগ হেৰালে কল সমাপ্ত হ’ব।"</string>
@@ -2616,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"এতিয়াই ছিংক কৰিবলৈ টিপক<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"কেলেণ্ডাৰ"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"সম্পৰ্কসমূহ"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google ছিংকলৈ আপোনাক স্বাগতম!"</font>" \nডেটা ছিংক কৰাৰ এইয়া Googleৰ এটা পদক্ষেপ, যাৰদ্বাৰা আপুনি য\'তেই নাথাকক ত\'তে সম্পৰ্কসূচী, সাক্ষাতৰ সময়সূচীকে ধৰি আপোনাৰ বাবে অতি দৰকাৰী তথ্যসমূহ থাওকতে পাব।"</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"এপৰ ছিংক ছেটিংসমূহ"</string>
@@ -4470,7 +4473,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"গোপনীয়তা"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"অনুমতি, একাউণ্টৰ কাৰ্যকলাপ, ব্যক্তিগত ডেটা"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"আঁতৰাওক"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"ৰাখক"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"এই পৰামৰ্শটো আঁতৰাবনে?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"পৰামৰ্শ আঁতৰোৱা হ’ল"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"আনডু কৰক"</string>
diff --git a/tests/CarDeveloperOptions/res/values-az/arrays.xml b/tests/CarDeveloperOptions/res/values-az/arrays.xml
index d6ee9b7..f7de243 100644
--- a/tests/CarDeveloperOptions/res/values-az/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-az/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"arka fonda işləyir"</item>
     <item msgid="6423861043647911030">"əlçatımlılıq dərəcəsi"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Yer"</item>
+    <item msgid="6656077694190491067">"Yer"</item>
+    <item msgid="8790228218278477369">"Yer"</item>
+    <item msgid="7836406246005211990">"Vibrasiya"</item>
+    <item msgid="3951439024549922598">"Kontaktları oxuyun"</item>
+    <item msgid="8802152411647068">"Kontaktları dəyişdirin"</item>
+    <item msgid="229544934599698735">"Zəng jurnalı oxuyun"</item>
+    <item msgid="7396102294405899613">"Zəng jurnalına dəyişiklik edin"</item>
+    <item msgid="3597797992398484655">"Təqvim oxuyun"</item>
+    <item msgid="2705975774250907343">"Təqvimə dəyişiklik edin"</item>
+    <item msgid="4668747371441932697">"Yer"</item>
+    <item msgid="1487578921720243646">"Bildiriş göndərin"</item>
+    <item msgid="4636080349724146638">"Məkan"</item>
+    <item msgid="673510900286463926">"Telefon zəngi"</item>
+    <item msgid="542083422784609790">"SMS/MMS oxuyun"</item>
+    <item msgid="1033780373029588436">"SMS/MMS yazın"</item>
+    <item msgid="5647111115517787488">"SMS/MMS alın"</item>
+    <item msgid="8591105601108455893">"SMS/MMS alın"</item>
+    <item msgid="7730995008517841903">"SMS/MMS alın"</item>
+    <item msgid="2613033109026626086">"SMS/MMS alın"</item>
+    <item msgid="3037159047591081136">"SMS/MMS göndərin"</item>
+    <item msgid="4726682243833913568">"SMS/MMS oxuyun"</item>
+    <item msgid="6555678522277865572">"SMS/MMS yazın"</item>
+    <item msgid="6981734935578130884">"Parametrləri dəyişin"</item>
+    <item msgid="8705854389991425629">"Yuxarıda çəkin"</item>
+    <item msgid="5861356020344153651">"Giriş bildirişi"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Səs yazın"</item>
+    <item msgid="4516840825756409490">"Audio oxudun"</item>
+    <item msgid="6811712502798183957">"Mübadilə buferini oxuyun"</item>
+    <item msgid="2780369012602289114">"Mübadilə buferini dəyişin"</item>
+    <item msgid="2331359440170850868">"Media düymələri"</item>
+    <item msgid="6133599737122751231">"Audio fokus"</item>
+    <item msgid="6844485713404805301">"Master həcmi"</item>
+    <item msgid="1600379420669104929">"Səs həcmi"</item>
+    <item msgid="6296768210470214866">"Zəng həcmi"</item>
+    <item msgid="510690696071629241">"Media həcmi"</item>
+    <item msgid="406861638631430109">"Siqnal səsi həcmi"</item>
+    <item msgid="4715864795872233884">"Bildiriş səsi"</item>
+    <item msgid="2311478519251301183">"Bluetooth həcmi"</item>
+    <item msgid="5133991377896747027">"Oyaq saxla"</item>
+    <item msgid="2464189519136248621">"Məkan"</item>
+    <item msgid="2062677934050803037">"Yer"</item>
+    <item msgid="1735171933192715957">"İstifadə statistikasını əldə edin"</item>
+    <item msgid="1014093788778383554">"Mikrofonu susdurun/susdurmayın"</item>
+    <item msgid="4199297950608622850">"Tostu göstərin"</item>
+    <item msgid="2527962435313398821">"Layihə mediası"</item>
+    <item msgid="5117506254221861929">"VPN aktivləşdirin"</item>
+    <item msgid="8291198322681891160">"Yazı divar kağızı"</item>
+    <item msgid="7106921284621230961">"Köməkçi struktur"</item>
+    <item msgid="4496533640894624799">"Köməkçi skrinşot"</item>
+    <item msgid="2598847264853993611">"Telefon statusunu oxuyun"</item>
+    <item msgid="9215610846802973353">"Səsli məktub əlavə edin"</item>
+    <item msgid="9186411956086478261">"Sip istifadə edin"</item>
+    <item msgid="6884763100104539558">"Gedən zəngi idarə edin"</item>
+    <item msgid="125513972170580692">"Barmaq izi"</item>
+    <item msgid="2556071024281275619">"Bədən sensorları"</item>
+    <item msgid="617168514928339387">"Şəbəkə yayımlarını oxuyun"</item>
+    <item msgid="7134693570516523585">"Sınaq yeri"</item>
+    <item msgid="7224489175375229399">"Yaddaşı oxuyun"</item>
+    <item msgid="8472735063903258202">"Yaddaşı yazın"</item>
+    <item msgid="4069276819909595110">"Ekranı yandırın"</item>
+    <item msgid="1228338896751121025">"Hesabları əldə edin"</item>
+    <item msgid="3181581793459233672">"Arxa fonda işlədin"</item>
+    <item msgid="2340936043025374076">"Əlçatımlılıq dərəcəsi"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Qısa"</item>
     <item msgid="4816511817309094890">"Orta"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Heç vaxt icazə verməyin"</item>
     <item msgid="8184570120217958741">"Həmişə icazə verin"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Orta"</item>
+    <item msgid="1555861583162930714">"Aşağı"</item>
+    <item msgid="1719683776264798117">"Kritik"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Orta"</item>
+    <item msgid="182695359839047859">"Aşağı"</item>
+    <item msgid="8577246509202964244">"Kritik"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Davamlı"</item>
     <item msgid="167418068739176448">"Top fəaliyyət"</item>
diff --git a/tests/CarDeveloperOptions/res/values-az/strings.xml b/tests/CarDeveloperOptions/res/values-az/strings.xml
index e2398a6..f7b6517 100644
--- a/tests/CarDeveloperOptions/res/values-az/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-az/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Ekrandakı mətni kiçildin və ya böyüdün."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Kiçildin"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Böyüdün"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Mətn nümunəsi"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Ozlu Heyrətamiz Sehrbaz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Fəsil 11: Məftunedici Zümrüd Şəhəri Oz"</string>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID daxil edin"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Təhlükəsizlik"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Gizlədilmiş şəbəkə"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Yönləndirici şəbəkə ID-sini yayımlamırsa, lakin ona gələcəkdə qoşulmaq istəyirsinizsə, şəbəkəni gizlədə bilərsiniz.\n\nBu təhlükəsizliyinizi riskə ata bilər çünki telefon şəbəkəni tapmaq üçün daima siqnal yayımlayacaq.\n\nŞəbəkəini gizlətmək yönləndirici ayarlarını dəyişməyəcək."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Yönləndirici şəbəkə ID-sini yayımlamırsa, lakin ona gələcəkdə qoşulmaq istəyirsinizsə, şəbəkəni gizlədə bilərsiniz.\n\nBu təhlükəsizliyinizi riskə ata bilər, çünki telefon şəbəkəni tapmaq üçün daima siqnal yayımlayacaq.\n\nŞəbəkəini gizlətmək yönləndirici ayarlarını dəyişməyəcək."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Siqnal gücü"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Status"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Link sürətini ötürün"</string>
@@ -941,7 +940,7 @@
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"\"<xliff:g id="SSID">%1$s</xliff:g>\" şəbəkəsinə qoşulmaq üçün aşağıdakı QR kodunu kameranın mərkəzinə tutun"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR kodunu skan etməklə Wi‑Fi şəbəkəsinə qoşulun"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi şəbəkəsini paylaşın"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"\"<xliff:g id="SSID">%1$s</xliff:g>\" şəbəkəsinə qoşulmaq və parolu paylaşmaq üçün bu QR kodu skan edin"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"\"<xliff:g id="SSID">%1$s</xliff:g>\" şəbəkəsinə qoşulmaq və parolu paylaşmaq üçün bu QR kodunu skan edin"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"\"<xliff:g id="SSID">%1$s</xliff:g>\" şəbəkəsinə qoşulmaq üçün bu QR kodu skan edin"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR kodunu oxumaq mümkün olmadı. Kodu mərkəzə tutduqdan sonra yenidən cəhd edin"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Yenidən cəhd edin. Problem davam edərsə, cihaz istehsalçısı ilə əlaqə saxlayın"</string>
@@ -1047,7 +1046,7 @@
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"Cihaz axtarışı"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"Axtarır..."</string>
     <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"Cihazı yenidən adlandır"</string>
-    <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"Peer cihazlar"</string>
+    <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"Əlçatımlı cihazlar"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"Qrupları yadda saxla"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"Bağlana bilmədi."</string>
     <string name="wifi_p2p_failed_rename_message" msgid="638656605352538706">"Cihazın adı dəyişə bilmədi."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi əlçatan olmasa, mobil şəbəkədən istifadə edin"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Mobil şəbəkə əlçatan olmasa, Wi‑Fi istifadə edin"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi ilə zəng edin. Wi‑Fi itsə, zəng sonlandırılacaq."</string>
@@ -2279,7 +2281,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Batareya həmişə olduğundan daha tez bitə bilər"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Batareya Qənaəti aktivdir"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Bəzi funksiyalar məhddudlaşdırıla bilər"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefon həddindən çox istifadə etdi"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefon gərəkdiyindən daha çox işlədib"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Planşet hədindən çox istifadə etdi"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Cihaz həddindən çox istifadə etdi"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Batareya həmişə olduğundan daha tez bitə bilər"</string>
@@ -2529,7 +2531,7 @@
     <string name="credentials_reset_summary" msgid="7622528359699428555">"Bütün sertifikatları sil"</string>
     <string name="trusted_credentials" msgid="6989242522455395200">"İnanılmış etimadlar"</string>
     <string name="trusted_credentials_summary" msgid="7411781319056251582">"İnanılmış CA sertifikatları göstər"</string>
-    <string name="user_credentials" msgid="8365731467650306757">"İstifadəçi haqqında məlumatlar"</string>
+    <string name="user_credentials" msgid="8365731467650306757">"İstifadəçi məlumatı"</string>
     <string name="user_credentials_summary" msgid="7350223899317423252">"Saxlanılan məlumatlara baxın və dəyişin"</string>
     <string name="advanced_security_title" msgid="286883005673855845">"Qabaqcıl ayarlar"</string>
     <string name="credential_storage_type" msgid="2585337320206095255">"Saxlama növü"</string>
@@ -3692,7 +3694,7 @@
     <string name="memory_avg_desc" msgid="1200185697910086968">"Orta <xliff:g id="MEMORY">%1$s</xliff:g>"</string>
     <string name="memory_use_running_format" msgid="3741170402563292232">"<xliff:g id="MEMORY">%1$s</xliff:g> / <xliff:g id="RUNNING">%2$s</xliff:g>"</string>
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
-    <string name="high_power_apps" msgid="2518319744362028920">"Batareya optimallaşdırılması"</string>
+    <string name="high_power_apps" msgid="2518319744362028920">"Batareya optimallaşması"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"İstifadə siqnalları"</string>
     <string name="show_all_apps" msgid="5442552004569634846">"Tam cihaz istifadəsini göstərin"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"Tətbiq istifadəsini göstərin"</string>
@@ -3802,7 +3804,7 @@
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"Tətbiqlər"</string>
     <string name="system_alert_window_access_title" msgid="5187343732185369675">"Tətbiqlər üzərindən görüntüləmə"</string>
     <string name="permit_draw_overlay" msgid="9039092257052422344">"Digər tətbiq üzərindən görüntüləmək icazəsi"</string>
-    <string name="allow_overlay_description" msgid="6669524816705082807">"Bu tətbiqə istifadə etdiyiniz digər tətbiqlərin üzərində göstərilmək icazəsi verin. Bu tətbiq həmin tətbiqlərin istifadəsinə müdaxilə edə və ya tətbiqlərin görünüş və davranışını dəyişə bilər."</string>
+    <string name="allow_overlay_description" msgid="6669524816705082807">"Bu tətbiqə işlətdiyiniz digər tətbiqlərin üzərində göstərilmək icazəsi verin. Bu tətbiq həmin tətbiqlərin istifadəsinə müdaxilə edə və ya tətbiqlərin görünüş və davranışını dəyişə bilər."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr virtual reallıq dinləyici stereo köməkçi xidməti"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"digər tətbiqlərin üzərində sistem siqnalının pəncərə dialoq görüntüsü"</string>
     <string name="overlay_settings" msgid="3325154759946433666">"Tətbiqlər üzərindən görüntüləmə"</string>
diff --git a/tests/CarDeveloperOptions/res/values-b+sr+Latn/arrays.xml b/tests/CarDeveloperOptions/res/values-b+sr+Latn/arrays.xml
index b459ed6..5db0763 100644
--- a/tests/CarDeveloperOptions/res/values-b+sr+Latn/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-b+sr+Latn/arrays.xml
@@ -214,7 +214,7 @@
   </string-array>
   <string-array name="app_ops_categories">
     <item msgid="1102693344156734891">"Lokacija"</item>
-    <item msgid="6842381562497597649">"Lični"</item>
+    <item msgid="6842381562497597649">"Lično"</item>
     <item msgid="3966700236695683444">"Razmena poruka"</item>
     <item msgid="8563996233342430477">"Mediji"</item>
     <item msgid="5323851085993963783">"Uređaj"</item>
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"rad u pozadini"</item>
     <item msgid="6423861043647911030">"jačina zvuka za pristupačnost"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokacija"</item>
+    <item msgid="6656077694190491067">"Lokacija"</item>
+    <item msgid="8790228218278477369">"Lokacija"</item>
+    <item msgid="7836406246005211990">"Vibracija"</item>
+    <item msgid="3951439024549922598">"Čitanje kontakata"</item>
+    <item msgid="8802152411647068">"Menjanje kontakata"</item>
+    <item msgid="229544934599698735">"Čitanje evidencije poziva"</item>
+    <item msgid="7396102294405899613">"Menjanje evidencije poziva"</item>
+    <item msgid="3597797992398484655">"Čitanje kalendara"</item>
+    <item msgid="2705975774250907343">"Menjanje kalendara"</item>
+    <item msgid="4668747371441932697">"Lokacija"</item>
+    <item msgid="1487578921720243646">"Postavljanje obaveštenja"</item>
+    <item msgid="4636080349724146638">"Lokacija"</item>
+    <item msgid="673510900286463926">"Pozivanje telefona"</item>
+    <item msgid="542083422784609790">"Čitanje SMS/MMS poruka"</item>
+    <item msgid="1033780373029588436">"Pisanje SMS/MMS poruka"</item>
+    <item msgid="5647111115517787488">"Prijem SMS/MMS poruka"</item>
+    <item msgid="8591105601108455893">"Prijem SMS/MMS poruka"</item>
+    <item msgid="7730995008517841903">"Prijem SMS/MMS poruka"</item>
+    <item msgid="2613033109026626086">"Prijem SMS/MMS poruka"</item>
+    <item msgid="3037159047591081136">"Slanje SMS/MMS poruka"</item>
+    <item msgid="4726682243833913568">"Čitanje SMS/MMS poruka"</item>
+    <item msgid="6555678522277865572">"Pisanje SMS/MMS poruka"</item>
+    <item msgid="6981734935578130884">"Menjanje podešavanja"</item>
+    <item msgid="8705854389991425629">"Povlačenje na vrh"</item>
+    <item msgid="5861356020344153651">"Pristup obaveštenjima"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Snimanje audio zapisa"</item>
+    <item msgid="4516840825756409490">"Puštanje audio zapisa"</item>
+    <item msgid="6811712502798183957">"Čitanje memorije"</item>
+    <item msgid="2780369012602289114">"Menjanje memorije"</item>
+    <item msgid="2331359440170850868">"Dugmad za medije"</item>
+    <item msgid="6133599737122751231">"Audio fokus"</item>
+    <item msgid="6844485713404805301">"Glavna jačina zvuka"</item>
+    <item msgid="1600379420669104929">"Jačina zvuka glasa"</item>
+    <item msgid="6296768210470214866">"Jačina zvuka zvona"</item>
+    <item msgid="510690696071629241">"Jačina zvuka medija"</item>
+    <item msgid="406861638631430109">"Jačina zvuka alarma"</item>
+    <item msgid="4715864795872233884">"Jačina zvuka za obaveštenja"</item>
+    <item msgid="2311478519251301183">"Jačina zvuka Bluetooth-a"</item>
+    <item msgid="5133991377896747027">"Zadrži van stanja spavanja"</item>
+    <item msgid="2464189519136248621">"Lokacija"</item>
+    <item msgid="2062677934050803037">"Lokacija"</item>
+    <item msgid="1735171933192715957">"Preuzmi statistiku o korišćenju"</item>
+    <item msgid="1014093788778383554">"Isključi/uključi zvuk mikrofona"</item>
+    <item msgid="4199297950608622850">"Prikazivanje iskačućih poruka"</item>
+    <item msgid="2527962435313398821">"Mediji za projekat"</item>
+    <item msgid="5117506254221861929">"Aktiviranje VPN-a"</item>
+    <item msgid="8291198322681891160">"Upis na pozadinu"</item>
+    <item msgid="7106921284621230961">"Struktura pomoći"</item>
+    <item msgid="4496533640894624799">"Snimak ekrana pomoći"</item>
+    <item msgid="2598847264853993611">"Čitanje stanja telefona"</item>
+    <item msgid="9215610846802973353">"Dodavanje govorne pošte"</item>
+    <item msgid="9186411956086478261">"Korišćenje SIP-a"</item>
+    <item msgid="6884763100104539558">"Obrada odlaznog poziva"</item>
+    <item msgid="125513972170580692">"Otisak prsta"</item>
+    <item msgid="2556071024281275619">"Senzori za telo"</item>
+    <item msgid="617168514928339387">"Čitanje poruka za mobilne uređaje na lokalitetu"</item>
+    <item msgid="7134693570516523585">"Lažna lokacija"</item>
+    <item msgid="7224489175375229399">"Čitanje memorijskog prostora"</item>
+    <item msgid="8472735063903258202">"Upis podataka u memorijski prostor"</item>
+    <item msgid="4069276819909595110">"Uključivanje ekrana"</item>
+    <item msgid="1228338896751121025">"Pristup nalozima"</item>
+    <item msgid="3181581793459233672">"Rad u pozadini"</item>
+    <item msgid="2340936043025374076">"Jačina zvuka za pristupačnost"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Kratko"</item>
     <item msgid="4816511817309094890">"Srednji"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Nikada ne dozvoli"</item>
     <item msgid="8184570120217958741">"Uvek dozvoli"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normalno"</item>
+    <item msgid="5101233285497327432">"Umereno"</item>
+    <item msgid="1555861583162930714">"Niska"</item>
+    <item msgid="1719683776264798117">"Kritična"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normalna"</item>
+    <item msgid="6107138933849816768">"Umerena"</item>
+    <item msgid="182695359839047859">"Niska"</item>
+    <item msgid="8577246509202964244">"Kritično"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Neprekidna"</item>
     <item msgid="167418068739176448">"Najveća aktivnost"</item>
diff --git a/tests/CarDeveloperOptions/res/values-b+sr+Latn/strings.xml b/tests/CarDeveloperOptions/res/values-b+sr+Latn/strings.xml
index 714da21..ba73640 100644
--- a/tests/CarDeveloperOptions/res/values-b+sr+Latn/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-b+sr+Latn/strings.xml
@@ -84,8 +84,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Omogućava da tekst na ekranu bude manji ili veći."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Umanji"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Uvećaj"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Primer teksta"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Čarobnjak iz Oza"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Poglavlje 11: Čudesni Smaragdni grad Oza"</string>
@@ -507,7 +506,7 @@
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"Uklonite „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Želite li da izbrišete ovaj otisak prsta?"</string>
     <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Nećete moći da otključavate telefon, odobravate kupovine niti da se prijavljujete u aplikacije pomoću otisaka prstiju"</string>
-    <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Nećete moći da otključavate profil za Work, odobravate kupovine niti da se prijavljujete u aplikacije za Work pomoću otisaka prstiju"</string>
+    <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Nećete moći da otključavate poslovni profil, odobravate kupovine niti da se prijavljujete u poslovne aplikacije pomoću otisaka prstiju"</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Da, ukloni"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Šifrovanje"</string>
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"Šifruj tablet"</string>
@@ -549,7 +548,7 @@
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="default" msgid="8114514312665251311"></string>
     <string name="lock_settings_picker_title" msgid="1034741644461982205">"Zaključavanje ekrana"</string>
-    <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Izaberite zaključavanje za Work"</string>
+    <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Izaberite zaključavanje za posao"</string>
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Zaštitite tablet"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Zaštitite uređaj"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Zaštitite telefon"</string>
@@ -564,7 +563,7 @@
     <string name="unlock_set_unlock_launch_picker_title" msgid="2731152716948003853">"Zaključavanje ekrana"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_immediately" msgid="5596186270725220642">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g>/odmah posle spavanja"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="3861167251234952373">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g>/<xliff:g id="TIMEOUT_STRING">%2$s</xliff:g> posle spavanja"</string>
-    <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"Zaključavanje profila za Work"</string>
+    <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"Zaključavanje poslovnog profila"</string>
     <string name="unlock_set_unlock_launch_picker_change_title" msgid="32310692507029407">"Promena zaključ. ekrana"</string>
     <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2072792784866320522">"Menjanje ili onemogućavanje šablona, PIN koda ili bezbednosti lozinke"</string>
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="9070847611379078795">"Izaberite metod zaključavanja ekrana"</string>
@@ -648,12 +647,12 @@
     <string name="lock_last_pattern_attempt_before_wipe_user" msgid="5194192938934564218">"Ako u sledećem pokušaju unesete netačan šablon, izbrisaćemo ovog korisnika"</string>
     <string name="lock_last_pin_attempt_before_wipe_user" msgid="7833852187363499906">"Ako u sledećem pokušaju unesete netačan PIN, izbrisaćemo ovog korisnika"</string>
     <string name="lock_last_password_attempt_before_wipe_user" msgid="8979742220140001204">"Ako u sledećem pokušaju unesete netačnu lozinku, izbrisaćemo ovog korisnika"</string>
-    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Ako u sledećem pokušaju unesete netačan šablon, izbrisaćemo profil za Work i njegove podatke"</string>
-    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Ako u sledećem pokušaju unesete netačan PIN, izbrisaćemo profil za Work i njegove podatke"</string>
-    <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Ako u sledećem pokušaju unesete netačnu lozinku, izbrisaćemo profil za Work i njegove podatke"</string>
+    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Ako u sledećem pokušaju unesete netačan šablon, izbrisaćemo poslovni profil i njegove podatke"</string>
+    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Ako u sledećem pokušaju unesete netačan PIN, izbrisaćemo poslovni profil i njegove podatke"</string>
+    <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Ako u sledećem pokušaju unesete netačnu lozinku, izbrisaćemo poslovni profil i njegove podatke"</string>
     <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Previše netačnih pokušaja. Izbrisaćemo podatke sa ovog uređaja."</string>
     <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"Previše netačnih pokušaja. Izbrisaćemo ovog korisnika."</string>
-    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Previše netačnih pokušaja. Izbrisaćemo ovaj profil za Work i njegove podatke."</string>
+    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Previše netačnih pokušaja. Izbrisaćemo ovaj poslovni profil i njegove podatke."</string>
     <string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="3950582268749037318">"Odbaci"</string>
     <plurals name="lockpassword_password_too_short" formatted="false" msgid="694091983183310827">
       <item quantity="one">Mora da sadrži najmanje <xliff:g id="COUNT_1">%d</xliff:g> znak</item>
@@ -747,7 +746,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Upravljanje vezama, podešavanje naziva i vidljivosti uređaja"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Upariti sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Želite da uparite sa <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Kôd za uparivanje sa Bluetooth uređajem"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Unesite kôd za uparivanje, pa pritisnite Return ili Enter"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"PIN sadrži slova ili simbole"</string>
@@ -945,7 +944,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Automatski"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Opseg od 2,4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Opseg od 5,0 GHz"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Prednost se daje opsegu od 5.0 GHz"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Prednost ima opseg od 5,0 GHz"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Izaberite barem jedan opseg za Wi‑Fi hotspot:"</string>
@@ -963,8 +962,8 @@
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"Čitanje QR koda nije uspelo. Ponovo centrirajte kôd, pa probajte ponovo"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Probajte ponovo. Ako se problem nastavi, kontaktirajte proizvođača uređaja"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"Došlo je do greške"</string>
-    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"Uverite se da je uređaj priključen na izvor napajanja, napunjen i uključen"</string>
-    <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"Uverite se da je uređaj priključen na izvor napajanja, napunjen i uključen. Ako se problem nastavi, kontaktirajte proizvođača uređaja"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"Uverite se da je uređaj priključen na struju, napunjen i uključen"</string>
+    <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"Uverite se da je uređaj priključen na struju, napunjen i uključen. Ako se problem nastavi, kontaktirajte proizvođača uređaja"</string>
     <string name="wifi_dpp_failure_not_supported" msgid="111779621766171626">"Ovaj uređaj ne podržava dodavanje mreže „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"Proverite vezu i probajte ponovo"</string>
     <string name="wifi_dpp_choose_network" msgid="6251424431594491691">"Odaberite mrežu"</string>
@@ -981,7 +980,7 @@
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Potvrdite da ste to vi"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Lozinka za Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Lozinka hotspota: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Dodajte uređaj"</string>
+    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Dodaj uređaj"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Povežite se na ovu mrežu pomoću QR koda"</string>
     <string name="retry" msgid="8500839563577344702">"Probaj ponovo"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"Deli sa drugim korisnicima uređaja"</string>
@@ -1121,7 +1120,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobilni podaci"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ako je Wi‑Fi nedostupan, koristite mobilnu mrežu"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ako mobilna mreža nije dostupna, koristi Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Pozivanje preko Wi-Fi-ja. Ako se Wi‑Fi veza izgubi, poziv će se završiti."</string>
@@ -1435,7 +1437,7 @@
     <string name="storage_menu_set_up" msgid="2849170579745958513">"Podesi"</string>
     <string name="storage_menu_explore" msgid="3733439525636202662">"Istraži"</string>
     <string name="storage_menu_free" msgid="6586253660759145508">"Oslobodite prostor"</string>
-    <string name="storage_menu_manage" msgid="461380717863926516">"Upravljaj skladištenjem"</string>
+    <string name="storage_menu_manage" msgid="461380717863926516">"Upravljaj memorijskim prostorom"</string>
     <string name="storage_title_usb" msgid="2015671467177303099">"USB uređaj je povezan sa računarom"</string>
     <string name="usb_connection_category" msgid="2888975803638116041">"Poveži kao"</string>
     <string name="usb_mtp_title" msgid="6893938968831995500">"Medijski uređaj (MTP)"</string>
@@ -1584,7 +1586,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Mobilni operater ne dozvoljava nazive pristupnih tačaka tipa %s."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Vraćanje podrazumevanih podešavanja naziva pristupne tačke."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Resetuj na podrazumevano"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Ponovno postavljanje podrazumevanih podešavanja naziva pristupne tačke je završeno"</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Ponovno postavljanje podrazumevanih podešavanja naziva pristupne tačke je završeno."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Opcije za resetovanje"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Mreža, aplikacije ili uređaj mogu da se resetuju"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Resetuj Wi-Fi, mobilnu mrežu i Bluetooth"</string>
@@ -1627,17 +1629,17 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"Sačekajte..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"Podešavanja poziva"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Podešavanje glasovne pošte, preusmeravanja poziva, stavljanja poziva na čekanje, ID-a pozivaoca"</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB Internet povezivanje"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB privezivanje"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Prenosni hotspot"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Bluetooth privezivanje"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Povezivanje sa internetom"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Privezivanje"</string>
     <string name="tether_settings_title_all" msgid="6935843543433954181">"Hotspot i privezivanje"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Hotspot je uključen, privezivanje"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Hotspot je uključen"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Privezivanje"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Nije moguće privezivanje niti korišćenje prenosivih hotspotova dok je Ušteda podataka uključena"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB povezivanje"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB privezivanje"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Deljenje internet veze telefona preko USB-a"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Deljenje internet veze tableta preko USB-a"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Bluetooth privezivanje"</string>
@@ -1656,7 +1658,7 @@
     <string name="sms_change_default_no_previous_dialog_text" msgid="4680224695080527907">"Želite li da koristite <xliff:g id="NEW_APP">%s</xliff:g> kao aplikaciju za SMS?"</string>
     <string name="network_scorer_picker_title" msgid="1691073966560952916">"Dobavljač ocene mreže"</string>
     <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Ništa"</string>
-    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Želite da promenite Wi‑Fi assistant-a?"</string>
+    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Želite da promenite Wi‑Fi pomoćnik?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%1$s</xliff:g> umesto aplikacije <xliff:g id="CURRENT_APP">%2$s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Želite li da koristite aplikaciju <xliff:g id="NEW_APP">%s</xliff:g> za upravljanje mrežnim vezama?"</string>
     <string name="mobile_unknown_sim_operator" msgid="872589370085135817">"Nepoznati SIM operater"</string>
@@ -1674,7 +1676,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Nedavni pristup lokaciji"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Prikaži detalje"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Nijedna aplikacija nije skoro tražila lokaciju"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Nijedna aplikacija nije nedavno tražila lokaciju"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Nijedna aplikacija nije nedavno pristupila lokaciji"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Velika potrošnja baterije"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Mala potrošnja baterije"</string>
@@ -1747,15 +1749,15 @@
     <string name="lockpassword_confirm_your_pattern_generic" msgid="6146545393074070916">"Upotrebite šablon za uređaj da biste nastavili"</string>
     <string name="lockpassword_confirm_your_pin_generic" msgid="8732268389177735264">"Unesite PIN uređaja da biste nastavili"</string>
     <string name="lockpassword_confirm_your_password_generic" msgid="6304552647060899594">"Unesite lozinku uređaja da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"Upotrebite šablon za profil za Work da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"Unesite PIN za profil za Work da biste nastavili"</string>
-    <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"Unesite lozinku za profil za Work da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"Upotrebite šablon za poslovni profil da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"Unesite PIN za poslovni profil da biste nastavili"</string>
+    <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"Unesite lozinku za poslovni profil da biste nastavili"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="1014214190135045781">"Radi veće bezbednosti koristite šablon za uređaj"</string>
     <string name="lockpassword_strong_auth_required_device_pin" msgid="24030584350601016">"Radi veće bezbednosti unesite PIN za uređaj"</string>
     <string name="lockpassword_strong_auth_required_device_password" msgid="7746588206458754598">"Radi veće bezbednosti unesite lozinku za uređaj"</string>
-    <string name="lockpassword_strong_auth_required_work_pattern" msgid="6861154706098327320">"Radi veće bezbednosti koristite šablon za Work"</string>
-    <string name="lockpassword_strong_auth_required_work_pin" msgid="6306902249365524526">"Radi veće bezbednosti unesite PIN za Work"</string>
-    <string name="lockpassword_strong_auth_required_work_password" msgid="2917338218971012776">"Radi veće bezbednosti unesite lozinku za Work"</string>
+    <string name="lockpassword_strong_auth_required_work_pattern" msgid="6861154706098327320">"Radi veće bezbednosti koristite šablon za posao"</string>
+    <string name="lockpassword_strong_auth_required_work_pin" msgid="6306902249365524526">"Radi veće bezbednosti unesite poslovni PIN"</string>
+    <string name="lockpassword_strong_auth_required_work_password" msgid="2917338218971012776">"Radi veće bezbednosti unesite poslovnu lozinku"</string>
     <string name="lockpassword_confirm_your_pattern_details_frp" msgid="1085862410379709928">"Telefon je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodni šablon."</string>
     <string name="lockpassword_confirm_your_pin_details_frp" msgid="6849889353126558761">"Telefon je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodni PIN."</string>
     <string name="lockpassword_confirm_your_password_details_frp" msgid="3239944795659418737">"Telefon je resetovan na fabrička podešavanja. Da biste ga koristili, unesite prethodnu lozinku."</string>
@@ -1792,13 +1794,13 @@
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"Kako nacrtati šablon za otključavanje"</string>
     <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="3043127997770535921">"Previše netačnih pokušaja. Probajte ponovo za <xliff:g id="NUMBER">%d</xliff:g> sek."</string>
     <string name="activity_not_found" msgid="3492413375341165453">"Aplikacija nije instalirana na telefonu."</string>
-    <string name="lock_settings_profile_title" msgid="3928992050074556160">"Bezbednost profila za Work"</string>
-    <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Zaključavanje ekrana za profil za Work"</string>
+    <string name="lock_settings_profile_title" msgid="3928992050074556160">"Bezbednost poslovnog profila"</string>
+    <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Zaključavanje ekrana za poslovni profil"</string>
     <string name="lock_settings_profile_unification_title" msgid="2629698644191935287">"Koristi jedno zaključavanje"</string>
-    <string name="lock_settings_profile_unification_summary" msgid="4797188229308317207">"Koristite jedno zaključavanje ekrana za profil za Work i uređaj"</string>
+    <string name="lock_settings_profile_unification_summary" msgid="4797188229308317207">"Koristite jedno zaključavanje ekrana za poslovni profil i uređaj"</string>
     <string name="lock_settings_profile_unification_dialog_title" msgid="1690211342491067179">"Želite li da koristite jedno zaključavanje?"</string>
-    <string name="lock_settings_profile_unification_dialog_body" msgid="8629158560032603101">"Uređaj će koristiti zaključavanje ekrana za Work profil. Smernice za Work će se primenjivati na oba zaključavanja."</string>
-    <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="1217609779267643474">"Zaključavanje ekrana za profil za Work nije u skladu sa bezbednosnim zahtevima vaše organizacije. Možete da koristite isto zaključavanje ekrana za uređaj i profil za Work, ali će se primenjivati sve smernice za zaključavanje ekrana za Work."</string>
+    <string name="lock_settings_profile_unification_dialog_body" msgid="8629158560032603101">"Uređaj će koristiti zaključavanje ekrana za poslovni profil. Smernice za posao će se primenjivati na oba zaključavanja."</string>
+    <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="1217609779267643474">"Zaključavanje ekrana za poslovni profil nije u skladu sa bezbednosnim zahtevima vaše organizacije. Možete da koristite isto zaključavanje ekrana za uređaj i poslovni profil, ali će se primenjivati sve smernice za zaključavanje ekrana za posao."</string>
     <string name="lock_settings_profile_unification_dialog_confirm" msgid="888942752619181804">"Koristi jedno zaključavanje"</string>
     <string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8046452284593057185">"Koristi jedno zaključavanje"</string>
     <string name="lock_settings_profile_unified_summary" msgid="5347244550751740962">"Isto kao zaključavanje ekrana uređaja"</string>
@@ -1992,7 +1994,7 @@
     <string name="show_ime_summary" msgid="3246628154011464373">"Zadrži je na ekranu dok je fizička tastatura aktivna"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"Pomoć za tasterske prečice"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Prikaz dostupnih prečica"</string>
-    <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Tastature i alatke za profil za Work"</string>
+    <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Tastature i alatke za poslovni profil"</string>
     <string name="virtual_keyboards_for_work_title" msgid="3968291646938204523">"Virtuelna tastatura za posao"</string>
     <string name="default_keyboard_layout" msgid="9171704064451242230">"Podrazumevano"</string>
     <string name="pointer_speed" msgid="800691982011350432">"Brzina pokazivača"</string>
@@ -2304,7 +2306,7 @@
     <string name="battery_tip_smart_battery_title" product="tablet" msgid="203494973250969040">"Produžite trajanje baterije tableta"</string>
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Produžite trajanje baterije uređaja"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Uključite menadžer baterije"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Uključi uštedu baterije"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Uključite uštedu baterije"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Baterija može da se isprazni ranije nego obično"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Ušteda baterije je uključena"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Neke funkcije mogu da budu ograničene"</string>
@@ -2599,7 +2601,7 @@
     <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"Želite li da zaustavite pravljenje rezervnih kopija podataka uređaja (poput Wi-Fi lozinki i istorije poziva) i podataka aplikacija (poput podešavanja i datoteka sačuvanih u aplikacijama) i izbrišete sve kopije na udaljenim serverima?"</string>
     <string name="fullbackup_data_summary" msgid="406274198094268556">"Automatski pravite rezervne kopije podataka uređaja (poput Wi-Fi lozinki i istorije poziva) i podataka aplikacija (poput podešavanja i datoteka sačuvanih u aplikacijama) daljinski.\n\nKada uključite automatsko pravljenje rezervnih kopija, podaci uređaja i aplikacija se povremeno čuvaju daljinski. Podaci aplikacija mogu da budu bilo koji podaci koje je aplikacija sačuvala (na osnovu podešavanja programera), uključujući potencijalno osetljive podatke kao što su kontakti, poruke i slike."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"Podešavanja administratora uređaja"</string>
-    <string name="active_device_admin_msg" msgid="6929247869516924549">"Aplikacija za administratore uređaja"</string>
+    <string name="active_device_admin_msg" msgid="6929247869516924549">"Aplikacija za administratora uređaja"</string>
     <string name="remove_device_admin" msgid="4413438593788336400">"Deaktiviraj ovu aplikaciju za administratora uređaja"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"Deinstaliraj aplikaciju"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"Deaktiviraj i deinstaliraj"</string>
@@ -2614,7 +2616,7 @@
     <string name="add_device_admin" msgid="1621152410207260584">"Aktiviraj ovu aplikaciju za administratore uređaja"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Administrator uređaja"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"Aktiviranje ove aplikacije za administratore omogućiće aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> da obavi sledeće operacije:"</string>
-    <string name="device_admin_status" msgid="5424944611789040723">"Ova aplikacija za administratore je aktivna i omogućava aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> da obavi sledeće operacije:"</string>
+    <string name="device_admin_status" msgid="5424944611789040723">"Ova aplikacija za administratora je aktivna i omogućava aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> da obavi sledeće operacije:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Aktivirati Menadžera profila?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Ako nastavite, korisnikom će upravljati administrator, koji će možda moći da čuva i povezane podatke, pored ličnih podataka.\n\nAdministrator može da prati podešavanja, pristup, aplikacije i podatke povezane sa ovim korisnikom, uključujući aktivnosti na mreži i informacije o lokaciji uređaja, kao i da upravlja njima."</string>
     <string name="admin_disabled_other_options" msgid="8097063307730025707">"Administrator je onemogućio druge opcije"</string>
@@ -2632,7 +2634,7 @@
     <string name="sync_is_failing" msgid="8284618104132302644">"Sinhronizacija trenutno ima problema. Uskoro će se vratiti."</string>
     <string name="add_account_label" msgid="4461298847239641874">"Dodaj nalog"</string>
     <string name="managed_profile_not_available_label" msgid="8784246681719821917">"Poslovni profil još uvek nije dostupan"</string>
-    <string name="work_mode_label" msgid="6845849194740195757">"Profil za Work"</string>
+    <string name="work_mode_label" msgid="6845849194740195757">"Poslovni profil"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Ovim upravlja organizacija"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"Aplikacije i obaveštenja su isključeni"</string>
     <string name="remove_managed_profile_label" msgid="4625542553784793536">"Ukloni profil za posao"</string>
@@ -2875,7 +2877,7 @@
       <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> su instalirala autoritete za izdavanje sertifikata na uređaju, što može da im omogući da prate aktivnosti uređaja na mreži, uključujući imejlove, aplikacije i bezbedne veb-sajtove.\n\nKontaktirajte administratora da biste dobili više informacija o ovim sertifikatima.</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message" formatted="false" msgid="8271858091418779584">
-      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> je instalirao autoritete za izdavanje sertifikata za profil za Work, što može da mu omogući da prati aktivnosti na poslovnoj mreži, uključujući imejlove, aplikacije i bezbedne veb-sajtove.\n\nKontaktirajte administratora da biste dobili više informacija o ovim sertifikatima.</item>
+      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> je instalirao autoritete za izdavanje sertifikata za poslovni profil, što može da mu omogući da prati aktivnosti na poslovnoj mreži, uključujući imejlove, aplikacije i bezbedne veb-sajtove.\n\nKontaktirajte administratora da biste dobili više informacija o ovim sertifikatima.</item>
       <item quantity="few"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> su instalirala autoritete za izdavanje sertifikata na uređaju, što može da im omogući da prate aktivnosti uređaja na mreži, uključujući imejlove, aplikacije i bezbedne veb-sajtove.\n\nKontaktirajte administratora da biste dobili više informacija o ovim sertifikatima.</item>
       <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> su instalirala autoritete za izdavanje sertifikata na uređaju, što može da im omogući da prate aktivnosti uređaja na mreži, uključujući imejlove, aplikacije i bezbedne veb-sajtove.\n\nKontaktirajte administratora da biste dobili više informacija o ovim sertifikatima.</item>
     </plurals>
@@ -3132,7 +3134,7 @@
     <string name="keywords_color_temperature" msgid="2255253972992035046">"boja, temperatura, D65, D73, bela, žuta, plava, topla, hladna"</string>
     <string name="keywords_lockscreen" msgid="4936846554280830394">"prevlačenje za otključavanje, lozinka, šablon, PIN"</string>
     <string name="keywords_profile_challenge" msgid="8653718001253979611">"work izazov, work, profil"</string>
-    <string name="keywords_unification" msgid="2020759909366983593">"profil za Work, profil kojim se upravlja, objedini, objedinjavanje, Work, profil"</string>
+    <string name="keywords_unification" msgid="2020759909366983593">"poslovni profil, profil kojim se upravlja, objedini, objedinjavanje, Work, profil"</string>
     <string name="keywords_gesture" msgid="5031323247529869644">"pokreti"</string>
     <string name="keywords_payment_settings" msgid="4745023716567666052">"platite, dodirnite, plaćanja"</string>
     <string name="keywords_backup" msgid="7433356270034921627">"rezervna kopija, praviti rezervnu kopiju"</string>
@@ -3253,10 +3255,10 @@
     <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"Kada je ekran isključen"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"Isključi zvuk i vibraciju"</string>
     <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"Ne uključuj ekran"</string>
-    <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Ne koristi treperenje lampice"</string>
+    <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Ne treperi lampicom"</string>
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Ne prikazuj iskačuća obaveštenja na ekranu"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Sakrij ikone statusne trake u vrhu"</string>
-    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Sakrij tačke za obav. na ikonama apl."</string>
+    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Sakrij tačke za obaveštenja na ikonama aplikacija"</string>
     <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Ne budi zbog obaveštenja"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"Ne prikazuj na listi obaveštenja"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"Nikad"</string>
@@ -3314,7 +3316,7 @@
     <string name="zen_custom_settings_notifications_header" msgid="7469592764589354302">"Obaveštenja"</string>
     <string name="zen_custom_settings_duration_header" msgid="1806465684026300942">"Trajanje"</string>
     <string name="zen_msg_event_reminder_title" msgid="8685224436389816905">"Poruke, događaji i podsetnici"</string>
-    <string name="zen_msg_event_reminder_footer" msgid="164400918479831580">"Kada je uključen režim Ne uznemiravaj, zvukovi obaveštenja za poruke, podsetnike i događaje će biti isključeni, osim za stavke koje ste dozvolili iznad. Možete da prilagodite podešavanja da biste dozvolili prijateljima, članovima porodice ili drugim kontaktima da vas kontaktiraju."</string>
+    <string name="zen_msg_event_reminder_footer" msgid="164400918479831580">"Kada je uključen režim Ne uznemiravaj, zvukovi obaveštenja za poruke, podsetnike i događaje će biti isključeni, osim za stavke koje ste dozvolili iznad. Možete da prilagodite podešavanja i dozvolite prijateljima, članovima porodice ili drugim kontaktima da dopru do vas."</string>
     <string name="zen_onboarding_ok" msgid="6403635918125323678">"Gotovo"</string>
     <string name="zen_onboarding_settings" msgid="1416466597876383322">"Podešavanja"</string>
     <string name="zen_onboarding_new_setting_title" msgid="3622673375041304362">"Bez zvučnog signala ili vizuelnog obaveštenja"</string>
@@ -3322,16 +3324,16 @@
     <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"Nećete videti niti čuti obaveštenja. Pozivi od kontakata sa zvezdicom i ponovnih pozivalaca su dozvoljeni."</string>
     <string name="zen_onboarding_current_setting_summary" msgid="3569246708507270821">"(trenutno podešavanje)"</string>
     <string name="zen_onboarding_dnd_visual_disturbances_header" msgid="7584229011611927613">"Želite li da promenite podešavanja obaveštenja za režim Ne uznemiravaj?"</string>
-    <string name="sound_work_settings" msgid="4140215240360927923">"Zvuci za profil za Work"</string>
+    <string name="sound_work_settings" msgid="4140215240360927923">"Zvuci za poslovni profil"</string>
     <string name="work_use_personal_sounds_title" msgid="531727195073003599">"Koristi zvuke ličnog profila"</string>
-    <string name="work_use_personal_sounds_summary" msgid="2886871383995187441">"Zvukovi profila za Work su isti kao i zvukovi za lične profile"</string>
-    <string name="work_ringtone_title" msgid="5499360583947410224">"Melodija zvona za telefon za Work"</string>
+    <string name="work_use_personal_sounds_summary" msgid="2886871383995187441">"Zvukovi poslovnog profila su isti kao i zvukovi za lične profile"</string>
+    <string name="work_ringtone_title" msgid="5499360583947410224">"Melodija zvona poslovnog telefona"</string>
     <string name="work_notification_ringtone_title" msgid="8059159087214025757">"Podrazumevani zvuk obaveštenja za posao"</string>
     <string name="work_alarm_ringtone_title" msgid="5328487181385375130">"Podrazumevani zvuk alarma za posao"</string>
     <string name="work_sound_same_as_personal" msgid="7728560881697159758">"Isto kao i za lični profil"</string>
     <string name="work_sync_dialog_title" msgid="4799120971202956837">"Želite li da zamenite zvukove?"</string>
     <string name="work_sync_dialog_yes" msgid="2110726233746476066">"Zameni"</string>
-    <string name="work_sync_dialog_message" msgid="944233463059129156">"Zvuci sa ličnog profila će se koristiti za profil za Work"</string>
+    <string name="work_sync_dialog_message" msgid="944233463059129156">"Zvuci sa ličnog profila će se koristiti za poslovni profil"</string>
     <string name="ringtones_install_custom_sound_title" msgid="210551218424553671">"Dodati prilagođeni zvuk?"</string>
     <string name="ringtones_install_custom_sound_content" msgid="6683649115132255452">"Ova datoteka će biti kopirana u direktorijum <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
     <string name="ringtones_category_preference_title" msgid="4491932700769815470">"Melodije zvona"</string>
@@ -3340,7 +3342,7 @@
     <string name="recent_notifications" msgid="8125865995065032049">"Nedavno poslato"</string>
     <string name="recent_notifications_see_all_title" msgid="4089007770442871469">"Pogledajte sve iz poslednjih 7 dana"</string>
     <string name="advanced_section_header" msgid="984680389373090015">"Napredna"</string>
-    <string name="profile_section_header" msgid="5471479005472037417">"Obaveštenja za Work"</string>
+    <string name="profile_section_header" msgid="5471479005472037417">"Poslovna obaveštenja"</string>
     <string name="asst_capability_prioritizer_title" msgid="3488284760645922160">"Automatsko davanje prioriteta za obaveštenja"</string>
     <string name="asst_capability_prioritizer_summary" msgid="3525640645743790796">"Automatski isključuje zvuk i postavlja na dno manje važna obaveštenja"</string>
     <string name="asst_capabilities_actions_replies_title" msgid="3929395108744251338">"Pametne radnje i odgovori"</string>
@@ -3362,14 +3364,14 @@
     <string name="swipe_direction_rtl" msgid="4521416787262888813">"Prevucite ulevo da biste odbacili, udesno da bi se prikazao meni"</string>
     <string name="notification_pulse_title" msgid="4861418327614907116">"Uključi treperenje lampice"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Na zaključanom ekranu"</string>
-    <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Kada je profil za Work zaključan"</string>
+    <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Kada je poslovni profil zaključan"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Prikaži sav sadržaj obaveštenja"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Sakrij osetljiv sadržaj"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Ne prikazuj nikakva obaveštenja"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Kada je uređaj zaključan, kako želite da se obaveštenja prikazuju?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"Obaveštenja"</string>
-    <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Prikazuj sav sadržaj obaveštenja o profilu za Work"</string>
-    <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Sakrij osetljiv sadržaj profila za Work"</string>
+    <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Prikazuj sav sadržaj obaveštenja o poslovnom profilu"</string>
+    <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Sakrij osetljiv sadržaj poslovnog profila"</string>
     <string name="lock_screen_notifications_interstitial_message_profile" msgid="3324187664458600354">"Kada je uređaj zaključan, kako želite da se prikazuju obaveštenja o profilu?"</string>
     <string name="lock_screen_notifications_interstitial_title_profile" msgid="4043621508889929254">"Obaveštenja o profilu"</string>
     <string name="notifications_title" msgid="8334011924253810654">"Obaveštenja"</string>
@@ -3403,7 +3405,7 @@
     <string name="notifications_sent_weekly" msgid="5859675428990259432">"~<xliff:g id="NUMBER">%1$s</xliff:g> nedeljno"</string>
     <string name="notifications_sent_never" msgid="237997329598144638">"Nikad"</string>
     <string name="manage_notification_access_title" msgid="5348743662189787547">"Pristup obaveštenjima"</string>
-    <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Pristup obaveštenjima profila za Work je blokiran"</string>
+    <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Pristup obaveštenjima poslovnog profila je blokiran"</string>
     <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"Aplikacije ne mogu da čitaju obaveštenja"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="8496218948429646792">
       <item quantity="one">%d aplikacija može da čita obaveštenja</item>
@@ -3526,7 +3528,7 @@
     <string name="zen_mode_calls" msgid="1844534357711539325">"Dozvoli pozive"</string>
     <string name="zen_mode_calls_title" msgid="2024387562355793661">"Pozivi"</string>
     <string name="zen_mode_calls_footer" msgid="6319824006810688433">"Da biste bili sigurni da će se dozvoljeni pozivi čuti, proverite da li je uređaj podešen da zvoni, vibrira ili je u nečujnom režimu."</string>
-    <string name="zen_mode_custom_calls_footer" msgid="7329231648477682337">"Dolazni pozivi su blokirani za „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Možete da prilagodite podešavanja da biste dozvolili prijateljima, članovima porodice ili drugim kontaktima da vas kontaktiraju."</string>
+    <string name="zen_mode_custom_calls_footer" msgid="7329231648477682337">"Dolazni pozivi su blokirani za „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Možete da prilagodite podešavanja i dozvolite prijateljima, članovima porodice ili drugim kontaktima da dopru do vas."</string>
     <string name="zen_mode_starred_contacts_title" msgid="7099621384597127058">"Kontakti sa zvezdicom"</string>
     <plurals name="zen_mode_starred_contacts_summary_additional_contacts" formatted="false" msgid="1904181007981570805">
       <item quantity="one">Još <xliff:g id="NUM_PEOPLE">%d</xliff:g> osoba</item>
@@ -3535,7 +3537,7 @@
     </plurals>
     <string name="zen_mode_messages" msgid="2908722562188394107">"Dozvoli poruke"</string>
     <string name="zen_mode_messages_footer" msgid="5048951937714668561">"Da biste bili sigurni da će se dozvoljene poruke čuti, proverite da li je uređaj podešen da zvoni, vibrira ili je u nečujnom režimu."</string>
-    <string name="zen_mode_custom_messages_footer" msgid="5566007423100361691">"Dolazne poruke su blokirane za „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Možete da prilagodite podešavanja da biste dozvolili prijateljima, članovima porodice ili drugim kontaktima da vas kontaktiraju."</string>
+    <string name="zen_mode_custom_messages_footer" msgid="5566007423100361691">"Dolazne poruke su blokirane za „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Možete da prilagodite podešavanja i dozvolite prijateljima, članovima porodice ili drugim kontaktima da dopru do vas."</string>
     <string name="zen_mode_messages_title" msgid="786261471294055181">"SMS, MMS i aplikacije za razmenu poruka"</string>
     <string name="zen_mode_from_anyone" msgid="7778836826814131083">"Od bilo koga"</string>
     <string name="zen_mode_from_contacts" msgid="267034158294332688">"Samo od kontakata"</string>
@@ -3543,7 +3545,7 @@
     <string name="zen_calls_summary_starred_repeat" msgid="9191394641577678207">"Od kontakata sa zvezdicom i ponovnih pozivalaca"</string>
     <string name="zen_calls_summary_contacts_repeat" msgid="7747592096431111510">"Od kontakata i ponovnih pozivalaca"</string>
     <string name="zen_calls_summary_repeat_only" msgid="8839703337232747964">"Samo od ponovnih pozivalaca"</string>
-    <string name="zen_mode_from_none" msgid="7683889985618637010">"Ni od koga"</string>
+    <string name="zen_mode_from_none" msgid="7683889985618637010">"Niko"</string>
     <string name="zen_mode_from_none_calls" msgid="2967739140346917546">"Ne dozvoli pozive"</string>
     <string name="zen_mode_from_none_messages" msgid="9069143820057833634">"Ne dozvoljavaj nikakve poruke"</string>
     <string name="zen_mode_alarms" msgid="5528707742250954290">"Dozvoli alarme"</string>
@@ -3610,7 +3612,7 @@
     <string name="screen_pinning_unlock_pin" msgid="1441705536015645023">"Traži PIN pre otkačinjanja"</string>
     <string name="screen_pinning_unlock_password" msgid="1017776884000170841">"Traži lozinku pre otkačinjanja"</string>
     <string name="screen_pinning_unlock_none" msgid="9183040569733226911">"Zaključaj uređaj pre otkačinjanja"</string>
-    <string name="opening_paragraph_delete_profile_unknown_company" msgid="2350380017136403670">"Ovim profilom za Work upravlja:"</string>
+    <string name="opening_paragraph_delete_profile_unknown_company" msgid="2350380017136403670">"Ovim poslovnim profilom upravlja:"</string>
     <string name="managing_admin" msgid="3212584016377581608">"Upravlja <xliff:g id="ADMIN_APP_LABEL">%s</xliff:g>"</string>
     <string name="experimental_preference" msgid="5903223408406906322">"(Eksperimentalno)"</string>
     <string name="encryption_interstitial_header" msgid="3298397268731647519">"Bezbedno pokretanje"</string>
@@ -3768,8 +3770,8 @@
     <string name="high_power_off" msgid="5906679734326490426">"Optimizacija korišćenja baterije"</string>
     <string name="high_power_system" msgid="739584574711292753">"Optimizacija baterije nije dostupna"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Ne primenjujte optimizaciju baterije. Može brže da isprazni bateriju."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Želite li da dozvolite da aplikacija uvek bude aktivna u pozadini?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Ako dozvolite da aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> uvek bude aktivna u pozadini, to može da smanji trajanje baterije. \n\nKasnije možete to da promenite u odeljku Podešavanja &gt; Aplikacije i obaveštenja."</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Dozvoljavate da aplikacija uvek bude aktivna u pozadini?"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Ako dozvolite da aplikacija <xliff:g id="APP_NAME">%1$s</xliff:g> uvek bude aktivna u pozadini, to može da skrati trajanje baterije. \n\nKasnije možete to da promenite u odeljku Podešavanja &gt; Aplikacije i obaveštenja."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Potrošeno je <xliff:g id="PERCENTAGE">%1$s</xliff:g> od poslednjeg potpunog punjenja"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Upravljanje napajanjem"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Baterija nije korišćena od poslednjeg potpunog punjenja"</string>
@@ -3855,7 +3857,7 @@
     <string name="ignore_optimizations_off_desc" msgid="5598702251817814289">"Preporučeno za duže trajanje baterije"</string>
     <string name="ignore_optimizations_title" msgid="7924345545276166305">"Želite li da dozvolite aplikaciji <xliff:g id="APP">%s</xliff:g> da ignoriše optimizacije baterije?"</string>
     <string name="app_list_preference_none" msgid="7100409177446935028">"Ništa"</string>
-    <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Isključivanje pristupa korišćenju za ovu aplikaciju ne sprečava administratora da prati potrošnju podataka za aplikacije na profilu za Work"</string>
+    <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Isključivanje pristupa korišćenju za ovu aplikaciju ne sprečava administratora da prati potrošnju podataka za aplikacije na poslovnom profilu"</string>
     <string name="accessibility_lock_screen_progress" msgid="8242917828598820049">"Upotrebljeni znakovi: <xliff:g id="COUNT_0">%1$d</xliff:g> od <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="draw_overlay" msgid="2878665072530660668">"Prikaz preko drugih aplikacija"</string>
     <string name="system_alert_window_settings" msgid="3024330223417646567">"Prikaz preko drugih aplikacija"</string>
@@ -3939,7 +3941,7 @@
     <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"Ne možete da otvorite ovu aplikaciju"</string>
     <string name="default_admin_support_msg" msgid="5789424433689798637">"Ako imate pitanja, obratite se IT administratoru"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"Još detalja"</string>
-    <string name="admin_profile_owner_message" msgid="3199544166281052845">"Administrator može da nadgleda aplikacije i podatke povezane sa profilom za Work, uključujući podešavanja, dozvole, korporativni pristup, aktivnosti na mreži i informacije o lokaciji uređaja, kao i da upravlja njima."</string>
+    <string name="admin_profile_owner_message" msgid="3199544166281052845">"Administrator može da nadgleda aplikacije i podatke povezane sa poslovnim profilom, uključujući podešavanja, dozvole, korporativni pristup, aktivnosti na mreži i informacije o lokaciji uređaja, kao i da upravlja njima."</string>
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"Administrator može da nadgleda aplikacije i podatke povezane sa ovim korisnikom, uključujući podešavanja, dozvole, korporativni pristup, aktivnosti na mreži i informacije o lokaciji uređaja, kao i da upravlja njima."</string>
     <string name="admin_device_owner_message" msgid="1823477572459610869">"Administrator može da prati aplikacije i podatke povezane sa ovim uređajem, uključujući podešavanja, dozvole, korporativni pristup, aktivnosti na mreži i informacije o lokaciji uređaja, kao i da upravlja njima."</string>
     <string name="condition_turn_off" msgid="4395150881365143558">"Isključi"</string>
@@ -3958,7 +3960,7 @@
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Internet je dostupan samo preko Wi‑Fi mreže"</string>
     <string name="condition_bg_data_title" msgid="184684435298857712">"Ušteda podataka"</string>
     <string name="condition_bg_data_summary" msgid="5194942860807136682">"Funkcije su ograničene"</string>
-    <string name="condition_work_title" msgid="9046811302347490371">"Profil za Work je isključen"</string>
+    <string name="condition_work_title" msgid="9046811302347490371">"Poslovni profil je isključen"</string>
     <string name="condition_work_summary" msgid="5586134491975748565">"Za aplikacije i obaveštenja"</string>
     <string name="condition_device_muted_action_turn_on_sound" msgid="5849285946804815263">"Uključi zvuk"</string>
     <string name="condition_device_muted_title" msgid="3930542786434609976">"Zvuk zvona je isključen"</string>
@@ -4017,7 +4019,7 @@
     </plurals>
     <string name="operator_warning" msgid="4676042739221117031">"Obračun podataka kod mobilnog operatera se možda razlikuje od obračuna uređaja."</string>
     <string name="data_used_template" msgid="761605393453849477">"Potrošili ste <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="set_data_warning" msgid="8115980184415563941">"Podešavanje upozorenja o podacima"</string>
+    <string name="set_data_warning" msgid="8115980184415563941">"Podesi upozorenje o podacima"</string>
     <string name="data_warning" msgid="2699207195535036240">"Upozorenje za potrošnju podataka"</string>
     <string name="data_warning_footnote" msgid="965724845580257305">"Upozorenje za potrošnju podataka i ograničenje potrošnje podataka aktivira merenje uređaja. To može da se razlikuje od merenja mobilnog operatera."</string>
     <string name="set_data_limit" msgid="5043770023229990674">"Podesi ograničenje za podatke"</string>
@@ -4267,11 +4269,11 @@
     <string name="enterprise_privacy_input_method_name" msgid="439610095825218563">"Podešeno je na <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
     <string name="enterprise_privacy_always_on_vpn_device" msgid="2022700916516458213">"Stalno uključen VPN je uključen"</string>
     <string name="enterprise_privacy_always_on_vpn_personal" msgid="5644065780843002044">"Stalno uključen VPN je uključen na ličnom profilu"</string>
-    <string name="enterprise_privacy_always_on_vpn_work" msgid="6443089897985373564">"Stalno uključen VPN je uključen na profilu za Work"</string>
+    <string name="enterprise_privacy_always_on_vpn_work" msgid="6443089897985373564">"Stalno uključen VPN je uključen na poslovnom profilu"</string>
     <string name="enterprise_privacy_global_http_proxy" msgid="3862135895716080830">"Globalni HTTP proksi je podešen"</string>
     <string name="enterprise_privacy_ca_certs_device" msgid="7715658848470643878">"Pouzdani akreditivi"</string>
     <string name="enterprise_privacy_ca_certs_personal" msgid="1356447417193483802">"Pouzdani akreditivi na ličnom profilu"</string>
-    <string name="enterprise_privacy_ca_certs_work" msgid="836419648894546893">"Pouzdani akreditivi na profilu za Work"</string>
+    <string name="enterprise_privacy_ca_certs_work" msgid="836419648894546893">"Pouzdani akreditivi na poslovnom profilu"</string>
     <plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="7953528945502561752">
       <item quantity="one">Najmanje <xliff:g id="COUNT_1">%d</xliff:g> CA sertifikat</item>
       <item quantity="few">Najmanje <xliff:g id="COUNT_1">%d</xliff:g> CA sertifikata</item>
@@ -4280,7 +4282,7 @@
     <string name="enterprise_privacy_lock_device" msgid="1533125067038409945">"Administrator može da zaključava uređaj i resetuje lozinku"</string>
     <string name="enterprise_privacy_wipe_device" msgid="7555287990273929922">"Administrator može da briše sve podatke sa uređaja"</string>
     <string name="enterprise_privacy_failed_password_wipe_device" msgid="4101502079202483156">"Neuspeli pokušaji unosa lozinke pre brisanja svih podataka sa uređaja"</string>
-    <string name="enterprise_privacy_failed_password_wipe_work" msgid="2881646286634693392">"Neuspeli pokušaji unosa lozinke pre brisanja podataka sa profila za Work"</string>
+    <string name="enterprise_privacy_failed_password_wipe_work" msgid="2881646286634693392">"Neuspeli pokušaji unosa lozinke pre brisanja podataka sa poslovnog profila"</string>
     <plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="562550414712223382">
       <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> pokušaj</item>
       <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> pokušaja</item>
@@ -4554,7 +4556,7 @@
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Želite li da uklonite ovaj predlog?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Predlog je uklonjen"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Opozovi"</string>
-    <string name="low_storage_summary" msgid="4562224870189133400">"Preostalo je malo slobodnog memorijskog prostora. <xliff:g id="PERCENTAGE">%1$s</xliff:g> je iskorišćeno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> je slobodno"</string>
+    <string name="low_storage_summary" msgid="4562224870189133400">"Nema mnogo prostora. <xliff:g id="PERCENTAGE">%1$s</xliff:g> je iskorišćeno – <xliff:g id="FREE_SPACE">%2$s</xliff:g> je slobodno"</string>
     <string name="contextual_card_feedback_send" msgid="8698649023854350623">"Pošaljite povratne informacije"</string>
     <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"Želite li da nam pošaljete povratne informacije za ovaj predlog?"</string>
     <string name="copyable_slice_toast" msgid="1357518174923789947">"Kopirano je u privremenu memoriju: <xliff:g id="COPY_CONTENT">%1$s</xliff:g>"</string>
diff --git a/tests/CarDeveloperOptions/res/values-be/arrays.xml b/tests/CarDeveloperOptions/res/values-be/arrays.xml
index c8aaf44..d08aa63 100644
--- a/tests/CarDeveloperOptions/res/values-be/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-be/arrays.xml
@@ -29,7 +29,15 @@
     <item msgid="5194868215515664953">"Ціхі акіян"</item>
     <item msgid="7044520255415007865">"Усе"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 секунд"</item>
+    <item msgid="772029947136115322">"30 секунд"</item>
+    <item msgid="8743663928349474087">"1 хвіліна"</item>
+    <item msgid="1506508631223164814">"2 хвіліны"</item>
+    <item msgid="8664703938127907662">"5 хвілін"</item>
+    <item msgid="5827960506924849753">"10 хвілін"</item>
+    <item msgid="6677424950124253938">"30 хвілін"</item>
+  </string-array>
   <string-array name="dream_timeout_entries">
     <item msgid="6487043225269853023">"Ніколі"</item>
     <item msgid="2517785806387977252">"15 секунд"</item>
@@ -99,7 +107,12 @@
     <item msgid="4646663015449312554">"Даступна"</item>
     <item msgid="3230556734162006146">"Выхад за дазволеныя межы"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 хвіліны"</item>
+    <item msgid="2759776603549270587">"5 хвілін"</item>
+    <item msgid="167772676068860015">"1 гадзіна"</item>
+    <item msgid="5985477119043628504">"Ніколі не ўключаць тайм-аўт"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"Выкарыстоўваць стандартныя налады сістэмы: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -206,15 +219,156 @@
     <item msgid="8563996233342430477">"Медыя"</item>
     <item msgid="5323851085993963783">"Прылада"</item>
   </string-array>
-    <!-- no translation found for app_ops_summaries:46 (4933375960222609935) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
-    <!-- no translation found for app_ops_labels:48 (8291198322681891160) -->
+  <string-array name="app_ops_summaries">
+    <item msgid="2585253854462134715">"прыблiзнае месцазнаходжанне"</item>
+    <item msgid="1830619568689922920">"дакладнае месцазнаходжанне"</item>
+    <item msgid="3317274469481923141">"GPS"</item>
+    <item msgid="8931785990160383356">"вібрацыя"</item>
+    <item msgid="8632513128515114092">"чытанне кантактаў"</item>
+    <item msgid="3741042113569620272">"змяніць кантакты"</item>
+    <item msgid="4204420969709009931">"чытанне гiсторыi выклікаў"</item>
+    <item msgid="2260380357119423209">"змены ў гiсторыi выклікаў"</item>
+    <item msgid="6550710385014530934">"чытанне календара"</item>
+    <item msgid="3575906174264853951">"змяніць каляндар"</item>
+    <item msgid="4319843242568057174">"сканаванне Wi-Fi"</item>
+    <item msgid="2981791890467303819">"апавяшчэнне"</item>
+    <item msgid="6617825156152476692">"сканаванне па сотавым"</item>
+    <item msgid="8865260890611559753">"патэлефанаваць па нумары"</item>
+    <item msgid="3254999273961542982">"чытаць SMS"</item>
+    <item msgid="7711446453028825171">"напісаць SMS"</item>
+    <item msgid="6123238544099198034">"атрымліваць SMS"</item>
+    <item msgid="838342167431596036">"атрымліваць экстранныя SMS"</item>
+    <item msgid="8554432731560956686">"атрымліваць MMS"</item>
+    <item msgid="7464863464299515059">"атрымаць WAP Push"</item>
+    <item msgid="310463075729606765">"Адправiць SMS"</item>
+    <item msgid="7338021933527689514">"чытанне ICC SMS"</item>
+    <item msgid="6130369335466613036">"напiсаць ICC SMS"</item>
+    <item msgid="6536865581421670942">"змяніць налады"</item>
+    <item msgid="4547203129183558973">"намалюйце ўверсе"</item>
+    <item msgid="9080347512916542840">"доступ да паведамленняў"</item>
+    <item msgid="5332718516635907742">"камера"</item>
+    <item msgid="6098422447246167852">"запісваць аўдыё"</item>
+    <item msgid="9182794235292595296">"прайграць аўдыё"</item>
+    <item msgid="8760743229597702019">"счытаць буфер абмену"</item>
+    <item msgid="2266923698240538544">"змяніць буфер абмену"</item>
+    <item msgid="1801619438618539275">"мультымедыйныя кнопкі"</item>
+    <item msgid="31588119965784465">"аўдыёфокус"</item>
+    <item msgid="7565226799008076833">"асноўны рэгулятар гучнасці"</item>
+    <item msgid="5420704980305018295">"гучнасць голаса"</item>
+    <item msgid="5797363115508970204">"гучнасць званка"</item>
+    <item msgid="8233154098550715999">"гучнасць прайгравальніка"</item>
+    <item msgid="5196715605078153950">"гучнасць будзільніка"</item>
+    <item msgid="394030698764284577">"гучнасць апавяшчэнняў"</item>
+    <item msgid="8952898972491680178">"гучнасць Bluetooth"</item>
+    <item msgid="8506227454543690851">"не ўваходзіць у рэжым сна"</item>
+    <item msgid="1108160036049727420">"сачыць за вызначэннем месцазнаходжання"</item>
+    <item msgid="1496205959751719491">"сачыць за энергазатратным вызначэннем месцазнаходжання"</item>
+    <item msgid="3776296279910987380">"атрымліваць статыстыку выкарыстання"</item>
+    <item msgid="8827100324471975602">"адключаць/уключаць мікрафон"</item>
+    <item msgid="6880736730520126864">"паказваць усплывальнае паведамленне"</item>
+    <item msgid="4933375960222609935">"праецыраваць мультымедыя"</item>
+    <item msgid="8357907018938895462">"актываваць VPN"</item>
+    <item msgid="8143812849911310973">"запісваць шпалеры"</item>
+    <item msgid="6266277260961066535">"дапаможная структура"</item>
+    <item msgid="7715498149883482300">"дапаможны здымак экрана"</item>
+    <item msgid="4046679376726313293">"чытаць стан тэлефона"</item>
+    <item msgid="6329507266039719587">"дадаваць галасавое паведамленне"</item>
+    <item msgid="7692440726415391408">"выкарыстоўваць пратакол SIP"</item>
+    <item msgid="8572453398128326267">"апрацоўваць выходны выклік"</item>
+    <item msgid="7775674394089376306">"адбітак пальца"</item>
+    <item msgid="3182815133441738779">"датчыкі цела"</item>
+    <item msgid="2793100005496829513">"чытаць мабільныя трансляцыі"</item>
+    <item msgid="2633626056029384366">"імітаваць месцазнаходжанне"</item>
+    <item msgid="8356842191824684631">"чытаць сховішча"</item>
+    <item msgid="5671906070163291500">"пісаць на сховішча"</item>
+    <item msgid="2791955098549340418">"уключаць экран"</item>
+    <item msgid="5599435119609178367">"атрымліваць уліковыя запісы"</item>
+    <item msgid="1165623660533024666">"выконваць у фонавым рэжыме"</item>
+    <item msgid="6423861043647911030">"гучнасць для спецыяльных магчымасцей"</item>
+  </string-array>
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Месцазнаходжанне"</item>
+    <item msgid="6656077694190491067">"Месцазнаходжанне"</item>
+    <item msgid="8790228218278477369">"Месцазнаходжанне"</item>
+    <item msgid="7836406246005211990">"Вібрацыя"</item>
+    <item msgid="3951439024549922598">"Чытанне кантактаў"</item>
+    <item msgid="8802152411647068">"Змяніць кантакты"</item>
+    <item msgid="229544934599698735">"Чытанне гiсторыi выклікаў"</item>
+    <item msgid="7396102294405899613">"Змяненне запісаў у гiсторыi выклікаў"</item>
+    <item msgid="3597797992398484655">"Чытанне календара"</item>
+    <item msgid="2705975774250907343">"Змена календара"</item>
+    <item msgid="4668747371441932697">"Месцазнаходжанне"</item>
+    <item msgid="1487578921720243646">"Апублiкаваць апавяшчэнне"</item>
+    <item msgid="4636080349724146638">"Месцазнаходжанне"</item>
+    <item msgid="673510900286463926">"Патэлефанаваць па нумары"</item>
+    <item msgid="542083422784609790">"Чытаць SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Пісаць SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Прыём SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Прыём SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Прыём SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Прыём SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Адправiць SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Чытаць SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Пісаць SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Змена налад"</item>
+    <item msgid="8705854389991425629">"Намалюйце ўверсе"</item>
+    <item msgid="5861356020344153651">"Доступ да паведамленняў"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Запісаць аўдыё"</item>
+    <item msgid="4516840825756409490">"Прайграванне аўдыё"</item>
+    <item msgid="6811712502798183957">"Счытаць буфер абмену"</item>
+    <item msgid="2780369012602289114">"Змяніць буфер абмену"</item>
+    <item msgid="2331359440170850868">"Мультымедыйныя кнопкі"</item>
+    <item msgid="6133599737122751231">"Аўдыёфокус"</item>
+    <item msgid="6844485713404805301">"Асноўны рэгулятар гучнасці"</item>
+    <item msgid="1600379420669104929">"Гучнасць голаса"</item>
+    <item msgid="6296768210470214866">"Гучнасць званка"</item>
+    <item msgid="510690696071629241">"Гучнасць медыя"</item>
+    <item msgid="406861638631430109">"Гучнасць будзільніка"</item>
+    <item msgid="4715864795872233884">"Гучнасць апавяшчэнняў"</item>
+    <item msgid="2311478519251301183">"Гучнасць Bluetooth"</item>
+    <item msgid="5133991377896747027">"Не ўвах. у рэжым сна"</item>
+    <item msgid="2464189519136248621">"Месцазнаходжанне"</item>
+    <item msgid="2062677934050803037">"Месцазнаходжанне"</item>
+    <item msgid="1735171933192715957">"Атрымаць статыстыку выкарыстання"</item>
+    <item msgid="1014093788778383554">"Адключаць/уключаць мікрафон"</item>
+    <item msgid="4199297950608622850">"Паказваць усплывальнае паведамленне"</item>
+    <item msgid="2527962435313398821">"Праецыраваць мультымедыя"</item>
+    <item msgid="5117506254221861929">"Актываваць VPN"</item>
+    <item msgid="8291198322681891160">"Запісаць шпалеры"</item>
+    <item msgid="7106921284621230961">"Дапаможная структура"</item>
+    <item msgid="4496533640894624799">"Дапаможны здымак экрана"</item>
+    <item msgid="2598847264853993611">"Чытаць стан тэлефона"</item>
+    <item msgid="9215610846802973353">"Дадаваць галасавое паведамленне"</item>
+    <item msgid="9186411956086478261">"Выкарыстоўваць пратакол SIP"</item>
+    <item msgid="6884763100104539558">"Апрацоўваць выходны выклік"</item>
+    <item msgid="125513972170580692">"Адбітак пальца"</item>
+    <item msgid="2556071024281275619">"Датчыкі цела"</item>
+    <item msgid="617168514928339387">"Чытаць мабільныя трансляцыі"</item>
+    <item msgid="7134693570516523585">"Імітаваць месцазнаходжанне"</item>
+    <item msgid="7224489175375229399">"Чытаць сховішча"</item>
+    <item msgid="8472735063903258202">"Пісаць на сховішча"</item>
+    <item msgid="4069276819909595110">"Уключаць экран"</item>
+    <item msgid="1228338896751121025">"Атрымліваць уліковыя запісы"</item>
+    <item msgid="3181581793459233672">"Выконваць у фонавым рэжыме"</item>
+    <item msgid="2340936043025374076">"Гучнасць для спецыяльных магчымасцей"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Кароткая"</item>
     <item msgid="4816511817309094890">"Сярэдняя"</item>
     <item msgid="8305084671259331134">"Доўгая"</item>
   </string-array>
-    <!-- no translation found for captioning_typeface_selector_titles:4 (1487203730637617924) -->
+  <string-array name="captioning_typeface_selector_titles">
+    <item msgid="6928465258504250174">"Стандартны"</item>
+    <item msgid="4147246073737933622">"Без засечак"</item>
+    <item msgid="3117680749167407907">"Без засечак сцягнуты"</item>
+    <item msgid="6529379119163117545">"Без засечак монашырынны"</item>
+    <item msgid="1487203730637617924">"З засечкамі"</item>
+    <item msgid="4937790671987480464">"З засечкамі монашырынны"</item>
+    <item msgid="4448481989108928248">"Нефармальны"</item>
+    <item msgid="4627069151979553527">"Курсіўны"</item>
+    <item msgid="6896773537705206194">"Капітэль"</item>
+  </string-array>
   <string-array name="captioning_font_size_selector_titles">
     <item msgid="1680223634161592855">"Вельмі дробны"</item>
     <item msgid="5091603983404027034">"Дробны"</item>
@@ -222,14 +376,28 @@
     <item msgid="2784236342175159295">"Вялікі"</item>
     <item msgid="218913203203160606">"Вельмі вялікі"</item>
   </string-array>
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (8019330250538856521) -->
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="3865198759294188069">"Стандартны"</item>
+    <item msgid="6488643537808152001">"Няма"</item>
+    <item msgid="552332815156010137">"Контур"</item>
+    <item msgid="7187891159463789272">"Цень"</item>
+    <item msgid="8019330250538856521">"Прыўзняты"</item>
+    <item msgid="8987385315647049787">"Уціснуты"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="313003243371588365">"25%"</item>
     <item msgid="4665048002584838262">"50 %"</item>
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100 %"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Ужываць стандартныя налады праграмы"</item>
+    <item msgid="8611890312638868524">"Белы на чорным"</item>
+    <item msgid="5891360837786277638">"Чорны на белым"</item>
+    <item msgid="2798457065945456853">"Жоўты на чорным"</item>
+    <item msgid="5799049811524553967">"Жоўты на сінім"</item>
+    <item msgid="3673930830658169860">"Карыстальніцкія"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"L2TP/IPSec VPN з загадзя размеркаванымі ключамі"</item>
@@ -238,7 +406,10 @@
     <item msgid="3319427315593649917">"IPSec VPN з сертыфікатамі і аўтэнтыфікацыяй Xauth"</item>
     <item msgid="8258927774145391041">"IPSec VPN з сертыфікатамі і гібрыднай аўтэнтыфікацыяй"</item>
   </string-array>
-    <!-- no translation found for vpn_proxy_settings:0 (2958623927055120839) -->
+  <string-array name="vpn_proxy_settings">
+    <item msgid="2958623927055120839">"Няма"</item>
+    <item msgid="1157046369795346308">"Кіраўніцтва"</item>
+  </string-array>
   <string-array name="vpn_states">
     <item msgid="5408915841694583740">"Адключана"</item>
     <item msgid="8754480102834556765">"Ініцыялізацыя..."</item>
@@ -252,9 +423,19 @@
     <item msgid="7718817231348607934">"Нiколi не дазваляць"</item>
     <item msgid="8184570120217958741">"Заўсёды дазваляць"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Звычайны"</item>
+    <item msgid="5101233285497327432">"Умераны"</item>
+    <item msgid="1555861583162930714">"Нізкая"</item>
+    <item msgid="1719683776264798117">"Крытычны"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Звычайны"</item>
+    <item msgid="6107138933849816768">"Умераны"</item>
+    <item msgid="182695359839047859">"Нізкая"</item>
+    <item msgid="8577246509202964244">"Крытычны"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Пастаянны"</item>
     <item msgid="167418068739176448">"Папулярная дзейнасць"</item>
@@ -296,7 +477,7 @@
     <item msgid="1008268820118852416">"Безлімітная"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Выкарыстоўваць выпадковы MAC-адрас (стандартна)"</item>
+    <item msgid="6545683814310036454">"Выпадковы MAC-адрас (стандартна)"</item>
     <item msgid="214234417308375326">"Выкарыстоўваць прыладу MAC"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-be/strings.xml b/tests/CarDeveloperOptions/res/values-be/strings.xml
index cec1ae7..99fe4f3 100644
--- a/tests/CarDeveloperOptions/res/values-be/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-be/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Павелічэнне або памяншэнне тэксту на экране."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Паменшыць"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Павялічыць"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Прыклад тэксту"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Чараўнік краіны Оз"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Раздзел 11. Цудоўны Смарагдавы Горад у краіне Оз"</string>
@@ -210,7 +209,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Трэба запоўніць поле порта."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Поле парта павінна быць пустым, калі поле хоста пустое."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Вы ўвялі несапраўднае імя порта."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Проксі HTTP выкарыстоўваецца браўзэрам, але ён не можа выкарыстоўвацца іншымі прыкладаннямi"</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Проксі HTTP выкарыстоўваецца браўзерам, але не можа выкарыстоўвацца іншымі праграмамі."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"URL аўтаканфіг. проксі: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Паласа прапускання спампоўкі (кбіт/с):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Паласа прапускання запампоўкі (кбіт/с):"</string>
@@ -353,16 +352,16 @@
     <string name="time_picker_title" msgid="1596400307061268660">"Час"</string>
     <string name="lock_after_timeout" msgid="7755520959071097304">"Аўтаматычная блакіроўка"</string>
     <string name="lock_after_timeout_summary" msgid="3160517585613694740">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> пасля сну"</string>
-    <string name="lock_immediately_summary_with_exception" msgid="6442552135409347556">"Адразу ж пасля сну, за выключэннем выпадкаў, калі экран разблакіруецца функцыяй <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>"</string>
-    <string name="lock_after_timeout_summary_with_exception" msgid="7218267834086717545">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> пасля сну, за выключэннем выпадкаў, калі экран разблакіруецца функцыяй <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g>"</string>
+    <string name="lock_immediately_summary_with_exception" msgid="6442552135409347556">"Адразу пасля сну акрамя выпадкаў, калі экран застаецца разблакіраваным функцыяй <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>"</string>
+    <string name="lock_after_timeout_summary_with_exception" msgid="7218267834086717545">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> пасля сну акрамя выпадкаў, калі экран застаецца разблакіраваным функцыяй <xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g>"</string>
     <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"Паказаць інфармацыю аб уладальніку на экране блакавання"</string>
     <string name="owner_info_settings_title" msgid="2537966178998339896">"Тэкст на экране блакіроўкі"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Уключыць віджэты"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Адключана адміністратарам"</string>
-    <string name="lockdown_settings_title" msgid="4534779922580115990">"Паказаць параметр блакіроўкі"</string>
+    <string name="lockdown_settings_title" msgid="4534779922580115990">"Паказваць кнопку блакіроўкі"</string>
     <string name="lockdown_settings_summary" msgid="7270756909878256174">"Дадаць у меню кнопкі сілкавання функцыю, якая выключае разумную блакіроўку, разблакіроўку адбіткам пальца і апавяшчэнні на экране блакіроўкі"</string>
-    <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Давераныя агенты падаўжаюць разблакіроўку"</string>
-    <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"Калі функцыя ўключана, давераныя агенты будуць даўжэй трымаць прыладу разблакіраванай, аднак не змогуць разблакіраваць ужо заблакіраваную прыладу."</string>
+    <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Даверчыя агенты падаўжаюць разблакіроўку"</string>
+    <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"Калі функцыя ўключана, даверчыя агенты будуць даўжэй трымаць прыладу разблакіраванай, аднак не змогуць разблакіраваць ужо заблакіраваную прыладу."</string>
     <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"Блакіраваць экран, калі давер страчаны"</string>
     <string name="trust_lost_locks_screen_summary" msgid="2058567484625606803">"Пры ўключанай функцыі прылада будзе заблакіравана, калі страціць давер апошні агент"</string>
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"Няма"</string>
@@ -646,13 +645,13 @@
     <string name="unlock_footer_none_complexity_requested" msgid="1669550050597044896">"<xliff:g id="APP_NAME">%1$s</xliff:g> рэкамендуе ўсталяваць новую блакіроўку экрана"</string>
     <string name="lock_failed_attempts_before_wipe" msgid="7565412834122130877">"Паўтарыце спробу. Спроба <xliff:g id="CURRENT_ATTEMPTS">%1$d</xliff:g> з дапушчальных <xliff:g id="TOTAL_ATTEMPTS">%2$d</xliff:g>."</string>
     <string name="lock_last_attempt_before_wipe_warning_title" msgid="7853820095898368793">"Вашы даныя будуць выдалены"</string>
-    <string name="lock_last_pattern_attempt_before_wipe_device" msgid="1021644947949306054">"Калі вы ўведзяце няправільны графічны ключ яшчэ раз, даныя з гэтай прылады будуць выдалены"</string>
+    <string name="lock_last_pattern_attempt_before_wipe_device" msgid="1021644947949306054">"Калі вы ўведзяце няправільны ўзор разблакіроўкі яшчэ раз, даныя з гэтай прылады будуць выдалены"</string>
     <string name="lock_last_pin_attempt_before_wipe_device" msgid="3823600293847594141">"Калі вы ўведзяце няправільны PIN-код яшчэ раз, даныя з гэтай прылады будуць выдалены"</string>
     <string name="lock_last_password_attempt_before_wipe_device" msgid="3548966006264835462">"Калі вы ўведзяце няправільны пароль яшчэ раз, даныя з гэтай прылады будуць выдалены"</string>
-    <string name="lock_last_pattern_attempt_before_wipe_user" msgid="5194192938934564218">"Калі вы яшчэ раз уведзяце няправільны графічны ключ, гэты карыстальнік будзе выдалены"</string>
+    <string name="lock_last_pattern_attempt_before_wipe_user" msgid="5194192938934564218">"Калі вы яшчэ раз уведзяце няправільны ўзор разблакіроўкі, гэты карыстальнік будзе выдалены"</string>
     <string name="lock_last_pin_attempt_before_wipe_user" msgid="7833852187363499906">"Калі вы яшчэ раз уведзяце няправільны PIN-код, гэты карыстальнік будзе выдалены"</string>
     <string name="lock_last_password_attempt_before_wipe_user" msgid="8979742220140001204">"Калі вы яшчэ раз уведзяце няправільны пароль, гэты карыстальнік будзе выдалены"</string>
-    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Калі вы яшчэ раз уведзяце няправільны графічны ключ, ваш рабочы профіль і звязаныя з ім даныя будуць выдалены"</string>
+    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Калі вы яшчэ раз уведзяце няправільны ўзор разблакіроўкі, ваш рабочы профіль і звязаныя з ім даныя будуць выдалены"</string>
     <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Калі вы яшчэ раз уведзяце няправільны PIN-код, ваш рабочы профіль і звязаныя з ім даныя будуць выдалены"</string>
     <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Калі вы яшчэ раз уведзяце няправільны пароль, ваш рабочы профіль і звязаныя з ім даныя будуць выдалены"</string>
     <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Занадта шмат няўдалых спроб. Даныя з гэтай прылады будуць выдалены."</string>
@@ -750,14 +749,14 @@
       <item quantity="many"><xliff:g id="COUNT_1">%d</xliff:g> актыўных праграм</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> актыўнай праграмы</item>
     </plurals>
-    <string name="manage_trust_agents" msgid="8129970926213142261">"Давераныя агенты"</string>
+    <string name="manage_trust_agents" msgid="8129970926213142261">"Даверчыя агенты"</string>
     <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Перад выкарыстаннем задайце блакіроўку экрана"</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"Няма"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> актыўны давераны агент</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> актыўныя давераныя агенты</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> актыўных давераных агентаў</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> актыўнага даверанага агента</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> актыўны даверчы агент</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> актыўныя даверчыя агенты</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> актыўных даверчых агентаў</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> актыўнага даверчага агента</item>
     </plurals>
     <string name="bluetooth_quick_toggle_title" msgid="7410319268406112792">"Bluetooth"</string>
     <string name="bluetooth_quick_toggle_summary" msgid="3951769568065428093">"Уключыць Bluetooth"</string>
@@ -881,10 +880,10 @@
     <string name="wifi_error" msgid="5605801874484465557">"Памылка"</string>
     <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"Дыяпазон 5 ГГц недаступны ў гэтай краіне"</string>
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"У рэжыме палёту"</string>
-    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Апавяшчэнне пра адкрытыя сеткі"</string>
+    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Апавяшчаць пра адкрытыя сеткі"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Апавяшчаць, калі даступная высакаякасная сетка агульнага доступу"</string>
     <string name="wifi_wakeup" msgid="4963732992164721548">"Уключаць Wi‑Fi аўтаматычна"</string>
-    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi‑Fi будзе ўключацца аўтаматычна побач з захаванымі высакаякаснымі сеткамі, напрыклад вашай дамашняй сеткай"</string>
+    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi‑Fi будзе ўключацца аўтаматычна побач з захаванымі высакаякаснымі сеткамі, напрыклад у вашай дамашняй сетцы"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="3007457288587966962">"Недаступна, таму што выключана вызначэнне месцазнаходжання. Уключыце "<annotation id="link">"Вызначаць месцазнаходжанне"</annotation>"."</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="6820040651529910914">"Недаступна, бо выключаны пошук сетак Wi-Fi"</string>
     <string name="wifi_wakeup_summary_scoring_disabled" msgid="7067018832237903151">"Для выкарыстання функцыі выберыце пастаўшчыка паслугі ацэнкі сеткі"</string>
@@ -940,7 +939,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Увядзіце SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Бяспека"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Схаваная сетка"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Калі маршрутызатар не перадае ідэнтыфікатар сеткі, але дапускаецца падключэнне да яе ў будучыні, сетку можна \"схаваць\".\n\nГэта пагражае бяспецы, таму што тэлефон будзе рэгулярна перадаваць сігнал для пошуку сеткі.\n\n\"Схаваная\" сетка не зменіць налады маршрутызатара."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Калі маршрутызатар не перадае ідэнтыфікатар сеткі, але дапускаецца падключэнне да яе ў будучыні, сетку можна схаваць.\n\nГэта пагражае бяспецы, таму што тэлефон будзе рэгулярна перадаваць сігнал для пошуку сеткі.\n\nСхаваная сетка не зменіць налады маршрутызатара."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Магутнасць сігналу"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Стан"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Хуткасць перадачы даных"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мабільны інтэрнэт"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Калі Wi‑Fi недаступны, выкарыстоўвайце мабільную сетку"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Калі мабільная сетка недаступная, выкарыстоўвайце Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Выклікайце праз Wi‑Fi. Калі сігналу Wi‑Fi няма, выклік завяршаецца."</string>
@@ -1163,8 +1165,7 @@
     <string name="incoming_call_volume_title" msgid="4736570528754310450">"Рынгтон"</string>
     <string name="notification_volume_title" msgid="6022562909288085275">"Апавяшчэнне"</string>
     <string name="checkbox_notification_same_as_incoming_call" msgid="7312942422655861175">"Выкарыстоўваць гучнасць уваходных выклікаў для паведамленняў"</string>
-    <!-- no translation found for home_work_profile_not_supported (6137073723297076818) -->
-    <skip />
+    <string name="home_work_profile_not_supported" msgid="6137073723297076818">"Працоўныя профілі не падтрымліваюцца"</string>
     <string name="notification_sound_dialog_title" msgid="6653341809710423276">"Гук паведамлення па змаўчаннi"</string>
     <string name="media_volume_title" msgid="1030438549497800914">"Мультымедыя"</string>
     <string name="media_volume_summary" msgid="3142433516297061652">"Вызначыць гучнасць для музыкі і відэа"</string>
@@ -1565,7 +1566,7 @@
     <string name="battery_level_title" msgid="5207775387973771646">"Узровень батарэі"</string>
     <string name="apn_settings" msgid="8130776653826271664">"APN"</string>
     <string name="apn_edit" msgid="4350571070853305357">"Змянiць кропку доступу"</string>
-    <string name="apn_not_set" msgid="5344235604466825691">"Не задана"</string>
+    <string name="apn_not_set" msgid="5344235604466825691">"Не зададзена"</string>
     <string name="apn_name" msgid="8431432886706852226">"Назва"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
     <string name="apn_http_proxy" msgid="8816906767987944465">"Проксі"</string>
@@ -1604,7 +1605,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Аператар не дазваляе дадаваць APN тыпу %s."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Аднаўленне параметраў APN па змаўчанні"</string>
     <string name="menu_restore" msgid="3799288817317293115">"Скінуць налады"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Скід налад кропкі доступу па змаўчанні завершаны."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Стандартныя налады адноўлены."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Параметры скіду"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Налады сеткі, праграмы або прылады могуць быць скінуты"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Скінуць налады Wi-Fi, мабільнай перадачы даных і Bluetooth"</string>
@@ -1695,7 +1696,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Доступ да апошняга вызначэння месцазнаходжання"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Паказаць падрабязныя звесткі"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"У апошні час запытаў ад дадаткаў на вызначэнне месцазнаходжання не паступала"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"У апошні час праграмы не запытвалі інфармацыю пра месцазнаходжанне"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"У апошні час ніводная праграма не атрымлівала доступу да звестак пра месцазнаходжанне"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Выс. узровень выкарыст. акум."</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Нізкі ўзровень выкарыст. акум."</string>
@@ -1734,7 +1735,7 @@
     <string name="terms_title" msgid="1804549588198223771">"Правілы і ўмовы"</string>
     <string name="webview_license_title" msgid="8244960025549725051">"Сістэмная ліцэнзія WebView"</string>
     <string name="wallpaper_attributions" msgid="2941987966332943253">"Шпалеры"</string>
-    <string name="wallpaper_attributions_values" msgid="4461979853894606323">"Пастаўшчыкі спадарожнікавых выяў:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
+    <string name="wallpaper_attributions_values" msgid="4461979853894606323">"Спадарожнікавыя фота:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="7599911755054286789">"Кіраўніцтва"</string>
     <string name="settings_manual_activity_unavailable" msgid="4872502775018655343">"Не атрымлiваецца загрузіць кіраўніцтва."</string>
     <string name="settings_license_activity_title" msgid="1099045216283677608">"Ліцэнзіі трэціх бакоў"</string>
@@ -1803,11 +1804,11 @@
     <string name="lockpattern_settings_title" msgid="5152005866870766842">"Камбінацыя разблакоўкі"</string>
     <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"Патрабаваць камбінацыю разблакавання"</string>
     <string name="lockpattern_settings_enable_summary" msgid="8027605503917737512">"Патрабаваць камбінацыю разблакоўкі, каб разблакаваць экран"</string>
-    <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Зрабіць шаблон бачным"</string>
+    <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Зрабіць узор бачным"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"Зрабіць узор разблакіроўкі профілю бачным"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"Вібрацыя пры дотыку"</string>
     <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Блакір. кнопкай сілкавання"</string>
-    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"За выключэннем выпадкаў, калі экран разблакіруецца функцыяй <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>"</string>
+    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"Акрамя выпадкаў, калі экран застаецца разблакіраваным функцыяй <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"Усталяваць камбінацыю разблакоўкі"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"Змяніць камбінацыю разблакоўкі"</string>
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"Як зрабіць камбінацыю разблакоўкі"</string>
@@ -1870,7 +1871,7 @@
     <string name="app_factory_reset" msgid="8718986000278776272">"Выдаліць абнаўленні"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"Вы выбралi запуск гэтага дадатку па змаўчаннi для некаторых дзеянняў."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"Вы дазволілі гэтаму дадатку ствараць віджэты і атрымліваць доступ да іх даных."</string>
-    <string name="auto_launch_disable_text" msgid="8560921288036801416">"Параметры па змаўчанні не ўсталяваныя"</string>
+    <string name="auto_launch_disable_text" msgid="8560921288036801416">"Стандартныя налады не зададзены"</string>
     <string name="clear_activities" msgid="2068014972549235347">"Скінуць налады па змаўчанні"</string>
     <string name="screen_compatibility_text" msgid="1768064020294301496">"Магчыма, гэта прыкладанне не разлічана для вашага экрана. Наладзьце яго."</string>
     <string name="ask_compatibility" msgid="6687958195768084807">"Запытваць падчас запуску"</string>
@@ -2248,10 +2249,10 @@
     <string name="print_settings" msgid="7886184656544483072">"Друк"</string>
     <string name="print_settings_summary_no_service" msgid="634173687975841526">"Выключана"</string>
     <plurals name="print_settings_summary" formatted="false" msgid="7580293760281445137">
-      <item quantity="one">Уключана <xliff:g id="COUNT">%1$d</xliff:g> служба друку</item>
-      <item quantity="few">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> службы друку</item>
-      <item quantity="many">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> служб друку</item>
-      <item quantity="other">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> службы друку</item>
+      <item quantity="one">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> сэрвіс друку</item>
+      <item quantity="few">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> сэрвісы друку</item>
+      <item quantity="many">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> сэрвісаў друку</item>
+      <item quantity="other">Уключаны <xliff:g id="COUNT">%1$d</xliff:g> сэрвісу друку</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="6180308415569432845">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> заданне друку</item>
@@ -2259,14 +2260,14 @@
       <item quantity="many"><xliff:g id="COUNT">%1$d</xliff:g> заданняў друку</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> задання друку</item>
     </plurals>
-    <string name="print_settings_title" msgid="2886445296786932763">"Службы друку"</string>
+    <string name="print_settings_title" msgid="2886445296786932763">"Сэрвісы друку"</string>
     <string name="print_no_services_installed" msgid="3387777739528003794">"Няма ўсталяваных службаў"</string>
     <string name="print_no_printers_found" msgid="5090925427392294881">"Прынтараў не знойдзена"</string>
     <string name="print_menu_item_settings" msgid="2654804159012579508">"Налады"</string>
     <string name="print_menu_item_add_printers" msgid="8198201275621756510">"Дадаць прынтары"</string>
     <string name="print_feature_state_on" msgid="1838010230650403367">"Уключана"</string>
     <string name="print_feature_state_off" msgid="208580346723223688">"Выключана"</string>
-    <string name="print_menu_item_add_service" msgid="6803000110578493782">"Дадаць службу"</string>
+    <string name="print_menu_item_add_service" msgid="6803000110578493782">"Дадаць сэрвіс"</string>
     <string name="print_menu_item_add_printer" msgid="8529196211179574921">"Дадаць прынтар"</string>
     <string name="print_menu_item_search" msgid="1165316329772287360">"Пошук"</string>
     <string name="print_searching_for_printers" msgid="6538687129687642542">"Пошук прынтараў"</string>
@@ -2500,7 +2501,7 @@
     <string name="battery_detail_since_full_charge" msgid="3814176986148084378">"Разбіўка з моманту апошняй поўнай зарадкі"</string>
     <string name="battery_last_full_charge" msgid="5624033030647170717">"Апошняя поўная зарадка"</string>
     <string name="battery_full_charge_last" msgid="4614554109170251301">"Прыблізны час працы пры поўным зарадзе акумулятара"</string>
-    <string name="battery_footer_summary" msgid="4828444679643906943">"Даныя аб выкарыстанні батарэі з\'яўляюцца прыблізнымі і могуць змяняцца ў залежнасці ад выкарыстання"</string>
+    <string name="battery_footer_summary" msgid="4828444679643906943">"Даныя аб выкарыстанні акумулятара з\'яўляюцца прыблізнымі і могуць змяняцца ў залежнасці ад канкрэтных умоў"</string>
     <string name="battery_detail_foreground" msgid="6616408559186553085">"У актыўным рэжыме"</string>
     <string name="battery_detail_background" msgid="7938146832943604280">"У фонавым рэжыме"</string>
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"Выкарыстанне зараду"</string>
@@ -2997,7 +2998,7 @@
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Як гэта працуе"</string>
     <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Плаціце ў крамах з дапамогай свайго тэлефона"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"Стандартны спосаб аплаты"</string>
-    <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Не задана"</string>
+    <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Не зададзена"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> – <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"Выкарыстоўваць стандартную праграму"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Заўсёды"</string>
@@ -3408,7 +3409,7 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"Мігценне святла"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"На экране блакіроўкі"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Працоўны профіль заблакіраваны"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Паказваць усё змесціва ў апавяшчэннях"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Паказваць усе апавяшчэнні"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Схаваць канфідэнцыяльныя даныя"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Ніколі не паказваць апавяшчэнні"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Як павінны паказвацца апавяшчэнні, калі прылада заблакіравана?"</string>
@@ -3691,7 +3692,7 @@
     <string name="imei_information_title" msgid="7666097743700170757">"Інфармацыя IMEI"</string>
     <string name="imei_information_summary" msgid="716516316022275083">"Інфармацыя, звязаная з IMEI (міжнародным ідэнтыфікатарам мабільнага абсталявання)"</string>
     <string name="slot_number" msgid="785422579177068698">"(Слот<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
-    <string name="launch_by_default" msgid="6106985160202769725">"Адкрываць па змаўчанні"</string>
+    <string name="launch_by_default" msgid="6106985160202769725">"Стандартна адкрываць"</string>
     <string name="app_launch_domain_links_title" msgid="2987289657348349133">"Адкрыццё спасылак"</string>
     <string name="app_launch_open_domain_urls_title" msgid="8595126859922391331">"Адкрыць спасылкі, якія падтрымліваюцца"</string>
     <string name="app_launch_open_domain_urls_summary" msgid="6803029846855502366">"Адкрываць без запыту"</string>
@@ -3705,8 +3706,7 @@
     <string name="change" msgid="41563753961948554">"Змяніць"</string>
     <string name="change_storage" msgid="2064045078609862770">"Змяніць сховішча"</string>
     <string name="notifications_label" msgid="2792398288062643318">"Апавяшчэнні"</string>
-    <!-- no translation found for notifications_enabled (439339392141736137) -->
-    <skip />
+    <string name="notifications_enabled" msgid="439339392141736137">"Уключана"</string>
     <string name="notifications_enabled_with_info" msgid="7706460489443809452">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g> / <xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
     <string name="notifications_disabled" msgid="316658185757688983">"Выключана"</string>
     <string name="notifications_partly_blocked" msgid="6330451240669068819">"Адключаны катэгорыі: <xliff:g id="COUNT_0">%1$d</xliff:g> з <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -3993,7 +3993,7 @@
     <string name="backup_disabled" msgid="6941165814784765643">"Рэзервовае капіраванне адключана"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"Абноўлена да версіі Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
     <string name="android_version_pending_update_summary" msgid="3554543810520655076">"Ёсць абнаўленне"</string>
-    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Дзеянне не дапускаецца"</string>
+    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Дзеянне забаронена"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7094547090629203316">"Не ўдалося змяніць гучнасць"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="3805836913095496278">"Выклікі забаронены"</string>
     <string name="disabled_by_policy_title_sms" msgid="1453236584236681105">"Адпраўка SMS забаронена"</string>
@@ -4061,7 +4061,7 @@
     <string name="usage" msgid="9172908720164431622">"Выкарыстанне"</string>
     <string name="cellular_data_usage" msgid="1236562234207782386">"Выкарыстанне мабільнага трафіку"</string>
     <string name="app_cellular_data_usage" msgid="8499761516172121957">"Выкарыстанне трафіка"</string>
-    <string name="wifi_data_usage" msgid="275569900562265895">"Выкарыстанне трафіка Wi-Fi"</string>
+    <string name="wifi_data_usage" msgid="275569900562265895">"Выкарыстанне трафіка сеткай Wi-Fi"</string>
     <string name="ethernet_data_usage" msgid="747614925362556718">"Выкарыстанне даных Ethernet"</string>
     <string name="wifi" msgid="1586738489862966138">"Wi-Fi"</string>
     <string name="ethernet" msgid="2365753635113154667">"Ethernet"</string>
@@ -4464,7 +4464,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Кіраванне наладамі Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Дазволіць праграме кіраваць наладамі Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Дазволіць гэтай праграме ўключаць ці выключаць Wi-Fi, шукаць сеткі Wi-Fi і падключацца да іх, дадаваць або выдаляць сеткі ці запускаць лакальны хот-спот"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Прайграваць медыяфайлы на"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Дзе прайграваць"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Гэта прылада"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Тэлефон"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Планшэт"</string>
diff --git a/tests/CarDeveloperOptions/res/values-bg/arrays.xml b/tests/CarDeveloperOptions/res/values-bg/arrays.xml
index f42800f..d5488d5 100644
--- a/tests/CarDeveloperOptions/res/values-bg/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-bg/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"пускане на заден план"</item>
     <item msgid="6423861043647911030">"сила на звука за услугите за достъпност"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Местоположение"</item>
+    <item msgid="6656077694190491067">"Местоположение"</item>
+    <item msgid="8790228218278477369">"Местоположение"</item>
+    <item msgid="7836406246005211990">"Вибриране"</item>
+    <item msgid="3951439024549922598">"Четене на контактите"</item>
+    <item msgid="8802152411647068">"Промяна на контактите"</item>
+    <item msgid="229544934599698735">"Четене на списъка с обажданията"</item>
+    <item msgid="7396102294405899613">"Промяна на списъка с обажданията"</item>
+    <item msgid="3597797992398484655">"Четене на календара"</item>
+    <item msgid="2705975774250907343">"Промяна на календара"</item>
+    <item msgid="4668747371441932697">"Местоположение"</item>
+    <item msgid="1487578921720243646">"Публикуване на известие"</item>
+    <item msgid="4636080349724146638">"Местоположение"</item>
+    <item msgid="673510900286463926">"Обаждане по телефона"</item>
+    <item msgid="542083422784609790">"Четене на SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Писане на SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Получаване на SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Получаване на SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Получаване на SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Получаване на SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Изпращане на SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Четене на SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Писане на SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Промяна на настройките"</item>
+    <item msgid="8705854389991425629">"Рисуване върху елемент"</item>
+    <item msgid="5861356020344153651">"Достъп до известията"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Запис на звук"</item>
+    <item msgid="4516840825756409490">"Възпроизвеждане на звук"</item>
+    <item msgid="6811712502798183957">"Четене на буферната памет"</item>
+    <item msgid="2780369012602289114">"Промяна на буферната памет"</item>
+    <item msgid="2331359440170850868">"Бутони за мултимедия"</item>
+    <item msgid="6133599737122751231">"Фокусиране на звука"</item>
+    <item msgid="6844485713404805301">"Основна сила на звука"</item>
+    <item msgid="1600379420669104929">"Сила на звука за глас"</item>
+    <item msgid="6296768210470214866">"Сила на звука при звънене"</item>
+    <item msgid="510690696071629241">"Сила на звука за мултимедия"</item>
+    <item msgid="406861638631430109">"Сила на звука на будилника"</item>
+    <item msgid="4715864795872233884">"Сила на звука при известие"</item>
+    <item msgid="2311478519251301183">"Сила на звука за Bluetooth"</item>
+    <item msgid="5133991377896747027">"Оставяне в будно състояние"</item>
+    <item msgid="2464189519136248621">"Местоположение"</item>
+    <item msgid="2062677934050803037">"Местоположение"</item>
+    <item msgid="1735171933192715957">"Получаване на статистически данни за употребата"</item>
+    <item msgid="1014093788778383554">"Заглушаване/включване на микрофона"</item>
+    <item msgid="4199297950608622850">"Показване на съобщение в изскачащо прозорче"</item>
+    <item msgid="2527962435313398821">"Прожектиране на мултимедия"</item>
+    <item msgid="5117506254221861929">"Активиране на виртуална частна мрежа (VPN)"</item>
+    <item msgid="8291198322681891160">"Запис на тапет"</item>
+    <item msgid="7106921284621230961">"Структура за помощ"</item>
+    <item msgid="4496533640894624799">"Екранна снимка за помощ"</item>
+    <item msgid="2598847264853993611">"Четене на състоянието на телефона"</item>
+    <item msgid="9215610846802973353">"Добавяне на гласова поща"</item>
+    <item msgid="9186411956086478261">"Използване на SIP"</item>
+    <item msgid="6884763100104539558">"Обработване на изходящо обаждане"</item>
+    <item msgid="125513972170580692">"Отпечатък"</item>
+    <item msgid="2556071024281275619">"Телесни сензори"</item>
+    <item msgid="617168514928339387">"Четене на клетъчни излъчвания"</item>
+    <item msgid="7134693570516523585">"Мнимо местоположение"</item>
+    <item msgid="7224489175375229399">"Четене на хранилището"</item>
+    <item msgid="8472735063903258202">"Запис в хранилището"</item>
+    <item msgid="4069276819909595110">"Включване на екрана"</item>
+    <item msgid="1228338896751121025">"Създаване на профили"</item>
+    <item msgid="3181581793459233672">"Пускане на заден план"</item>
+    <item msgid="2340936043025374076">"Сила на звука за услугите за достъпност"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Кратко"</item>
     <item msgid="4816511817309094890">"Средна важност"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Никога да не се разрешава"</item>
     <item msgid="8184570120217958741">"Винаги да се разрешава"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Нормално"</item>
+    <item msgid="5101233285497327432">"Средно"</item>
+    <item msgid="1555861583162930714">"Ниска"</item>
+    <item msgid="1719683776264798117">"Критичнo"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Нормално"</item>
+    <item msgid="6107138933849816768">"Средно"</item>
+    <item msgid="182695359839047859">"Ниска"</item>
+    <item msgid="8577246509202964244">"Критичнo"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Постоянно"</item>
     <item msgid="167418068739176448">"Водеща активност"</item>
diff --git a/tests/CarDeveloperOptions/res/values-bg/strings.xml b/tests/CarDeveloperOptions/res/values-bg/strings.xml
index 7d3fe5c..6d0ce88 100644
--- a/tests/CarDeveloperOptions/res/values-bg/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-bg/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Намаляване или уголемяване на текста на екрана."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Намаляване на размера"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Увеличаване на размера"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Примерен текст"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Вълшебникът от Оз"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Глава 11: Удивителният изумруден град на Оз"</string>
@@ -730,7 +729,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Управление на връзки, задаване на име и откриваемост на устройство"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Искате ли да сдвоите с/ъс „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Искате ли да сдвоите с(ъс) „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Код за сдвояване с Bluetooth"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Въведете кода за сдвояване, след което натиснете „Return“ или „Enter“"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"ПИН кодът съдържа букви или символи"</string>
@@ -821,7 +820,7 @@
     <string name="wifi_ask_disable" msgid="2146839060110412974">"<xliff:g id="REQUESTER">%s</xliff:g> иска да изключи Wi-Fi"</string>
     <string name="art_verifier_for_debuggable_title" msgid="5223835619409464642">"Потвържд. на байткода за прил. с възможн. за отстр. на грешки"</string>
     <string name="art_verifier_for_debuggable_summary" msgid="2204242476996701111">"Разрешаване на ART да потвърждава байткода за приложенията с възможност за отстраняване на грешки"</string>
-    <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"КБП"</string>
+    <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="983451155092850657">"Разрешаване на обмен на данни, когато таблетът докосва друго устройство"</string>
     <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"Разрешаване на обмен на данни, когато телефонът докосва друго устройство"</string>
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Включване на КБП"</string>
@@ -936,13 +935,13 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Поверителност"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Рандомизиран MAC адрес"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Добавяне на устройство"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"За да добавите устройството към „<xliff:g id="SSID">%1$s</xliff:g>“, центрирайте по-долу кода за бърза реакция"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"За да добавите устройството към <xliff:g id="SSID">%1$s</xliff:g>, центрирайте по-долу кода за бърза реакция"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Сканиране на кода за бърза реакция"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"За да се свържете с „<xliff:g id="SSID">%1$s</xliff:g>“, центрирайте по-долу кода за бърза реакция"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"За да се свържете към <xliff:g id="SSID">%1$s</xliff:g>, центрирайте по-долу кода за бърза реакция"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Присъединете се към  Wi‑Fi мрежата, като сканирате код за бърза реакция"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Споделяне на Wi‑Fi мрежата"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Сканирайте този код за бърза реакция, за да се свържете към „<xliff:g id="SSID">%1$s</xliff:g>“ и да споделите паролата"</string>
-    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Сканирайте този код за бърза реакция, за да се свържете към „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Сканирайте този код за бърза реакция, за да се свържете към <xliff:g id="SSID">%1$s</xliff:g> и да споделите паролата"</string>
+    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Сканирайте този код за бърза реакция, за да се свържете към <xliff:g id="SSID">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"Кодът за бърза реакция не можа да бъде прочетен. Центрирайте го отново и опитайте пак"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Опитайте отново. Ако проблемът не се отстрани, свържете се с производителя на устройството."</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"Нещо се обърка"</string>
@@ -952,11 +951,11 @@
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"Проверете връзката и опитайте отново"</string>
     <string name="wifi_dpp_choose_network" msgid="6251424431594491691">"Избиране на мрежа"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="6385259857886784285">"За да свържете устройството си, изберете мрежа"</string>
-    <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"Да се добави ли това устройство към „<xliff:g id="SSID">%1$s</xliff:g>“?"</string>
+    <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"Да се добави ли това устройство към <xliff:g id="SSID">%1$s</xliff:g>?"</string>
     <string name="wifi_dpp_wifi_shared_with_device" msgid="5713765471758272471">"Wi-Fi мрежата бе споделена с устройството"</string>
     <string name="wifi_dpp_add_another_device" msgid="3698441567235301565">"Добавяне на друго устройство"</string>
     <string name="wifi_dpp_choose_different_network" msgid="128515107488187050">"Избиране на друга мрежа"</string>
-    <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Устройството не можа да се добави"</string>
+    <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Устройството не бе добавено"</string>
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"Открито е устройство"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"Wi-Fi мрежата се споделя с това устройство…"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"Свързва се…"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобилни данни"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Използване на мобилната мрежа, ако няма достъп до Wi‑Fi"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Използване на Wi‑Fi, ако мобилната мрежа не е налице"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Обаждане през Wi‑Fi. Ако връзката прекъсне, обаждането ще завърши."</string>
@@ -1207,7 +1209,7 @@
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"Вкл. – Екранът няма да се изключи, ако гледате в него"</string>
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"Изключено"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"Предотвратява изключването на екрана ви, ако гледате в него."</string>
-    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Функцията „Адаптивен екран“ използва предната камера, за да види дали някой гледа в екрана. Тя работи на устройството и изображенията не се съхраняват, нито се изпращат до Google."</string>
+    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Функцията „Адаптивен екран“ използва предната камера, за да установи дали някой гледа в екрана. Тя работи на устройството и изображенията не се съхраняват, нито се изпращат до Google."</string>
     <string name="night_display_title" msgid="1305002424893349814">"Нощно осветление"</string>
     <string name="night_display_text" msgid="5330502493684652527">"Функцията „Нощно осветление“ придава кехлибареножълт нюанс на екрана. Това подобрява видимостта му и четенето на него при слаба светлина и може да ви помогне да заспите по-лесно."</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"График"</string>
@@ -1565,7 +1567,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Операторът не позволява добавянето на имена на точки за достъп (APN) от типа „%s“."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Стандартните настройки за името на точката за достъп (APN) се възстановяват."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Възстановяване на стандартни"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Възстановяването на стандартните настройките за името на точката за достъп (APN) завърши."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Възстановяването на стандартните настройки за името на точката за достъп (APN) завърши."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Опции за нулиране"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Мрежата, приложенията или устройството могат да бъдат нулирани"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Нулиране на настройките за Wi-Fi, мобилни данни и Bluetooth"</string>
@@ -2297,7 +2299,7 @@
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
       <item quantity="other">%2$d приложения използват батерията интензивно на заден план</item>
-      <item quantity="one">%1$s приложение използва батерията интензивно на заден план</item>
+      <item quantity="one">Приложението %1$s използва батерията интензивно на заден план</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Тези приложения не могат да се изпълняват на заден план</item>
@@ -2307,9 +2309,9 @@
       <item quantity="other">Да се ограничат ли %1$d приложения?</item>
       <item quantity="one">Да се ограничи ли приложението?</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"За да не изразходвате батерията, спрете използването й на заден план от <xliff:g id="APP">%1$s</xliff:g>. Това приложение може да не работи правилно и е възможно да има забавяне на известията."</string>
-    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"За да не изразходвате батерията, спрете използването й на заден план от тези приложения. Ограничените приложения може да не работят правилно и е възможно да има забавяне на известията.\n\nПриложения:"</string>
-    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"За да не изразходвате батерията, спрете използването й на заден план от тези приложения. Ограничените приложения може да не работят правилно и е възможно да има забавяне на известията.\n\nПриложения:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"За да не изразходвате батерията, спрете използването ѝ на заден план от <xliff:g id="APP">%1$s</xliff:g>. Това приложение може да не работи правилно и е възможно да има забавяне на известията."</string>
+    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"За да не изразходвате батерията, спрете използването ѝ на заден план от тези приложения. Ограничените приложения може да не работят правилно и е възможно да има забавяне на известията.\n\nПриложения:"</string>
+    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"За да не изразходвате батерията, спрете използването ѝ на заден план от тези приложения. Ограничените приложения може да не работят правилно и е възможно да има забавяне на известията.\n\nПриложения:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Ограничаване"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Да се премахне ли ограничението?"</string>
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Това приложение ще може да използва батерията на заден план. Тя може да се изтощи по-рано от очакваното."</string>
@@ -2970,7 +2972,7 @@
     <string name="restriction_wifi_config_summary" msgid="2450206736438594690">"Разрешаване на промяна на настройките за Wi‑Fi и мобилни данни"</string>
     <string name="restriction_bluetooth_config_title" msgid="34551118506640221">"Bluetooth"</string>
     <string name="restriction_bluetooth_config_summary" msgid="5304900222614952895">"Разрешаване на промяна на сдвояванията и настройките на Bluetooth"</string>
-    <string name="restriction_nfc_enable_title" msgid="5146674482590550598">"КБП"</string>
+    <string name="restriction_nfc_enable_title" msgid="5146674482590550598">"NFC"</string>
     <string name="restriction_nfc_enable_summary_config" msgid="405349698260328073">"Разрешаване на обмен на данни, когато <xliff:g id="DEVICE_NAME">%1$s</xliff:g> докосне друго устройство с КБП"</string>
     <string name="restriction_nfc_enable_summary" product="tablet" msgid="3292205836938064931">"Разрешаване на обмен на данни, когато таблетът докосва друго устройство"</string>
     <string name="restriction_nfc_enable_summary" product="default" msgid="226439584043333608">"Разрешаване на обмен на данни, когато телефонът докосва друго устройство"</string>
diff --git a/tests/CarDeveloperOptions/res/values-bn/arrays.xml b/tests/CarDeveloperOptions/res/values-bn/arrays.xml
index 3b10fdc..a76eda3 100644
--- a/tests/CarDeveloperOptions/res/values-bn/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-bn/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"১০ মিনিট"</item>
     <item msgid="6677424950124253938">"৩০ মিনিট"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"কখনই নয়"</item>
+    <item msgid="2517785806387977252">"১৫ সেকেন্ড"</item>
+    <item msgid="6347954399441173672">"৩০ সেকেন্ড"</item>
+    <item msgid="4858305253279921789">"১ মিনিট"</item>
+    <item msgid="8109273437140044073">"২ মিনিট"</item>
+    <item msgid="2788593551142462622">"৫ মিনিট"</item>
+    <item msgid="8012672183888404961">"১০ মিনিট"</item>
+    <item msgid="8271452751594598661">"৩০ মিনিট"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"অবিলম্বে"</item>
     <item msgid="2038544972632026612">"৫ সেকেন্ড"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"১০ মিনিট"</item>
     <item msgid="7258394417241706272">"৩০ মিনিট"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"ছোট"</item>
+    <item msgid="591935967183159581">"ডিফল্ট"</item>
+    <item msgid="1714184661981538355">"বড়"</item>
+    <item msgid="6195563047686707484">"বৃহত্তম"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"স্ক্যান করা হচ্ছে…"</item>
+    <item msgid="5597394826455877834">"কানেক্ট হচ্ছে..."</item>
+    <item msgid="5848277343965362748">"যাচাই করা হচ্ছে…"</item>
+    <item msgid="3391238031431440676">"আইপি অ্যাড্রেস প্রাপ্ত করা হচ্ছে..."</item>
+    <item msgid="5257597310494000224">"কানেক্ট আছে"</item>
+    <item msgid="8472497592913050396">"স্থগিত করা হয়েছে"</item>
+    <item msgid="1228072488815999109">"ডিসকানেক্ট হচ্ছে..."</item>
+    <item msgid="7253087004422991731">"ডিসকানেক্ট করা হয়েছে"</item>
+    <item msgid="4169850917304751227">"অসফল"</item>
+    <item msgid="6266658166690831131">"অবরুদ্ধ"</item>
+    <item msgid="4517230805854909775">"সাময়িকরূপে দুর্বল কানেকশন এড়ানো হচ্ছে"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"স্ক্যান করা হচ্ছে…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> এর সাথে কানেক্ট হচ্ছে…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-এর সাথে যাচাই করা হচ্ছে…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> থেকে আইপি অ্যাড্রেসের তথ্য সংগ্রহ করা হচ্ছে…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> তে কানেক্ট হয়েছে"</item>
+    <item msgid="6600156231416890902">"স্থগিত করা হয়েছে"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> থেকে ডিসকানেক্ট হচ্ছে…"</item>
+    <item msgid="3980154971187953257">"ডিসকানেক্ট করা হয়েছে"</item>
+    <item msgid="2847316776634969068">"অসফল"</item>
+    <item msgid="4390990424746035383">"অবরুদ্ধ"</item>
+    <item msgid="3618248791367063949">"সাময়িকরূপে দুর্বল কানেকশন এড়ানো হচ্ছে"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"পুশ বোতাম"</item>
+    <item msgid="7401896200768713930">"চেনা ডিভাইস থেকে পিন"</item>
+    <item msgid="4526848028011846710">"এই ডিভাইস থেকে পিন"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"কানেক্ট আছে"</item>
     <item msgid="983792611851499732">"আমন্ত্রিত"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"৪"</item>
     <item msgid="3132506679404897150">"৫"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"খারাপ"</item>
+    <item msgid="7882129634982603782">"খারাপ"</item>
+    <item msgid="6457357501905996224">"ঠিকঠাক"</item>
+    <item msgid="405271628162918841">"ভাল"</item>
+    <item msgid="999948812884919584">"খুব ভাল"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"গত ৩০ দিন"</item>
     <item msgid="3211287705232736964">"ব্যবহার চক্র সেট করুন..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"স্ট্যাটিক"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"কোনো কিছুই নয়"</item>
     <item msgid="1464741437353223198">"ম্যানুয়াল"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"পটভূমি্তে অ্যাপ্স চলছে"</item>
     <item msgid="6423861043647911030">"অ্যাক্সেসযোগ্যতার ভলিউম"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"লোকেশন"</item>
+    <item msgid="6656077694190491067">"লোকেশন"</item>
+    <item msgid="8790228218278477369">"লোকেশন"</item>
+    <item msgid="7836406246005211990">"ভাইব্রেট"</item>
+    <item msgid="3951439024549922598">"পরিচিতি পড়ুন"</item>
+    <item msgid="8802152411647068">"পরিচিতি পরিবর্তন করুন"</item>
+    <item msgid="229544934599698735">"কল লগ পড়ুন"</item>
+    <item msgid="7396102294405899613">"কল লগ পরিবর্তন করুন"</item>
+    <item msgid="3597797992398484655">"ক্যালেন্ডার পড়ুন"</item>
+    <item msgid="2705975774250907343">"ক্যালেন্ডারে পরিবর্তন করুন"</item>
+    <item msgid="4668747371441932697">"লোকেশন"</item>
+    <item msgid="1487578921720243646">"বিজ্ঞপ্তি পোস্ট করুন"</item>
+    <item msgid="4636080349724146638">"লোকেশন"</item>
+    <item msgid="673510900286463926">"ফোন করুন"</item>
+    <item msgid="542083422784609790">"SMS/MMS পড়ুন"</item>
+    <item msgid="1033780373029588436">"SMS/MMS লিখুন"</item>
+    <item msgid="5647111115517787488">"SMS/MMS পান"</item>
+    <item msgid="8591105601108455893">"SMS/MMS পান"</item>
+    <item msgid="7730995008517841903">"SMS/MMS পান"</item>
+    <item msgid="2613033109026626086">"SMS/MMS পান"</item>
+    <item msgid="3037159047591081136">"এসএমএস বা এমএমএস পাঠান"</item>
+    <item msgid="4726682243833913568">"SMS/MMS পড়ুন"</item>
+    <item msgid="6555678522277865572">"SMS/MMS লিখুন"</item>
+    <item msgid="6981734935578130884">"সেটিংস সংশোধন করুন"</item>
+    <item msgid="8705854389991425629">"উপরে অঙ্কন করুন"</item>
+    <item msgid="5861356020344153651">"বিজ্ঞপ্তিগুলি অ্যাক্সেস করুন"</item>
+    <item msgid="78432174621628659">"ক্যামেরা"</item>
+    <item msgid="3986116419882154794">"অডিও রেকর্ড"</item>
+    <item msgid="4516840825756409490">"অডিও প্লে করুন"</item>
+    <item msgid="6811712502798183957">"ক্লিপবোর্ড পড়ুন"</item>
+    <item msgid="2780369012602289114">"ক্লিপবোর্ড সংশোধন করুন"</item>
+    <item msgid="2331359440170850868">"মিডিয়া বোতামগুলি"</item>
+    <item msgid="6133599737122751231">"অডিও ফোকাস"</item>
+    <item msgid="6844485713404805301">"মাস্টার ভলিউম"</item>
+    <item msgid="1600379420669104929">"ভয়েস ভলিউম"</item>
+    <item msgid="6296768210470214866">"রিং ভলিউম"</item>
+    <item msgid="510690696071629241">"মিডিয়া ভলিউম"</item>
+    <item msgid="406861638631430109">"অ্যালার্মের ভলিউম"</item>
+    <item msgid="4715864795872233884">"বিজ্ঞপ্তির ভলিউম"</item>
+    <item msgid="2311478519251301183">"ব্লুটুথ এর ভলিউম"</item>
+    <item msgid="5133991377896747027">"জাগ্রত রাখুন"</item>
+    <item msgid="2464189519136248621">"লোকেশন"</item>
+    <item msgid="2062677934050803037">"লোকেশন"</item>
+    <item msgid="1735171933192715957">"ব্যবহারের পরিসংখ্যান পান"</item>
+    <item msgid="1014093788778383554">"মাইক্রোফোন মিউট/সশব্দ করুন"</item>
+    <item msgid="4199297950608622850">"টোস্ট দেখান"</item>
+    <item msgid="2527962435313398821">"মিডিয়াতে অভিক্ষেপ করুন"</item>
+    <item msgid="5117506254221861929">"VPN সক্রিয় করুন"</item>
+    <item msgid="8291198322681891160">"লেখার ওয়ালপেপার"</item>
+    <item msgid="7106921284621230961">"পরিকাঠামোর সহায়তা"</item>
+    <item msgid="4496533640894624799">"স্ক্রিনশটে সহায়তা"</item>
+    <item msgid="2598847264853993611">"ফোনের অবস্থা পড়ুন"</item>
+    <item msgid="9215610846802973353">"ভয়েসমেল যোগ করুন"</item>
+    <item msgid="9186411956086478261">"SIP ব্যবহার করুন"</item>
+    <item msgid="6884763100104539558">"আউটগোয়িং কলের প্রক্রিয়া করুন"</item>
+    <item msgid="125513972170580692">"আঙ্গুলের ছাপ"</item>
+    <item msgid="2556071024281275619">"শরীরের সেন্সরগুলি"</item>
+    <item msgid="617168514928339387">"সেলে সম্প্রচারগুলি পড়ুন"</item>
+    <item msgid="7134693570516523585">"ছদ্ম লোকেশন"</item>
+    <item msgid="7224489175375229399">"সঞ্চয়স্থানে পড়ুন"</item>
+    <item msgid="8472735063903258202">"সঞ্চয়স্থানে লিখুন"</item>
+    <item msgid="4069276819909595110">"স্ক্রিন চালু করুন"</item>
+    <item msgid="1228338896751121025">"অ্যাকাউন্ট পে‍য়ে যান"</item>
+    <item msgid="3181581793459233672">"পটভূমিতে অ্যাপ্স চলছে"</item>
+    <item msgid="2340936043025374076">"অ্যাক্সেসযোগ্যতার ভলিউম"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"স্বল্প"</item>
     <item msgid="4816511817309094890">"মাঝারি"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"কার্সিভ"</item>
     <item msgid="6896773537705206194">"Small Capitals"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"অতি ক্ষুদ্র"</item>
+    <item msgid="5091603983404027034">"ক্ষুদ্র"</item>
+    <item msgid="176844712416932112">"Normal"</item>
+    <item msgid="2784236342175159295">"বড়"</item>
+    <item msgid="218913203203160606">"খুব বড়"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"ডিফল্ট"</item>
     <item msgid="6488643537808152001">"কোনো কিছুই নয়"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"৭৫%"</item>
     <item msgid="6462911487571123954">"১০০%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"অ্যাপের ডিফল্টগুলি ব্যবহার করুন"</item>
+    <item msgid="8611890312638868524">"কালোর উপর সাদা"</item>
+    <item msgid="5891360837786277638">"সাদার উপর কালো"</item>
+    <item msgid="2798457065945456853">"কালোর উপর হলুদ"</item>
+    <item msgid="5799049811524553967">"নীলের উপর হলুদ"</item>
+    <item msgid="3673930830658169860">"কাস্টম"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"আগে থেকে শেয়ার করা কীগুলির সাথে L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"কোনো কিছুই নয়"</item>
     <item msgid="1157046369795346308">"ম্যানুয়াল"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"ডিসকানেক্ট করা হয়েছে"</item>
+    <item msgid="8754480102834556765">"আরম্ভ হচ্ছে..."</item>
+    <item msgid="3351334355574270250">"কানেক্ট হচ্ছে..."</item>
+    <item msgid="8303882153995748352">"কানেক্ট আছে"</item>
+    <item msgid="9135049670787351881">"টাইম-আউট"</item>
+    <item msgid="2124868417182583926">"অসফল"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"জিজ্ঞাসা করুন"</item>
     <item msgid="7718817231348607934">"কখনো অনুমতি দেবেন না"</item>
     <item msgid="8184570120217958741">"সর্বদা অনুমতি দিন"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"সাধারণ"</item>
+    <item msgid="5101233285497327432">"মাঝারি"</item>
+    <item msgid="1555861583162930714">"কম করুন"</item>
+    <item msgid="1719683776264798117">"জটিল"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"স্বাভাবিক"</item>
+    <item msgid="6107138933849816768">"মাঝারি"</item>
+    <item msgid="182695359839047859">"কম করুন"</item>
+    <item msgid="8577246509202964244">"জটিল"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ক্রমাগত"</item>
     <item msgid="167418068739176448">"শীর্ষ অ্যাক্টিভিটি"</item>
@@ -335,10 +474,10 @@
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"অটোমেটিক শনাক্ত হতে দিন"</item>
     <item msgid="773943026484148895">"মিটারিং চালু রাখুন"</item>
-    <item msgid="1008268820118852416">"মিটারিং এর দরকার নেই"</item>
+    <item msgid="1008268820118852416">"মিটারিং বন্ধ রাখুন"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"র‍্যান্ডমাইজ করা MAC (ডিফল্ট)"</item>
+    <item msgid="6545683814310036454">"র‍্যান্ডমাইজ করা MAC ব্যবহার করুন (ডিফল্ট)"</item>
     <item msgid="214234417308375326">"MAC ডিভাইস ব্যবহার করুন"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-bn/strings.xml b/tests/CarDeveloperOptions/res/values-bn/strings.xml
index 8626cab..383284c 100644
--- a/tests/CarDeveloperOptions/res/values-bn/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-bn/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"স্ক্রিনের টেক্সট ছোট বা বড় করুন।"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"আরো ছোট করুন"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"আরো বড় করুন"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"স্যাম্পেল টেক্সট"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"দ্যা ওয়ান্ডারফুল উইজার্ড অফ অজ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"অধ্যায় ১১: দ্যা ওয়ান্ডারফুল এমারল্ড সিটি অফ ওজ"</string>
@@ -128,7 +127,7 @@
     <string name="bluetooth_notif_title" msgid="5090288898529286011">"যুক্ত করার অনুরোধ"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> এর সঙ্গে যুক্ত করতে আলতো চাপুন৷"</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"ফাইল গ্রহণ করা হয়েছে"</string>
-    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"ব্লুটুথের মাধ্যমে পেয়ে থাকা ফাইল"</string>
+    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"ব্লুটুথের মাধ্যমে পাওয়া ফাইল"</string>
     <string name="device_picker" msgid="8345264486071697705">"ব্লুটুথ ডিভাইস বাছুন"</string>
     <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> ব্লুটুথ চালু করতে চাইছে"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> ব্লুটুথ বন্ধ করতে চাইছে"</string>
@@ -713,7 +712,7 @@
     <string name="lockpattern_tutorial_continue_label" msgid="8474690922559443018">"পরবর্তী"</string>
     <string name="lock_setup" msgid="8710689848703935088">"সেটআপ সম্পূর্ণ।"</string>
     <string name="manage_device_admin" msgid="322047441168191695">"ডিভাইস প্রশাসক অ্যাপ"</string>
-    <string name="number_of_device_admins_none" msgid="8519193548630223132">"কোনো সক্রিয় অ্যাপ নেই"</string>
+    <string name="number_of_device_admins_none" msgid="8519193548630223132">"কোনও সক্রিয় অ্যাপ নেই"</string>
     <plurals name="number_of_device_admins" formatted="false" msgid="6445613288828151224">
       <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g>টি অ্যাপ সক্রিয় আছে</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g>টি অ্যাপ সক্রিয় আছে</item>
@@ -889,7 +888,7 @@
     <string name="wifi_menu_remember" msgid="717257200269700641">"নেটওয়ার্ক মনে রাখুন"</string>
     <string name="wifi_menu_forget" msgid="7561140554450163075">"নেটওয়ার্ক ভুলে যান"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"নেটওয়ার্ক পরিবর্তন করুন"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"উপলব্ধ নেটওয়ার্কগুলি দেখতে, ওয়াই-ফাই চালু করুন।"</string>
+    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"উপলভ্য নেটওয়ার্কগুলি দেখতে, ওয়াই-ফাই চালু করুন।"</string>
     <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"ওয়াই-ফাই নেটওয়ার্কগুলির জন্য সার্চ করা হচ্ছে..."</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"ওয়াই-ফাই নেটওয়ার্ক পরিবর্তন করার অনুমতি আপনার নেই।"</string>
     <string name="wifi_more" msgid="3538241640407382185">"আরো"</string>
@@ -971,7 +970,7 @@
     <string name="wifi_unchanged" msgid="6804964646942333992">"(অপরিবর্তিত)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"অনুগ্রহ করে বেছে নিন"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(একাধিক সার্টিফিকেট যোগ করা হয়েছে)"</string>
-    <string name="wifi_use_system_certs" msgid="4794489370929885022">"সিস্টেমের শংসাপত্রগুলি ব্যবহার করুন"</string>
+    <string name="wifi_use_system_certs" msgid="4794489370929885022">"সিস্টেমের সার্টিফিকেটগুলি ব্যবহার করুন"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"প্রদান করবেন না"</string>
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"যাচাই করবেন না"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"কোনও সার্টিফিকেট নির্দিষ্ট করা নেই৷ আপনার কানেকশন ব্যক্তিগত করা হবে না৷"</string>
@@ -1046,7 +1045,7 @@
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"এই সংযোগটি মনে রাখুন"</string>
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"ডিভাইসগুলির জন্য খুঁজুন"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"সার্চ করছে..."</string>
-    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"ডিভাইস পুনঃনামকরণ করুন"</string>
+    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"ডিভাইসের নাম পরিবর্তন করুন"</string>
     <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"পিয়ার ডিভাইসগুলি"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"স্মরণ রাখা গোষ্ঠীসমূহ"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"কানেক্ট করা যায়নি৷"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"ওয়াই-ফাই"</item>
+    <item msgid="2271962426654621656">"মোবাইল"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ওয়াই-ফাই উপলভ্য না থাকলে, মোবাইল নেটওয়ার্ক ব্যবহার করুন"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"মোবাইল নেটওয়ার্ক উপলভ্য না থাকলে, ওয়াই-ফাই ব্যবহার করুন"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ওয়াই-ফাইয়ের মাধ্যমে কল করুন। ওয়াই-ফাই বিঘ্নিত হলে, কল বন্ধ হয়ে যাবে।"</string>
@@ -1524,8 +1526,8 @@
     <string name="storage_wizard_ready_v2_internal_moved_body" msgid="4133133596316768033">"আপনার কন্টেন্ট <xliff:g id="NAME_0">^1</xliff:g>-এ সরানো হয়েছে। \n\nএই <xliff:g id="NAME_1">^2</xliff:g>টি পরিচালনা করতে "<b>"সেটিংস &gt; স্টোরেজে"</b>" যান।"</string>
     <string name="battery_status_title" msgid="8731200319740671905">"ব্যাটারি স্থিতি"</string>
     <string name="battery_level_title" msgid="5207775387973771646">"ব্যাটারি স্তর"</string>
-    <string name="apn_settings" msgid="8130776653826271664">"APNগুলি"</string>
-    <string name="apn_edit" msgid="4350571070853305357">"অ্যাক্সেস পয়েন্ট সম্পাদনা করুন"</string>
+    <string name="apn_settings" msgid="8130776653826271664">"APN"</string>
+    <string name="apn_edit" msgid="4350571070853305357">"অ্যাক্সেস পয়েন্ট এডিট করুন"</string>
     <string name="apn_not_set" msgid="5344235604466825691">"সেট করা নেই"</string>
     <string name="apn_name" msgid="8431432886706852226">"নাম"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
@@ -1544,14 +1546,14 @@
     <string name="apn_auth_type_pap" msgid="6155876141679480864">"PAP"</string>
     <string name="apn_auth_type_chap" msgid="5484031368454788686">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="2977833804460109203">"PAP বা CHAP"</string>
-    <string name="apn_type" msgid="6725346490902871146">"APN এর প্রকার"</string>
+    <string name="apn_type" msgid="6725346490902871146">"APN-এর প্রকার"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"APN প্রোটোকল"</string>
     <string name="apn_roaming_protocol" msgid="6913336248771263497">"APN রোমিং প্রোটোকল"</string>
     <string name="carrier_enabled" msgid="1819916725305365581">"APN সক্ষম/অক্ষম করুন"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN সক্ষম"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN অক্ষম"</string>
     <string name="bearer" msgid="4378444317087536401">"বিয়ারার"</string>
-    <string name="mvno_type" msgid="3150755279048149624">"MVNO প্রকারের"</string>
+    <string name="mvno_type" msgid="3150755279048149624">"MVNO প্রকার"</string>
     <string name="mvno_match_data" msgid="629287305803195245">"MVNO মান"</string>
     <string name="menu_delete" msgid="8646081395424055735">"APN মুছে দিন"</string>
     <string name="menu_new" msgid="7529219814721969024">"নতুন APN"</string>
@@ -1565,8 +1567,8 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"পরিষেবা প্রদানকারী %s এর মতো APN যোগ করার অনুমতি দেয়নি।"</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"ডিফল্ট APN সেটিংস পুনরুদ্ধার করা হচ্ছে।"</string>
     <string name="menu_restore" msgid="3799288817317293115">"ডিফল্টে রিসেট করুন"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"ডিফল্ট APN সেটিংস আবার সেট করা সম্পন্ন হয়েছে।"</string>
-    <string name="reset_dashboard_title" msgid="7084966342252178530">"রিসেটের বিকল্পগুলি"</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"ডিফল্ট APN সেটিংস রিসেট করা হয়েছে।"</string>
+    <string name="reset_dashboard_title" msgid="7084966342252178530">"রিসেট করার বিকল্প"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"নেটওয়ার্ক, অ্যাপ, অথবা ডিভাইস রিসেট করা যায়"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"ওয়াই-ফাই, মোবাইল ও ব্লুটুথ রিসেট"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"এগুলি সহ সমস্ত নেটওয়ার্ক সেটিংস আবার সেট করবে:\n\n"<li>"ওয়াই ফাই "</li>\n<li>"সেলুলার ডাটা "</li>\n<li>"ব্লুটুথ"</li></string>
@@ -1789,7 +1791,7 @@
     <string name="applications_settings_header" msgid="3766501606045211098">"অ্যাপ সেটিংস"</string>
     <string name="install_applications" msgid="7745902974984889179">"অজানা উৎসগুলি"</string>
     <string name="install_applications_title" msgid="8164828577588659496">"সব অ্যাপ্লিকেশান উৎসকে অনুমতি দিন"</string>
-    <string name="recent_app_category_title" msgid="7688788038277126727">"সম্প্রতি চালু করা অ্যাপ"</string>
+    <string name="recent_app_category_title" msgid="7688788038277126727">"সম্প্রতি ব্যবহার করা অ্যাপ"</string>
     <string name="see_all_apps_title" msgid="6435061912110347474">"<xliff:g id="COUNT">%1$d</xliff:g>টি অ্যাপের সবকটি দেখুন"</string>
     <string name="install_all_warning" product="tablet" msgid="4580699862358542727">"অজানা অ্যাপের দ্বারা আপনার ট্যাবলেট এবং ব্যক্তিগত তথ্য আক্রান্ত হওয়ার সম্ভাবনা সবচেয়ে বেশি। এই উৎস থেকে আসা অ্যাপগুলি ইনস্টল করে আপনি সম্মত হচ্ছেন যে সেগুলি ব্যবহারের ফলে আপনার ট্যাবলেটের কোনো ক্ষতি হলে বা ডেটা হারিয়ে গেলে তার জন্য আপনিই দায়ী থাকবেন।"</string>
     <string name="install_all_warning" product="default" msgid="7445839116997296358">"অজানা অ্যাপের দ্বারা আপনার ফোন এবং ব্যক্তিগত তথ্য আক্রান্ত হওয়ার সম্ভাবনা সবচেয়ে বেশি। এই উৎস থেকে আসা অ্যাপগুলি ইনস্টল করে আপনি সম্মত হচ্ছেন যে সেগুলি ব্যবহারের ফলে আপনার ফোনের কোনো ক্ষতি হলে বা ডেটা হারিয়ে গেলে তার জন্য আপনিই দায়ী থাকবেন।"</string>
@@ -1970,7 +1972,7 @@
     <string name="show_ime" msgid="7322620473198763563">"ভার্চুয়াল কীবোর্ড দেখুন"</string>
     <string name="show_ime_summary" msgid="3246628154011464373">"ফিজিক্যাল কীবোর্ড সক্রিয় থাকার সময় এটিকে স্ক্রীনে রাখুন"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"কীবোর্ড শর্টকাট সাহায্যকারী"</string>
-    <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"উপলব্ধ শর্টকাটগুলি দেখান"</string>
+    <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"উপলভ্য শর্টকাটগুলি দেখান"</string>
     <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"অফিসের প্রোফাইলের কীবোর্ড ও টুল"</string>
     <string name="virtual_keyboards_for_work_title" msgid="3968291646938204523">"অফিসের জন্য ভার্চুয়াল কীবোর্ড"</string>
     <string name="default_keyboard_layout" msgid="9171704064451242230">"ডিফল্ট"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"এখনই সিঙ্ক করতে আলতো চাপুন<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"ক্যালেন্ডার"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"পরিচিতিগুলি"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google সমন্বয়ে স্বাগতম!"</font>" \nআপনি যেখানেই থাকুন না কেন আপনার পরিচিতি, অ্যাপয়েন্টমেন্ট, এবং আরো অনেক কিছু অ্যাক্সেস করার জন্য ডেটা সিঙ্ক করতে একটি Google এর একটি পদক্ষেপ।"</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"অ্যাপ্লিকেশান সমন্বয় সেটিংস"</string>
@@ -2669,7 +2671,7 @@
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"সীমায় পৌঁছে বিরতি দেওয়া হয়েছে"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"ডেটা স্বতঃসিঙ্ক"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"ব্যক্তিগত ডেটা স্বতঃসিঙ্ক"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"কার্যের ডাটা স্বতঃ সিঙ্ক"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"কাজের ডেটা নিজে থেকে সিঙ্ক"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"চক্র পরিবর্তন করুন..."</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"ডেটা ব্যবহারের চক্র আবার সেট করতে মাসের দিন:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"এই সময়ের মধ্যে কোনো অ্যাপ্লিকেশান ডেট ব্যবহার করবে না।"</string>
@@ -2900,7 +2902,7 @@
     <string name="user_exit_guest_confirm_title" msgid="4767911571671099844">"অতিথি সরাবেন?"</string>
     <string name="user_exit_guest_confirm_message" msgid="6955182181145748919">"এই সেশনের সব অ্যাপ্লিকেশান ও ডেটা মুছে ফেলা হবে।"</string>
     <string name="user_exit_guest_dialog_remove" msgid="1878866060881115716">"সরান"</string>
-    <string name="user_enable_calling" msgid="864760054792249503">"ফোন কলগুলিকে চালু করুন"</string>
+    <string name="user_enable_calling" msgid="864760054792249503">"ফোন কলের সুবিধা চালু করুন"</string>
     <string name="user_enable_calling_sms" msgid="3450252891736718793">"ফোন কলগুলিকে এবং SMS চালু করবেন?"</string>
     <string name="user_remove_user" msgid="3687544420125911166">"ব্যবহারকারীর অ্যাকাউন্ট মুছে দিন"</string>
     <string name="user_enable_calling_confirm_title" msgid="1141612415529158542">"ফোন কলগুলিকে চালু করবেন?"</string>
@@ -2915,12 +2917,12 @@
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"ট্যাপ করে পে করা"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"এটি কীভাবে কাজ করে"</string>
     <string name="nfc_payment_no_apps" msgid="8844440783395420860">"আপনার ফোন দিয়ে অর্থপ্রদান করুন"</string>
-    <string name="nfc_payment_default" msgid="7869273092463612271">"অর্থপ্রদান ডিফল্ট"</string>
+    <string name="nfc_payment_default" msgid="7869273092463612271">"পেমেন্ট ডিফল্ট"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"সেট করা নেই"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"ডিফল্ট ব্যবহার করুন"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"সবসময়"</string>
-    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"অন্য কোনো অর্থপ্রদান অ্যাপ্লিকেশান খুলে থাকার সময় ব্যতিত"</string>
+    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"অন্য কোনও পেমেন্ট অ্যাপ খোলা না থাকলে"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"ট্যাপ করে অর্থপ্রদান করুন টার্মিন্যালে, এর মাধ্যমে পেমেন্ট করুন:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"টার্মিনালে পেমেন্টের পদ্ধতি"</string>
     <string name="nfc_how_it_works_content" msgid="9174575836302449343">"একটি পেমেন্টের অ্যাপ্লিকেশান সেট-আপ করুন৷ তারপরে যোগাযোগহীন চিহ্ন সহ কোনো টার্মিনালের উপর শুধু আপনার ফোনের পিছনের দিকটি ধরুন৷"</string>
@@ -3358,7 +3360,7 @@
     <string name="notifications_sent_daily" msgid="6874886521964822824">"দৈনিক ~<xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="notifications_sent_weekly" msgid="5859675428990259432">"প্রতি সপ্তাহে ~<xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="notifications_sent_never" msgid="237997329598144638">"কখনও না"</string>
-    <string name="manage_notification_access_title" msgid="5348743662189787547">"বিজ্ঞপ্তির অ্যাক্সেস"</string>
+    <string name="manage_notification_access_title" msgid="5348743662189787547">"বিজ্ঞপ্তি অ্যাক্সেস"</string>
     <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"কর্মস্থলের প্রোফাইলের বিজ্ঞপ্তিতে অ্যাক্সেস ব্লক করা হয়েছে"</string>
     <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"অ্যাপ্লিকেশানগুলি বিজ্ঞপ্তি পড়তে পারে না"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="8496218948429646792">
@@ -3675,7 +3677,7 @@
     <string name="default_app" msgid="8861276008866619872">"(ডিফল্ট)"</string>
     <string name="system_app" msgid="4111402206594443265">"(সিস্টেম)"</string>
     <string name="system_default_app" msgid="1454719098589351197">"(সিস্টেম ডিফল্ট)"</string>
-    <string name="apps_storage" msgid="5658466038269046038">"অ্যাপ্লিকেশনের স্টোরেজ"</string>
+    <string name="apps_storage" msgid="5658466038269046038">"অ্যাপ স্টোরেজ"</string>
     <string name="usage_access" msgid="2023443456361489516">"ব্যবহারের তথ্যে অ্যাক্সেস"</string>
     <string name="permit_usage_access" msgid="3321727608629752758">"ব্যবহার অ্যাক্সেসের অনুমতি"</string>
     <string name="app_usage_preference" msgid="5691545073101551727">"পছন্দের অ্যাপ্লিকেশানগুলির ব্যবহার"</string>
@@ -3707,10 +3709,10 @@
     <string name="high_power_filter_on" msgid="5294209328473386403">"অপ্টিমাইজ করা নেই"</string>
     <string name="high_power_on" msgid="3573501822510580334">"অপ্টিমাইজ করা নেই"</string>
     <string name="high_power_off" msgid="5906679734326490426">"ব্যাটারির ব্যবহার অপ্টিমাইজ করা হচ্ছে"</string>
-    <string name="high_power_system" msgid="739584574711292753">"ব্যাটারি অপ্টিমাইজেশান উপলব্ধ নেই"</string>
+    <string name="high_power_system" msgid="739584574711292753">"ব্যাটারি অপ্টিমাইজেশান উপলভ্য নেই"</string>
     <string name="high_power_desc" msgid="333756885680362741">"ব্যাটারি অপ্টিমাইজেশান প্রয়োগ করবেন না। আরো দ্রুত আপনার ব্যাটারির চার্জ শেষ হয়ে যেতে পারে৷"</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"অ্যাপটিকে সবসময় পটভূমিতে চালু রাখবেন?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> কে সবসময় পটভূমিতে চালু রাখলে ব্যাটারির ক্ষমতা কমে যেতে পারে। \n\nআপনি পরে সেটিংস &gt; অ্যাপ্স ও বিজ্ঞপ্তি থেকে এটি পরিবর্তন করতে পারেন।"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g>-কে সবসময় পটভূমিতে চালু রাখলে ব্যাটারি বেশিদিন নাও টিকতে পারে। \n\nআপনি পরে সেটিংস &gt; অ্যাপ ও বিজ্ঞপ্তি বিকল্প থেকে এটি পরিবর্তন করতে পারেন।"</string>
     <string name="battery_summary" msgid="4345690800899981339">"শেষ বার সম্পূর্ণ চার্জ করার পর থেকে <xliff:g id="PERCENTAGE">%1$s</xliff:g> ব্যবহার হয়েছে"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"শক্তি পরিচালনা"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"শেষ সম্পূর্ণ চার্জ করার সময় থেকে কোনো ব্যাটারি ব্যবহার করা হয়নি"</string>
@@ -4069,7 +4071,7 @@
     <string name="premium_sms_warning" msgid="7604011651486294515">"প্রিমিয়াম SMS এর জন্য অর্থ খরচ হতে পারে এবং আপনার পরিষেবা প্রদানকারীর বিলে যোগ করা হবে৷ আপনি যদি কোনো অ্যাপ্লিকেশানের জন্য অনুমতি সক্ষম করেন তাহলে আপনি সেই অ্যাপ্লিকেশানটি ব্যবহার করে প্রিমিয়াম SMS পাঠাতে পারবেন৷"</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"প্রিমিয়াম SMS অ্যাক্সেস"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"বন্ধ আছে"</string>
-    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g> এর সাথে কানেক্ট আছে"</string>
+    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g>-এ কানেক্ট আছে"</string>
     <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"একাধিক ডিভাইসের সাথে কানেক্ট আছে"</string>
     <string name="demo_mode" msgid="3831081808592541104">"সিস্টেম UI ডেমো মোড"</string>
     <string name="dark_ui_mode" msgid="703844190192599217">"থিম"</string>
@@ -4153,7 +4155,7 @@
     <string name="instant_apps_settings" msgid="879003203555847537">"ঝটপট অ্যাপের পছন্দগুলি"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"ইনস্টল করা অ্যাপ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"আপনার স্টোরেজ এখন স্টোরেজ ম্যানেজারের দ্বারা পরিচালিত হচ্ছে"</string>
-    <string name="account_for_section_header" msgid="5975241715840642563">"<xliff:g id="USER_NAME">%1$s</xliff:g> এর অ্যাকাউন্ট"</string>
+    <string name="account_for_section_header" msgid="5975241715840642563">"<xliff:g id="USER_NAME">%1$s</xliff:g>-এর অ্যাকাউন্ট"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"কনফিগার"</string>
     <string name="auto_sync_account_title" msgid="2394463123733529506">"ডেটা অটোমেটিক সিঙ্ক হবে"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"ব্যাক্তিগত ডেটা অটোমেটিক সিঙ্ক করুন"</string>
@@ -4236,7 +4238,7 @@
     <string name="storage_photos_videos" msgid="1890829312367477559">"ফটো এবং ভিডিওগুলি"</string>
     <string name="storage_music_audio" msgid="3661289086715297149">"মিউজিক ও অডিও"</string>
     <string name="storage_games" msgid="7740038143749092373">"গেম"</string>
-    <string name="storage_other_apps" msgid="3202407095387420842">"অন্যান্য অ্যাপ্লিকেশান"</string>
+    <string name="storage_other_apps" msgid="3202407095387420842">"অন্যান্য অ্যাপ"</string>
     <string name="storage_files" msgid="2087824267937487880">"ফাইল"</string>
     <string name="storage_size_large_alternate" msgid="1317796542509105857">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
     <string name="storage_volume_total" msgid="5021484171514159913">"<xliff:g id="TOTAL">%1$s</xliff:g> এর মধ্যে ব্যবহার হয়েছে"</string>
@@ -4425,7 +4427,7 @@
     <string name="preferred_network_mode_summary" msgid="388957154320426335">"নেটওয়ার্ক অপারেটিং মোড পরিবর্তন করুন"</string>
     <string name="preferred_network_mode_dialogtitle" msgid="5448698073828567428">"পছন্দের নেটওয়ার্ক"</string>
     <string name="carrier_settings_euicc" msgid="7723199738771996732">"পরিষেবা প্রদানকারী"</string>
-    <string name="carrier_settings_version" msgid="2657511289029828425">"সেটিংসের ভার্সন"</string>
+    <string name="carrier_settings_version" msgid="2657511289029828425">"সেটিংস ভার্সন"</string>
     <string name="call_category" msgid="3418535202893644015">"কল করা হচ্ছে"</string>
     <string name="video_calling_settings_title" msgid="8011841542502156112">"পরিষেবা প্রদানকারীর ভিডিও কলিং"</string>
     <string name="cdma_system_select_title" msgid="5620679296177526467">"সিস্টেমের বেছে নেওয়া"</string>
@@ -4471,7 +4473,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"গোপনীয়তা"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"অনুমতি, অ্যাকাউন্ট অ্যাক্টিভিটি, ব্যক্তিগত ডেটা"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"সরান"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"রাখুন"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"সাজেশনটি সরাতে চান?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"সাজেশন সরিয়ে দেওয়া হয়েছে"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"আগের অবস্থায় ফিরে যান"</string>
diff --git a/tests/CarDeveloperOptions/res/values-bs/arrays.xml b/tests/CarDeveloperOptions/res/values-bs/arrays.xml
index 1890771..02ebef2 100644
--- a/tests/CarDeveloperOptions/res/values-bs/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-bs/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"radi u pozadini"</item>
     <item msgid="6423861043647911030">"jačina zvuka za pristupačnost"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokacija"</item>
+    <item msgid="6656077694190491067">"Lokacija"</item>
+    <item msgid="8790228218278477369">"Lokacija"</item>
+    <item msgid="7836406246005211990">"Vibriranje"</item>
+    <item msgid="3951439024549922598">"Čitaj kontakte"</item>
+    <item msgid="8802152411647068">"Promijeni kontakte"</item>
+    <item msgid="229544934599698735">"Čitaj zapisnik poziva"</item>
+    <item msgid="7396102294405899613">"Promijeni zapisnik poziva"</item>
+    <item msgid="3597797992398484655">"Čitanje kalendara"</item>
+    <item msgid="2705975774250907343">"Promijeni kalendar"</item>
+    <item msgid="4668747371441932697">"Lokacija"</item>
+    <item msgid="1487578921720243646">"Objavi obavještenje"</item>
+    <item msgid="4636080349724146638">"Lokacija"</item>
+    <item msgid="673510900286463926">"Pozovi telefon"</item>
+    <item msgid="542083422784609790">"Pročitaj SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Piši SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Primi SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Primi SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Primi SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Primi SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Slanje SMS-a/MMS-a"</item>
+    <item msgid="4726682243833913568">"Pročitaj SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Piši SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Promijeni postavke"</item>
+    <item msgid="8705854389991425629">"Crtaj preko"</item>
+    <item msgid="5861356020344153651">"Pristup obavještenjima"</item>
+    <item msgid="78432174621628659">"Fotoaparat"</item>
+    <item msgid="3986116419882154794">"Snimi zvuk"</item>
+    <item msgid="4516840825756409490">"Reproduciraj zvuk"</item>
+    <item msgid="6811712502798183957">"Pročitaj sadržaj međumemorije"</item>
+    <item msgid="2780369012602289114">"Promijeni međumemoriju"</item>
+    <item msgid="2331359440170850868">"Dugmad za medije"</item>
+    <item msgid="6133599737122751231">"Audio fokus"</item>
+    <item msgid="6844485713404805301">"Centar za upravljanje zvukom"</item>
+    <item msgid="1600379420669104929">"Jačina glasa"</item>
+    <item msgid="6296768210470214866">"Jačina zvuka zvona"</item>
+    <item msgid="510690696071629241">"Jačina zvuka medija"</item>
+    <item msgid="406861638631430109">"Jačina zvuka alarma"</item>
+    <item msgid="4715864795872233884">"Jačina zvuka za obavještenja"</item>
+    <item msgid="2311478519251301183">"Jačina zvuka za Bluetooth vezu"</item>
+    <item msgid="5133991377896747027">"Drži aktivnim"</item>
+    <item msgid="2464189519136248621">"Lokacija"</item>
+    <item msgid="2062677934050803037">"Lokacija"</item>
+    <item msgid="1735171933192715957">"Preuzmi statistiku korištenja"</item>
+    <item msgid="1014093788778383554">"Isključi/uključi mikrofon"</item>
+    <item msgid="4199297950608622850">"Prikaži toast poruku"</item>
+    <item msgid="2527962435313398821">"Projektuj sadržaj medija"</item>
+    <item msgid="5117506254221861929">"Aktiviraj VPN"</item>
+    <item msgid="8291198322681891160">"Pozadinska slika za pisanje"</item>
+    <item msgid="7106921284621230961">"Asistent za podešavanje strukture"</item>
+    <item msgid="4496533640894624799">"Asistent za snimak ekrana"</item>
+    <item msgid="2598847264853993611">"Čitaj podatke o stanju telefona"</item>
+    <item msgid="9215610846802973353">"Dodaj govornu poštu"</item>
+    <item msgid="9186411956086478261">"Koristi SIP"</item>
+    <item msgid="6884763100104539558">"Procesiraj odlazni poziv"</item>
+    <item msgid="125513972170580692">"Otisak prsta"</item>
+    <item msgid="2556071024281275619">"Tjelesni senzori"</item>
+    <item msgid="617168514928339387">"Čita informacije info servisā"</item>
+    <item msgid="7134693570516523585">"Lažna lokacija"</item>
+    <item msgid="7224489175375229399">"Čitaj sadržaj pohrane"</item>
+    <item msgid="8472735063903258202">"Piši u pohranu"</item>
+    <item msgid="4069276819909595110">"Uključi ekran"</item>
+    <item msgid="1228338896751121025">"Pregledaj račune"</item>
+    <item msgid="3181581793459233672">"Radi u pozadini"</item>
+    <item msgid="2340936043025374076">"Jačina zvuka za pristupačnost"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Kratko"</item>
     <item msgid="4816511817309094890">"Srednja"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Nikada ne dozvoli"</item>
     <item msgid="8184570120217958741">"Uvijek dozvoli"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normalno"</item>
+    <item msgid="5101233285497327432">"Umjerena"</item>
+    <item msgid="1555861583162930714">"Nisko"</item>
+    <item msgid="1719683776264798117">"Kritična"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normalna"</item>
+    <item msgid="6107138933849816768">"Umjerena"</item>
+    <item msgid="182695359839047859">"Nisko"</item>
+    <item msgid="8577246509202964244">"Kritično"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Uporna"</item>
     <item msgid="167418068739176448">"Maksimalna aktivnost"</item>
@@ -377,9 +453,9 @@
     <item msgid="6248998242443333892">"Keširano (prazno)"</item>
   </string-array>
   <string-array name="color_picker">
-    <item msgid="3151827842194201728">"Teal"</item>
+    <item msgid="3151827842194201728">"Plavozelena"</item>
     <item msgid="3228505970082457852">"Plava"</item>
-    <item msgid="6590260735734795647">"Indigo"</item>
+    <item msgid="6590260735734795647">"Indigoplava"</item>
     <item msgid="3521763377357218577">"Ljubičasta"</item>
     <item msgid="5932337981182999919">"Ružičasta"</item>
     <item msgid="5642914536624000094">"Crvena"</item>
diff --git a/tests/CarDeveloperOptions/res/values-bs/strings.xml b/tests/CarDeveloperOptions/res/values-bs/strings.xml
index 372210d..0bcb451 100644
--- a/tests/CarDeveloperOptions/res/values-bs/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-bs/strings.xml
@@ -84,8 +84,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Smanjite ili povećajte tekst na ekranu."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Napravi manji"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Napravi veći"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Uzorak teksta"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Čarobnjak iz Oza"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Poglavlje 11: Smaragdni grad Oz"</string>
@@ -366,9 +365,9 @@
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"Ništa"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"Npr. Edinov Android."</string>
-    <string name="user_info_settings_title" msgid="1125111518759995748">"Podaci o korisniku"</string>
+    <string name="user_info_settings_title" msgid="1125111518759995748">"Informacije o korisniku"</string>
     <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"Prikazuj informacije o profilu na zaključ. ekranu"</string>
-    <string name="profile_info_settings_title" msgid="4855892878512562551">"Podaci o profilu"</string>
+    <string name="profile_info_settings_title" msgid="4855892878512562551">"Informacije o profilu"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"Računi"</string>
     <string name="location_settings_title" msgid="2707201457572301030">"Lokacija"</string>
     <string name="location_settings_master_switch_title" msgid="3108016866082816733">"Koristi lokaciju"</string>
@@ -445,8 +444,8 @@
     <string name="security_settings_fingerprint_enroll_introduction_title" msgid="889558002683900544">"Otključavanje otiskom prsta"</string>
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7915504118657864429">"Koristite otisak prsta"</string>
     <string name="security_settings_fingerprint_enroll_introduction_message" msgid="5586198131986682472">"Samo dodirnite senzor za otisak prsta da otključate telefon, odobrite kupovinu ili da se prijavite u aplikaciju. Pazite čije otiske prsta dodajete. Samo jedan dodani otisak može izvršiti sve navedeno.\n\nNapomena: Vaš otisak prsta može biti manje siguran od jakog uzorka ili PIN-a."</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1640839304679275468">"Pomoću otiska prsta otključavajte telefon ili odobravajte kupovinu.\n\nNapomena: otisak prsta ne možete koristiti za otključavanje ovog uređaja. Za više informacija, obratite se administratoru svoje organizacije"</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6734490666593320711">"Pomoću otiska prsta otključavajte telefon ili odobravajte kupovinu.\n\nNapomena: otisak vašeg prsta može biti manje siguran od jakog uzorka ili PIN-a."</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1640839304679275468">"Koristite otisak prsta da otključate telefon ili odobrite kupovinu.\n\nNapomena: otisak prsta ne možete koristiti za otključavanje ovog uređaja. Za više informacija, obratite se administratoru svoje organizacije"</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6734490666593320711">"Koristite otisak prsta da otključate telefon ili odobrite kupovinu.\n\nNapomena: otisak vašeg prsta može biti manje siguran od jakog uzorka ili PIN-a."</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="9168637333731599827">"Otkaži"</string>
     <string name="security_settings_fingerprint_enroll_introduction_continue" msgid="271662150372486535">"Nastavi"</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="756928427429893070">"Preskoči"</string>
@@ -735,7 +734,7 @@
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> aktivnih aplikacija</item>
     </plurals>
     <string name="manage_trust_agents" msgid="8129970926213142261">"Pouzdani agenti"</string>
-    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Da ovo koristite, prvo postavite zaključavanje ekrana"</string>
+    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Da biste ovo koristili, prvo postavite zaključavanje ekrana"</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"Nema"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> aktivni pouzdani agent</item>
@@ -747,7 +746,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Upravljajte vezama, postavite ime uređaja i vidljivost"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Upariti sa uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Upariti s uređajem <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Kod za Bluetooth uparivanje"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Upišite kod za uparivanje, zatim pritisnite Return ili Enter"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"PIN sadrži slova ili simbole"</string>
@@ -769,7 +768,7 @@
     <string name="bluetooth_preference_paired_dialog_internet_option" msgid="3693599743477470469">"Internet veza"</string>
     <string name="bluetooth_preference_paired_dialog_keyboard_option" msgid="4627309436489645755">"Tastatura"</string>
     <string name="bluetooth_preference_paired_dialog_contacts_option" msgid="5290994459307558039">"Kontakti i historija poziva"</string>
-    <string name="bluetooth_pairing_dialog_title" msgid="7900515495932064945">"Upariti sa ovim uređajem?"</string>
+    <string name="bluetooth_pairing_dialog_title" msgid="7900515495932064945">"Upariti s ovim uređajem?"</string>
     <string name="bluetooth_pairing_dialog_sharing_phonebook_title" msgid="7395493311980018460">"Podijeliti telefonski imenik?"</string>
     <string name="bluetooth_pairing_dialog_contants_request" msgid="2103132762434487717">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> želi pristupiti vašim kontaktima i historiji poziva."</string>
     <string name="bluetooth_pairing_dialog_paring_request" msgid="5513953935086446387">"Uređaj <xliff:g id="DEVICE_NAME">%1$s</xliff:g> želi uparivanje putem Bluetootha. Nakon povezivanja imat će pristup vašim kontaktima i historiji poziva."</string>
@@ -844,7 +843,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Uključite NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC razmjenjuje podatke između ovog i drugih uređaja ili ciljeva u blizini, kao što su terminali za plaćanje, čitači pristupa i interaktivni oglasi ili oznake."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Osiguraj NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Dozvoli NFC plaćanje i korištenje u javnom prijevozu samo kada je ekran otključan"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Dozvoli korištenje NFC-a za plaćanje i u javnom prijevozu samo kada je ekran otključan"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Spremno za prijenos sadržaja aplikacije putem NFC-a"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Isključeno"</string>
@@ -954,7 +953,7 @@
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Nasumično odabrani MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Dodajte uređaj"</string>
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Centrirajte QR kôd ispod da uređaj dodate na mrežu “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Skeniraj QR kôd"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Skenirajte QR kôd"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Centrirajte QR kôd ispod da se povežete na mrežu “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Skenirajte QR kôd da se pridružite WiFi mreži"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Dijeljenje WiFi mreže"</string>
@@ -1121,7 +1120,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"WiFi"</item>
+    <item msgid="2271962426654621656">"Mobilna mreža"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ako WiFi nije dostupan, koristi mobilnu mrežu"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ako mobilna mreža nije dostupna, koristi WiFi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Pozivanje putem WiFi-ja. Ako se izgubi WiFi, poziv će se prekinuti."</string>
@@ -1129,7 +1131,7 @@
     <string name="wifi_calling_off_explanation_2" msgid="8648609693875720408"></string>
     <string name="emergency_address_title" msgid="5779915349686787024">"Adresa za hitne slučajeve"</string>
     <string name="emergency_address_summary" msgid="478668478569851714">"Koristi se kao vaša lokacija prilikom hitnog poziva putem Wi‑Fi mreže"</string>
-    <string name="private_dns_help_message" msgid="7633526525131196650"><annotation id="url">"Saznajte više"</annotation>" o funkcijama Privatnog DNS-a"</string>
+    <string name="private_dns_help_message" msgid="7633526525131196650"><annotation id="url">"Saznajte više"</annotation>" o funkcijama privatnog DNS-a"</string>
     <string name="wifi_calling_pref_managed_by_carrier" msgid="5458050015417972072">"Postavkom upravlja mobilni operater"</string>
     <string name="wifi_calling_settings_activation_instructions" msgid="2863642668648110908">"Aktivirajte pozivanje putem WiFi-ja"</string>
     <string name="wifi_calling_turn_on" msgid="1212277809455062043">"Uključite pozivanje putem WiFi-ja"</string>
@@ -1546,7 +1548,7 @@
     <string name="apn_settings" msgid="8130776653826271664">"APN-ovi"</string>
     <string name="apn_edit" msgid="4350571070853305357">"Uredi pristupnu tačku"</string>
     <string name="apn_not_set" msgid="5344235604466825691">"Nije postavljeno"</string>
-    <string name="apn_name" msgid="8431432886706852226">"Ime"</string>
+    <string name="apn_name" msgid="8431432886706852226">"Naziv"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
     <string name="apn_http_proxy" msgid="8816906767987944465">"Proksi"</string>
     <string name="apn_http_port" msgid="5789193688960075486">"Priključak"</string>
@@ -1564,8 +1566,8 @@
     <string name="apn_auth_type_chap" msgid="5484031368454788686">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="2977833804460109203">"PAP ili CHAP"</string>
     <string name="apn_type" msgid="6725346490902871146">"Vrsta APN-a"</string>
-    <string name="apn_protocol" msgid="1240197323563960912">"APN protokol"</string>
-    <string name="apn_roaming_protocol" msgid="6913336248771263497">"Protokol za APN roming"</string>
+    <string name="apn_protocol" msgid="1240197323563960912">"Protokol APN-a"</string>
+    <string name="apn_roaming_protocol" msgid="6913336248771263497">"Protokol APN-a za roming"</string>
     <string name="carrier_enabled" msgid="1819916725305365581">"Omogući/onemogući APN"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN omogućen"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN onemogućen"</string>
@@ -1584,7 +1586,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Operater ne dozvoljava dodavanje APN-a tipa %s."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Vraćanje zadanih postavki za APN."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Vrati na zadano"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Vraćanje zadanih postavki za APN dovršeno."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Vraćanje zadanih postavki za APN je završeno."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Opcije vraćanja na zadano"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Mreža, aplikacije ili uređaj mogu se vratiti na zadano"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Vrati WiFi, mobilnu i Bluetooth vezu na zadano"</string>
@@ -1603,7 +1605,7 @@
     <string name="master_clear_title" msgid="1560712943955904673">"Izbriši sve podatke (vraćanje na fabričke postavke)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Potpuno izbriši sve podatke"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Na ovaj način će se izbrisati svi podaci "<b>"interne memorije"</b>" tableta, uključujući:\n\n"<li>"Google račun"</li>\n<li>"sistemske i aplikacijske podatke i postavke"</li>\n<li>"preuzete aplikacije"</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Na ovaj način će se izbrisati svi podaci "<b>"interne memorije"</b>" telefona, uključujući:\n\n"<li>"Google račun"</li>\n<li>"sistemske i aplikacijske podatke i postavke"</li>\n<li>"preuzete aplikacije"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Na ovaj način će se izbrisati svi podaci "<b>"interne memorije"</b>" telefona, uključujući:\n\n"<li>"vaš Google račun"</li>\n<li>"podatke i postavke sistema i aplikacija"</li>\n<li>"preuzete aplikacije"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"Trenutno ste prijavljeni u sljedeće račune:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"Drugi korisnici su prisutni na ovom uređaju.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"muziku"</li>\n<li>"fotografije"</li>\n<li>"ostale korisničke podatke"</li></string>
@@ -1664,7 +1666,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Umetnite SIM karticu i ponovo pokrenite uređaj"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Povežite se na Internet"</string>
     <string name="location_title" msgid="8664674161765477168">"Moja lokacija"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Lokacija za profil za Work"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Lokacija za poslovni profil"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Odobrenje za aplikaciju"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Lokacija je isključena"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1680,9 +1682,9 @@
     <string name="location_low_battery_use" msgid="5030448574501435888">"Niska potrošnja baterije"</string>
     <string name="location_scanning_screen_title" msgid="7663329319689413454">"Skeniranje WiFi-ja i Bluetootha"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Skeniranje WiFi mreže"</string>
-    <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Dozvolite aplikacijama i uslugama da skeniraju WiFi mreže u svakom trenutku, čak i kada je WiFi mreža isključena. Ovim se naprimjer mogu poboljšati funkcije i usluge zasnovane na lokaciji."</string>
+    <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Dozvolite aplikacijama i uslugama da skeniraju WiFi mreže u svakom trenutku, čak i kada je WiFi mreža isključena. Ovim se, naprimjer, mogu poboljšati funkcije i usluge zasnovane na lokaciji."</string>
     <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Skeniranje Bluetootha"</string>
-    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Dozvolite aplikacijama i uslugama da skeniraju uređaje u blizini u svakom trenutku, čak i kada je Bluetooth isključen. Ovim se naprimjer mogu poboljšati funkcije i usluge zasnovane na lokaciji."</string>
+    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Dozvolite aplikacijama i uslugama da skeniraju uređaje u blizini u svakom trenutku, čak i kada je Bluetooth isključen. Ovim se, naprimjer, mogu poboljšati funkcije i usluge zasnovane na lokaciji."</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"Usluge lokacije za posao"</string>
     <string name="location_network_based" msgid="1535812159327454835">"Lokacija Wi-Fi i mob. mreža"</string>
     <string name="location_neighborhood_level" msgid="8459352741296587916">"Omogućava da aplikacije koriste Googleovu uslugu lokacije kako bi brže procijenile vašu lokaciju. Anonimni podaci o lokaciji se prikupljaju i šalju Googleu."</string>
@@ -2187,7 +2189,7 @@
     <string name="captioning_edge_color" msgid="4330622137047993780">"Boja rubova"</string>
     <string name="captioning_edge_type" msgid="4414946407430588162">"Vrsta rubova"</string>
     <string name="captioning_typeface" msgid="7893208796949341767">"Porodica fontova"</string>
-    <string name="captioning_preview_text" msgid="4877753964772618049">"Stilovi će izgledati ovako"</string>
+    <string name="captioning_preview_text" msgid="4877753964772618049">"Titlovi će izgledati ovako"</string>
     <string name="captioning_preview_characters" msgid="6469599599352973561">"Aa"</string>
     <string name="locale_default" msgid="910074908458214054">"Zadano"</string>
     <string name="color_title" msgid="132875486061816584">"Boja"</string>
@@ -2305,13 +2307,13 @@
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Poboljšajte vijek trajanja baterije uređaja"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Uključite Upravitelja baterije"</string>
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Uključite Uštedu baterije"</string>
-    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Baterija bi vam se mogla isprazniti prije nego obično"</string>
+    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Baterija bi vam se mogla isprazniti brže nego obično"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Uključena je Ušteda baterije"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Neke funkcije mogu biti ograničene"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Koristili ste telefon više nego obično"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Koristili ste tablet više nego obično"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Koristili ste uređaj više nego obično"</string>
-    <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Moguće je da će se baterija isprazniti brže nego obično"</string>
+    <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Baterija bi vam se mogla isprazniti brže nego obično"</string>
     <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"Vaš telefon je korišten više nego obično. Baterija se može istrošiti brže nego što je predviđeno.\n\nNajviše korištene aplikacije od potpunog punjenja:"</string>
     <string name="battery_tip_dialog_message" product="tablet" msgid="6489981050645444068">"Vaš tablet je korišten više nego obično. Baterija se može istrošiti brže nego što je predviđeno.\n\nNajviše korištene aplikacije od potpunog punjenja:"</string>
     <string name="battery_tip_dialog_message" product="device" msgid="6348123094674390337">"Vaš uređaj je korišten više nego obično. Baterija se može istrošiti brže nego što je predviđeno.\n\nNajviše korištene aplikacije od potpunog punjenja:"</string>
@@ -2345,13 +2347,13 @@
     <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Da uštedite bateriju, spriječite ove aplikacije da koriste bateriju u pozadini. Moguće je da aplikacije s ograničenjem neće raditi pravilno i da će obavještenja kasniti.\n\nAplikacije:"</string>
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Da uštedite bateriju, spriječite ove aplikacije da koriste bateriju u pozadini. Moguće je da aplikacije s ograničenjem neće raditi pravilno i da će obavještenja kasniti.\n\nAplikacije:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Ograniči"</string>
-    <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Želite ukloniti ograničenje?"</string>
+    <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Ukloniti ograničenje?"</string>
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Ova aplikacija će moći koristiti bateriju u pozadini. Vaša baterija bi se mogla isprazniti prije nego što očekujete."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Ukloni"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Otkaži"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Vaše aplikacije troše bateriju uobičajenom brzinom. Ako prebrzo troše bateriju, telefon će predložiti radnje koje možete preduzeti.\n\nUvijek možete uključiti Uštedu baterije ako je baterija skoro prazna."</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Vaše aplikacije troše bateriju uobičajenom brzinom. Ako prebrzo troše bateriju, tablet će predložiti radnje koje možete preduzeti.\n\nUvijek možete uključiti Uštedu baterije ako je baterija skoro prazna."</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Vaše aplikacije troše bateriju uobičajenom brzinom. Ako prebrzo troše bateriju, uređaj će predložiti radnje koje možete preduzeti.\n\nUvijek možete uključiti Uštedu baterije ako je baterija skoro prazna."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Vaše aplikacije troše bateriju uobičajenom brzinom. Ako aplikacije budu prebrzo trošile bateriju, telefon će predložiti radnje koje možete preduzeti.\n\nUvijek možete uključiti Uštedu baterije ako je baterija skoro prazna."</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Vaše aplikacije troše bateriju uobičajenom brzinom. Ako aplikacije budu prebrzo trošile bateriju, tablet će predložiti radnje koje možete preduzeti.\n\nUvijek možete uključiti Uštedu baterije ako je baterija skoro prazna."</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Vaše aplikacije troše bateriju uobičajenom brzinom. Ako aplikacije budu prebrzo trošile bateriju, uređaj će predložiti radnje koje možete preduzeti.\n\nUvijek možete uključiti Uštedu baterije ako je baterija skoro prazna."</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"Upravitelj baterije"</string>
     <string name="smart_battery_title" msgid="4919670408532804351">"Automatsko upravljanje aplikacijama"</string>
     <string name="smart_battery_summary" msgid="640027046471198174">"Ograničite upotrebu baterije za aplikacije koje ne koristite često"</string>
@@ -2773,7 +2775,7 @@
     <string name="data_usage_disclaimer" msgid="4683321532922590425">"Obračun podataka operatera može se razlikovati od obračuna vašeg uređaja."</string>
     <string name="cryptkeeper_emergency_call" msgid="4625420047524693116">"Poziv za hitne slučajeve"</string>
     <string name="cryptkeeper_return_to_call" msgid="4433942821196822815">"Vrati se na poziv"</string>
-    <string name="vpn_name" msgid="3538818658670774080">"Ime"</string>
+    <string name="vpn_name" msgid="3538818658670774080">"Naziv"</string>
     <string name="vpn_type" msgid="6389116710008658550">"Vrsta"</string>
     <string name="vpn_server" msgid="5216559017318406820">"Adresa servera"</string>
     <string name="vpn_mppe" msgid="4027660356538086985">"PPP šifriranje (MPPE)"</string>
@@ -2823,15 +2825,15 @@
     <string name="vpn_create" msgid="2477570636472897359">"Dodaj VPN profil"</string>
     <string name="vpn_menu_edit" msgid="8061437799373333593">"Uredi profil"</string>
     <string name="vpn_menu_delete" msgid="4128305800374946877">"Izbriši profil"</string>
-    <string name="vpn_menu_lockdown" msgid="6951452279924808089">"Uvijek aktivni VPN"</string>
-    <string name="vpn_no_vpns_added" msgid="6616183541896197147">"Nema dodanih VPN-ova"</string>
+    <string name="vpn_menu_lockdown" msgid="6951452279924808089">"Uvijek aktivan VPN"</string>
+    <string name="vpn_no_vpns_added" msgid="6616183541896197147">"Nije dodan nijedan VPN"</string>
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"Ostanite stalno povezani na VPN"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"Ova aplikacija ne podržava ovu funkciju"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"Funkcija Uvijek uključeno je aktivna"</string>
     <string name="vpn_require_connection" msgid="5413746839457797350">"Blokiraj veze bez VPN-a"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"Treba li zahtijevati VPN vezu?"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"Odaberite VPN profil s kojim će uvijek biti uspostavljena veza. Mrežni saobraćaj će biti dopušten samo kad je uspostavljena veza s tim VPN-om."</string>
-    <string name="vpn_lockdown_none" msgid="3789288793603394679">"Nema"</string>
+    <string name="vpn_lockdown_none" msgid="3789288793603394679">"Ništa"</string>
     <string name="vpn_lockdown_config_error" msgid="8761770968704589885">"Uvijek aktivni VPN zahtijeva IP adresu i za server i za DNS."</string>
     <string name="vpn_no_network" msgid="8313250136194588023">"Nema mrežne veze. Pokušajte ponovo kasnije."</string>
     <string name="vpn_disconnected" msgid="4597953053220332539">"Isključeni ste iz VPN-a"</string>
@@ -2853,7 +2855,7 @@
     <string name="n_cacrts" msgid="7539893176217891549">"%d CA certifikati"</string>
     <string name="user_credential_title" msgid="6237611303219831419">"Detalji o akreditivima"</string>
     <string name="user_credential_removed" msgid="6243576567538844852">"Uklonjeni akreditiv: <xliff:g id="CREDENTIAL_NAME">%s</xliff:g>"</string>
-    <string name="user_credential_none_installed" msgid="4129252817676332368">"Nisu instalirani korisnički akreditivi"</string>
+    <string name="user_credential_none_installed" msgid="4129252817676332368">"Nije instaliran nijedan korisnički akreditiv"</string>
     <string name="spellcheckers_settings_title" msgid="1687210427248364327">"Provjera pravopisa"</string>
     <string name="spellcheckers_settings_for_work_title" msgid="7461318390801573022">"Provjera pravopisa za posao"</string>
     <string name="current_backup_pw_prompt" msgid="8914812770233159610">"Ovdje unesite trenutnu lozinku za sigurnosnu kopiju čitavog sistema"</string>
@@ -2908,7 +2910,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Korisnik"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Ograničeni profil"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Dodati novog korisnika?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Za dijeljenje ovog uređaja s drugima možete napraviti dodatne korisnike. Svaki korisnik ima svoj prostor koji može prilagoditi pomoću aplikacija, pozadinske slike i slično. Korisnici također mogu prilagoditi postavke uređaja koje utiču na sve ostale korisnike, kao što je WiFi.\n\nKada dodate novog korisnika, ta osoba treba postaviti svoj prostor.\n\nSvaki korisnik može ažurirati aplikacije za sve ostale korisnike. Postavke i usluge pristupačnosti možda se neće prenijeti na novog korisnika."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Ovaj uređaj možete dijeliti s drugima ako napravite dodatne korisnike. Svaki korisnik ima svoj prostor koji može prilagoditi pomoću aplikacija, pozadinske slike i slično. Korisnici također mogu prilagoditi postavke uređaja koje utiču na sve ostale korisnike, kao što je WiFi.\n\nKada dodate novog korisnika, ta osoba treba postaviti svoj prostor.\n\nSvaki korisnik može ažurirati aplikacije za sve ostale korisnike. Postavke i usluge pristupačnosti možda se neće prenijeti na novog korisnika."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Kada dodate novog korisnika, ta osoba treba postaviti svoj prostor. \n\n Svaki korisnik može ažurirati aplikacije za sve ostale korisnike."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Postaviti korisnika sada?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"Provjerite može li osoba uzeti uređaj i postaviti svoj prostor"</string>
@@ -2963,7 +2965,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Osim kada je otvorena druga aplikacija za plaćanje"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Na terminalu \"Dodirni i plati\" plaćajte pomoću:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Plaćanje na terminalu"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Postavite aplikaciju za plaćanje, zatim jednostavno prislonite poleđinu svog telefona uz bilo koji terminal označen simbolom beskontaktne komunikacije."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Postavite aplikaciju za plaćanje, zatim jednostavno prislonite poleđinu svog telefona uz bilo koji terminal označen simbolom beskontaktnog povezivanja."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Razumijem"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Više..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Želite li da ga postavite kao željeni izbor?"</string>
@@ -2989,7 +2991,7 @@
     <string name="call_manager_title" msgid="1118074011469650421">"Upravitelj za pozive"</string>
     <!-- no translation found for call_manager_summary (1232655174841493040) -->
     <skip />
-    <string name="cell_broadcast_settings" msgid="5750066270993255966">"Poruke upozorenja"</string>
+    <string name="cell_broadcast_settings" msgid="5750066270993255966">"Hitna upozorenja"</string>
     <string name="network_operators_settings" msgid="7822337582828465633">"Mrežni operateri"</string>
     <string name="access_point_names" msgid="7992382237358800596">"Nazivi pristupnih tačaka"</string>
     <string name="enhanced_4g_lte_mode_title" msgid="1624079276378568594">"VoLTE"</string>
@@ -2997,7 +2999,7 @@
     <string name="enhanced_4g_lte_mode_title_4g_calling" msgid="1262729135500839141">"Pozivanje putem 4G mreže"</string>
     <string name="enhanced_4g_lte_mode_summary" msgid="4515503153340557170">"Koristite LTE usluge za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
     <string name="enhanced_4g_lte_mode_summary_4g_calling" msgid="1006226172299077404">"Koristi usluge 4G mreže za poboljšanje glasovne i drugih komunikacija (preporučeno)"</string>
-    <string name="preferred_network_type_title" msgid="1980819233332592332">"Tip preferirane mreže"</string>
+    <string name="preferred_network_type_title" msgid="1980819233332592332">"Preferirana vrsta mreže"</string>
     <string name="preferred_network_type_summary" msgid="8828375904939960006">"LTE (preporučeno)"</string>
     <string name="work_sim_title" msgid="2885654516046971985">"SIM za Work"</string>
     <string name="user_restrictions_title" msgid="6454305007320972740">"Aplikacija i pristup sadržaju"</string>
@@ -3200,7 +3202,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"Tonovi"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Vibracije"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Uključivanje zvukova"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"Titlovanje uživo"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"Automatski titlovi"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"Automatski titluj medije"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Nikada"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3234,7 +3236,7 @@
     <string name="zen_mode_summary_combination" msgid="6960111215170691605">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="8378266552787406849">"Blokiranje vizuelnih ometanja"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6608239691864638854">"Dozvolite vizualnu signalizaciju"</string>
-    <string name="zen_mode_settings_category" msgid="5601680733422424922">"Kada je uključen način rada Ne ometaj"</string>
+    <string name="zen_mode_settings_category" msgid="5601680733422424922">"Kada je uključena funkcija Ne ometaj"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="7486753018073540477">"Ograničite obavještenja"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="2673665450311184875">"Obavještenja bez zvuka"</string>
     <string name="zen_mode_restrict_notifications_mute_summary" msgid="1696217042353376674">"Obavještenja ćete vidjeti na ekranu"</string>
@@ -3273,7 +3275,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Uključi sada"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Isključi sada"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"Način rada Ne ometaj će biti uključen do <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Način rada Ne ometaj će biti uključen dok ga ne isključite"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Funkcija Ne ometaj će biti uključena dok je ne isključite"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Način rada Ne ometaj je automatski uključen na osnovu rasporeda (<xliff:g id="RULE_NAME">%s</xliff:g>)"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"Način rada Ne ometaj je automatski uključila aplikacija (<xliff:g id="APP_NAME">%s</xliff:g>)"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"Način rada Ne ometaj je uključen za <xliff:g id="RULE_NAMES">%s</xliff:g> zajedno sa zadanim postavkama."</string>
@@ -3751,7 +3753,7 @@
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="2518319744362028920">"Optimizacija baterije"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"Obavještenja o upotrebi"</string>
-    <string name="show_all_apps" msgid="5442552004569634846">"Prikaži potpuno korištenje uređaja"</string>
+    <string name="show_all_apps" msgid="5442552004569634846">"Prikaži korištenje cijelog uređaja"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"Prikaži korištenje aplikacije"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
       <item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> aplikacija se ne ponaša kako treba</item>
@@ -4003,7 +4005,7 @@
     <string name="cell_data_template" msgid="5473177306229738078">"<xliff:g id="AMOUNT">^1</xliff:g> putem prijenosa podataka"</string>
     <string name="wifi_data_template" msgid="3146090439147042068">"<xliff:g id="AMOUNT">^1</xliff:g> WiFi podataka"</string>
     <string name="ethernet_data_template" msgid="6414118030827090119">"<xliff:g id="AMOUNT">^1</xliff:g> ethernet podataka"</string>
-    <string name="billing_cycle" msgid="5740717948341713190">"Upozorenje o podacima i ograničenje"</string>
+    <string name="billing_cycle" msgid="5740717948341713190">"Upozorenje o prijenosu pod. i ograničenje"</string>
     <string name="app_usage_cycle" msgid="213483325132959663">"Ciklus prijenosa podataka u aplikaciji"</string>
     <string name="cell_data_warning" msgid="8902740337286652689">"Upozorenje o prijenosu podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"Ograničenje prijenosa podataka: <xliff:g id="ID_1">^1</xliff:g>"</string>
@@ -4017,18 +4019,18 @@
     </plurals>
     <string name="operator_warning" msgid="4676042739221117031">"Obračun podataka koji vrši operater se može razlikovati od obračuna koji vrši uređaj."</string>
     <string name="data_used_template" msgid="761605393453849477">"Iskorišteno je <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="set_data_warning" msgid="8115980184415563941">"Postavi upozorenje o potrošnji"</string>
-    <string name="data_warning" msgid="2699207195535036240">"Upozorenje o podacima"</string>
+    <string name="set_data_warning" msgid="8115980184415563941">"Postavi upozor. o prij. podat."</string>
+    <string name="data_warning" msgid="2699207195535036240">"Upozorenje o prijenosu podataka"</string>
     <string name="data_warning_footnote" msgid="965724845580257305">"Uređaj mjeri upozorenje o prijenosu podataka i ograničenje prijenosa podataka. Ovo se može razlikovati od prijenosa podataka kojeg je izmjerio mobilni operater."</string>
-    <string name="set_data_limit" msgid="5043770023229990674">"Postavi ograničenje potrošnje"</string>
+    <string name="set_data_limit" msgid="5043770023229990674">"Postavi ogranič. prij. podat."</string>
     <string name="data_limit" msgid="5793521160051596228">"Ograničenje prijenosa podataka"</string>
     <string name="data_usage_template" msgid="6848274347956096882">"<xliff:g id="ID_1">%1$s</xliff:g> iskorišteno <xliff:g id="ID_2">%2$s</xliff:g>"</string>
     <string name="configure" msgid="8232696842838580549">"Konfiguracija"</string>
     <string name="data_usage_other_apps" msgid="7002491980141402084">"Ostale aplikacije uključene u korištenje"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> aplikacija smije upotrebljavati neograničen prijenos podataka kada je Ušteda podataka uključena</item>
-      <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> aplikacije smiju upotrebljavati neograničen prijenos podataka kada je Ušteda podataka uključena</item>
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplikacija smije upotrebljavati neograničen prijenos podataka kada je Ušteda podataka uključena</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> aplikacija smije upotrebljavati neograničen prijenos podataka kada je uključena Ušteda podataka</item>
+      <item quantity="few"><xliff:g id="COUNT">%1$d</xliff:g> aplikacije smiju upotrebljavati neograničen prijenos podataka kada je uključena Ušteda podataka</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplikacija smije upotrebljavati neograničen prijenos podataka kada je uključena Ušteda podataka</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"Primarni plan prijenosa podataka"</string>
     <string name="data_usage_wifi_title" msgid="7161828479387766556">"Wi‑Fi podaci"</string>
@@ -4056,7 +4058,7 @@
     <string name="data_saver_off" msgid="7439439787358504018">"Isključeno"</string>
     <string name="data_saver_switch_title" msgid="8244008132112735207">"Koristi funkciju Ušteda podataka"</string>
     <string name="unrestricted_app_title" msgid="4390661122069905122">"Neograničen prijenos podataka"</string>
-    <string name="unrestricted_app_summary" msgid="2829141815077800483">"Dozvolite neograničen pristup podacima kada je Ušteda podataka uključena"</string>
+    <string name="unrestricted_app_summary" msgid="2829141815077800483">"Dozvolite neograničen pristup podacima kada je uključena Ušteda podataka"</string>
     <string name="home_app" msgid="3695063566006954160">"Aplikacija na početnom ekranu"</string>
     <string name="no_default_home" msgid="1518949210961918497">"Nema zadane početne aplikacije"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="63693894094570367">"Sigurno pokretanje"</string>
@@ -4218,7 +4220,7 @@
     <string name="oem_lock_info_message" msgid="5090850412279403901">"Ponovo pokrenite uređaj da omogućite funkciju zaštite uređaja."</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7360443072390107772">"<xliff:g id="SIZE">%1$s</xliff:g> je ukupno na raspolaganju\n\nPosljednji put je pokrenuto <xliff:g id="DATE">%2$s</xliff:g>"</string>
     <string name="web_action_enable_title" msgid="4462106633708675959">"Instant aplikacije"</string>
-    <string name="web_action_enable_summary" msgid="1729016644691793085">"Otvaranje linkova u aplikacijama, čak iako nisu instalirane"</string>
+    <string name="web_action_enable_summary" msgid="1729016644691793085">"Otvaraj linkove u aplikacijama, čak i ako nisu instalirane"</string>
     <string name="web_action_section_title" msgid="5563229447734734662">"Instant aplikacije"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"Postavke instant aplikacija"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"Instalirane aplikacije"</string>
@@ -4385,7 +4387,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Upravljanje WiFi mrežom"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"family link da upravlja WiFi mrežom"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Dozvolite ovoj aplikaciji da uključi ili isključi WiFi, skenira i konektuje se na WiFi, doda ili ukloni mreže, te pokrene lokalnu pristupnu tačku"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Reproduciranje medija"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Reprodukcija medija na"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Ovaj uređaj"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Telefon"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Tablet"</string>
@@ -4499,9 +4501,9 @@
     <string name="mobile_network_erase_sim_dialog_progress" msgid="4881754030959536493">"Brisanje SIM-a…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="9026625253242102706">"Nije moguće izbrisati SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="5955463559366034787">"Nije moguće izbrisati ovaj SIM zbog greške.\n\nPonovo pokrenite uređaj i pokušajte ponovo."</string>
-    <string name="preferred_network_mode_title" msgid="8324526359482124770">"Vrsta preferirane mreže"</string>
+    <string name="preferred_network_mode_title" msgid="8324526359482124770">"Preferirana vrsta mreže"</string>
     <string name="preferred_network_mode_summary" msgid="388957154320426335">"Promijenite način rada mreže"</string>
-    <string name="preferred_network_mode_dialogtitle" msgid="5448698073828567428">"Vrsta preferirane mreže"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="5448698073828567428">"Preferirana vrsta mreže"</string>
     <string name="carrier_settings_euicc" msgid="7723199738771996732">"Operater"</string>
     <string name="carrier_settings_version" msgid="2657511289029828425">"Verzija postavki"</string>
     <string name="call_category" msgid="3418535202893644015">"Pozivanje"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ca/arrays.xml b/tests/CarDeveloperOptions/res/values-ca/arrays.xml
index 593c847..dc71c8e 100644
--- a/tests/CarDeveloperOptions/res/values-ca/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ca/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"executar en segon pla"</item>
     <item msgid="6423861043647911030">"volum d\'accessibilitat"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Ubicació"</item>
+    <item msgid="6656077694190491067">"Ubicació"</item>
+    <item msgid="8790228218278477369">"Ubicació"</item>
+    <item msgid="7836406246005211990">"Vibració"</item>
+    <item msgid="3951439024549922598">"Llegeix els contactes"</item>
+    <item msgid="8802152411647068">"Modifica els contactes"</item>
+    <item msgid="229544934599698735">"Llegeix el registre de trucades"</item>
+    <item msgid="7396102294405899613">"Modifica el registre de trucades"</item>
+    <item msgid="3597797992398484655">"Llegeix el calendari"</item>
+    <item msgid="2705975774250907343">"Modifica el calendari"</item>
+    <item msgid="4668747371441932697">"Ubicació"</item>
+    <item msgid="1487578921720243646">"Notificació de la publicació"</item>
+    <item msgid="4636080349724146638">"Ubicació"</item>
+    <item msgid="673510900286463926">"Trucada"</item>
+    <item msgid="542083422784609790">"Llegeix SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Escriu SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Rep SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Rep SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Rep SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Rep SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Envia SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Llegeix SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Escriu SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modifica la configuració"</item>
+    <item msgid="8705854389991425629">"Dibuixa a sobre"</item>
+    <item msgid="5861356020344153651">"Accedeix a les notificacions"</item>
+    <item msgid="78432174621628659">"Càmera"</item>
+    <item msgid="3986116419882154794">"Grava l\'àudio"</item>
+    <item msgid="4516840825756409490">"Reprodueix l\'àudio"</item>
+    <item msgid="6811712502798183957">"Llegeix el porta-retalls"</item>
+    <item msgid="2780369012602289114">"Modifica el porta-retalls"</item>
+    <item msgid="2331359440170850868">"Botons de multimèdia"</item>
+    <item msgid="6133599737122751231">"Enfocament de l\'àudio"</item>
+    <item msgid="6844485713404805301">"Volum general"</item>
+    <item msgid="1600379420669104929">"Volum de la veu"</item>
+    <item msgid="6296768210470214866">"Volum del to"</item>
+    <item msgid="510690696071629241">"Volum de multimèdia"</item>
+    <item msgid="406861638631430109">"Volum de l\'alarma"</item>
+    <item msgid="4715864795872233884">"Volum de notificació"</item>
+    <item msgid="2311478519251301183">"Volum del Bluetooth"</item>
+    <item msgid="5133991377896747027">"Mantén actiu"</item>
+    <item msgid="2464189519136248621">"Ubicació"</item>
+    <item msgid="2062677934050803037">"Ubicació"</item>
+    <item msgid="1735171933192715957">"Obtenir estadístiques d\'ús"</item>
+    <item msgid="1014093788778383554">"Silencia / deixa de silenciar el micròfon"</item>
+    <item msgid="4199297950608622850">"Mostrar l\'avís"</item>
+    <item msgid="2527962435313398821">"Projectar fitxers multimèdia"</item>
+    <item msgid="5117506254221861929">"Activar la VPN"</item>
+    <item msgid="8291198322681891160">"Fons de pantalla d\'escriptura"</item>
+    <item msgid="7106921284621230961">"Estructura d\'assistència"</item>
+    <item msgid="4496533640894624799">"Captura de pantalla d\'assistència"</item>
+    <item msgid="2598847264853993611">"Consultar l\'estat del telèfon"</item>
+    <item msgid="9215610846802973353">"Afegir missatges de veu"</item>
+    <item msgid="9186411956086478261">"Utilitzar el protocol SIP"</item>
+    <item msgid="6884763100104539558">"Processar les trucades sortints"</item>
+    <item msgid="125513972170580692">"Empremta digital"</item>
+    <item msgid="2556071024281275619">"Sensors corporals"</item>
+    <item msgid="617168514928339387">"Consultar les difusions mòbils"</item>
+    <item msgid="7134693570516523585">"Ubicació simulada"</item>
+    <item msgid="7224489175375229399">"Consultar l\'emmagatzematge"</item>
+    <item msgid="8472735063903258202">"Fer canvis a l\'emmagatzematge"</item>
+    <item msgid="4069276819909595110">"Activar la pantalla"</item>
+    <item msgid="1228338896751121025">"Obtenir comptes"</item>
+    <item msgid="3181581793459233672">"Executar en segon pla"</item>
+    <item msgid="2340936043025374076">"Volum d\'accessibilitat"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Breu"</item>
     <item msgid="4816511817309094890">"Mitjana"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"No permetis mai"</item>
     <item msgid="8184570120217958741">"Permet sempre"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderada"</item>
+    <item msgid="1555861583162930714">"Baixa"</item>
+    <item msgid="1719683776264798117">"Crítica"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderada"</item>
+    <item msgid="182695359839047859">"Baixa"</item>
+    <item msgid="8577246509202964244">"Crítica"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistent"</item>
     <item msgid="167418068739176448">"Activitat principal"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ca/strings.xml b/tests/CarDeveloperOptions/res/values-ca/strings.xml
index 21c3ad6..19be24a 100644
--- a/tests/CarDeveloperOptions/res/values-ca/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ca/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Amplia o redueix la mida del text de la pantalla."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Redueix"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Amplia"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Text de mostra"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"El meravellós mag d\'Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capítol 11: La meravellosa Ciutat Maragda d\'Oz"</string>
@@ -364,7 +363,7 @@
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"Cap"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"P. ex., Android del Lluís"</string>
-    <string name="user_info_settings_title" msgid="1125111518759995748">"Info. de l\'usuari"</string>
+    <string name="user_info_settings_title" msgid="1125111518759995748">"Informació de l\'usuari"</string>
     <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"Mostra la inf. de perfil a la pantalla de bloqueig"</string>
     <string name="profile_info_settings_title" msgid="4855892878512562551">"Informació de perfil"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"Comptes"</string>
@@ -421,7 +420,7 @@
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Desbloqueja el dispositiu"</string>
     <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Inici de sessió i pagaments"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Obre els ulls per desbloquejar"</string>
-    <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Els ulls han d\'estar oberts durant l\'autenticació facial"</string>
+    <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Quan utilitzis l\'autenticació facial, has de tenir els ulls oberts"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Requereix sempre confirmació"</string>
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"En autenticar en aplicacions, requereix sempre confirmació"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Suprimeix les dades facials"</string>
@@ -461,7 +460,7 @@
     <string name="skip_lock_screen_dialog_button_label" msgid="6706047245716780006">"Omet"</string>
     <string name="cancel_lock_screen_dialog_button_label" msgid="2534925227627658819">"Cancel·la"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="8909829699273726469">"Toca el sensor"</string>
-    <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="581120963079780740">"És a la part posterior del telèfon. Fes servir el dit índex."</string>
+    <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="581120963079780740">"És a la part posterior del telèfon. Utilitza el dit índex."</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="7835824123269738540">"Il·lustració amb la ubicació del sensor d\'empremtes digitals i de dispositiu"</string>
     <string name="security_settings_fingerprint_enroll_dialog_name_label" msgid="3519748398694308901">"Nom"</string>
     <string name="security_settings_fingerprint_enroll_dialog_ok" msgid="3428927518029038956">"D\'acord"</string>
@@ -487,9 +486,9 @@
     <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="9036983528330627756">"Configura el bloqueig de pantalla"</string>
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Fet"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Això no és el sensor"</string>
-    <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Toca el sensor situat a la part posterior amb el dit índex."</string>
+    <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Toca el sensor situat a la part posterior del telèfon. Utilitza el dit índex."</string>
     <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"No s\'ha completat el registre"</string>
-    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"S\'ha esgotat el temps d\'espera per inscriure l\'empremta digital. Torna-ho a provar."</string>
+    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"S\'ha esgotat el límit de temps per inscriure l\'empremta digital. Torna-ho a provar."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"El registre de l\'empremta digital no ha funcionat. Torna-ho a provar o fes servir un altre dit."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Afegeix-ne una altra"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Següent"</string>
@@ -549,7 +548,7 @@
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Protegeix la tauleta"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Protegeix el dispositiu"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Protegeix el telèfon"</string>
-    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Defineix un bloqueig de pantalla alternatiu per a més seguretat"</string>
+    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Per a més seguretat, defineix un bloqueig de pantalla alternatiu"</string>
     <string name="setup_lock_settings_picker_message" product="tablet" msgid="7230799135599877804">"Activa les funcions de protecció del dispositiu per impedir que altres persones utilitzin aquesta tauleta sense permís. Tria el bloqueig de pantalla que vulguis utilitzar."</string>
     <string name="setup_lock_settings_picker_message" product="device" msgid="2098404520816295371">"Activa les funcions de protecció del dispositiu per impedir que altres persones el facin servir sense permís. Tria el bloqueig de pantalla que vulguis utilitzar."</string>
     <string name="setup_lock_settings_picker_message" product="default" msgid="2003984443953672040">"Activa les funcions de protecció del dispositiu per impedir que altres persones utilitzin aquest telèfon sense permís. Tria el bloqueig de pantalla que vulguis utilitzar."</string>
@@ -719,7 +718,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> aplicació activa</item>
     </plurals>
     <string name="manage_trust_agents" msgid="8129970926213142261">"Agents de confiança"</string>
-    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Per utilitzar aquesta opció, has de configurar un bloqueig de pantalla"</string>
+    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Per utilitzar aquesta opció, has de definir un bloqueig de pantalla"</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"Cap"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> agents de confiança actius</item>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Introdueix l\'SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Seguretat"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Xarxa amagada"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Si el teu encaminador no emet cap identificador de xarxa, però vols connectar-t\'hi més endavant, pots configurar la xarxa com a oculta.\n\nAixò pot crear un risc de seguretat perquè el telèfon emetrà el senyal per trobar la xarxa de manera regular.\n\nConfigurar la xarxa com a oculta no canviarà la configuració del teu encaminador."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Si el teu encaminador no emet cap identificador de xarxa, però vols connectar-t\'hi més endavant, pots configurar la xarxa com a oculta.\n\nAixò pot crear un risc de seguretat perquè el telèfon emetrà el senyal de manera regular per trobar la xarxa.\n\nConfigurar la xarxa com a oculta no canviarà la configuració del teu encaminador."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Intensitat del senyal"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Estat"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Transmet la velocitat de l\'enllaç"</string>
@@ -928,7 +927,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Automàtica"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Banda de 2,4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Banda de 5,0 GHz"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Preferència per la banda de 5,0 GHz"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Banda de 5,0 GHz preferida"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Tria almenys una banda per al punt d\'accés Wi-Fi:"</string>
@@ -973,7 +972,7 @@
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(S\'han afegit diversos certificats)"</string>
     <string name="wifi_use_system_certs" msgid="4794489370929885022">"Utilitza certificats del sistema"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"No proporcionis un certificat d\'usuari"</string>
-    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"No validis el servidor d\'EAP"</string>
+    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"No validis"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"No s\'ha especificat cap certificat. La connexió no serà privada."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"El nom de la xarxa és massa llarg."</string>
     <string name="wifi_no_domain_warning" msgid="735859919311067606">"Has d\'especificar un domini."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi‑Fi"</item>
+    <item msgid="2271962426654621656">"Dades mòbils"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Si no pots fer servir la Wi‑Fi, utilitza la xarxa mòbil"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Si no pots fer servir la xarxa mòbil, utilitza la Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Trucades per Wi‑Fi. Si perds la connexió, la trucada finalitzarà."</string>
@@ -1218,7 +1220,7 @@
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Hora de finalització"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"Estat"</string>
     <string name="night_display_temperature_title" msgid="8375126629902616296">"Intensitat"</string>
-    <string name="night_display_summary_off" msgid="8850539785332228069">"Desactivada / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="night_display_summary_off" msgid="8850539785332228069">"Desactivat / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"No s\'activarà mai automàticament"</string>
     <string name="night_display_summary_off_auto_mode_custom" msgid="596847003171394411">"S\'activarà automàticament a les <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_off_auto_mode_twilight" msgid="4071750976585359952">"S\'activarà automàticament al vespre"</string>
@@ -1284,7 +1286,7 @@
     <string name="sim_reenter_new" msgid="5692585822458989725">"Torna a escriure el PIN nou"</string>
     <string name="sim_change_pin" msgid="1674620855223900785">"PIN de la SIM"</string>
     <string name="sim_bad_pin" msgid="2409776007569751629">"PIN incorrecte"</string>
-    <string name="sim_pins_dont_match" msgid="1076283313667637902">"Els codis PIN no coincideixen"</string>
+    <string name="sim_pins_dont_match" msgid="1076283313667637902">"Els PIN no coincideixen"</string>
     <string name="sim_change_failed" msgid="8874765697694275459">"No es pot canviar el PIN.\nÉs possible que sigui incorrecte."</string>
     <string name="sim_change_succeeded" msgid="8802418023120614533">"PIN de la SIM canviat correctament"</string>
     <string name="sim_lock_failed" msgid="7949781515066772755">"No es pot canviar l\'estat de bloqueig de la targeta SD.\nÉs possible que el PIN sigui incorrecte."</string>
@@ -1428,7 +1430,7 @@
     <string name="storage_other_users" msgid="1055693465220962928">"Altres usuaris"</string>
     <string name="storage_internal_title" msgid="7969898703086593200">"Emmagatzematge del dispositiu"</string>
     <string name="storage_external_title" msgid="3308178326521953306">"Emmagatzematge portàtil"</string>
-    <string name="storage_volume_summary" msgid="3938298080954984809">"S\'han utilitzat <xliff:g id="USED">%1$s</xliff:g> d\'un total de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
+    <string name="storage_volume_summary" msgid="3938298080954984809">"<xliff:g id="USED">%1$s</xliff:g> en ús de <xliff:g id="TOTAL">%2$s</xliff:g>"</string>
     <string name="storage_size_large" msgid="2252229139037320440">"<xliff:g id="NUMBER">^1</xliff:g>"<small><small>" <xliff:g id="UNIT">^2</xliff:g>"</small></small>""</string>
     <string name="storage_volume_used" msgid="6762683251427947210">"En ús de: <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_volume_used_total" msgid="1915664465366569853">"Total utilitzat de: <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
@@ -1536,7 +1538,7 @@
     <string name="apn_server" msgid="625116221513279678">"Servidor"</string>
     <string name="apn_mmsc" msgid="4621771343217824216">"MMSC"</string>
     <string name="apn_mms_proxy" msgid="636948562860444714">"Servidor intermediari MMS"</string>
-    <string name="apn_mms_port" msgid="6606572282014819299">"Port per a MMS"</string>
+    <string name="apn_mms_port" msgid="6606572282014819299">"Port MMS"</string>
     <string name="apn_mcc" msgid="9138301167194779180">"MCC"</string>
     <string name="apn_mnc" msgid="1276161191283274976">"MNC"</string>
     <string name="apn_auth_type" msgid="4286147728662523362">"Tipus d\'autenticació"</string>
@@ -1547,11 +1549,11 @@
     <string name="apn_type" msgid="6725346490902871146">"Tipus d\'APN"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"Protocol APN"</string>
     <string name="apn_roaming_protocol" msgid="6913336248771263497">"Protocol d\'itinerància d\'APN"</string>
-    <string name="carrier_enabled" msgid="1819916725305365581">"Activa/desactiva APN"</string>
+    <string name="carrier_enabled" msgid="1819916725305365581">"Activa/Desactiva APN"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN activat"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN desactivat"</string>
-    <string name="bearer" msgid="4378444317087536401">"Tipus de connexió"</string>
-    <string name="mvno_type" msgid="3150755279048149624">"Tipus de MVNO"</string>
+    <string name="bearer" msgid="4378444317087536401">"Portador"</string>
+    <string name="mvno_type" msgid="3150755279048149624">"Tipus d\'OMV"</string>
     <string name="mvno_match_data" msgid="629287305803195245">"Valor de MVNO"</string>
     <string name="menu_delete" msgid="8646081395424055735">"Suprimeix l\'APN"</string>
     <string name="menu_new" msgid="7529219814721969024">"APN nou"</string>
@@ -1565,7 +1567,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"L\'operador no permet afegir APN de tipus %s."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"S\'està restaurant la configuració predeterminada d\'APN."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Restableix valors predeterminats"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"S\'ha restablert la configuració predeterminada d\'APN."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"S\'ha restablert la configuració d\'APN predeterminada."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Opcions de restabliment"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Es poden restablir la xarxa, les aplicacions o el dispositiu"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Restableix Wi-Fi, dades mòbils i Bluetooth"</string>
@@ -1584,7 +1586,7 @@
     <string name="master_clear_title" msgid="1560712943955904673">"Esborra totes les dades (restabliment de les dades de fàbrica)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Esborra totes les dades"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Aquesta acció esborrarà totes les dades de l\'"<b>"emmagatzematge intern"</b>" de la tauleta, com ara:\n\n"<li>"el teu Compte de Google"</li>\n<li>"les dades i la configuració del sistema i de les aplicacions"</li>\n<li>"les aplicacions baixades"</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Aquesta acció esborrarà totes les dades de l\'"<b>"emmagatzematge intern"</b>" del telèfon, com ara:\n\n"<li>"El teu Compte de Google"</li>\n<li>"Les dades i la configuració del sistema i de les aplicacions"</li>\n<li>"Les aplicacions baixades"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"S\'esborraran totes les dades de l\'"<b>"emmagatzematge intern"</b>" del telèfon, inclosos:\n\n"<li>"El teu Compte de Google"</li>\n<li>"Les dades i la configuració del sistema i de les aplicacions"</li>\n<li>"Les aplicacions baixades"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"Tens la sessió iniciada als comptes següents:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"En aquest dispositiu hi ha altres usuaris.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Altres dades de l\'usuari"</li></string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Insereix la targeta SIM i reinicia"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Connecta a Internet"</string>
     <string name="location_title" msgid="8664674161765477168">"La meva ubicació"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Ubicació perfil de treball"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Ubicació per al perfil de treball"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Permís d\'aplicacions"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"La ubicació està desactivada"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1679,7 +1681,7 @@
     <string name="location_access_summary" msgid="6919495149026354355">"Permet que les aplicacions que hagin demanat permís utilitzin la informació sobre la ubicació"</string>
     <string name="location_sources_heading" msgid="8526658357120282741">"Fonts d\'ubicació"</string>
     <string name="about_settings" product="tablet" msgid="4869626690708456341">"Informació sobre la tauleta"</string>
-    <string name="about_settings" product="default" msgid="6019547763377294261">"Informació sobre el telèfon"</string>
+    <string name="about_settings" product="default" msgid="6019547763377294261">"Informació del telèfon"</string>
     <string name="about_settings" product="device" msgid="1770438316234693655">"Informació sobre el dispositiu"</string>
     <string name="about_settings" product="emulator" msgid="4497482494770487014">"Sobre el dispositiu emulat"</string>
     <string name="about_settings_summary" msgid="4506081667462281647">"Mostra informació legal, estat, versió de programari"</string>
@@ -1706,8 +1708,8 @@
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Utilitza un altre mètode"</string>
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Defineix un bloqueig de pantalla"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Per motius de seguretat, cal que defineixis una contrasenya"</string>
-    <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Defineix una contrasenya"</string>
-    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Defineix un patró"</string>
+    <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Per utilitzar l\'empremta, defineix una contrasenya"</string>
+    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Per utilitzar l\'empremta, defineix un patró"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Per motius de seguretat, cal que defineixis un PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"Per utilitzar l\'empremta, defineix un PIN"</string>
     <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"Per motius de seguretat, cal que defineixis un patró"</string>
@@ -1715,7 +1717,7 @@
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"Confirma el patró"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"Torna a introduir el PIN"</string>
     <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"Les contrasenyes no coincideixen"</string>
-    <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"Els codis PIN no coincideixen"</string>
+    <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"Els PIN no coincideixen"</string>
     <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Torna a dibuixar el patró"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"Mètode de desbloqueig"</string>
     <string name="lockpassword_password_set_toast" msgid="601928982984489868">"La contrasenya s\'ha definit"</string>
@@ -1762,7 +1764,7 @@
     <string name="lockpattern_settings_title" msgid="5152005866870766842">"Patró de desbloqueig"</string>
     <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"Requereix un patró"</string>
     <string name="lockpattern_settings_enable_summary" msgid="8027605503917737512">"Cal dibuixar el patró per desbloquejar la pantalla"</string>
-    <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Mostra el patró"</string>
+    <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Fes que el patró sigui visible"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"Mostra el patró del perfil"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"Vibra en tocar"</string>
     <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"El botó d\'engegada bloqueja"</string>
@@ -1842,7 +1844,7 @@
     <string name="default_emergency_app" msgid="286530070173495823">"Aplicació en casos d\'emergència"</string>
     <string name="reset_app_preferences" msgid="1426500030595212077">"Restableix les preferències d\'aplicacions"</string>
     <string name="reset_app_preferences_title" msgid="792909865493673598">"Restablir les preferències d\'aplicacions?"</string>
-    <string name="reset_app_preferences_desc" msgid="7935273005301096031">"Es restabliran les preferències de:\n\n "<li>"Aplicacions desactivades"</li>\n" "<li>"Notificacions d\'aplicacions desactivades"</li>\n" "<li>"Aplicacions predeterminades per a accions"</li>\n" "<li>"Restriccions de dades en segon pla per a aplicacions"</li>\n" "<li>"Restriccions de permisos"</li>\n\n" No es perdran les dades de les aplicacions."</string>
+    <string name="reset_app_preferences_desc" msgid="7935273005301096031">"Es restabliran totes les preferències de:\n\n "<li>"Aplicacions desactivades"</li>\n" "<li>"Notificacions d\'aplicacions desactivades"</li>\n" "<li>"Aplicacions predeterminades per a accions"</li>\n" "<li>"Restriccions de dades en segon pla per a aplicacions"</li>\n" "<li>"Restriccions de permisos"</li>\n\n" No es perdran les dades de les aplicacions."</string>
     <string name="reset_app_preferences_button" msgid="2041894727477934656">"Restableix aplicacions"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"Gestiona l\'espai"</string>
     <string name="filter" msgid="2426943916212457962">"Filtra"</string>
@@ -2084,7 +2086,7 @@
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Tria el temps que necessites per llegir els missatges que es mostren temporalment.\n\nNo totes les aplicacions admeten aquesta opció de configuració."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Selecciona el temps que vols tenir per llegir els missatges que es mostren temporalment i et demanen que duguis a terme una acció.\n\nAquesta opció no és compatible amb totes les aplicacions."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Retard en mantenir premut"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Inversió dels colors"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Inversió de colors"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Pot afectar el rendiment"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"Temps de permanència"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"Si utilitzes un ratolí, pots configurar-lo perquè el cursor faci accions automàticament quan deixi de moure\'s durant un determinat període de temps."</string>
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"Vibració de les trucades"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"Vibració en tocar"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Utilitza el servei"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Utilitza la correcció del color"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Utilitza la correcció de color"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Utilitza subtítols"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Continua"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Audiòfons"</string>
@@ -2266,7 +2268,7 @@
     <string name="controls_subtitle" msgid="6920199888882834620">"Redueix el consum de la bateria"</string>
     <string name="packages_subtitle" msgid="6506269487892204413">"Paquets inclosos"</string>
     <string name="battery_tip_summary_title" msgid="2750922152518825526">"Les aplicacions funcionen correctament"</string>
-    <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"El telèfon fa un ús normal de la bateria en segon pla"</string>
+    <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"El telèfon té un ús normal de la bateria en segon pla"</string>
     <string name="battery_tip_summary_summary" product="tablet" msgid="5280099016800644130">"La tauleta fa un ús normal de la bateria en segon pla"</string>
     <string name="battery_tip_summary_summary" product="device" msgid="4459840492610842705">"El dispositiu fa un ús normal de la bateria en segon pla"</string>
     <string name="battery_tip_low_battery_title" msgid="6784043681672161175">"La bateria té poca capacitat"</string>
@@ -2297,7 +2299,7 @@
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
       <item quantity="other">%2$d aplicacions consumeixen molta bateria en segon pla</item>
-      <item quantity="one">%1$s aplicació consumeix molta bateria en segon pla</item>
+      <item quantity="one">%1$s consumeix molta bateria en segon pla</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Aquestes aplicacions no es poden executar en segon pla</item>
@@ -2312,7 +2314,7 @@
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Per estalviar bateria, impedeix que aquestes aplicacions consumeixin bateria en segon pla. És possible que les aplicacions restringides no funcionin correctament i que en rebis les notificacions amb retard.\n\nAplicacions:<xliff:g id="APP_LIST">%1$s</xliff:g>\n."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Restringeix"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Vols suprimir la restricció?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Aquesta aplicació podrà consumir bateria en segon pla, cosa que pot provocar que s\'esgoti abans del previst."</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Aquesta aplicació podrà utilitzar bateria en segon pla, cosa que pot provocar que s\'esgoti abans del previst."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Suprimeix"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Cancel·la"</string>
     <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Les teves aplicacions utilitzen una quantitat normal de bateria. Si n\'utilitzen massa, el telèfon et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria."</string>
@@ -2333,7 +2335,7 @@
     <string name="restricted_app_detail_footer" msgid="482460517275754465">"Aquestes aplicacions han estat consumint bateria en segon pla. És possible que les aplicacions restringides no funcionin correctament i que en rebis les notificacions amb retard."</string>
     <string name="battery_auto_restriction_title" msgid="488905332794794076">"Utilitza el gestor de bateria"</string>
     <string name="battery_auto_restriction_summary" msgid="1638072655581821837">"Detecta quan les aplicacions consumeixen bateria"</string>
-    <string name="battery_manager_on" msgid="5626982529932239656">"Activat: es detecta el consum de bateria de les aplicacions"</string>
+    <string name="battery_manager_on" msgid="5626982529932239656">"Activat / Es detecta el consum de bateria de les aplicacions"</string>
     <string name="battery_manager_off" msgid="9114027524232450371">"Desactivat"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6721813588142691216">
       <item quantity="other">S\'han restringit %1$d aplicacions</item>
@@ -2428,8 +2430,8 @@
     <string name="battery_last_full_charge" msgid="5624033030647170717">"Última càrrega completa"</string>
     <string name="battery_full_charge_last" msgid="4614554109170251301">"Durada aproximada de la càrrega completa"</string>
     <string name="battery_footer_summary" msgid="4828444679643906943">"Les dades d\'ús de la bateria són aproximades i poden variar en funció de l\'ús"</string>
-    <string name="battery_detail_foreground" msgid="6616408559186553085">"Durant l\'ús actiu"</string>
-    <string name="battery_detail_background" msgid="7938146832943604280">"En segon pla"</string>
+    <string name="battery_detail_foreground" msgid="6616408559186553085">"Mentre està en ús actiu"</string>
+    <string name="battery_detail_background" msgid="7938146832943604280">"Mentre està segon pla"</string>
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"Ús de la bateria"</string>
     <string name="battery_detail_info_title" msgid="4617514228447481336">"Des de la càrrega completa"</string>
     <string name="battery_detail_manage_title" msgid="745194290572617507">"Gestiona l\'ús de la bateria"</string>
@@ -2452,8 +2454,8 @@
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"L\'estalvi de bateria s\'activa si és probable que et quedis sense bateria abans de la càrrega habitual següent"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"S\'activarà quan quedi un <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Defineix una programació"</string>
-    <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Desactiva quan la càrrega estigui completa"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"L\'estalvi de bateria es desactivarà quan el telèfon tingui un <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
+    <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Desactiva quan estigui carregada per complet"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"L\'estalvi de bateria es desactiva quan el telèfon té un <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"L\'estalvi de bateria es desactivarà quan la tauleta tingui un <xliff:g id="PERCENT">%1$s</xliff:g> de bateria"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"L\'estalvi de bateria es desactivarà quan el dispositiu tingui un <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2564,7 +2566,7 @@
     <string name="fullbackup_data_summary" msgid="406274198094268556">"Crea còpies de seguretat automàtiques de les dades del dispositiu (com ara les contrasenyes de la Wi-Fi o l\'historial de trucades) i de les aplicacions (com ara les configuracions i els fitxers que desin) de manera remota.\n\nQuan activis les còpies de seguretat automàtiques, les dades dels dispositius i de les aplicacions s\'emmagatzemaran periòdicament de manera remota. Les dades de les aplicacions poden ser qualsevol mena de dada que hagi desat una aplicació (en funció de la configuració del desenvolupador), incloses les dades potencialment confidencials, com ara contactes, missatges i fotos."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"Configuració de l\'administrador del dispositiu"</string>
     <string name="active_device_admin_msg" msgid="6929247869516924549">"Aplicació d\'administració del dispositiu"</string>
-    <string name="remove_device_admin" msgid="4413438593788336400">"Desactiva aquesta aplicació d\'administració del dispositiu"</string>
+    <string name="remove_device_admin" msgid="4413438593788336400">"Desactiva l\'aplicació d\'administració d\'aquest dispositiu"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"Desinstal·la l\'aplicació"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"Desactiva i desinstal·la"</string>
     <string name="select_device_admin_msg" msgid="4173769638399075387">"Aplicacions d\'administració del dispositiu"</string>
@@ -2868,10 +2870,10 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Usuari"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Perfil restringit"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Vols afegir un usuari nou?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Pots compartir aquest dispositiu amb altres usuaris creant usuaris addicionals. Cada usuari té el seu propi espai, que pot personalitzar amb aplicacions i fons de pantalla, entre d\'altres. Els usuaris també poden ajustar opcions de configuració del dispositiu, com ara la Wi-Fi, que afecten els altres usuaris.\n\nQuan afegeixis un usuari nou, haurà de configurar el seu espai.\n\nTots els usuaris poden actualitzar les aplicacions de la resta. És possible que la configuració i els serveis d\'accessibilitat no es transfereixin a l\'usuari nou."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Pots compartir aquest dispositiu amb altres persones creant usuaris addicionals. Cada usuari té el seu propi espai, que pot personalitzar amb aplicacions i fons de pantalla, entre d\'altres. Els usuaris també poden ajustar opcions de configuració del dispositiu, com ara la Wi-Fi, que afecten els altres usuaris.\n\nQuan afegeixis un usuari nou, haurà de configurar el seu espai.\n\nTots els usuaris poden actualitzar les aplicacions de la resta. És possible que la configuració i els serveis d\'accessibilitat no es transfereixin a l\'usuari nou."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Quan s\'afegeix un usuari nou, aquest usuari ha de configurar el seu espai.\n\nQualsevol usuari pot actualitzar les aplicacions dels altres usuaris."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Vols configurar l\'usuari ara?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Comprova que l\'usuari pugui accedir al dispositiu i configurar el seu espai."</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Assegura\'t que la persona estigui disponible per accedir al dispositiu i configurar el seu espai."</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"Vols configurar el perfil ara?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"Configura ara"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"Ara no"</string>
@@ -2920,10 +2922,10 @@
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"Utilitza l\'aplicació predeterminada"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Sempre"</string>
-    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Excepte quan hi hagi oberta una altra aplicació de pagament"</string>
+    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Excepte quan hi hagi oberta una altra aplicació per pagar"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"En un terminal que tingui la funció Toca i paga, paga amb:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Pagar a la terminal"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Configura una aplicació de pagament. A continuació, apropa la part posterior del telèfon a un terminal amb el símbol de pagament sense contacte."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Configura una aplicació per pagar. A continuació, apropa la part posterior del telèfon a un terminal amb el símbol de pagament sense contacte."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Entesos"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Més..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Vols establir-ho com a preferència?"</string>
@@ -3138,7 +3140,7 @@
     <string name="alarm_volume_option_title" msgid="3184076022438477047">"Volum de l\'alarma"</string>
     <string name="ring_volume_option_title" msgid="2038924918468372264">"Volum del to"</string>
     <string name="notification_volume_option_title" msgid="1358512611511348260">"Volum de notificació"</string>
-    <string name="ringtone_title" msgid="1409086028485922583">"So de trucada"</string>
+    <string name="ringtone_title" msgid="1409086028485922583">"So de trucada del telèfon"</string>
     <string name="notification_ringtone_title" msgid="2932960620843976285">"So de notificació predeterminat"</string>
     <string name="notification_unknown_sound_title" msgid="8043718667804838398">"So de l\'aplicació"</string>
     <string name="notification_sound_default" msgid="2664544380802426260">"So de notificació predeterminat"</string>
@@ -3231,7 +3233,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Activa ara"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Desactiva ara"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"El mode No molestis està activat fins a les <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"El mode No molestis continuarà activat fins que no el desactivis"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"El mode No molestis es manté activat fins que no el desactivis"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Una programació (<xliff:g id="RULE_NAME">%s</xliff:g>) ha activat automàticament el mode No molestis"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"Una aplicació (<xliff:g id="APP_NAME">%s</xliff:g>) ha activat automàticament el mode No molestis"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"El mode No molestis està activat per a <xliff:g id="RULE_NAMES">%s</xliff:g> amb una configuració personalitzada."</string>
@@ -3383,7 +3385,7 @@
     <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"Redueix el desenfocament (recomanat)"</string>
     <string name="display_vr_pref_off" msgid="4681320968818852691">"Redueix el parpelleig"</string>
     <string name="picture_in_picture_title" msgid="4960733106166035448">"Pantalla en pantalla"</string>
-    <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"Cap de les aplicacions instal·lades no admet la funció de pantalla en pantalla"</string>
+    <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"Cap de les aplicacions instal·lades no admet pantalla en pantalla"</string>
     <string name="picture_in_picture_keywords" msgid="7326958702002259262">"pip imatge en"</string>
     <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"Pantalla en pantalla"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"Permet Pantalla en pantalla"</string>
@@ -3695,7 +3697,7 @@
     <string name="high_power_apps" msgid="2518319744362028920">"Optimització de la bateria"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"Alertes d\'ús"</string>
     <string name="show_all_apps" msgid="5442552004569634846">"Mostra l\'ús complet del dispositiu"</string>
-    <string name="hide_extra_apps" msgid="6798261081113299441">"Mostra ús de les aplicacions"</string>
+    <string name="hide_extra_apps" msgid="6798261081113299441">"Mostra l\'ús de les aplicacions"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
       <item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> aplicacions s\'estan comportant de manera anòmala</item>
       <item quantity="one"><xliff:g id="APP">%1$s</xliff:g> s\'està comportant de manera anòmala</item>
@@ -3744,7 +3746,7 @@
     <string name="usb_control_device" msgid="9154790265254725254">"Aquest dispositiu"</string>
     <string name="usb_switching" msgid="1230386065163529904">"S\'està canviant..."</string>
     <string name="usb_switching_failed" msgid="6857722544186145439">"No s\'ha pogut canviar"</string>
-    <string name="usb_summary_charging_only" msgid="4118449308708872339">"Càrrega del dispositiu"</string>
+    <string name="usb_summary_charging_only" msgid="4118449308708872339">"Càrregant el dispositiu"</string>
     <string name="usb_summary_power_only" msgid="3552240122641051107">"Càrrega de dispositius connectats"</string>
     <string name="usb_summary_file_transfers" msgid="7805342797099821502">"Transferència de fitxers"</string>
     <string name="usb_summary_tether" msgid="778845069037366883">"Compartició de xarxa per USB"</string>
@@ -3857,10 +3859,10 @@
     <string name="apps_summary" msgid="8355759446490212195">"S\'han instal·lat <xliff:g id="COUNT">%1$d</xliff:g> aplicacions"</string>
     <string name="apps_summary_example" msgid="3011143598675185269">"24 aplicacions instal·lades"</string>
     <string name="storage_summary" msgid="4835916510511133784">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat - <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliures"</string>
-    <string name="storage_summary_with_sdcard" msgid="8742907204848352697">"Emmagatzematge intern: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat, <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliure"</string>
+    <string name="storage_summary_with_sdcard" msgid="8742907204848352697">"Emmagatzematge intern: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat, <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliures"</string>
     <string name="display_summary" msgid="5725269449657325797">"Entra en repòs després de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> d\'inactivitat"</string>
     <string name="display_dashboard_summary" msgid="7678566148167010682">"Fons de pantalla, repòs, mida de la lletra"</string>
-    <string name="display_dashboard_summary_with_style" msgid="8981059474501210956">"Estils i fons de pantalla, repòs, mida de la lletra"</string>
+    <string name="display_dashboard_summary_with_style" msgid="8981059474501210956">"Estils i fons de pantalla, repòs, mida del tipus de lletra"</string>
     <string name="display_dashboard_nowallpaper_summary" msgid="8612534364908229000">"Repòs, mida de la lletra"</string>
     <string name="display_summary_example" msgid="4555020581960719296">"Entra en repòs després de 10 minuts d\'inactivitat"</string>
     <string name="memory_summary" msgid="9121871336058042600">"Ús mitjà de memòria: <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g>"</string>
@@ -3955,7 +3957,7 @@
     <string name="data_used_template" msgid="761605393453849477">"Dades utilitzades: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"Defineix advertiment de dades"</string>
     <string name="data_warning" msgid="2699207195535036240">"Advertiment de dades"</string>
-    <string name="data_warning_footnote" msgid="965724845580257305">"L\'advertiment de dades i el límit de dades es basen en els càlculs del dispositiu, que és possible que no coincideixin amb les dades de l\'operador."</string>
+    <string name="data_warning_footnote" msgid="965724845580257305">"L\'advertiment de dades i el límit de dades es basen en els càlculs del dispositiu, i és possible que no coincideixin amb les dades de l\'operador."</string>
     <string name="set_data_limit" msgid="5043770023229990674">"Defineix un límit de dades"</string>
     <string name="data_limit" msgid="5793521160051596228">"Límit de dades"</string>
     <string name="data_usage_template" msgid="6848274347956096882">"Dades utilitzades: <xliff:g id="ID_1">%1$s</xliff:g> (<xliff:g id="ID_2">%2$s</xliff:g>)"</string>
@@ -4119,12 +4121,12 @@
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"Prova el botó d\'inici nou"</string>
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Activa el gest nou per canviar d\'aplicació"</string>
     <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Doble toc per consultar el telèfon"</string>
-    <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Per consultar la tauleta, fes-hi doble toc"</string>
-    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Per consultar el dispositiu, fes-hi doble toc"</string>
+    <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Doble toc per consultar la tauleta"</string>
+    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Doble toc per consultar el dispositiu"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"Per veure l\'hora, les notificacions i altres dades, fes doble toc a la pantalla."</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Aixeca per consultar-lo"</string>
-    <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Per consultar la tauleta, aixeca-la"</string>
-    <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Aixeca el dispositiu per consultar-lo"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Aixeca per consultar el telèfon"</string>
+    <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Aixeca per consultar la tauleta"</string>
+    <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Aixeca per consultar el dispositiu"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"Activa la pantalla"</string>
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Per veure l\'hora, les notificacions i altres dades, agafa el telèfon."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Per veure l\'hora, les notificacions i altres dades, agafa la tauleta."</string>
@@ -4308,7 +4310,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Control de la Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Permet que l\'aplicació controli la Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Permet que aquesta aplicació activi o desactivi la Wi-Fi, cerqui xarxes Wi-Fi, s\'hi connecti, n\'afegeixi o en suprimeixi, o que iniciï un punt d\'accés Wi-Fi només local"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Reprodueix el contingut multimèdia a"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Reprodueix contingut multimèdia a"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Aquest dispositiu"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Telèfon"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Tauleta"</string>
@@ -4324,7 +4326,7 @@
     <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Impedeix els sons"</string>
     <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Prem els botons d\'engegada i d\'apujar el volum alhora per"</string>
     <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Drecera per impedir que soni"</string>
-    <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Activar la vibració"</string>
+    <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Vibrar"</string>
     <string name="prevent_ringing_option_mute" msgid="53662688921253613">"Silenciar"</string>
     <string name="prevent_ringing_option_none" msgid="1450985763137666231">"No fer res"</string>
     <string name="prevent_ringing_option_vibrate_summary" msgid="7961818570574683926">"Activat (vibració)"</string>
@@ -4475,7 +4477,7 @@
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Vols suprimir aquest suggeriment?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"S\'ha suprimit el suggeriment"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Desfés"</string>
-    <string name="low_storage_summary" msgid="4562224870189133400">"Queda poc espai d\'emmagatzematge: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat; <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliure"</string>
+    <string name="low_storage_summary" msgid="4562224870189133400">"Queda poc espai d\'emmagatzematge: <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilitzat; <xliff:g id="FREE_SPACE">%2$s</xliff:g> lliures"</string>
     <string name="contextual_card_feedback_send" msgid="8698649023854350623">"Envia suggeriments"</string>
     <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"Vols enviar-nos algun comentari sobre aquest suggeriment?"</string>
     <string name="copyable_slice_toast" msgid="1357518174923789947">"S\'ha copiat <xliff:g id="COPY_CONTENT">%1$s</xliff:g> al porta-retalls."</string>
diff --git a/tests/CarDeveloperOptions/res/values-cs/arrays.xml b/tests/CarDeveloperOptions/res/values-cs/arrays.xml
index 815a6f0..88ea3e6 100644
--- a/tests/CarDeveloperOptions/res/values-cs/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-cs/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Nepovolit nikdy"</item>
     <item msgid="8184570120217958741">"Vždy povolit"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normální"</item>
+    <item msgid="5101233285497327432">"Střední"</item>
+    <item msgid="1555861583162930714">"Nízká"</item>
+    <item msgid="1719683776264798117">"Kritické"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normální"</item>
+    <item msgid="6107138933849816768">"Střední"</item>
+    <item msgid="182695359839047859">"Nízká"</item>
+    <item msgid="8577246509202964244">"Kritické"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Trvalé"</item>
     <item msgid="167418068739176448">"Nejvyšší aktivita"</item>
@@ -467,7 +477,7 @@
     <item msgid="1008268820118852416">"Považovat za neměřenou síť"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Použít náhodně vygenerovanou adresu MAC"</item>
+    <item msgid="6545683814310036454">"Použít náhodnou MAC (výchozí)"</item>
     <item msgid="214234417308375326">"Použít adresu MAC zařízení"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-cs/strings.xml b/tests/CarDeveloperOptions/res/values-cs/strings.xml
index 77d05bb..4493434 100644
--- a/tests/CarDeveloperOptions/res/values-cs/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-cs/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Umožňuje zvětšit nebo zmenšit text na obrazovce."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Zmenšit"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Zvětšit"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Příliš žluťoučký kůň úpěl ďábelské ódy."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Ukázkový text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Čaroděj ze země Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Kapitola 11: Smaragdové město v zemi Oz"</string>
@@ -804,7 +803,7 @@
     <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"Když je zapnuté připojení Bluetooth, zařízení může komunikovat s ostatními zařízeními Bluetooth v okolí.\n\nZa účelem vylepšení funkcí mohou aplikace a služby nadále vyhledávat zařízení v okolí, i když je Bluetooth vypnuté. Lze tak například vylepšit funkce založené na poloze. Toto chování můžete změnit v "<annotation id="link">"nastavení vyhledávání"</annotation>"."</string>
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"Za účelem zvýšení přesnosti určování polohy mohou systémové aplikace a služby neustále vyhledávat zařízení Bluetooth. Toto chování můžete změnit v <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>nastavení vyhledávání<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"Nelze se připojit. Zkuste to znovu."</string>
-    <string name="device_details_title" msgid="726517818032923222">"Podrobnosti o zařízení"</string>
+    <string name="device_details_title" msgid="726517818032923222">"O zařízení"</string>
     <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"Adresa Bluetooth zařízení: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_unpair_dialog_title" msgid="3669848977755142047">"Zapomenout zařízení?"</string>
     <string name="bluetooth_unpair_dialog_body" product="default" msgid="5998071227980078077">"Telefon již nebude spárován se zařízením <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobilní"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Pokud Wi-Fi není k dispozici, použít mobilní síť"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Pokud mobilní síť nebude k dispozici, použít Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Volání přes Wi‑Fi. Pokud bude signál Wi-Fi ztracen, hovor skončí."</string>
@@ -2337,7 +2339,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Baterie se možná vybije dříve než obvykle"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Spořič baterie je zapnutý"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Některé funkce mohou být omezeny"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefon byl využíván víc než obvykle"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefon využíván víc než obvykle"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Tablet byl využíván víc než obvykle"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Zařízení bylo využíváno víc než obvykle"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Baterie se možná vybije dříve než obvykle"</string>
@@ -2741,7 +2743,7 @@
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"Pozastaveno při limitu"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"Autom. synchronizovat data"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Autom. synch. osobní data"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Autom. synch. pracovní data"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Autosynchronizace pracovních dat"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"Změnit cyklus..."</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"Den v měsíci, kdy se má obnovit počítání datových přenosů:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"V tomto období nevyužily datové připojení žádné aplikace."</string>
@@ -3407,7 +3409,7 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"Blikání kontrolky"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Na obrazovce uzamčení"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Když je profil uzamčen"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Zobrazit veškerý obsah oznámení"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Zobrazovat veškerý obsah oznámení"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Skrýt citlivý obsah"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Oznámení vůbec nezobrazovat"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Jak chcete zobrazovat oznámení, když bude zařízení uzamčeno?"</string>
@@ -3806,7 +3808,7 @@
     <string name="memory_avg_desc" msgid="1200185697910086968">"Průměrně <xliff:g id="MEMORY">%1$s</xliff:g>"</string>
     <string name="memory_use_running_format" msgid="3741170402563292232">"<xliff:g id="MEMORY">%1$s</xliff:g> / <xliff:g id="RUNNING">%2$s</xliff:g>"</string>
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
-    <string name="high_power_apps" msgid="2518319744362028920">"Optimalizace výdrže bat."</string>
+    <string name="high_power_apps" msgid="2518319744362028920">"Optimalizace baterie"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"Upozornění na využití"</string>
     <string name="show_all_apps" msgid="5442552004569634846">"Zobrazit úplné využití zařízení"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"Zobrazit využití aplikací"</string>
@@ -3880,7 +3882,7 @@
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Asistenční aplikace bude mít přístup k obrazu na obrazovce"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Zablikání obrazovky"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"Když asistenční aplikace z obrazovky nebo snímku obrazovky získá text, okraje obrazovky zablikají"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"Asistenční aplikace vám může pomoci na základě informací na zobrazené obrazovce. Některé aplikace podporují Launcher i hlasový vstup a nabízejí integrovanou asistenci."</string>
+    <string name="assist_footer" msgid="7030121180457472165">"Asistenční aplikace vám mohou pomoci na základě informací na zobrazené obrazovce. Některé aplikace podporují Launcher i hlasový vstup a nabízejí integrovanou asistenci."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Průměrné využití paměti"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Maximální využití paměti"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Využití paměti"</string>
@@ -4182,7 +4184,7 @@
     <string name="display_cutout_emulation_keywords" msgid="6795671536772871439">"výřez displeje"</string>
     <string name="overlay_option_device_default" msgid="165508753381657697">"Výchozí nastavení zařízení"</string>
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Překrytí se nepodařilo použít"</string>
-    <string name="special_access" msgid="1453926335914696206">"Přístup ke spec. aplikacím"</string>
+    <string name="special_access" msgid="1453926335914696206">"Přístupy pro aplikace"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
       <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> aplikace mohou využívat neomezená data</item>
       <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> aplikace může využívat neomezená data</item>
@@ -4273,8 +4275,8 @@
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Kontrola tabletu klepnutím"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Kontrola zařízení klepnutím"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Chcete-li zobrazit čas, oznámení a další informace, klepněte na obrazovku."</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Otisk prstu pro oznámení"</string>
-    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Přejeďte po otisku"</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Sejmout otisk prstu pro zobrazení oznámení"</string>
+    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Sejmout otisk prstu"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Chcete-li zkontrolovat oznámení, přejeďte prstem dolů po snímači otisků prstů na zadní straně telefonu."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Chcete-li zkontrolovat oznámení, přejeďte prstem dolů po snímači otisků prstů na zadní straně tabletu."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"Chcete-li zkontrolovat oznámení, přejeďte prstem dolů po snímači otisků prstů na zadní straně zařízení."</string>
@@ -4476,7 +4478,7 @@
     <string name="battery_suggestion_title" product="default" msgid="3295786171830183688">"Zvyšte životnost baterie telefonu"</string>
     <string name="battery_suggestion_summary" msgid="2669070349482656490"></string>
     <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Blokování vyzvánění"</string>
-    <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Stisknutí vypínače a zvýšení hlasitosti znamená:"</string>
+    <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Současné stisknutí vypínače a tlačítka zvýšení hlasitosti umožní:"</string>
     <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Zkratka k vypnutí vyzvánění"</string>
     <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Vibrovat"</string>
     <string name="prevent_ringing_option_mute" msgid="53662688921253613">"Ztlumit"</string>
@@ -4633,7 +4635,7 @@
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Odstranit tento návrh?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Návrh byl odebrán"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Zpět"</string>
-    <string name="low_storage_summary" msgid="4562224870189133400">"V úložišti je málo místa. Využito <xliff:g id="PERCENTAGE">%1$s</xliff:g> – volné místo: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
+    <string name="low_storage_summary" msgid="4562224870189133400">"Málo místa. Využito: <xliff:g id="PERCENTAGE">%1$s</xliff:g> – volné: <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="contextual_card_feedback_send" msgid="8698649023854350623">"Odeslat zpětnou vazbu"</string>
     <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"Chtěli byste nám k tomuto návrhu poskytnout zpětnou vazbu?"</string>
     <string name="copyable_slice_toast" msgid="1357518174923789947">"<xliff:g id="COPY_CONTENT">%1$s</xliff:g> – zkopírováno do schránky"</string>
diff --git a/tests/CarDeveloperOptions/res/values-da/arrays.xml b/tests/CarDeveloperOptions/res/values-da/arrays.xml
index 11985ea..63b7058 100644
--- a/tests/CarDeveloperOptions/res/values-da/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-da/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Tillad aldrig"</item>
     <item msgid="8184570120217958741">"Tillad altid"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderat"</item>
+    <item msgid="1555861583162930714">"Lav"</item>
+    <item msgid="1719683776264798117">"Kritisk"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderat"</item>
+    <item msgid="182695359839047859">"Lav"</item>
+    <item msgid="8577246509202964244">"Kritisk"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Vedvarende"</item>
     <item msgid="167418068739176448">"Topaktivitet"</item>
diff --git a/tests/CarDeveloperOptions/res/values-da/strings.xml b/tests/CarDeveloperOptions/res/values-da/strings.xml
index 5c97281..a7e0d74 100644
--- a/tests/CarDeveloperOptions/res/values-da/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-da/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Gør teksten på skærmen mindre eller større."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Formindsk"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Forstør"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Eksempeltekst"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Den vidunderlige troldmand fra Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Kapitel 11: Den vidunderlige smaragdby i Oz"</string>
@@ -504,7 +503,7 @@
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Vil du slette dette fingeraftryk?"</string>
     <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Du vil ikke kunne bruge dine fingeraftryk til at låse din telefon op, godkende køb eller logge ind på apps"</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Du vil ikke kunne bruge dine fingeraftryk til at låse din arbejdsprofil op, godkende køb eller logge ind på arbejdsapps"</string>
-    <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Ja, fjern det"</string>
+    <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Ja, fjern"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Kryptering"</string>
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"Krypter tablet"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="3110852053238357832">"Kryptér telefon"</string>
@@ -910,7 +909,7 @@
     <string name="wifi_signal" msgid="696548364467704808">"Signalstyrke"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Status"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Overførselshastighed"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Modtag linkhastighed"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Modtagelseshastighed"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Frekvens"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP-adresse"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Gemt via"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Brug mobilnetværk, hvis der ikk er nogen Wi-Fi-forbindelse"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Brug Wi-Fi, hvis mobilnetværket ikke er tilgængeligt"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Ring via Wi‑Fi. Opkaldet afsluttes, hvis Wi-Fi-forbindelsen afbrydes."</string>
@@ -4341,7 +4343,7 @@
     <string name="network_connecting" msgid="8798611458457547110">"Opretter forbindelse…"</string>
     <string name="network_could_not_connect" msgid="552874922030763713">"Der kunne ikke oprettes forbindelse"</string>
     <string name="empty_networks_list" msgid="5170020017144403884">"Der blev ikke fundet nogen netværk."</string>
-    <string name="network_query_error" msgid="525635151099480463">"Der kunne ikke findes nogen netværk. Prøv igen."</string>
+    <string name="network_query_error" msgid="525635151099480463">"Der blev ikke fundet nogen netværk. Prøv igen."</string>
     <string name="forbidden_network" msgid="8493827960968261182">"(forbudt)"</string>
     <string name="no_sim_card" msgid="3708682108324275635">"Intet SIM-kort"</string>
     <string name="preferred_network_mode_wcdma_perf_summary" msgid="6899270534608086704">"Foretrukken netværkstilstand: WCDMA foretrækkes"</string>
diff --git a/tests/CarDeveloperOptions/res/values-de/arrays.xml b/tests/CarDeveloperOptions/res/values-de/arrays.xml
index 4ee4f1b..7b5df1a 100644
--- a/tests/CarDeveloperOptions/res/values-de/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-de/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Nie zulassen"</item>
     <item msgid="8184570120217958741">"Immer zulassen"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Mittelmäßig"</item>
+    <item msgid="1555861583162930714">"Niedrig"</item>
+    <item msgid="1719683776264798117">"Kritisch"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Mittel"</item>
+    <item msgid="6107138933849816768">"Moderat"</item>
+    <item msgid="182695359839047859">"Niedrig"</item>
+    <item msgid="8577246509202964244">"Kritisch"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Permanent"</item>
     <item msgid="167418068739176448">"Topaktivität"</item>
diff --git a/tests/CarDeveloperOptions/res/values-de/strings.xml b/tests/CarDeveloperOptions/res/values-de/strings.xml
index 3c8be5f..913620b 100644
--- a/tests/CarDeveloperOptions/res/values-de/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-de/strings.xml
@@ -80,7 +80,7 @@
     <string name="sdcard_format" product="default" msgid="4831611387627849108">"SD-Karte löschen"</string>
     <string name="preview_pager_content_description" msgid="5731599395893090038">"Vorschau"</string>
     <string name="preview_page_indicator_content_description" msgid="3192955679074998362">"Vorschau, Seite <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> von <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
-    <string name="font_size_summary" msgid="9120023206321191067">"Text auf dem Display verkleinern oder vergrößern."</string>
+    <string name="font_size_summary" msgid="9120023206321191067">"Lege fest, wie groß Text angezeigt wird."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Verkleinern"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Vergrößern"</string>
     <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
@@ -468,7 +468,7 @@
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Sensor berühren"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Lege deinen Finger auf den Sensor und hebe ihn an, wenn du eine Vibration spürst."</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Anheben und erneut berühren"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Ändere zur vollständige Erfassung jedes Mal ein wenig die Position deines Fingers"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Ändere zur vollständigen Erfassung jedes Mal ein wenig die Position deines Fingers"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Fingerabdruck hinzugefügt"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Wenn du dieses Symbol siehst, kannst du deinen Fingerabdruck verwenden, um dich zu identifizieren oder einen Kauf zu autorisieren."</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Später"</string>
@@ -487,7 +487,7 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Fertig"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Das ist nicht der Sensor"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Sensor auf Rückseite mit Zeigefinger berühren."</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Registrierung wurde nicht abgeschlossen."</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Registrierung wurde nicht abgeschlossen"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Zeitüberschreitung bei Fingerabdruckregistrierung. Bitte versuche es noch einmal."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Fehler bei Fingerabdruckregistrierung. Versuche es erneut oder verwende einen anderen Finger."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Weiteren hinzufügen"</string>
@@ -595,8 +595,8 @@
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"Displaysperre deaktivieren"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"Geräteschutz entfernen?"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"Profilschutz entfernen?"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"Wenn du dein Muster entfernst, funktionieren die Funktionen zum Geräteschutz nicht."</string>
-    <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"Wenn du dein Muster entfernst, funktionieren die Funktionen zum Geräteschutz nicht.<xliff:g id="EMPTY_LINE">
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"Der Geräteschutz funktioniert ohne dein Muster nicht."</string>
+    <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"Der Geräteschutz funktioniert ohne dein Muster nicht.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>Deine gespeicherten Fingerabdrücke werden ebenfalls von diesem Gerät entfernt und du kannst mit ihnen weder dein Smartphone entsperren noch Käufe autorisieren oder dich in Apps anmelden."</string>
     <string name="unlock_disable_frp_warning_content_pin" msgid="6760473271034592796">"Der Geräteschutz funktioniert ohne deine PIN nicht."</string>
@@ -718,7 +718,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> aktive App</item>
     </plurals>
     <string name="manage_trust_agents" msgid="8129970926213142261">"Trust Agents"</string>
-    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Lege zunächst eine Displaysperre fest, damit du die Option verwenden kannst."</string>
+    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Lege zuerst eine Displaysperre fest, damit du die Option verwenden kannst."</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"Keine"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> aktive Trust Agents</item>
@@ -741,7 +741,7 @@
 )  -->
     <string name="bluetooth_incoming_pairing_msg" msgid="940451919337185024">"Von:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt; Mit diesem Gerät koppeln?"</string>
     <string name="bluetooth_display_passkey_pin_msg" msgid="5909423849232791647">"Gib zur Kopplung mit <xliff:g id="BOLD1_0">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1">&lt;/b&gt;&lt;br&gt;&lt;br&gt;</xliff:g> <xliff:g id="BOLD2_1">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2">&lt;/b&gt;</xliff:g> ein und drücke anschließend die Eingabetaste."</string>
-    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"Zugriff auf deine Kontakte und deine Anrufliste zulassen"</string>
+    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"Zugriff auf meine Kontakte und meine Anrufliste zulassen"</string>
     <string name="bluetooth_error_title" msgid="5718761586633101960"></string>
     <string name="bluetooth_connecting_error_message" msgid="8473359363469518478">"Keine Verbindung zu <xliff:g id="DEVICE_NAME">%1$s</xliff:g> möglich"</string>
     <string name="bluetooth_preference_scan_title" msgid="457781003962324807">"Scan nach Geräten"</string>
@@ -863,7 +863,7 @@
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"Für diese Funktion musst du zuerst einen kompatiblen Anbieter von Netzwerkbewertungen auswählen"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"Zertifikate installieren"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"Zur Verbesserung der Standortgenauigkeit können Apps und Dienste weiter nach WLANs suchen, auch wenn die WLAN-Funktion deaktiviert ist. Dadurch können beispielsweise standortbasierte Funktionen und Dienste verbessert werden. Dies lässt sich in den <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>Sucheinstellungen<xliff:g id="LINK_END_1">LINK_END</xliff:g> ändern."</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Um die Standortgenauigkeit zu erhöhen, aktiviere die WLAN-Suche in den <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>Sucheinstellungen<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Aktiviere zur Erhöhung der Standortgenauigkeit die WLAN-Suche in den <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>Sucheinstellungen<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"Nicht mehr anzeigen"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"WLAN im Ruhemodus aktiviert lassen"</string>
     <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"WLAN im Ruhemodus aktiviert"</string>
@@ -1040,7 +1040,7 @@
     <string name="wifi_dns1" msgid="5250809981658822505">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
     <string name="wifi_gateway" msgid="7455334454444443397">"Gateway"</string>
-    <string name="wifi_network_prefix_length" msgid="1941206966133010633">"Länge Netzwerkpräfix"</string>
+    <string name="wifi_network_prefix_length" msgid="1941206966133010633">"Länge d. Netzwerkpräfixes"</string>
     <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi-Fi Direct"</string>
     <string name="wifi_p2p_device_info" msgid="4717490498956029237">"Geräte-Informationen"</string>
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"Diese Verbindung speichern"</string>
@@ -1103,7 +1103,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"WLAN"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Mobilfunknetz nutzen, wenn WLAN nicht verfügbar ist"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Bei nicht verfügbarem Mobilfunknetz WLAN verwenden"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Anruf über WLAN. Bei Abbruch der WLAN-Verbindung endet der Anruf."</string>
@@ -1201,7 +1204,7 @@
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"Nicht an Lichtverhältnisse anpassen"</string>
     <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"Erhöhter Akkuverbrauch"</string>
     <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"\"Helligkeit an Lichtverhältnisse anpassen\": Ist diese Funktion aktiviert, kannst du die Helligkeit dennoch vorübergehend ändern."</string>
-    <string name="auto_brightness_description" msgid="8209140379089535411">"Die Helligkeit des Displays passt sich automatisch an deine Umgebung und deine Aktivitäten an. Mit dem Schieberegler kannst du manuell nachjustieren und \"Automatische Helligkeit\" merkt sich deine Präferenz."</string>
+    <string name="auto_brightness_description" msgid="8209140379089535411">"Die Helligkeit des Displays passt sich automatisch an deine Umgebung und deine Aktivitäten an. Mit dem Schieberegler kannst du manuell nachjustieren und die Funktion \"Automatische Helligkeit\" merkt sich deine Präferenz."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"Weißabgleich des Bildschirms"</string>
     <string name="adaptive_sleep_title" msgid="3237620948260957018">"Screen Aware"</string>
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"An/Der Bildschirm wird nicht ausgeschaltet, wenn du ihn ansiehst"</string>
@@ -1565,7 +1568,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Der Anbieter erlaubt das Hinzufügen von APNs des Typs %s nicht."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Standard-APN-Einstellungen werden wiederhergestellt"</string>
     <string name="menu_restore" msgid="3799288817317293115">"Auf Standard zurücksetzen"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Zurücksetzen auf Standard-APN-Einstellungen abgeschlossen"</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Zurücksetzen auf Standard-APN-Einstellungen abgeschlossen."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Optionen zum Zurücksetzen"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Zurückgesetzt werden können das Netzwerk, Apps und das Gerät"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"WLAN, mobile Daten &amp; Bluetooth zurücksetzen"</string>
@@ -1581,7 +1584,7 @@
     <string name="reset_network_complete_toast" msgid="128225929536005495">"Die Netzwerkeinstellungen wurden zurückgesetzt."</string>
     <string name="reset_esim_error_title" msgid="4728931209471875632">"SIMs können nicht gelöscht werden"</string>
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"Heruntergeladene SIMs können aufgrund eines Fehlers nicht gelöscht werden.\n\nStarte das Gerät neu und versuche es noch einmal."</string>
-    <string name="master_clear_title" msgid="1560712943955904673">"Alle Daten löschen (Auslieferungszustand)"</string>
+    <string name="master_clear_title" msgid="1560712943955904673">"Alle Daten löschen (auf Werkseinstellungen zurücksetzen)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Alle Daten löschen"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Hierdurch werden alle Daten aus dem "<b>"internen Speicher"</b>" deines Tablets gelöscht, wie z. B. die Folgenden:\n\n"<li>"Dein Google-Konto"</li>\n<li>"System- und App-Daten sowie entsprechende Einstellungen"</li>\n<li>"Heruntergeladene Apps"</li></string>
     <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Hierdurch werden alle Daten aus dem "<b>"internen Speicher"</b>" deines Smartphones gelöscht, wie z. B. die Folgenden:\n\n"<li>"Dein Google-Konto"</li>\n<li>"System- und App-Daten sowie entsprechende Einstellungen"</li>\n<li>"Heruntergeladene Apps"</li></string>
@@ -1706,15 +1709,15 @@
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Alternative Methode verwenden"</string>
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Displaysperre einrichten"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Richte zur Sicherheit ein Passwort ein"</string>
-    <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Passwort festlegen, um Fingerabdruck zu verwenden"</string>
-    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Muster festlegen, um Fingerabdruck zu verwenden"</string>
+    <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Für Fingerabdruck Passwort festlegen"</string>
+    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Für Fingerabdruck Muster festlegen"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Richte zur Sicherheit eine PIN ein"</string>
-    <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"PIN festlegen, um Fingerabdruck zu verwenden"</string>
+    <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"Für Fingerabdruck PIN festlegen"</string>
     <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"Richte zur Sicherheit ein Muster ein"</string>
     <string name="lockpassword_confirm_your_password_header" msgid="9055242184126838887">"Passwort noch einmal eingeben"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"Muster bestätigen"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"PIN noch einmal eingeben"</string>
-    <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"Die Passwörter stimmen nicht überein."</string>
+    <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"Die Passwörter stimmen nicht überein"</string>
     <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"Die PINs stimmen nicht überein"</string>
     <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Muster noch einmal zeichnen"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"Sperre einrichten"</string>
@@ -2231,7 +2234,7 @@
     <string name="power_usage_level_and_status" msgid="8873534076894160727">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="3461915627093471868">"Noch <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="2730510256218879651">"Verbleibende Ladezeit: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
-    <string name="background_activity_title" msgid="7207836362312111483">"Hintergrundnutzung einschränken"</string>
+    <string name="background_activity_title" msgid="7207836362312111483">"Einschränkung der Hintergrundnutzung"</string>
     <string name="background_activity_summary" msgid="582372194738538145">"App darf im Hintergrund ausgeführt werden"</string>
     <string name="background_activity_summary_disabled" msgid="457944930942085876">"App darf nicht im Hintergrund ausgeführt werden"</string>
     <string name="background_activity_summary_whitelisted" msgid="4713321059375873828">"Hintergrundnutzung kann nicht eingeschränkt werden"</string>
@@ -2307,12 +2310,12 @@
       <item quantity="other">%1$d Apps einschränken?</item>
       <item quantity="one">App einschränken?</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Um den Akku zu schonen, verhindere, dass <xliff:g id="APP">%1$s</xliff:g> im Hintergrund Strom verbraucht. Eventuell funktioniert die App dann nicht mehr richtig und Benachrichtigungen werden verzögert angezeigt."</string>
-    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Um den Akku zu schonen, verhindere, dass diese Apps im Hintergrund Strom verbrauchen. Eventuell funktionieren sie dann nicht mehr richtig und Benachrichtigungen werden verzögert angezeigt.\n\nApps:"</string>
-    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Um den Akku zu schonen, verhindere, dass diese Apps im Hintergrund Strom verbrauchen. Eventuell funktionieren sie dann nicht mehr richtig und Benachrichtigungen werden verzögert angezeigt.\n\nApps:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Um den Akku zu schonen, kannst du verhindern, dass <xliff:g id="APP">%1$s</xliff:g> im Hintergrund Strom verbraucht. Eventuell funktioniert die App dann nicht mehr richtig und Benachrichtigungen werden verzögert angezeigt."</string>
+    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Um den Akku zu schonen, kannst du verhindern, dass diese Apps im Hintergrund Strom verbrauchen. Eventuell funktionieren sie dann nicht mehr richtig und Benachrichtigungen werden verzögert angezeigt.\n\nApps:"</string>
+    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Um den Akku zu schonen, kannst du verhindern, dass diese Apps im Hintergrund Strom verbrauchen. Eventuell funktionieren sie dann nicht mehr richtig und Benachrichtigungen werden verzögert angezeigt.\n\nApps:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Einschränken"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Beschränkung entfernen?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Diese App läuft im Hintergrund und beansprucht dabei den Akku. Er könnte deshalb früher als erwartet leer sein."</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Diese App kann dann im Hintergrund laufen und beansprucht dabei den Akku. Er könnte deshalb früher als erwartet leer sein."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Entfernen"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Abbrechen"</string>
     <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Der Akkuverbrauch durch Apps ist zurzeit normal. Falls der Akku zu stark beansprucht wird, werden dir mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren."</string>
@@ -2447,9 +2450,9 @@
     <string name="battery_saver" msgid="3989710213758938398">"Energiesparmodus"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"Automatisch aktivieren"</string>
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Keine Aktivierung nach Zeitplan"</string>
-    <string name="battery_saver_auto_routine" msgid="886514412067906980">"Anhand deiner üblichen Abläufe"</string>
+    <string name="battery_saver_auto_routine" msgid="886514412067906980">"Anhand meiner üblichen Abläufe"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Anhand des Ladestands"</string>
-    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Der Energiesparmodus wird automatisch aktiviert, wenn offenbar wird, dass der Akku wahrscheinlich nicht bis zum nächsten Aufladen hält (ermittelt anhand deines üblichen Aufladezeitpunkts)."</string>
+    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Der Energiesparmodus wird automatisch aktiviert, wenn der Akku wahrscheinlich nicht bis zum nächsten Aufladen hält (ermittelt anhand deines üblichen Aufladezeitpunkts)."</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Wird bei <xliff:g id="PERCENT">%1$s</xliff:g> aktiviert"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Zeitplan festlegen"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Bei vollem Akku ausschalten"</string>
@@ -2710,7 +2713,7 @@
     <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"Jeden Monat zurücksetzen am:"</string>
     <string name="data_usage_cycle_editor_positive" msgid="9155752056537811646">"Übernehmen"</string>
     <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"Warnung für Datenverbrauch festlegen"</string>
-    <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Limit festlegen"</string>
+    <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Datenlimit festlegen"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"Datennutzung begrenzen"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"Mobile Daten werden deaktiviert, sobald das von dir festgelegte Limit erreicht wurde.\n\nDer dabei angesetzte Wert wird von deinem Tablet berechnet und kann von der Messung des genutzten Datenvolumens durch deinen Mobilfunkanbieter abweichen. Daher empfiehlt es sich, einen eher etwas niedrigeren Limitwert anzugeben."</string>
     <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"Mobile Daten werden deaktiviert, sobald das von dir festgelegte Limit erreicht wurde.\n\nDer dabei angesetzte Wert wird von deinem Smartphone berechnet und kann von der Messung des genutzten Datenvolumens durch deinen Mobilfunkanbieter abweichen. Daher empfiehlt es sich, einen eher etwas niedrigeren Limitwert anzugeben."</string>
@@ -3097,7 +3100,7 @@
     <string name="keywords_backup" msgid="7433356270034921627">"Sicherung, sicherung"</string>
     <string name="keywords_assist_gesture_launch" msgid="2711433664837843513">"bewegung, geste, touch-geste"</string>
     <string name="keywords_face_unlock" msgid="651615819291927262">"Face, Unlock, Gesichtserkennung, Anmeldung"</string>
-    <string name="keywords_imei_info" msgid="4325847870422053408">"imei, meid, min, prl version, imei sv"</string>
+    <string name="keywords_imei_info" msgid="4325847870422053408">"imei, meid, Min., prl version, imei sv"</string>
     <string name="keywords_sim_status" msgid="3852088576719874387">"netzwerk, status des mobilfunknetz, servicestatus, signalstärke, art des mobilfunknetzes, roaming, iccid"</string>
     <string name="keywords_model_and_hardware" msgid="2743197096210895251">"seriennummer, hardwareversion"</string>
     <string name="keywords_android_version" msgid="4842749998088987740">"stand der sicherheitsupdates android, baseband version, kernel version"</string>
@@ -3231,7 +3234,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Jetzt aktivieren"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Jetzt deaktivieren"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"\"Bitte nicht stören\" ist aktiviert bis <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"\"Bitte nicht stören\" bleibt aktiviert, bis du es deaktivierst"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"\"Bitte nicht stören\" bleibt aktiviert, bis du es deaktivierst."</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"\"Bitte nicht stören\" wurde automatisch durch einen Zeitplan (<xliff:g id="RULE_NAME">%s</xliff:g>) aktiviert"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"\"Bitte nicht stören\" wurde automatisch durch eine App (<xliff:g id="APP_NAME">%s</xliff:g>) aktiviert"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"\"Bitte nicht stören\" ist mit benutzerdefinierten Einstellungen für \"<xliff:g id="RULE_NAMES">%s</xliff:g>\" aktiviert."</string>
@@ -3319,7 +3322,7 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"Benachrichtigungslicht blinkt"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Auf dem Sperrbildschirm"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Wenn das Arbeitsprofil gesperrt ist"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Alle Benachrichtigungen anzeigen"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Gesamten Benachrichtigungsinhalt anzeigen"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Vertrauliche Inhalte ausblenden"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Keine Benachrichtigungen anzeigen"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Wie sollen Benachrichtigungen angezeigt werden, wenn dein Gerät gesperrt ist?"</string>
@@ -3710,7 +3713,7 @@
     <string name="high_power_system" msgid="739584574711292753">"Akku-Optimierung nicht verfügbar"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Keine Optimierung bezüglich der Akkuleistung anwenden. Dein Akku entleert sich hierdurch möglicherweise schneller."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Soll die App immer im Hintergrund ausgeführt werden?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Wenn du erlaubst, dass \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" dauerhaft im Hintergrund ausgeführt wird, kann dies die  Akkulaufzeit verringern. \n\nDu kannst diese Einstellung jederzeit unter \"Einstellungen\" &gt; \"Apps &amp; Benachrichtigungen\" ändern."</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Wenn du erlaubst, dass die App \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" dauerhaft im Hintergrund ausgeführt wird, kann dies die  Akkulaufzeit verringern. \n\nDu kannst diese Einstellung jederzeit unter \"Einstellungen\" &gt; \"Apps &amp; Benachrichtigungen\" ändern."</string>
     <string name="battery_summary" msgid="4345690800899981339">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> Verbrauch seit der letzten vollständigen Aufladung"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Energiespareinstellungen"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Kein Verbrauch seit dem letzten vollen Aufladen"</string>
@@ -3762,7 +3765,7 @@
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Der Assistent-App den Zugriff auf eine Aufnahme deines Bildschirms gestatten"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Bildschirm kurz aufleuchten lassen"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"Bildschirmränder kurz aufleuchten lassen, wenn Assistent-App auf Bildschirm-Text oder Screenshot zugreift"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"Assistent-Apps können dir bei bestimmten Dingen helfen. Dazu greifen sie auf die Informationen zu, die aktuell auf deinem Bildschirm angezeigt werden. Für eine integrierte Unterstützung unterstützen einige Apps sowohl Launcher- als auch Spracheingabedienste."</string>
+    <string name="assist_footer" msgid="7030121180457472165">"Assistent-Apps können dir bei bestimmten Dingen helfen. Dazu greifen sie auf die Informationen zu, die aktuell auf deinem Bildschirm angezeigt werden. Damit sie dir eine umfassende Hilfe sind, unterstützen einige Apps sowohl Launcher- als auch Spracheingabedienste."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Durchschnittl. Speicherverbrauch"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Maximaler Speicherverbrauch"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Speicherverbrauch"</string>
@@ -4126,13 +4129,13 @@
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Tablet hochnehmen, um das Display anzusehen"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Gerät hochnehmen, um das Display anzusehen"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"Bildschirm aktivieren"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Wenn das Smartphone in die Hand genommen wird, werden die Uhrzeit, Benachrichtigungen und andere Informationen angezeigt"</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Wenn das Smartphone in die Hand genommen wird, werden die Uhrzeit, Benachrichtigungen und andere Informationen angezeigt."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Wenn das Tablet in die Hand genommen wird, werden die Uhrzeit, Benachrichtigungen und andere Informationen angezeigt"</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Wenn das Gerät in die Hand genommen wird, werden die Uhrzeit, Benachrichtigungen und andere Informationen angezeigt"</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Tippen, um Informationen auf dem Smartphone anzusehen"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Tippen, um Informationen auf dem Tablet anzusehen"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Tippen, um Informationen auf dem Gerät anzusehen"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Wenn auf den Bildschirm getippt wird, werden die Uhrzeit, Benachrichtigungen und andere Informationen angezeigt"</string>
+    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Wenn auf den Bildschirm getippt wird, werden die Uhrzeit, Benachrichtigungen und andere Informationen angezeigt."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Benachrichtigungen durch Wischen über Fingerabdrucksensor öffnen"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Fingerabdrucksensor verwenden"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Zum Lesen von Benachrichtigungen über den Fingerabdrucksensor auf der Rückseite des Smartphones nach unten wischen"</string>
@@ -4308,7 +4311,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"WLAN-Steuerung"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"App darf WLAN steuern"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Erlaubt der App das WLAN zu aktivieren oder zu deaktivieren, nach WLANs zu scannen und eine Verbindung zu ihnen herstellen, Netzwerke hinzuzufügen oder zu entfernen oder einen lokal beschränkten Hotspot zu starten"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Medien hier abspielen"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Medien hier abspielen:"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Dieses Gerät"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Smartphone"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Tablet"</string>
diff --git a/tests/CarDeveloperOptions/res/values-el/arrays.xml b/tests/CarDeveloperOptions/res/values-el/arrays.xml
index 6b208c6..707b98e 100644
--- a/tests/CarDeveloperOptions/res/values-el/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-el/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Να μην επιτρέπεται ποτέ"</item>
     <item msgid="8184570120217958741">"Να επιτρέπεται πάντα"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Κανονική"</item>
+    <item msgid="5101233285497327432">"Μέτρια"</item>
+    <item msgid="1555861583162930714">"Χαμηλή"</item>
+    <item msgid="1719683776264798117">"Σημαντική"</item>
+    <item msgid="1567326459340152525">";"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Κανονική"</item>
+    <item msgid="6107138933849816768">"Μέτρια"</item>
+    <item msgid="182695359839047859">"Χαμηλή"</item>
+    <item msgid="8577246509202964244">"Κρίσιμη"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Συνεχής"</item>
     <item msgid="167418068739176448">"Κορυφαία δραστηριότητα"</item>
@@ -463,8 +473,8 @@
   </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"Αυτόματος εντοπισμός"</item>
-    <item msgid="773943026484148895">"Χρήση ως δικτύου με περιορισμούς"</item>
-    <item msgid="1008268820118852416">"Χρήση ως δικτύου χωρίς περιορισμούς"</item>
+    <item msgid="773943026484148895">"Χρήση ως δικτύου με ογκοχρέωση"</item>
+    <item msgid="1008268820118852416">"Χρήση ως δικτύου χωρίς ογκοχρέωση"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="6545683814310036454">"Χρήση τυχαίου MAC (προεπιλογή)"</item>
diff --git a/tests/CarDeveloperOptions/res/values-el/strings.xml b/tests/CarDeveloperOptions/res/values-el/strings.xml
index 94f7c3b..d77f924 100644
--- a/tests/CarDeveloperOptions/res/values-el/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-el/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Κάντε το κείμενο στην οθόνη μικρότερο ή μεγαλύτερο."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Να γίνουν μικρότερα"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Να γίνουν μεγαλύτερα"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Δείγμα κειμένου"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Ο Θαυμάσιος Μάγος του Οζ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Κεφάλαιο 11: Η Θαυμάσια Πόλη Έμεραλντ του Οζ"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Δίκτυο κινητής τηλεφωνίας"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Όταν το Wi‑Fi δεν είναι διαθέσιμο, χρήση δικτύου κινητής τηλεφωνίας."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Εάν το δίκτυο κινητής τηλεφωνίας δεν είναι διαθέσιμο, χρήση Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Κλήση μέσω Wi‑Fi. Εάν χαθεί η σύνδεση Wi‑Fi, η κλήση τερματίζεται."</string>
@@ -1335,7 +1337,7 @@
     <string name="status_number_sim_slot" product="tablet" msgid="4518232285651165459">"MDN (υποδοχή sim %1$d)"</string>
     <string name="status_number_sim_slot" product="default" msgid="3660851494421332328">"Αριθμ. τηλ. (υποδοχή sim %1$d)"</string>
     <string name="status_number_sim_status" product="tablet" msgid="8069693515860290952">"MDN στη SIM"</string>
-    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"Αριθμός τηλεφώνουν στη SIM"</string>
+    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"Αριθμός τηλεφώνου στη SIM"</string>
     <string name="status_min_number" msgid="8346889546673707777">"ΛΕΠΤΟ"</string>
     <string name="status_msid_number" msgid="7808175928664357661">"MSID"</string>
     <string name="status_prl_version" msgid="5634561205739199042">"Έκδοση PRL"</string>
@@ -1608,9 +1610,9 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"Περιμένετε…"</string>
     <string name="call_settings_title" msgid="5033906789261282752">"Ρυθμίσεις κλήσης"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Ορισμ.αυτόμ.τηλεφ., προώθ.κλήσης, αναμ.κλήσης, αναγν.κλήσ."</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Πρόσδεση USB"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Σύνδεση USB"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Φορητό σημείο πρόσβασης"</string>
-    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Πρόσδεση Bluetooth"</string>
+    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Σύνδεση με Bluetooth"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Πρόσδεση"</string>
     <string name="tether_settings_title_all" msgid="6935843543433954181">"Σημ. πρόσβ. Wi-Fi/σύνδεση"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Το σημείο πρόσβασης είναι ενεργό, σε σύνδεση"</string>
@@ -1618,10 +1620,10 @@
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Σύνδεση"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Δεν είναι δυνατή η σύνδεση σε φορητό σημείο πρόσβασης Wi-Fi, ενώ είναι ενεργοποιημένη η Εξοικονόμηση δεδομένων"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Πρόσδεση USB"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Μοιραστείτε τη σύνδεση του τηλεφώνου στο διαδίκτυο μέσω USB"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Σύνδεση USB"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Κοινή χρήση της σύνδεσης του τηλεφώνου στο διαδίκτυο μέσω USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Μοιραστείτε τη σύνδεση του tablet στο διαδίκτυο μέσω USB"</string>
-    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Πρόσδεση Bluetooth"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Σύνδεση με Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Κοινή χρήση της σύνδεσης του tablet στο διαδίκτυο μέσω Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Κοινή χρήση της σύνδεσης του τηλεφώνου στο διαδίκτυο μέσω Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Κοινή χρήση σύνδεσης της συσκευής <xliff:g id="DEVICE_NAME">%1$d</xliff:g> στο διαδίκτυο μέσω Bluetooth"</string>
@@ -2083,7 +2085,7 @@
     <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"Ώρα για την εκτέλεση ενεργειών"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Επιλέξτε το χρονικό διάστημα για το οποίο θέλετε να εμφανίζονται τα μηνύματα που θα πρέπει να διαβάζετε, αλλά τα οποία είναι ορατά μόνο προσωρινά.\n\nΑυτή η ρύθμιση δεν υποστηρίζεται από όλες τις εφαρμογές."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Επιλέξτε το χρονικό διάστημα για το οποίο θέλετε να εμφανίζονται τα μηνύματα που σας ζητούν να προβείτε σε κάποια ενέργεια, αλλά τα οποία είναι ορατά μόνο προσωρινά.\n\nΑυτή η ρύθμιση δεν υποστηρίζεται από όλες τις εφαρμογές."</string>
-    <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Καθυστέρηση παρατετ. αγγίγματος"</string>
+    <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Διάρκεια παρατεταμένου αγγίγματος"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Αντιστροφή χρωμάτων"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Ενδέχεται να επηρεάσει την απόδοση"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"Χρόνος παραμονής"</string>
@@ -2449,7 +2451,7 @@
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Δεν υπάρχει πρόγραμμα"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Με βάση τη ρουτίνα σας"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Βάσει ποσοστού"</string>
-    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Η εξοικονόμηση μπαταρίας ενεργοποιείται όταν υπάρχει σημαντική πιθανότητα εξάντλησης της μπαταρίας σας πριν την επόμενη τυπική φόρτιση"</string>
+    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Η εξοικονόμηση μπαταρίας ενεργοποιείται όταν υπάρχει σημαντική πιθανότητα εξάντλησης της μπαταρίας σας πριν την επόμενη κανονική φόρτιση"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Θα ενεργοποιηθεί στο <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Ορίστε ένα πρόγραμμα"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Απενεργοποίηση κατά την πλήρη φόρτιση"</string>
@@ -2732,7 +2734,7 @@
     <string name="data_usage_metered_wifi" msgid="2955256408132426720">"Δίκτυα Wi‑Fi με βάση τη χρήση"</string>
     <string name="data_usage_metered_wifi_disabled" msgid="5771083253782103415">"Για επιλογή δικτύων με βάση τη χρήση, ενεργοποιήστε το Wi-Fi."</string>
     <string name="data_usage_metered_auto" msgid="7924116401382629319">"Αυτόματα"</string>
-    <string name="data_usage_metered_yes" msgid="7333744880035386073">"Με περιορισμούς"</string>
+    <string name="data_usage_metered_yes" msgid="7333744880035386073">"Με ογκοχρέωση"</string>
     <string name="data_usage_metered_no" msgid="1961524615778610008">"Χωρίς περιορισμούς"</string>
     <string name="data_usage_disclaimer" msgid="4683321532922590425">"Ο υπολογισμός δεδ.της εταιρείας κιν.τηλ. μπορεί να διαφέρει από τη συσκευή σας."</string>
     <string name="cryptkeeper_emergency_call" msgid="4625420047524693116">"Κλήση έκτακτης ανάγκης"</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Χρήστης"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Προφίλ περιορ. πρόσβασης"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Προσθήκη νέου χρήστη;"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Μπορείτε να μοιραστείτε αυτήν τη συσκευή με άλλα άτομα, δημιουργώντας επιπλέον χρήστες. Κάθε χρήστης θα έχει το δικό του χώρο, τον οποίο μπορεί να προσαρμόσει με τις δικές του εφαρμογές, ταπετσαρία κ.λπ. Οι χρήστες μπορούν επίσης να προσαρμόσουν ρυθμίσεις της συσκευής, όπως το Wi‑Fi, που επηρεάζουν τους πάντες.\n\nΚατά την προσθήκη ενός νέου χρήστη, αυτός θα πρέπει να ρυθμίσει τον χώρο του.\n\nΟποιοσδήποτε χρήστης μπορεί να ενημερώσει τις εφαρμογές για όλους τους άλλους χρήστες. Οι ρυθμίσεις και οι υπηρεσίες προσβασιμότητας ενδέχεται να μην μεταφερθούν στον νέο χρήστη"</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Μπορείτε να μοιραστείτε αυτήν τη συσκευή με άλλα άτομα, δημιουργώντας επιπλέον χρήστες. Κάθε χρήστης θα έχει το δικό του χώρο, τον οποίο μπορεί να προσαρμόσει με τις δικές του εφαρμογές, ταπετσαρία κ.λπ. Οι χρήστες μπορούν επίσης να προσαρμόσουν ρυθμίσεις της συσκευής, όπως το Wi‑Fi, που επηρεάζουν τους πάντες.\n\nΚατά την προσθήκη ενός νέου χρήστη, αυτός θα πρέπει να ρυθμίσει τον χώρο του.\n\nΟποιοσδήποτε χρήστης μπορεί να ενημερώσει τις εφαρμογές για όλους τους άλλους χρήστες. Οι ρυθμίσεις και οι υπηρεσίες προσβασιμότητας ενδέχεται να μην μεταφερθούν στον νέο χρήστη."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Κατά την προσθήκη ενός νέου χρήστη, αυτός θα πρέπει να ρυθμίσει το χώρο του.\n\nΟποιοσδήποτε χρήστης μπορεί να ενημερώσει τις εφαρμογές για όλους τους άλλους χρήστες."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Να γίνει ρύθμιση χρήστη τώρα;"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"Βεβαιωθείτε ότι ο χρήστης μπορεί να πάρει τη συσκευή και ρυθμίστε το χώρο του"</string>
@@ -4132,7 +4134,7 @@
     <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Πατήστε για έλεγχο του τηλεφώνου"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Πατήστε για έλεγχο του tablet"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Πατήστε για έλεγχο της συσκευής"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Πατήστε την οθόνη για να ελέγξετε την ώρα, τις ειδοποιήσεις και άλλες πληροφορίες."</string>
+    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Πατήστε την οθόνη για να δείτε την ώρα, τις ειδοποιήσεις και άλλες πληροφορίες."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Σύρετε στον αισθητήρα δακτυλικών αποτυπωμάτων για ειδοποιήσεις"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Ολίσθηση δακτυλ. αποτυπ."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Για να ελέγξετε τις ειδοποιήσεις σας, σύρετε προς τα κάτω στον αισθητήρα δακτυλικών αποτυπωμάτων στο πίσω μέρος του τηλεφώνου."</string>
diff --git a/tests/CarDeveloperOptions/res/values-en-rAU/arrays.xml b/tests/CarDeveloperOptions/res/values-en-rAU/arrays.xml
index f718198..b001bdd 100644
--- a/tests/CarDeveloperOptions/res/values-en-rAU/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rAU/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"run in background"</item>
     <item msgid="6423861043647911030">"accessibility volume"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Location"</item>
+    <item msgid="6656077694190491067">"Location"</item>
+    <item msgid="8790228218278477369">"Location"</item>
+    <item msgid="7836406246005211990">"Vibrate"</item>
+    <item msgid="3951439024549922598">"Read contacts"</item>
+    <item msgid="8802152411647068">"Modify contacts"</item>
+    <item msgid="229544934599698735">"Read call log"</item>
+    <item msgid="7396102294405899613">"Modify call log"</item>
+    <item msgid="3597797992398484655">"Read calendar"</item>
+    <item msgid="2705975774250907343">"Modify calendar"</item>
+    <item msgid="4668747371441932697">"Location"</item>
+    <item msgid="1487578921720243646">"Post notification"</item>
+    <item msgid="4636080349724146638">"Location"</item>
+    <item msgid="673510900286463926">"Call phone"</item>
+    <item msgid="542083422784609790">"Read SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Write SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Receive SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Receive SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Receive SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Receive SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Send SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Read SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Write SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modify settings"</item>
+    <item msgid="8705854389991425629">"Draw on top"</item>
+    <item msgid="5861356020344153651">"Access notifications"</item>
+    <item msgid="78432174621628659">"Camera"</item>
+    <item msgid="3986116419882154794">"Record audio"</item>
+    <item msgid="4516840825756409490">"Play audio"</item>
+    <item msgid="6811712502798183957">"Read clipboard"</item>
+    <item msgid="2780369012602289114">"Modify clipboard"</item>
+    <item msgid="2331359440170850868">"Media buttons"</item>
+    <item msgid="6133599737122751231">"Audio focus"</item>
+    <item msgid="6844485713404805301">"Master volume"</item>
+    <item msgid="1600379420669104929">"Voice volume"</item>
+    <item msgid="6296768210470214866">"Ring volume"</item>
+    <item msgid="510690696071629241">"Media volume"</item>
+    <item msgid="406861638631430109">"Alarm volume"</item>
+    <item msgid="4715864795872233884">"Notification volume"</item>
+    <item msgid="2311478519251301183">"Bluetooth volume"</item>
+    <item msgid="5133991377896747027">"Keep awake"</item>
+    <item msgid="2464189519136248621">"Location"</item>
+    <item msgid="2062677934050803037">"Location"</item>
+    <item msgid="1735171933192715957">"Get usage stats"</item>
+    <item msgid="1014093788778383554">"Mute/unmute microphone"</item>
+    <item msgid="4199297950608622850">"Show toast"</item>
+    <item msgid="2527962435313398821">"Project media"</item>
+    <item msgid="5117506254221861929">"Activate VPN"</item>
+    <item msgid="8291198322681891160">"Write wallpaper"</item>
+    <item msgid="7106921284621230961">"Assist structure"</item>
+    <item msgid="4496533640894624799">"Assist screenshot"</item>
+    <item msgid="2598847264853993611">"Read phone state"</item>
+    <item msgid="9215610846802973353">"Add voicemail"</item>
+    <item msgid="9186411956086478261">"Use sip"</item>
+    <item msgid="6884763100104539558">"Process outgoing call"</item>
+    <item msgid="125513972170580692">"Fingerprint"</item>
+    <item msgid="2556071024281275619">"Body sensors"</item>
+    <item msgid="617168514928339387">"Read mobile broadcasts"</item>
+    <item msgid="7134693570516523585">"Mock location"</item>
+    <item msgid="7224489175375229399">"Read storage"</item>
+    <item msgid="8472735063903258202">"Write storage"</item>
+    <item msgid="4069276819909595110">"Turn on screen"</item>
+    <item msgid="1228338896751121025">"Get accounts"</item>
+    <item msgid="3181581793459233672">"Run in background"</item>
+    <item msgid="2340936043025374076">"Accessibility volume"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Short"</item>
     <item msgid="4816511817309094890">"Medium"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Never allow"</item>
     <item msgid="8184570120217958741">"Always allow"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderate"</item>
+    <item msgid="1555861583162930714">"Low"</item>
+    <item msgid="1719683776264798117">"Critical"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderate"</item>
+    <item msgid="182695359839047859">"Low"</item>
+    <item msgid="8577246509202964244">"Critical"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistent"</item>
     <item msgid="167418068739176448">"Top activity"</item>
diff --git a/tests/CarDeveloperOptions/res/values-en-rAU/strings.xml b/tests/CarDeveloperOptions/res/values-en-rAU/strings.xml
index 26efa62..42ae028 100644
--- a/tests/CarDeveloperOptions/res/values-en-rAU/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rAU/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Make the text on screen smaller or larger."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Make larger"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Sample text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chapter 11: The Wonderful Emerald City of Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"If Wi‑Fi is unavailable, use mobile network"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"If mobile network is unavailable, use Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Call over Wi‑Fi. If Wi‑Fi is lost, call will end."</string>
diff --git a/tests/CarDeveloperOptions/res/values-en-rCA/arrays.xml b/tests/CarDeveloperOptions/res/values-en-rCA/arrays.xml
index f718198..b001bdd 100644
--- a/tests/CarDeveloperOptions/res/values-en-rCA/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rCA/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"run in background"</item>
     <item msgid="6423861043647911030">"accessibility volume"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Location"</item>
+    <item msgid="6656077694190491067">"Location"</item>
+    <item msgid="8790228218278477369">"Location"</item>
+    <item msgid="7836406246005211990">"Vibrate"</item>
+    <item msgid="3951439024549922598">"Read contacts"</item>
+    <item msgid="8802152411647068">"Modify contacts"</item>
+    <item msgid="229544934599698735">"Read call log"</item>
+    <item msgid="7396102294405899613">"Modify call log"</item>
+    <item msgid="3597797992398484655">"Read calendar"</item>
+    <item msgid="2705975774250907343">"Modify calendar"</item>
+    <item msgid="4668747371441932697">"Location"</item>
+    <item msgid="1487578921720243646">"Post notification"</item>
+    <item msgid="4636080349724146638">"Location"</item>
+    <item msgid="673510900286463926">"Call phone"</item>
+    <item msgid="542083422784609790">"Read SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Write SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Receive SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Receive SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Receive SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Receive SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Send SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Read SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Write SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modify settings"</item>
+    <item msgid="8705854389991425629">"Draw on top"</item>
+    <item msgid="5861356020344153651">"Access notifications"</item>
+    <item msgid="78432174621628659">"Camera"</item>
+    <item msgid="3986116419882154794">"Record audio"</item>
+    <item msgid="4516840825756409490">"Play audio"</item>
+    <item msgid="6811712502798183957">"Read clipboard"</item>
+    <item msgid="2780369012602289114">"Modify clipboard"</item>
+    <item msgid="2331359440170850868">"Media buttons"</item>
+    <item msgid="6133599737122751231">"Audio focus"</item>
+    <item msgid="6844485713404805301">"Master volume"</item>
+    <item msgid="1600379420669104929">"Voice volume"</item>
+    <item msgid="6296768210470214866">"Ring volume"</item>
+    <item msgid="510690696071629241">"Media volume"</item>
+    <item msgid="406861638631430109">"Alarm volume"</item>
+    <item msgid="4715864795872233884">"Notification volume"</item>
+    <item msgid="2311478519251301183">"Bluetooth volume"</item>
+    <item msgid="5133991377896747027">"Keep awake"</item>
+    <item msgid="2464189519136248621">"Location"</item>
+    <item msgid="2062677934050803037">"Location"</item>
+    <item msgid="1735171933192715957">"Get usage stats"</item>
+    <item msgid="1014093788778383554">"Mute/unmute microphone"</item>
+    <item msgid="4199297950608622850">"Show toast"</item>
+    <item msgid="2527962435313398821">"Project media"</item>
+    <item msgid="5117506254221861929">"Activate VPN"</item>
+    <item msgid="8291198322681891160">"Write wallpaper"</item>
+    <item msgid="7106921284621230961">"Assist structure"</item>
+    <item msgid="4496533640894624799">"Assist screenshot"</item>
+    <item msgid="2598847264853993611">"Read phone state"</item>
+    <item msgid="9215610846802973353">"Add voicemail"</item>
+    <item msgid="9186411956086478261">"Use sip"</item>
+    <item msgid="6884763100104539558">"Process outgoing call"</item>
+    <item msgid="125513972170580692">"Fingerprint"</item>
+    <item msgid="2556071024281275619">"Body sensors"</item>
+    <item msgid="617168514928339387">"Read mobile broadcasts"</item>
+    <item msgid="7134693570516523585">"Mock location"</item>
+    <item msgid="7224489175375229399">"Read storage"</item>
+    <item msgid="8472735063903258202">"Write storage"</item>
+    <item msgid="4069276819909595110">"Turn on screen"</item>
+    <item msgid="1228338896751121025">"Get accounts"</item>
+    <item msgid="3181581793459233672">"Run in background"</item>
+    <item msgid="2340936043025374076">"Accessibility volume"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Short"</item>
     <item msgid="4816511817309094890">"Medium"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Never allow"</item>
     <item msgid="8184570120217958741">"Always allow"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderate"</item>
+    <item msgid="1555861583162930714">"Low"</item>
+    <item msgid="1719683776264798117">"Critical"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderate"</item>
+    <item msgid="182695359839047859">"Low"</item>
+    <item msgid="8577246509202964244">"Critical"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistent"</item>
     <item msgid="167418068739176448">"Top activity"</item>
diff --git a/tests/CarDeveloperOptions/res/values-en-rCA/strings.xml b/tests/CarDeveloperOptions/res/values-en-rCA/strings.xml
index 90f6710..06ff9e5 100644
--- a/tests/CarDeveloperOptions/res/values-en-rCA/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rCA/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Make the text on screen smaller or larger."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Make larger"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Sample text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chapter 11: The Wonderful Emerald City of Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"If Wi‑Fi is unavailable, use mobile network"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"If mobile network is unavailable, use Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Call over Wi‑Fi. If Wi‑Fi is lost, call will end."</string>
diff --git a/tests/CarDeveloperOptions/res/values-en-rGB/arrays.xml b/tests/CarDeveloperOptions/res/values-en-rGB/arrays.xml
index f718198..b001bdd 100644
--- a/tests/CarDeveloperOptions/res/values-en-rGB/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rGB/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"run in background"</item>
     <item msgid="6423861043647911030">"accessibility volume"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Location"</item>
+    <item msgid="6656077694190491067">"Location"</item>
+    <item msgid="8790228218278477369">"Location"</item>
+    <item msgid="7836406246005211990">"Vibrate"</item>
+    <item msgid="3951439024549922598">"Read contacts"</item>
+    <item msgid="8802152411647068">"Modify contacts"</item>
+    <item msgid="229544934599698735">"Read call log"</item>
+    <item msgid="7396102294405899613">"Modify call log"</item>
+    <item msgid="3597797992398484655">"Read calendar"</item>
+    <item msgid="2705975774250907343">"Modify calendar"</item>
+    <item msgid="4668747371441932697">"Location"</item>
+    <item msgid="1487578921720243646">"Post notification"</item>
+    <item msgid="4636080349724146638">"Location"</item>
+    <item msgid="673510900286463926">"Call phone"</item>
+    <item msgid="542083422784609790">"Read SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Write SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Receive SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Receive SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Receive SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Receive SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Send SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Read SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Write SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modify settings"</item>
+    <item msgid="8705854389991425629">"Draw on top"</item>
+    <item msgid="5861356020344153651">"Access notifications"</item>
+    <item msgid="78432174621628659">"Camera"</item>
+    <item msgid="3986116419882154794">"Record audio"</item>
+    <item msgid="4516840825756409490">"Play audio"</item>
+    <item msgid="6811712502798183957">"Read clipboard"</item>
+    <item msgid="2780369012602289114">"Modify clipboard"</item>
+    <item msgid="2331359440170850868">"Media buttons"</item>
+    <item msgid="6133599737122751231">"Audio focus"</item>
+    <item msgid="6844485713404805301">"Master volume"</item>
+    <item msgid="1600379420669104929">"Voice volume"</item>
+    <item msgid="6296768210470214866">"Ring volume"</item>
+    <item msgid="510690696071629241">"Media volume"</item>
+    <item msgid="406861638631430109">"Alarm volume"</item>
+    <item msgid="4715864795872233884">"Notification volume"</item>
+    <item msgid="2311478519251301183">"Bluetooth volume"</item>
+    <item msgid="5133991377896747027">"Keep awake"</item>
+    <item msgid="2464189519136248621">"Location"</item>
+    <item msgid="2062677934050803037">"Location"</item>
+    <item msgid="1735171933192715957">"Get usage stats"</item>
+    <item msgid="1014093788778383554">"Mute/unmute microphone"</item>
+    <item msgid="4199297950608622850">"Show toast"</item>
+    <item msgid="2527962435313398821">"Project media"</item>
+    <item msgid="5117506254221861929">"Activate VPN"</item>
+    <item msgid="8291198322681891160">"Write wallpaper"</item>
+    <item msgid="7106921284621230961">"Assist structure"</item>
+    <item msgid="4496533640894624799">"Assist screenshot"</item>
+    <item msgid="2598847264853993611">"Read phone state"</item>
+    <item msgid="9215610846802973353">"Add voicemail"</item>
+    <item msgid="9186411956086478261">"Use sip"</item>
+    <item msgid="6884763100104539558">"Process outgoing call"</item>
+    <item msgid="125513972170580692">"Fingerprint"</item>
+    <item msgid="2556071024281275619">"Body sensors"</item>
+    <item msgid="617168514928339387">"Read mobile broadcasts"</item>
+    <item msgid="7134693570516523585">"Mock location"</item>
+    <item msgid="7224489175375229399">"Read storage"</item>
+    <item msgid="8472735063903258202">"Write storage"</item>
+    <item msgid="4069276819909595110">"Turn on screen"</item>
+    <item msgid="1228338896751121025">"Get accounts"</item>
+    <item msgid="3181581793459233672">"Run in background"</item>
+    <item msgid="2340936043025374076">"Accessibility volume"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Short"</item>
     <item msgid="4816511817309094890">"Medium"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Never allow"</item>
     <item msgid="8184570120217958741">"Always allow"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderate"</item>
+    <item msgid="1555861583162930714">"Low"</item>
+    <item msgid="1719683776264798117">"Critical"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderate"</item>
+    <item msgid="182695359839047859">"Low"</item>
+    <item msgid="8577246509202964244">"Critical"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistent"</item>
     <item msgid="167418068739176448">"Top activity"</item>
diff --git a/tests/CarDeveloperOptions/res/values-en-rGB/strings.xml b/tests/CarDeveloperOptions/res/values-en-rGB/strings.xml
index 26efa62..42ae028 100644
--- a/tests/CarDeveloperOptions/res/values-en-rGB/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rGB/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Make the text on screen smaller or larger."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Make larger"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Sample text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chapter 11: The Wonderful Emerald City of Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"If Wi‑Fi is unavailable, use mobile network"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"If mobile network is unavailable, use Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Call over Wi‑Fi. If Wi‑Fi is lost, call will end."</string>
diff --git a/tests/CarDeveloperOptions/res/values-en-rIN/arrays.xml b/tests/CarDeveloperOptions/res/values-en-rIN/arrays.xml
index f718198..b001bdd 100644
--- a/tests/CarDeveloperOptions/res/values-en-rIN/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rIN/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"run in background"</item>
     <item msgid="6423861043647911030">"accessibility volume"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Location"</item>
+    <item msgid="6656077694190491067">"Location"</item>
+    <item msgid="8790228218278477369">"Location"</item>
+    <item msgid="7836406246005211990">"Vibrate"</item>
+    <item msgid="3951439024549922598">"Read contacts"</item>
+    <item msgid="8802152411647068">"Modify contacts"</item>
+    <item msgid="229544934599698735">"Read call log"</item>
+    <item msgid="7396102294405899613">"Modify call log"</item>
+    <item msgid="3597797992398484655">"Read calendar"</item>
+    <item msgid="2705975774250907343">"Modify calendar"</item>
+    <item msgid="4668747371441932697">"Location"</item>
+    <item msgid="1487578921720243646">"Post notification"</item>
+    <item msgid="4636080349724146638">"Location"</item>
+    <item msgid="673510900286463926">"Call phone"</item>
+    <item msgid="542083422784609790">"Read SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Write SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Receive SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Receive SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Receive SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Receive SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Send SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Read SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Write SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modify settings"</item>
+    <item msgid="8705854389991425629">"Draw on top"</item>
+    <item msgid="5861356020344153651">"Access notifications"</item>
+    <item msgid="78432174621628659">"Camera"</item>
+    <item msgid="3986116419882154794">"Record audio"</item>
+    <item msgid="4516840825756409490">"Play audio"</item>
+    <item msgid="6811712502798183957">"Read clipboard"</item>
+    <item msgid="2780369012602289114">"Modify clipboard"</item>
+    <item msgid="2331359440170850868">"Media buttons"</item>
+    <item msgid="6133599737122751231">"Audio focus"</item>
+    <item msgid="6844485713404805301">"Master volume"</item>
+    <item msgid="1600379420669104929">"Voice volume"</item>
+    <item msgid="6296768210470214866">"Ring volume"</item>
+    <item msgid="510690696071629241">"Media volume"</item>
+    <item msgid="406861638631430109">"Alarm volume"</item>
+    <item msgid="4715864795872233884">"Notification volume"</item>
+    <item msgid="2311478519251301183">"Bluetooth volume"</item>
+    <item msgid="5133991377896747027">"Keep awake"</item>
+    <item msgid="2464189519136248621">"Location"</item>
+    <item msgid="2062677934050803037">"Location"</item>
+    <item msgid="1735171933192715957">"Get usage stats"</item>
+    <item msgid="1014093788778383554">"Mute/unmute microphone"</item>
+    <item msgid="4199297950608622850">"Show toast"</item>
+    <item msgid="2527962435313398821">"Project media"</item>
+    <item msgid="5117506254221861929">"Activate VPN"</item>
+    <item msgid="8291198322681891160">"Write wallpaper"</item>
+    <item msgid="7106921284621230961">"Assist structure"</item>
+    <item msgid="4496533640894624799">"Assist screenshot"</item>
+    <item msgid="2598847264853993611">"Read phone state"</item>
+    <item msgid="9215610846802973353">"Add voicemail"</item>
+    <item msgid="9186411956086478261">"Use sip"</item>
+    <item msgid="6884763100104539558">"Process outgoing call"</item>
+    <item msgid="125513972170580692">"Fingerprint"</item>
+    <item msgid="2556071024281275619">"Body sensors"</item>
+    <item msgid="617168514928339387">"Read mobile broadcasts"</item>
+    <item msgid="7134693570516523585">"Mock location"</item>
+    <item msgid="7224489175375229399">"Read storage"</item>
+    <item msgid="8472735063903258202">"Write storage"</item>
+    <item msgid="4069276819909595110">"Turn on screen"</item>
+    <item msgid="1228338896751121025">"Get accounts"</item>
+    <item msgid="3181581793459233672">"Run in background"</item>
+    <item msgid="2340936043025374076">"Accessibility volume"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Short"</item>
     <item msgid="4816511817309094890">"Medium"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Never allow"</item>
     <item msgid="8184570120217958741">"Always allow"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderate"</item>
+    <item msgid="1555861583162930714">"Low"</item>
+    <item msgid="1719683776264798117">"Critical"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderate"</item>
+    <item msgid="182695359839047859">"Low"</item>
+    <item msgid="8577246509202964244">"Critical"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistent"</item>
     <item msgid="167418068739176448">"Top activity"</item>
diff --git a/tests/CarDeveloperOptions/res/values-en-rIN/strings.xml b/tests/CarDeveloperOptions/res/values-en-rIN/strings.xml
index 26efa62..42ae028 100644
--- a/tests/CarDeveloperOptions/res/values-en-rIN/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-en-rIN/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Make the text on screen smaller or larger."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Make smaller"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Make larger"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Sample text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chapter 11: The Wonderful Emerald City of Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"If Wi‑Fi is unavailable, use mobile network"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"If mobile network is unavailable, use Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Call over Wi‑Fi. If Wi‑Fi is lost, call will end."</string>
diff --git a/tests/CarDeveloperOptions/res/values-es-rUS/arrays.xml b/tests/CarDeveloperOptions/res/values-es-rUS/arrays.xml
index 195115c..490207d 100644
--- a/tests/CarDeveloperOptions/res/values-es-rUS/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-es-rUS/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"No permitir nunca"</item>
     <item msgid="8184570120217958741">"Permitir siempre"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderado"</item>
+    <item msgid="1555861583162930714">"Baja"</item>
+    <item msgid="1719683776264798117">"Crítico"</item>
+    <item msgid="1567326459340152525">"Desconocido"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderado"</item>
+    <item msgid="182695359839047859">"Baja"</item>
+    <item msgid="8577246509202964244">"Crítico"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistente"</item>
     <item msgid="167418068739176448">"Actividad principal"</item>
@@ -467,7 +477,7 @@
     <item msgid="1008268820118852416">"Tratar como red sin tarifa plana"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Usar MAC aleatoria (predeterminada)"</item>
+    <item msgid="6545683814310036454">"Usar MAC aleatoria (pred.)"</item>
     <item msgid="214234417308375326">"Usar MAC del dispositivo"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-es-rUS/strings.xml b/tests/CarDeveloperOptions/res/values-es-rUS/strings.xml
index 40d06e8..839b5f7 100644
--- a/tests/CarDeveloperOptions/res/values-es-rUS/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-es-rUS/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Aumenta o reduce el tamaño del texto en pantalla."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Reducir el tamaño"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Aumentar el tamaño"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Texto de muestra"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"El maravilloso mago de Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capítulo 11: La maravillosa Ciudad Esmeralda de Oz"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Activa NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC intercambia datos entre este dispositivo y otras orientaciones o dispositivos cercanos, como terminales de pago, lectores de acceso o etiquetas."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Proteger NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Permitir uso de pagos NFC y Transit solo cuando la pantalla está desbloqueada"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Permitir el uso de NFC en pagos y transporte público solo cuando la pantalla está desbloqueada"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Listo para transmitir contenido de aplicaciones por NFC"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Desactivada"</string>
@@ -906,11 +905,11 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Ingresa el SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Seguridad"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Red oculta"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Si tu router no emite un ID de red, pero quieres conectarte a la red en el futuro, configúrala para que esté oculta.\n\nEs posible que esta acción suponga un riesgo de seguridad, ya que tu teléfono emitirá su señal de forma regular para buscar la red.\n\nSi configuras la red para que esté oculta, no se modificarán los ajustes del router."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Si el router no emite un ID de red, pero quieres conectarte a la red en el futuro, configúrala para que esté oculta.\n\nEs posible que esta acción implique riesgos de seguridad porque el teléfono emitirá la señal regularmente para buscar la red.\n\nSi configuras la red para que esté oculta, no se modificarán los ajustes del router."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Potencia de la señal"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Estado"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"Transmitir velocidad de vínculo"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Recibir velocidad de vínculo"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"Velocidad enlace de transmisión"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Velocidad enlace de recepción"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Frecuencia"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"Dirección IP"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Se guardó mediante"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Móvil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Si no hay ninguna red Wi-Fi disponible, usa una red móvil"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Si la red móvil no está disponible, usa Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Llamar mediante Wi-Fi. La llamada finalizará si se pierde la conexión."</string>
@@ -1584,7 +1586,7 @@
     <string name="master_clear_title" msgid="1560712943955904673">"Borrar todos los datos (restablecer la configuración de fábrica)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Borrar todos los datos"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Esta acción borrará todos los datos del "<b>"almacenamiento interno"</b>" de tu tablet, como\n\n"<li>"Tu Cuenta de Google"</li>\n<li>"Los datos y la configuración del sistema y de las apps"</li>\n<li>"Las apps descargadas"</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Esta acción borrará todos los datos del "<b>"almacenamiento interno"</b>" de tu teléfono, como\n\n"<li>"Tu Cuenta de Google"</li>\n<li>"Los datos y la configuración del sistema y de las apps"</li>\n<li>"Las apps descargadas"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Se borrarán todos los datos del "<b>"almacenamiento interno"</b>" del teléfono, por ejemplo:\n\n"<li>"Tu Cuenta de Google"</li>\n<li>"Los datos y la configuración del sistema y de las apps"</li>\n<li>"Las apps descargadas"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"Accediste a las siguientes cuentas:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"Hay otros usuarios presentes en este dispositivo.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Otros datos de usuario"</li></string>
@@ -2053,7 +2055,7 @@
     <string name="accessibility_screen_magnification_gestures_title" msgid="9199287875401817974">"Ampliar presionando tres veces"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="400655612610761242">"Ampliar con el botón"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="1863831350878995600">"Ampliar con el botón y al presionar tres veces"</string>
-    <string name="accessibility_preference_magnification_summary" msgid="753307741814376312">"Ampliar la pantalla"</string>
+    <string name="accessibility_preference_magnification_summary" msgid="753307741814376312">"Amplía la pantalla"</string>
     <string name="accessibility_screen_magnification_short_summary" msgid="5698545174944494486">"Presiona tres veces para ampliar"</string>
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="5418767043532322397">"Presiona un botón para ampliar"</string>
     <string name="accessibility_screen_magnification_summary" msgid="3363006902079431772"><b>"Para ampliar"</b>", presiona la pantalla 3 veces rápidamente \n"<ul><li>"Arrastra 2 o más dedos para desplazarte."</li>\n<li>"Pellizca con 2 o más dedos para ajustar el zoom."</li></ul>\n\n<b>"Para hacer zoom de manera temporal"</b>", presiona la pantalla 3 veces rápidamente y mantén presionado la última vez.\n"<ul><li>"Arrastra el dedo para moverte por la pantalla."</li>\n<li>"Levanta el dedo para alejar la imagen."</li></ul>\n\n"No se puede ampliar el teclado ni la barra de navegación."</string>
@@ -2315,9 +2317,9 @@
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Esta app podrá usar la batería en segundo plano. La batería podría agotarse antes de lo esperado."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Quitar"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Cancelar"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"La cantidad de batería que usan tus apps es normal. Si consumen demasiada batería, el teléfono te recomendará acciones.\n\nSi tienes poca batería, también puedes activar el Ahorro de batería."</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"La cantidad de batería que usan tus apps es normal. Si consumen demasiada batería, la tablet te recomendará acciones.\n\nSi tienes poca batería, también puedes activar el Ahorro de batería."</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"La cantidad de batería que usan tus apps es normal. Si consumen demasiada batería, el dispositivo te recomendará acciones.\n\nSi tienes poca batería, también puedes activar el Ahorro de batería."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Tus apps consumen una cantidad normal de batería. Si consumen demasiada batería, el teléfono te recomendará acciones.\n\nSi tienes poca batería, también puedes activar el Ahorro de batería."</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Tus apps consumen una cantidad normal de batería. Si consumen demasiada batería, la tablet te recomendará acciones.\n\nSi tienes poca batería, también puedes activar el Ahorro de batería."</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Tus apps consumen una cantidad normal de batería. Si consumen demasiada batería, el dispositivo te recomendará acciones.\n\nSi tienes poca batería, también puedes activar el Ahorro de batería."</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"Administrador de batería"</string>
     <string name="smart_battery_title" msgid="4919670408532804351">"Administra apps automáticamente"</string>
     <string name="smart_battery_summary" msgid="640027046471198174">"Limitar el consumo de batería de las apps que no uses con frecuencia"</string>
@@ -2529,7 +2531,7 @@
     <string name="credentials_reset_summary" msgid="7622528359699428555">"Quitar todos los certificados"</string>
     <string name="trusted_credentials" msgid="6989242522455395200">"Credenciales de confianza"</string>
     <string name="trusted_credentials_summary" msgid="7411781319056251582">"Mostrar certificados de CA de confianza"</string>
-    <string name="user_credentials" msgid="8365731467650306757">"Credenciales del usuario"</string>
+    <string name="user_credentials" msgid="8365731467650306757">"Credenciales de usuario"</string>
     <string name="user_credentials_summary" msgid="7350223899317423252">"Ver y modificar las credenciales guardadas"</string>
     <string name="advanced_security_title" msgid="286883005673855845">"Configuración avanzada"</string>
     <string name="credential_storage_type" msgid="2585337320206095255">"Tipo de almacenamiento"</string>
@@ -2754,7 +2756,7 @@
     <string name="vpn_username" msgid="5357878823189445042">"Nombre de usuario"</string>
     <string name="vpn_password" msgid="5325943601523662246">"Contraseña"</string>
     <string name="vpn_save_login" msgid="6215503139606646915">"Guardar información de la cuenta"</string>
-    <string name="vpn_not_used" msgid="2889520789132261454">"(no se utiliza)"</string>
+    <string name="vpn_not_used" msgid="2889520789132261454">"(No se utiliza)"</string>
     <string name="vpn_no_ca_cert" msgid="486605757354800838">"(no verificar el servidor)"</string>
     <string name="vpn_no_server_cert" msgid="679622228649855629">"(recibido desde el servidor)"</string>
     <string name="vpn_always_on_invalid_reason_type" msgid="165810330614905489">"Este tipo de VPN no puede permanecer conectada todo el tiempo"</string>
diff --git a/tests/CarDeveloperOptions/res/values-es/arrays.xml b/tests/CarDeveloperOptions/res/values-es/arrays.xml
index 5b52eee..81d4f62 100644
--- a/tests/CarDeveloperOptions/res/values-es/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-es/arrays.xml
@@ -71,7 +71,7 @@
     <item msgid="5597394826455877834">"Conectando…"</item>
     <item msgid="5848277343965362748">"Autenticando..."</item>
     <item msgid="3391238031431440676">"Obteniendo dirección IP…"</item>
-    <item msgid="5257597310494000224">"Conectada"</item>
+    <item msgid="5257597310494000224">"Conectado"</item>
     <item msgid="8472497592913050396">"Suspendido"</item>
     <item msgid="1228072488815999109">"Desconectando…"</item>
     <item msgid="7253087004422991731">"Desconectado"</item>
@@ -101,7 +101,7 @@
     <item msgid="4526848028011846710">"PIN del dispositivo"</item>
   </string-array>
   <string-array name="wifi_p2p_status">
-    <item msgid="8741947238021758201">"Conectada"</item>
+    <item msgid="8741947238021758201">"Conectado"</item>
     <item msgid="983792611851499732">"Invitado"</item>
     <item msgid="5438273405428201793">"Con error"</item>
     <item msgid="4646663015449312554">"Disponible"</item>
@@ -170,7 +170,7 @@
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Ninguna"</item>
     <item msgid="1464741437353223198">"Manual"</item>
-    <item msgid="5793600062487886090">"Proxy autoconfigurado"</item>
+    <item msgid="5793600062487886090">"Proxy configurado automáticamente"</item>
   </string-array>
   <string-array name="apn_auth_entries">
     <item msgid="7099647881902405997">"Ninguna"</item>
@@ -414,7 +414,7 @@
     <item msgid="5408915841694583740">"Desconectado"</item>
     <item msgid="8754480102834556765">"Iniciando..."</item>
     <item msgid="3351334355574270250">"Conectando…"</item>
-    <item msgid="8303882153995748352">"Conectada"</item>
+    <item msgid="8303882153995748352">"Conectado"</item>
     <item msgid="9135049670787351881">"Tiempo de espera"</item>
     <item msgid="2124868417182583926">"Con error"</item>
   </string-array>
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"No permitir nunca"</item>
     <item msgid="8184570120217958741">"Permitir siempre"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderada"</item>
+    <item msgid="1555861583162930714">"Baja"</item>
+    <item msgid="1719683776264798117">"Crítico"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderado"</item>
+    <item msgid="182695359839047859">"Baja"</item>
+    <item msgid="8577246509202964244">"Crítico"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistente"</item>
     <item msgid="167418068739176448">"Actividad principal"</item>
@@ -446,14 +456,14 @@
     <item msgid="3151827842194201728">"Verde azulado"</item>
     <item msgid="3228505970082457852">"Azul"</item>
     <item msgid="6590260735734795647">"Índigo"</item>
-    <item msgid="3521763377357218577">"Violeta"</item>
+    <item msgid="3521763377357218577">"Morado"</item>
     <item msgid="5932337981182999919">"Rosa"</item>
     <item msgid="5642914536624000094">"Rojo"</item>
   </string-array>
   <string-array name="automatic_storage_management_days">
-    <item msgid="2860293514533486236">"Más de 30 días de antigüedad"</item>
-    <item msgid="8699273238891265610">"Más de 60 días de antigüedad"</item>
-    <item msgid="8346279419423837266">"Más de 90 días de antigüedad"</item>
+    <item msgid="2860293514533486236">"De más de 30 días de antigüedad"</item>
+    <item msgid="8699273238891265610">"De más de 60 días de antigüedad"</item>
+    <item msgid="8346279419423837266">"De más de 90 días de antigüedad"</item>
   </string-array>
     <!-- no translation found for swipe_direction_titles:0 (6583090603341402282) -->
     <!-- no translation found for swipe_direction_titles:1 (4965730704403236310) -->
diff --git a/tests/CarDeveloperOptions/res/values-es/strings.xml b/tests/CarDeveloperOptions/res/values-es/strings.xml
index 52a54ad..633f7a6 100644
--- a/tests/CarDeveloperOptions/res/values-es/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-es/strings.xml
@@ -23,8 +23,8 @@
     <string name="deny" msgid="3998166389989144025">"Denegar"</string>
     <string name="device_info_default" msgid="1548919563979154348">"Desconocido"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="3953785659137161981">
-      <item quantity="other">Solo te quedan <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser un desarrollador.</item>
-      <item quantity="one">Solo te queda <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> paso de ser un desarrollador.</item>
+      <item quantity="other">Estás a <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> pasos de ser desarrollador.</item>
+      <item quantity="one">Estás a <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> paso de ser desarrollador.</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"¡Ahora están activadas las opciones para desarrolladores!"</string>
     <string name="show_dev_already" msgid="7665948832405148689">"Las opciones para desarrolladores ya están activadas."</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Aumenta o disminuye el tamaño del texto de la pantalla."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Reducir el tamaño"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Aumentar el tamaño"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Texto de ejemplo"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"El maravilloso mago de Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capítulo 11: La maravillosa Ciudad Esmeralda de Oz"</string>
@@ -128,7 +127,7 @@
     <string name="bluetooth_notif_title" msgid="5090288898529286011">"Solicitud de vinculación"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"Toca para vincular con <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"Archivos recibidos"</string>
-    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"Archivos recibidos (Bluetooth)"</string>
+    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"Archivos recibidos por Bluetooth"</string>
     <string name="device_picker" msgid="8345264486071697705">"Seleccionar dispositivo Bluetooth"</string>
     <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> quiere activar el Bluetooth"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> quiere desactivar el Bluetooth"</string>
@@ -197,7 +196,7 @@
     <string name="proxy_settings_title" msgid="6014901859338211713">"Proxy"</string>
     <string name="proxy_clear_text" msgid="498317431076294101">"Borrar"</string>
     <string name="proxy_port_label" msgid="8285157632538848509">"Puerto del proxy"</string>
-    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Saltarproxy para"</string>
+    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Saltar proxy para"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"Restaurar valores predeterminados"</string>
     <string name="proxy_action_text" msgid="814511434843981413">"Listo"</string>
     <string name="proxy_hostname_label" msgid="6798891831427287847">"Nombre de host del proxy"</string>
@@ -317,7 +316,7 @@
     <string name="roaming_warning" msgid="5488050911277592868">"El coste de este servicio puede ser significativo."</string>
     <string name="roaming_warning_multiuser" product="tablet" msgid="7090388691615686893">"Al permitir la itinerancia de datos, los costes de itinerancia que deberás asumir pueden ser significativos.\n\nEsta configuración afecta a todos los usuarios de este tablet."</string>
     <string name="roaming_warning_multiuser" product="default" msgid="6999819541078827556">"Al permitir la itinerancia de datos, los costes de itinerancia que deberás asumir pueden ser significativos.\n\nEsta configuración afecta a todos los usuarios de este teléfono."</string>
-    <string name="roaming_reenable_title" msgid="6985082191178297921">"¿Permitir la itinerancia de datos?"</string>
+    <string name="roaming_reenable_title" msgid="6985082191178297921">"¿Permitir itinerancia de datos?"</string>
     <string name="networks" msgid="3073876464102136771">"Selección de operador"</string>
     <string name="sum_carrier_select" msgid="8964744180598499121">"Selecciona un operador de red"</string>
     <string name="date_and_time_settings_title" msgid="7827088656940910631">"Fecha y hora"</string>
@@ -356,7 +355,7 @@
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Habilitar widgets"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Inhabilitado por el administrador"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"Mostrar opción de bloqueo de seguridad"</string>
-    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Mostrar la opción del botón de encendido que desactiva Smart Lock, el desbloqueo con huella digital y las notificaciones en la pantalla de bloqueo"</string>
+    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Muestra la opción del botón de encendido que desactiva Smart Lock, el desbloqueo con huella digital y las notificaciones en la pantalla de bloqueo"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Los agentes de confianza solo extienden el desbloqueo"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"Si se habilita esta opción, los agentes de confianza mantendrán el dispositivo desbloqueado durante más tiempo, pero ya no podrán desbloquear un dispositivo bloqueado"</string>
     <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"Bloquear pantalla si no hay confianza"</string>
@@ -369,7 +368,7 @@
     <string name="profile_info_settings_title" msgid="4855892878512562551">"Información del perfil"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"Cuentas"</string>
     <string name="location_settings_title" msgid="2707201457572301030">"Ubicación"</string>
-    <string name="location_settings_master_switch_title" msgid="3108016866082816733">"Utilizar ubicación"</string>
+    <string name="location_settings_master_switch_title" msgid="3108016866082816733">"Usar ubicación"</string>
     <string name="location_settings_summary_location_off" msgid="5563530256978372978">"Desactivada"</string>
     <plurals name="location_settings_summary_location_on" formatted="false" msgid="7893342914540884818">
       <item quantity="other">Activada: <xliff:g id="COUNT_1">%1$d</xliff:g> aplicaciones tienen acceso a la ubicación</item>
@@ -413,20 +412,20 @@
     <string name="face_intro_error_unknown" msgid="3241592604198351134">"No se pueden añadir más caras"</string>
     <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Registro no completado"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"Aceptar"</string>
-    <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Se ha alcanzado el tiempo de registro de la cara. Vuelve a intentarlo."</string>
+    <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Se ha alcanzado el tiempo límite de registro de la cara. Vuelve a intentarlo."</string>
     <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"El registro de la cara no ha funcionado."</string>
     <string name="security_settings_face_enroll_finish_title" msgid="6800717857394410769">"Ya has terminado. Todo perfecto."</string>
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Listo"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Usar la cara para"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Desbloq. dispositivo"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Inicio de sesión y pagos"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Iniciar sesión y pagos"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Ojos abiertos para desbloquear"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Cuando uses la autenticación facial, abre los ojos"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Pedir confirmación siempre"</string>
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"Pedir confirmación siempre al autenticarse en aplicaciones"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Eliminar datos faciales"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Puedes desbloquear el dispositivo y acceder a tus aplicaciones mediante el reconocimiento facial. "<annotation id="url">"Más información"</annotation></string>
-    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"¿Quieres eliminar los datos faciales?"</string>
+    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"¿Eliminar los datos faciales?"</string>
     <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Los datos grabados de la función Desbloqueo facial se eliminarán de manera segura y permanente. Una vez que se hayan eliminado, necesitarás el PIN, patrón o contraseña para desbloquear el teléfono, iniciar sesión en aplicaciones y confirmar pagos."</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"Huella digital"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"Administrar huellas"</string>
@@ -469,7 +468,7 @@
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Toca el sensor"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Pon el dedo en el sensor y levántalo cuando notes una vibración"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Levanta el dedo y toca de nuevo"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Junta y separa el dedo varias veces para añadir las distintas partes de tu huella digital"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Sigue levantando el dedo para añadir diferentes partes de tu huella digital"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Huella digital añadida"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Cuando veas este icono, utiliza tu huella digital para identificarte o aprobar compras"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Hacerlo más adelante"</string>
@@ -489,7 +488,7 @@
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"¡Vaya! Ese no es el sensor"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Toca el sensor situado detrás del teléfono con el dedo índice."</string>
     <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Registro no completado"</string>
-    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Se ha alcanzado el tiempo de registro de la huella digital. Vuelve a intentarlo."</string>
+    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Se ha alcanzado el tiempo límite de registro de la huella digital. Vuelve a intentarlo."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"El registro de la huella digital no se ha realizado correctamente. Vuelve a intentarlo o utiliza otro dedo."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Añadir otra"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Siguiente"</string>
@@ -766,9 +765,9 @@
     <string name="bluetooth_device_context_connect_advanced" msgid="423463405499392444">"Opciones…"</string>
     <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"Avanzado"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"Ajustes avanzados de Bluetooth"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"Si se activa el Bluetooth, tu dispositivo se puede comunicar con otros dispositivos con Bluetooth cercanos"</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"Cuando el Bluetooth está activado, tu dispositivo se puede comunicar con otros dispositivos con Bluetooth cercanos"</string>
     <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"Si el Bluetooth está activado, el dispositivo se puede comunicar con otros dispositivos Bluetooth cercanos.\n\nPara mejorar la experiencia de uso del dispositivo, las aplicaciones y los servicios pueden seguir buscando dispositivos cercanos en cualquier momento, aunque el Bluetooth esté desactivado. Esta opción se puede utilizar, por ejemplo, para mejorar los servicios y funciones basados en la ubicación, y puedes cambiarla en los "<annotation id="link">"ajustes de búsqueda"</annotation>"."</string>
-    <string name="ble_scan_notify_text" msgid="6290170236546386932">"Para mejorar la precisión de la ubicación, los servicios y las aplicaciones del sistema pueden detectar dispositivos Bluetooth aunque esta conexión esté desactivada. Puedes cambiar esta opción en los <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ajustes de búsqueda<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+    <string name="ble_scan_notify_text" msgid="6290170236546386932">"Para mejorar la precisión de la ubicación, los servicios y las aplicaciones del sistema pueden seguir detectando dispositivos Bluetooth. Puedes cambiar esta opción en los <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ajustes de búsqueda de Bluetooth<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"No se ha podido establecer conexión. Vuelve a intentarlo."</string>
     <string name="device_details_title" msgid="726517818032923222">"Detalles del dispositivo"</string>
     <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"Dirección de Bluetooth del dispositivo: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Activar NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"La tecnología NFC permite intercambiar datos entre este dispositivo y otros dispositivos u objetivos cercanos, como terminales de pago, lectores de acceso y etiquetas o anuncios interactivos."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Proteger NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Permitir uso de NFC en pagos y transporte público solo con la pantalla desbloqueada"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Permite usar NFC en pagos y transporte público solo con la pantalla desbloqueada"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Listo para compartir contenido de aplicaciones por NFC"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Desactivado"</string>
@@ -837,7 +836,7 @@
     <string name="wifi_quick_toggle_title" msgid="7935778388625246184">"Wi-Fi"</string>
     <string name="wifi_quick_toggle_summary" msgid="2879870570547594266">"Activar conexión Wi-Fi"</string>
     <string name="wifi_settings" msgid="7486492317310514109">"Wi-Fi"</string>
-    <string name="wifi_settings_master_switch_title" msgid="3917916944694253946">"Utilizar redes Wi‑Fi"</string>
+    <string name="wifi_settings_master_switch_title" msgid="3917916944694253946">"Usar Wi‑Fi"</string>
     <string name="wifi_settings_category" msgid="9094716747565527901">"Ajustes de Wi-Fi"</string>
     <string name="wifi_settings_title" msgid="5265554991622344805">"Wi-Fi"</string>
     <string name="wifi_settings_summary" msgid="7117267255799892820">"Configurar y administrar puntos de acceso inalámbricos"</string>
@@ -847,7 +846,7 @@
     <string name="wifi_error" msgid="5605801874484465557">"Error"</string>
     <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"Banda de 5 GHz no disponible en este país"</string>
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"Modo avión"</string>
-    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Notificaciones de redes abiertas"</string>
+    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Notificar redes abiertas"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Recibir una notificación si hay una red pública de alta calidad disponible"</string>
     <string name="wifi_wakeup" msgid="4963732992164721548">"Activar Wi-Fi automáticamente"</string>
     <string name="wifi_wakeup_summary" msgid="1152699417411690">"La conexión Wi-Fi se volverá a activar automáticamente cerca de las redes de alta calidad guardadas, como la de tu casa"</string>
@@ -862,8 +861,8 @@
     <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"Para usar esta función, selecciona un proveedor de valoración de redes"</string>
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"Para usar esta función, selecciona un proveedor de valoración de redes compatible"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"Instalar certificados"</string>
-    <string name="wifi_scan_notify_text" msgid="7614101215028336927">"Para mejorar la precisión de la ubicación, las aplicaciones y los servicios pueden seguir buscando redes Wi‑Fi en cualquier momento, aunque esta conexión esté desactivada. Esta opción se puede utilizar, por ejemplo, para mejorar los servicios y funciones basados en la ubicación, y puedes cambiarla en los <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ajustes de búsqueda<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Para mejorar la precisión de la ubicación, activa la búsqueda de redes Wi-Fi en los <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ajustes de la búsqueda<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+    <string name="wifi_scan_notify_text" msgid="7614101215028336927">"Para mejorar la precisión de la ubicación, las aplicaciones y los servicios pueden seguir buscando redes Wi‑Fi en cualquier momento incluso si el ajuste de Wi-Fi está desactivado. Esta opción se puede utilizar, por ejemplo, para mejorar los servicios y funciones basados en la ubicación. Puedes cambiar este ajuste en la <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>búsqueda de redes Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Para mejorar la precisión de la ubicación, activa la <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>búsqueda de redes Wi-Fi<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"No volver a mostrar"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"Usar Wi-Fi en suspensión"</string>
     <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"Wi‑Fi activado en suspensión"</string>
@@ -894,11 +893,11 @@
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"No tienes permiso para cambiar la red Wi‑Fi."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Más"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"Configuración automática (WPS)"</string>
-    <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"¿Quieres activar la búsqueda de redes Wi‑Fi?"</string>
+    <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"¿Activar la búsqueda de redes Wi‑Fi?"</string>
     <string name="wifi_settings_scanning_required_summary" msgid="7469610959462708782">"Para que la conexión Wi‑Fi se active automáticamente, es necesario activar la búsqueda de redes Wi‑Fi."</string>
     <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"La búsqueda de redes Wi‑Fi permite que las aplicaciones y los servicios busquen redes Wi‑Fi en cualquier momento aunque la conexión Wi‑Fi esté desactivada. Se utiliza, por ejemplo, para mejorar los servicios y funciones basados en la ubicación."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="4327570180594277049">"Activar"</string>
-    <string name="wifi_settings_scanning_required_enabled" msgid="3336102100425307040">"Se ha activado la búsqueda de redes Wi‑Fi"</string>
+    <string name="wifi_settings_scanning_required_enabled" msgid="3336102100425307040">"Búsqueda de redes Wi‑Fi activada"</string>
     <string name="wifi_show_advanced" msgid="8199779277168030597">"Opciones avanzadas"</string>
     <string name="wifi_advanced_toggle_description_expanded" msgid="1506697245302596510">"Lista desplegable Opciones Avanzadas. Tócala dos veces para ocultarla."</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3014965593695454879">"Lista desplegable Opciones Avanzadas. Tócala dos veces para mostrarla."</string>
@@ -906,11 +905,11 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Introduce el SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Seguridad"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Red oculta"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Si tu router no emite ningún identificador de red, pero quieres conectarte más adelante, puedes configurar la red como oculta.\n\nEsto puede suponer un riesgo para la seguridad, ya que el teléfono emitirá la señal de forma regular para buscar la red.\n\nConfigurar la red como oculta no cambiará la configuración del router."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Si tu router no emite ningún ID de red, pero quieres conectarte a la red más adelante, puedes configurar la red como oculta.\n\nEsto puede suponer un riesgo para la seguridad, ya que el teléfono emitirá la señal de forma habitual para buscar la red.\n\nConfigurar la red como oculta no cambiará la configuración del router."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Intensidad de la señal"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Estado"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"Transmitir velocidad de enlace"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Recibir velocidad de enlace"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"Velocidad de enlace de transmisión"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Velocidad de enlace de recepción"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Frecuencia"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"Dirección IP"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Guardada a través de"</string>
@@ -928,7 +927,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Automática"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Banda de 2,4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Banda de 5,0 GHz"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Banda preferida: 5,0 GHz"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Banda de 5,0 GHz (preferida)"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Selecciona al menos una banda para el punto de acceso Wi‑Fi:"</string>
@@ -936,13 +935,13 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Privacidad"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Dirección MAC aleatoria"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Añadir un dispositivo"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Encuadra el código QR para añadir el dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Escanear código QR"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Encuadra el código QR para conectarte a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Escanea el código QR para conectarte al Wi‑Fi"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Encuadra el código QR abajo para añadir el dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Escanea el código QR"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Encuadra el código QR abajo para conectarte a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Conéctate a la red Wi-Fi escaneando un código QR"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Compartir Wi‑Fi"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Escanea el código QR con otro dispositivo para conectarlo a \"<xliff:g id="SSID">%1$s</xliff:g>\" y compartir la contraseña"</string>
-    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Escanea el código QR con otro dispositivo para conectarte a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Escanea este código QR con otro dispositivo para conectarlo a \"<xliff:g id="SSID">%1$s</xliff:g>\" y compartir la contraseña"</string>
+    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Escanea este código QR con otro dispositivo para conectarte a \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"No se ha podido leer el código QR. Encuadra bien el código y vuelve a intentarlo."</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Vuelve a intentarlo. Si el problema persiste, ponte en contacto con el fabricante del dispositivo"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"Ha habido un error"</string>
@@ -952,7 +951,7 @@
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"Comprueba la conexión y vuelve a intentarlo"</string>
     <string name="wifi_dpp_choose_network" msgid="6251424431594491691">"Elegir red"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="6385259857886784285">"Elige una red para conectar tu dispositivo"</string>
-    <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"¿Quieres añadir este dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\"?"</string>
+    <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"¿Añadir este dispositivo a \"<xliff:g id="SSID">%1$s</xliff:g>\"?"</string>
     <string name="wifi_dpp_wifi_shared_with_device" msgid="5713765471758272471">"Se ha compartido la red Wi‑Fi con el dispositivo"</string>
     <string name="wifi_dpp_add_another_device" msgid="3698441567235301565">"Añadir otro dispositivo"</string>
     <string name="wifi_dpp_choose_different_network" msgid="128515107488187050">"Elegir otra red"</string>
@@ -960,7 +959,7 @@
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"Dispositivo encontrado"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"Compartiendo Wi‑Fi con este dispositivo…"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"Conectando…"</string>
-    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Compartir punto de red Wi‑Fi"</string>
+    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Comparte el punto de red Wi‑Fi"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Verifica que eres tú"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Contraseña de la red Wi‑Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Contraseña del punto de acceso: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
@@ -971,7 +970,7 @@
     <string name="wifi_unchanged" msgid="6804964646942333992">"(no modificada)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"Selecciona una opción"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(Se han añadido varios certificados)"</string>
-    <string name="wifi_use_system_certs" msgid="4794489370929885022">"Utilizar certificados del sistema"</string>
+    <string name="wifi_use_system_certs" msgid="4794489370929885022">"Usar certificados del sistema"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"No proporcionar"</string>
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"No validar"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"No se ha especificado ningún certificado. La conexión no será privada."</string>
@@ -1058,7 +1057,7 @@
     <string name="wifi_p2p_cancel_connect_message" msgid="3752679335020392154">"¿Quieres cancelar la invitación para conectar con <xliff:g id="PEER_NAME">%1$s</xliff:g>?"</string>
     <string name="wifi_p2p_delete_group_message" msgid="3206660449067701089">"¿Olvidar este grupo?"</string>
     <string name="wifi_hotspot_checkbox_text" msgid="12062341344410520">"Punto de acceso Wi-Fi"</string>
-    <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"No se está compartiendo la conexión a Internet ni el contenido con otros dispositivos"</string>
+    <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"No se está compartiendo Internet ni el contenido con otros dispositivos"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"Se está compartiendo la conexión a Internet de este tablet mediante un punto de acceso"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Se está compartiendo la conexión a Internet de este teléfono mediante un punto de acceso"</string>
     <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"La aplicación está compartiendo contenido. Para compartir la conexión a Internet, desactiva el punto de acceso y vuelve a activarlo"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Móvil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Si la red Wi‑Fi no está disponible, utiliza la red móvil"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Si la red móvil no está disponible, utiliza la red Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Llamar a través de Wi‑Fi. Si se pierde conexión, se cortará la llamada."</string>
@@ -1201,7 +1203,7 @@
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"No ajustar en función de la luz ambiental"</string>
     <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"Aumenta el uso de la batería"</string>
     <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"Optimiza el brillo en función de la luz ambiental. Puedes ajustarlo temporalmente aunque actives esta función."</string>
-    <string name="auto_brightness_description" msgid="8209140379089535411">"El brillo de la pantalla se ajustará automáticamente según el entorno y las actividades que hagas. Puedes mover el control deslizante para que la función de brillo adaptativo reconozca tus preferencias."</string>
+    <string name="auto_brightness_description" msgid="8209140379089535411">"El brillo de la pantalla se ajustará automáticamente según el entorno y lo que hagas. Puedes mover el control deslizante para que la función de brillo adaptativo reconozca tus preferencias."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"Balance de blancos de pantalla"</string>
     <string name="adaptive_sleep_title" msgid="3237620948260957018">"Modo privado"</string>
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"Activado: la pantalla no se apagará si estás mirándola"</string>
@@ -1222,7 +1224,7 @@
     <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"No se activará nunca automáticamente"</string>
     <string name="night_display_summary_off_auto_mode_custom" msgid="596847003171394411">"Se activará automáticamente a esta hora: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_off_auto_mode_twilight" msgid="4071750976585359952">"Se activará automáticamente al anochecer"</string>
-    <string name="night_display_summary_on" msgid="6580571388791426596">"Activado/<xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="night_display_summary_on" msgid="6580571388791426596">"Activado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_on_auto_mode_never" msgid="5461580863060506687">"No se desactivará nunca automáticamente"</string>
     <string name="night_display_summary_on_auto_mode_custom" msgid="2200631112239399233">"Se desactivará automáticamente a esta hora: <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_on_auto_mode_twilight" msgid="8386769601369289561">"Se desactivará automáticamente al amanecer"</string>
@@ -1253,7 +1255,7 @@
     <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"Para controlar lo que ocurre cuando el teléfono está en un dock o inactivo, activa el salvapantallas."</string>
     <string name="screensaver_settings_when_to_dream" msgid="3763052013516826348">"Cuándo empezar a mostrarlo"</string>
     <string name="screensaver_settings_current" msgid="4017556173596361672">"Salvapantallas actual"</string>
-    <string name="screensaver_settings_dream_start" msgid="3772227299054662550">"Iniciar ahora"</string>
+    <string name="screensaver_settings_dream_start" msgid="3772227299054662550">"Empezar ahora"</string>
     <string name="screensaver_settings_button" msgid="4662384378821837589">"Ajustes"</string>
     <string name="automatic_brightness" msgid="8663792987774126192">"Brillo automático"</string>
     <string name="lift_to_wake_title" msgid="5523752279947392868">"Levantar el dispositivo para activarlo"</string>
@@ -1340,10 +1342,10 @@
     <string name="status_msid_number" msgid="7808175928664357661">"MSID"</string>
     <string name="status_prl_version" msgid="5634561205739199042">"Versión de PRL"</string>
     <string name="meid_multi_sim" msgid="7449892644113569529">"MEID (ranura SIM %1$d)"</string>
-    <string name="scanning_status_text_wifi_on_ble_on" msgid="6370507836346838473">"Las redes Wi‑Fi y las conexiones Bluetooth tienen la búsqueda activada"</string>
-    <string name="scanning_status_text_wifi_on_ble_off" msgid="8205014713732412608">"La búsqueda de redes Wi‑Fi está activa y la de conexiones Bluetooth, desactivada"</string>
-    <string name="scanning_status_text_wifi_off_ble_on" msgid="7400522456303307057">"La búsqueda de conexiones Bluetooth está activada y la de redes Wi‑Fi, desactivada"</string>
-    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Está desactivada la búsqueda de redes Wi‑Fi y conexiones Bluetooth"</string>
+    <string name="scanning_status_text_wifi_on_ble_on" msgid="6370507836346838473">"Tanto la búsqueda de redes Wi‑Fi como la de dispositivos Bluetooth están activadas"</string>
+    <string name="scanning_status_text_wifi_on_ble_off" msgid="8205014713732412608">"La búsqueda de redes Wi‑Fi está activada; la búsqueda de dispositivos Bluetooth está desactivada"</string>
+    <string name="scanning_status_text_wifi_off_ble_on" msgid="7400522456303307057">"La búsqueda de dispositivos Bluetooth está activada; la búsqueda de redes Wi‑Fi está desactivada"</string>
+    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Tanto la búsqueda de redes Wi‑Fi como la de dispositivos Bluetooth están desactivadas"</string>
     <string name="status_meid_number" msgid="8756271256760479835">"MEID"</string>
     <string name="status_icc_id" msgid="9191847562997702709">"ICCID"</string>
     <string name="status_data_network_type" msgid="2344720457353394909">"Tipo de red de datos móviles"</string>
@@ -1525,8 +1527,8 @@
     <string name="battery_status_title" msgid="8731200319740671905">"Estado de la batería"</string>
     <string name="battery_level_title" msgid="5207775387973771646">"Nivel de batería"</string>
     <string name="apn_settings" msgid="8130776653826271664">"APNs"</string>
-    <string name="apn_edit" msgid="4350571070853305357">"Editar punto acceso"</string>
-    <string name="apn_not_set" msgid="5344235604466825691">"No definido"</string>
+    <string name="apn_edit" msgid="4350571070853305357">"Editar punto de acceso"</string>
+    <string name="apn_not_set" msgid="5344235604466825691">"Sin establecer"</string>
     <string name="apn_name" msgid="8431432886706852226">"Nombre"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
     <string name="apn_http_proxy" msgid="8816906767987944465">"Proxy"</string>
@@ -1567,11 +1569,11 @@
     <string name="menu_restore" msgid="3799288817317293115">"Restablecer ajustes"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"Se ha restablecido la configuración predeterminada de APN."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Opciones de recuperación"</string>
-    <string name="reset_dashboard_summary" msgid="8778383341461126642">"Se puede recuperar la configuración de la red, de las aplicaciones o del dispositivo"</string>
+    <string name="reset_dashboard_summary" msgid="8778383341461126642">"Se pueden recuperar los ajustes de red, de las aplicaciones y del dispositivo"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Recuperar Wi-Fi, red móvil y Bluetooth"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"Se recuperarán todos los ajustes de red, como:\n\n"<li>"Wi‑Fi"</li>\n<li>"Datos móviles"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Borrar las SIM descargadas"</string>
-    <string name="reset_esim_desc" msgid="433226911566802">"Para descargar SIMs de sustitución, ponte en contacto con tu operador. Esta acción no cancelará ninguno de los planes de servicios móviles."</string>
+    <string name="reset_esim_desc" msgid="433226911566802">"Para descargar SIM de sustitución, ponte en contacto con tu operador. Esta acción no cancelará ningún plan de servicios móviles."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Recuperar ajustes"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"¿Quieres restablecer la configuración de red? No podrás deshacer esta acción."</string>
     <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"¿Quieres recuperar todos los ajustes de red y borrar todas las SIM descargadas? No podrás deshacer esta acción."</string>
@@ -1589,7 +1591,7 @@
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"Hay otros usuarios presentes en este dispositivo.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"Música"</li>\n<li>"Fotos"</li>\n<li>"Otros datos de usuario"</li></string>
     <string name="master_clear_desc_also_erases_esim" msgid="4497260499055258773"><li>"eSIMs"</li></string>
-    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"Tu plan de servicios móviles no se cancelará."</string>
+    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"Esta acción no cancelará tu plan de servicios móviles."</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="2723272952715259307">\n\n"Para eliminar la música, las imágenes y otros datos de usuario, debes borrar el "<b>"almacenamiento USB"</b>"."</string>
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="9003555775524798797">\n\n"Para eliminar la música, las imágenes y otros datos de usuario, debes borrar la "<b>"tarjeta SD"</b>"."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="8989746770347525207">"Borrar almacenamiento USB"</string>
@@ -1619,11 +1621,11 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"No se puede hacer el anclaje de red ni utilizar zonas Wi-Fi portátiles mientras el ahorro de datos esté activado"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"Compartir conexión por USB"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Compartir la conexión a Internet del teléfono por USB"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Comparte la conexión a Internet del teléfono por USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Compartir la conexión a Internet del tablet por USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Compartir conexión por Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Compartir la conexión a Internet del tablet por Bluetooth"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Compartir la conexión a Internet del teléfono por Bluetooth"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Comparte la conexión a Internet del teléfono por Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Se está compartiendo la conexión a Internet de este <xliff:g id="DEVICE_NAME">%1$d</xliff:g> por Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"No se puede anclar a más de <xliff:g id="MAXCONNECTION">%1$d</xliff:g> dispositivos."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"Se desactivará el anclaje a red de <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -1704,7 +1706,7 @@
     <string name="settings_safetylegal_activity_unreachable" msgid="3541894966476445833">"No tienes conexión de datos. Para ver esta información, accede a %s desde cualquier ordenador conectado a Internet."</string>
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"Cargando…"</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Utilizar método alternativo"</string>
-    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Establecer el bloqueo de pantalla"</string>
+    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Establece un bloqueo de pantalla"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Por seguridad, establece una contraseña"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Para usar la huella, añade una contraseña"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Para usar tu huella, añade un patrón"</string>
@@ -1957,7 +1959,7 @@
     <string name="hardkeyboard_category" msgid="5937171470391551627">"Ajustes del teclado físico"</string>
     <string name="auto_punctuate_summary" msgid="245694025030386370">"Pulsa la barra espaciadora dos veces para insertar el carácter \".\""</string>
     <string name="show_password" msgid="620964020348073739">"Mostrar contraseñas"</string>
-    <string name="show_password_summary" msgid="1403805089582258620">"Mostrar los caracteres brevemente al escribir"</string>
+    <string name="show_password_summary" msgid="1403805089582258620">"Muestra los caracteres brevemente al escribir"</string>
     <string name="spellchecker_security_warning" msgid="792070474432612097">"Este corrector ortográfico puede registrar todo lo que escribas, incluidos datos personales, como las contraseñas y los números de las tarjetas de crédito. Procede de la aplicación <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. ¿Quieres usar este corrector ortográfico?"</string>
     <string name="spellchecker_quick_settings" msgid="5193036510190696655">"Ajustes"</string>
     <string name="spellchecker_language" msgid="5168501692418112444">"Idioma"</string>
@@ -1968,7 +1970,7 @@
     <string name="keyboard_assistance_category" msgid="2276351807419818125">"Ayuda del teclado"</string>
     <string name="physical_keyboard_title" msgid="3508591962962814313">"Teclado físico"</string>
     <string name="show_ime" msgid="7322620473198763563">"Mostrar teclado virtual"</string>
-    <string name="show_ime_summary" msgid="3246628154011464373">"Mantener en la pantalla mientras el teclado físico está activo"</string>
+    <string name="show_ime_summary" msgid="3246628154011464373">"Lo mantiene en pantalla mientras el teclado físico está activo"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"Ayuda de accesos directos de teclado"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Muestra accesos directos de teclado disponibles"</string>
     <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Perfiles de trabajo y herramientas"</string>
@@ -2034,7 +2036,7 @@
     <string name="usage_time_label" msgid="5615725415876461039">"Tiempo de uso"</string>
     <string name="accessibility_settings" msgid="9140621093888234485">"Accesibilidad"</string>
     <string name="accessibility_settings_title" msgid="1687226556576913576">"Ajustes de accesibilidad"</string>
-    <string name="accessibility_settings_summary" msgid="5742379519336396561">"Lectores de pantalla, pantalla y controles de interacción"</string>
+    <string name="accessibility_settings_summary" msgid="5742379519336396561">"Lectores de pantalla, pantalla, controles de interacción"</string>
     <string name="vision_settings_title" msgid="7315352351051423944">"Ajustes de visión"</string>
     <string name="vision_settings_description" msgid="3476589459009287332">"Personaliza este dispositivo para adaptarlo a tus necesidades. Puedes modificar las funciones de accesibilidad posteriormente en Ajustes."</string>
     <string name="vision_settings_suggestion_title" msgid="7268661419110951128">"Cambiar el tamaño de la fuente"</string>
@@ -2049,7 +2051,7 @@
     <string name="talkback_summary" msgid="6602857105831641574">"El lector de pantalla está destinado principalmente a personas ciegas y con problemas de visión"</string>
     <string name="select_to_speak_summary" msgid="7514180457557735421">"Toca cualquier elemento de la pantalla para escucharlo"</string>
     <string name="accessibility_captioning_title" msgid="5878371993023439642">"Subtítulos"</string>
-    <string name="accessibility_screen_magnification_title" msgid="7250949681883917360">"Ampliar"</string>
+    <string name="accessibility_screen_magnification_title" msgid="7250949681883917360">"Ampliación"</string>
     <string name="accessibility_screen_magnification_gestures_title" msgid="9199287875401817974">"Ampliar con tres toques"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="400655612610761242">"Ampliar con botón"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="1863831350878995600">"Amplía con un botón y tres toques"</string>
@@ -2070,7 +2072,7 @@
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"Puntero del ratón grande"</string>
     <string name="accessibility_disable_animations" msgid="8378441317115710009">"Quitar animaciones"</string>
     <string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"Audio en mono"</string>
-    <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"Combinar canales al reproducir audio"</string>
+    <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"Combina canales al reproducir audio"</string>
     <string name="accessibility_toggle_master_balance_title" msgid="8723492001092647562">"Balance de audio"</string>
     <string name="accessibility_toggle_master_balance_left_label" msgid="8531986342666527970">"Izquierdo"</string>
     <string name="accessibility_toggle_master_balance_right_label" msgid="7757024572140589558">"Derecho"</string>
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"Vibración del tono"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"Vibración al tocar la pantalla"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Usar servicio"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Utilizar la corrección de color"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Usar corrección de color"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Utilizar subtítulos"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Continuar"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Audífonos"</string>
@@ -2279,7 +2281,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Es posible que te quedes sin batería antes de lo normal"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Ahorro de batería activado"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Es posible que algunas funciones estén limitadas"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"El teléfono se ha usado más de lo normal"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Teléfono usado más de lo normal"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"El tablet se ha usado más de lo normal"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"El dispositivo se ha usado más de lo normal"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Es posible que te quedes sin batería antes de lo normal"</string>
@@ -2296,28 +2298,28 @@
       <item quantity="one">%1$s aplicación se ha restringido recientemente</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="other">%2$d aplicaciones consumen mucha batería en segundo plano</item>
-      <item quantity="one">%1$s aplicación consume mucha batería en segundo plano</item>
+      <item quantity="other">%2$d apps gastan mucho en segundo plano</item>
+      <item quantity="one">%1$s gasta mucho en segundo plano</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Estas aplicaciones no se pueden ejecutar en segundo plano</item>
       <item quantity="one">Esta aplicación no se puede ejecutar en segundo plano</item>
     </plurals>
     <plurals name="battery_tip_restrict_app_dialog_title" formatted="false" msgid="3042021435866172168">
-      <item quantity="other">¿Quieres restringir %1$d aplicaciones?</item>
-      <item quantity="one">¿Quieres restringir la aplicación?</item>
+      <item quantity="other">¿Restringir %1$d aplicaciones?</item>
+      <item quantity="one">¿Restringir aplicación?</item>
     </plurals>
     <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Si quieres ahorrar batería, evita que <xliff:g id="APP">%1$s</xliff:g> consuma batería en segundo plano. Es posible que la aplicación no funcione correctamente y las notificaciones se retrasen."</string>
     <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Si quieres ahorrar batería, evita que estas aplicaciones consuman batería en segundo plano. Es posible que las aplicaciones restringidas no funcionen correctamente y las notificaciones se retrasen.\n\nAplicaciones:"</string>
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Si quieres ahorrar batería, evita que estas aplicaciones consuman batería en segundo plano. Es posible que las aplicaciones restringidas no funcionen correctamente y las notificaciones se retrasen.\n\nAplicaciones:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Restringir"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"¿Quitar restricción?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Esta aplicación puede utilizar la batería en segundo plano y provocar que te quedes sin batería antes de lo que pensabas."</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Esta aplicación podrá usar la batería en segundo plano. Es posible que la batería se agote antes de lo esperado."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Quitar"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Cancelar"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Tus aplicaciones usan una cantidad normal de batería. Si consumieran demasiada, tu dispositivo te recomendaría medidas para evitarlo.\n\nSi te queda poca carga, también puedes activar el Ahorro de batería."</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Tus aplicaciones usan una cantidad normal de batería. Si consumieran demasiada, tu dispositivo te recomendaría medidas para evitarlo.\n\nSi te queda poca carga, también puedes activar el Ahorro de batería."</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Tus aplicaciones usan una cantidad normal de batería. Si consumieran demasiada, tu dispositivo te recomendaría medidas para evitarlo.\n\nSi te queda poca carga, también puedes activar el Ahorro de batería."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Tus aplicaciones usan una cantidad normal de batería. Si consumieran demasiada, el teléfono te recomendaría medidas para evitarlo.\n\nSi te queda poca carga, también puedes activar el modo Ahorro de batería."</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Tus aplicaciones usan una cantidad normal de batería. Si consumieran demasiada, el tablet te recomendaría medidas para evitarlo.\n\nSi te queda poca carga, también puedes activar el modo Ahorro de batería."</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Tus aplicaciones usan una cantidad normal de batería. Si consumieran demasiada, el dispositivo te recomendaría medidas para evitarlo.\n\nSi te queda poca carga, también puedes activar el modo Ahorro de batería."</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"Gestor de batería"</string>
     <string name="smart_battery_title" msgid="4919670408532804351">"Gestionar aplicaciones automáticamente"</string>
     <string name="smart_battery_summary" msgid="640027046471198174">"Limitar el consumo de batería de las aplicaciones que no utilices con frecuencia"</string>
@@ -2449,22 +2451,22 @@
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Sin programación"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Según tu rutina"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Según el porcentaje"</string>
-    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"La función Ahorro de batería se activa si es probable que te quedes sin batería antes de tu próxima carga normal."</string>
+    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"El modo Ahorro de batería se activa si es probable que te quedes sin batería antes de tu próxima carga normal."</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Se activará cuando llegue al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Definir una programación"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Desactivar con la carga al máximo"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"El modo Ahorro de batería se desactiva cuando tu teléfono está al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
-    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"El modo Ahorro de batería se desactiva cuando tu teléfono está al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
-    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"El modo Ahorro de batería se desactiva cuando tu teléfono está al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"El modo Ahorro de batería se desactiva cuando el teléfono está al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"El modo Ahorro de batería se desactiva cuando el teléfono está al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"El modo Ahorro de batería se desactiva cuando el teléfono está al <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="2321082163892561703">"Activar"</string>
-    <string name="battery_saver_master_switch_title" msgid="8241862826825517212">"Utilizar la función Ahorro de batería"</string>
+    <string name="battery_saver_master_switch_title" msgid="8241862826825517212">"Usar modo Ahorro de batería"</string>
     <string name="battery_saver_turn_on_automatically_title" msgid="7316920304024245838">"Activar automáticamente"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"Nunca"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"con un <xliff:g id="PERCENT">%1$s</xliff:g> de batería"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"Porcentaje de batería"</string>
-    <string name="battery_percentage_description" msgid="9219875229166700610">"Mostrar el porcentaje de batería en la barra de estado"</string>
+    <string name="battery_percentage_description" msgid="9219875229166700610">"Muestra el porcentaje de batería en la barra de estado"</string>
     <string name="process_stats_summary_title" msgid="9189588417488537954">"Estadísticas de procesos"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"Estadísticas técnicas sobre procesos en ejecución"</string>
     <string name="app_memory_use" msgid="5126237308545653706">"Uso de memoria"</string>
@@ -2523,14 +2525,14 @@
     <string name="credentials_title" msgid="7119207354982673965">"Almacenamiento de credenciales"</string>
     <string name="credentials_install" product="nosdcard" msgid="8509362500537206883">"Instalar desde almacenamiento"</string>
     <string name="credentials_install" product="default" msgid="8997183776710118353">"Instalar desde la tarjeta SD"</string>
-    <string name="credentials_install_summary" product="nosdcard" msgid="3426661965567059596">"Instalar certificados desde almacenamiento"</string>
+    <string name="credentials_install_summary" product="nosdcard" msgid="3426661965567059596">"Instala certificados desde el almacenamiento"</string>
     <string name="credentials_install_summary" product="default" msgid="4943897416156671633">"Instalar certificados desde la tarjeta SD"</string>
-    <string name="credentials_reset" msgid="355080737664731678">"Eliminar certificados"</string>
-    <string name="credentials_reset_summary" msgid="7622528359699428555">"Quitar todos los certificados"</string>
+    <string name="credentials_reset" msgid="355080737664731678">"Borrar credenciales"</string>
+    <string name="credentials_reset_summary" msgid="7622528359699428555">"Quita todos los certificados"</string>
     <string name="trusted_credentials" msgid="6989242522455395200">"Credenciales de confianza"</string>
-    <string name="trusted_credentials_summary" msgid="7411781319056251582">"Mostrar certificados de CA de confianza"</string>
+    <string name="trusted_credentials_summary" msgid="7411781319056251582">"Muestra los certificados de CA de confianza"</string>
     <string name="user_credentials" msgid="8365731467650306757">"Credenciales de usuario"</string>
-    <string name="user_credentials_summary" msgid="7350223899317423252">"Ver y modificar credenciales almacenadas"</string>
+    <string name="user_credentials_summary" msgid="7350223899317423252">"Consulta y modifica credenciales almacenadas"</string>
     <string name="advanced_security_title" msgid="286883005673855845">"Avanzado"</string>
     <string name="credential_storage_type" msgid="2585337320206095255">"Tipo de almacenamiento"</string>
     <string name="credential_storage_type_hardware" msgid="5054143224259023600">"Almacenado en hardware"</string>
@@ -2599,7 +2601,7 @@
     <string name="work_mode_label" msgid="6845849194740195757">"Perfil de trabajo"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Administrado por tu organización"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"Las aplicaciones y las notificaciones están desactivadas"</string>
-    <string name="remove_managed_profile_label" msgid="4625542553784793536">"Eliminar perfil de trabajo"</string>
+    <string name="remove_managed_profile_label" msgid="4625542553784793536">"Quitar perfil de trabajo"</string>
     <string name="background_data" msgid="8275750862371471171">"Datos en segundo plano"</string>
     <string name="background_data_summary" msgid="799640633948841990">"Las aplicaciones pueden sincronizar datos, enviarlos y recibirlos."</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"¿Inhabilitar datos en segundo plano?"</string>
@@ -2668,7 +2670,7 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"Tarjetas SIM"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"En pausa al límite"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"Sincronización automática"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Sincr. autom. datos personales"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Sincronizar datos personales automáticamente"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Sincr. autom. datos trabajo"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"Cambiar ciclo…"</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"Día del mes para restablecer ciclo de uso de datos:"</string>
@@ -2676,7 +2678,7 @@
     <string name="data_usage_label_foreground" msgid="2471091128648754601">"Primer plano"</string>
     <string name="data_usage_label_background" msgid="1618794447370396845">"Segundo plano"</string>
     <string name="data_usage_app_restricted" msgid="7569077654579299326">"con restricción"</string>
-    <string name="data_usage_disable_mobile" msgid="4125335076749119451">"¿Desactivar los datos móviles?"</string>
+    <string name="data_usage_disable_mobile" msgid="4125335076749119451">"¿Desactivar datos móviles?"</string>
     <string name="data_usage_disable_mobile_limit" msgid="1937796699758613667">"Limitar datos móviles"</string>
     <string name="data_usage_disable_4g_limit" msgid="7131367986548147266">"Limitar datos 4G"</string>
     <string name="data_usage_disable_3g_limit" msgid="6746819313032692220">"Limitar datos 2G-3G"</string>
@@ -2709,11 +2711,11 @@
     <string name="data_usage_cycle_editor_title" msgid="4967309390043599889">"Elige el día en el que empezará cada ciclo"</string>
     <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"Día de cada mes:"</string>
     <string name="data_usage_cycle_editor_positive" msgid="9155752056537811646">"Establecer"</string>
-    <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"Establecer advertencia de uso de datos"</string>
-    <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Limitar uso de datos"</string>
+    <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"Establece la advertencia de uso de datos"</string>
+    <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Limita el uso de datos"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"Limitar uso de datos"</string>
-    <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"El tablet desactivará los datos móviles cuando se alcance el límite establecido.\n\nSe tiene en cuenta el uso de datos medido por el tablet, aunque tu operador podría registrarlo de forma diferente. Por tanto, debes ser prudente al establecer un límite."</string>
-    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"El teléfono desactivará los datos móviles cuando se alcance el límite establecido.\n\nSe tiene en cuenta el uso de datos medido por el teléfono, aunque tu operador podría registrarlo de forma diferente. Por tanto, debes ser prudente al establecer un límite."</string>
+    <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"El tablet desactivará los datos móviles cuando se alcance el límite establecido.\n\nComo el uso de datos lo calcula el tablet y es posible que tu operador lo mida de forma diferente, se recomienda establecer un límite conservador."</string>
+    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"El teléfono desactivará los datos móviles cuando se alcance el límite establecido.\n\nComo el uso de datos lo calcula el teléfono y es posible que tu operador lo mida de forma diferente, se recomienda establecer un límite conservador."</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"¿Restringir datos en segundo plano?"</string>
     <string name="data_usage_restrict_background" msgid="995811034744808575">"Si restringes el uso de datos en segundo plano móviles, algunas aplicaciones y servicios no funcionarán si no tienes conexión a una red Wi‑Fi."</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"Si restringes el uso de datos en segundo plano, algunas aplicaciones y servicios no funcionarán si no tienes conexión a una red Wi‑Fi.\n\nEsta configuración afecta a todos los usuarios del tablet."</string>
@@ -2773,7 +2775,7 @@
     <string name="vpn_disconnect_confirm" msgid="3505111947735651082">"¿Desconectar esta VPN?"</string>
     <string name="vpn_disconnect" msgid="4625914562388652486">"Desconectar"</string>
     <string name="vpn_version" msgid="2006792987077940456">"Versión <xliff:g id="VERSION">%s</xliff:g>"</string>
-    <string name="vpn_forget_long" msgid="8457511440635534478">"Borrar VPN"</string>
+    <string name="vpn_forget_long" msgid="8457511440635534478">"Olvidar VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="8517436922021598103">"¿Sustituir VPN actual?"</string>
     <string name="vpn_set_vpn_title" msgid="6483554732067951052">"¿Configurar el modo de VPN siempre activada?"</string>
     <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"Si esta opción está activada, no tendrás acceso a Internet hasta que se conecte la red VPN"</string>
@@ -2871,7 +2873,7 @@
     <string name="user_add_user_message_long" msgid="686637203224195465">"Puedes compartir este dispositivo si creas más usuarios. Cada uno tendrá su propio espacio y podrá personalizarlo con aplicaciones, un fondo de pantalla y mucho más. Los usuarios también pueden ajustar opciones del dispositivo, como la conexión Wi‑Fi, que afectan a todos los usuarios.\n\nCuando añadas un usuario, tendrá que configurar su espacio.\n\nCualquier usuario puede actualizar aplicaciones de todos los usuarios. Es posible que no se transfieran los servicios y opciones de accesibilidad al nuevo usuario."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Al añadir un usuario nuevo, este debe configurar su espacio.\n\nCualquier usuario puede actualizar las aplicaciones del resto de usuarios."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"¿Configurar usuario ahora?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Asegúrate de que la persona pueda acceder al dispositivo y configurar su espacio."</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Asegúrate de que la persona está disponible en este momento para usar el dispositivo y configurar su espacio."</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"¿Quieres configurar un perfil ahora?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"Configurar ahora"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"Ahora no"</string>
@@ -2886,7 +2888,7 @@
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"¿Eliminarte a ti mismo?"</string>
     <string name="user_confirm_remove_title" msgid="1034498514019462084">"¿Eliminar este usuario?"</string>
     <string name="user_profile_confirm_remove_title" msgid="6138684743385947063">"¿Quitar este perfil?"</string>
-    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"¿Eliminar perfil de trabajo?"</string>
+    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"¿Quitar perfil de trabajo?"</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="2889456786320157545">"Perderás tu espacio y tus datos en este tablet. Esta acción no se puede deshacer."</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="8441729423565705183">"Perderás tu espacio y tus datos en este teléfono. Esta acción no se puede deshacer."</string>
     <string name="user_confirm_remove_message" msgid="5202150470271756013">"Se eliminarán todas las aplicaciones y datos"</string>
@@ -2922,7 +2924,7 @@
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Siempre"</string>
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Excepto si hay otra aplicación de pago abierta"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"En terminales Toca y paga, pagar con:"</string>
-    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Pago en terminal"</string>
+    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Cómo pagar en el terminal"</string>
     <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Configura una aplicación de pago. A continuación, solo tienes que sostener la parte trasera del teléfono sobre cualquier terminal con el símbolo de pago sin contacto."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Entendido"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Más..."</string>
@@ -2934,7 +2936,7 @@
     <string name="restriction_menu_change_pin" msgid="592512748243421101">"Cambiar PIN"</string>
     <string name="app_notifications_switch_label" msgid="670683308275498821">"Mostrar notificaciones"</string>
     <string name="help_label" msgid="1296484776243905646">"Ayuda y sugerencias"</string>
-    <string name="support_summary" msgid="3278943815956130740">"Artículos de ayuda, teléfono y chat, y cómo empezar"</string>
+    <string name="support_summary" msgid="3278943815956130740">"Artículos de ayuda, teléfono y chat, cómo empezar"</string>
     <string name="user_account_title" msgid="2108666882630552859">"Cuenta para contenido"</string>
     <string name="user_picture_title" msgid="6664602422948159123">"ID de foto"</string>
     <string name="extreme_threats_title" msgid="1405820547540456436">"Amenazas extremas"</string>
@@ -3006,7 +3008,7 @@
     <string name="sim_editor_color" msgid="373059962306191123">"Color de la SIM"</string>
     <string name="sim_card_select_title" msgid="4925862525985187946">"Selecciona una tarjeta SIM"</string>
     <string name="color_orange" msgid="3159707916066563431">"Naranja"</string>
-    <string name="color_purple" msgid="4391440966734810713">"Violeta"</string>
+    <string name="color_purple" msgid="4391440966734810713">"Morado"</string>
     <string name="sim_no_inserted_msg" msgid="1197884607569714609">"No se ha insertado ninguna tarjeta SIM"</string>
     <string name="sim_status_title" msgid="4483653750844520871">"Estado de la SIM"</string>
     <string name="sim_status_title_sim_slot" msgid="416005570947546124">"Estado de la SIM (ranura SIM %1$d)"</string>
@@ -3036,7 +3038,7 @@
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"Dispositivos conectados"</string>
     <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, modo de conducción, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"Bluetooth, modo de conducción"</string>
-    <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"Bluetooth y NFC"</string>
+    <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"Aplicaciones y notificaciones"</string>
     <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"Asistente, aplicaciones recientes y aplicaciones predeterminadas"</string>
@@ -3044,7 +3046,7 @@
     <string name="account_dashboard_title" msgid="4734300939532555885">"Cuentas"</string>
     <string name="account_dashboard_default_summary" msgid="6822549669771936206">"No se ha añadido ninguna cuenta"</string>
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"Aplicaciones predeterminadas"</string>
-    <string name="system_dashboard_summary" msgid="6582464466735779394">"Idiomas, gestos, hora y copias de seguridad"</string>
+    <string name="system_dashboard_summary" msgid="6582464466735779394">"Idiomas, gestos, hora, copias de seguridad"</string>
     <string name="search_results_title" msgid="4160717656435503940">"Ajustes"</string>
     <string name="keywords_wifi" msgid="8477688080895466846">"wifi, wi‑fi, conexión de red, internet, inalámbrica, datos, wi fi"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="1031260564121854773">"Notificación Wi‑Fi, notificación Wi‑Fi"</string>
@@ -3128,7 +3130,7 @@
     <string name="keywords_battery_saver_sticky" msgid="8733804259716284872">"ahorro de batería, batería fija, duradera, ahorro de batería, batería"</string>
     <string name="default_sound" msgid="6675629744816442953">"Sonido predeterminado"</string>
     <string name="sound_settings_summary" msgid="8467549670633195109">"Volumen del tono de llamada al <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
-    <string name="sound_dashboard_summary" msgid="5187301919242823508">"Volumen, vibración y No molestar"</string>
+    <string name="sound_dashboard_summary" msgid="5187301919242823508">"Volumen, vibración, No molestar"</string>
     <string name="sound_settings_summary_vibrate" msgid="2194491116884798590">"Timbre en vibración"</string>
     <string name="sound_settings_summary_silent" msgid="899823817462768876">"Timbre en silencio"</string>
     <string name="sound_settings_example_summary" msgid="2091822107298841827">"Volumen del tono de llamada al 80 %"</string>
@@ -3160,7 +3162,7 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Vibraciones"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Sonidos de encendido"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"Subtítulos instantáneos"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"Subtítulos automáticos de multimedia"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"Subtitula automáticamente el contenido multimedia"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Nunca"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> habilitadas</item>
@@ -3238,8 +3240,8 @@
     <string name="zen_mode_settings_dnd_custom_settings_footer_link" msgid="4007974052885089379"><annotation id="link">" Ver ajustes personalizados"</annotation></string>
     <string name="zen_interruption_level_priority" msgid="9178419297408319234">"Solo interrupciones prioritarias"</string>
     <string name="zen_mode_and_condition" msgid="4123722186007123567">"<xliff:g id="ZEN_MODE">%1$s</xliff:g>. <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
-    <string name="zen_mode_sound_summary_on_with_info" msgid="2539952366467518398">"Activado/<xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="zen_mode_sound_summary_off_with_info" msgid="3910718455243440265">"Desactivado/<xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="zen_mode_sound_summary_on_with_info" msgid="2539952366467518398">"Activado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="zen_mode_sound_summary_off_with_info" msgid="3910718455243440265">"Desactivado / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="zen_mode_sound_summary_off" msgid="2800265178411749309">"Desactivado"</string>
     <string name="zen_mode_sound_summary_on" msgid="6964666541479146310">"Activado"</string>
     <string name="zen_mode_duration_summary_always_prompt" msgid="7642321938427056823">"Preguntar siempre (a menos que se haya activado automáticamente)"</string>
@@ -3757,12 +3759,12 @@
     <string name="background_check_pref" msgid="664081406854758392">"Comprobación de uso en segundo plano"</string>
     <string name="background_check_title" msgid="4136736684290307970">"Acceso completo en segundo plano"</string>
     <string name="assist_access_context_title" msgid="2274614501747710439">"Usar texto de la pantalla"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"Permitir que la aplicación de asistencia acceda a los contenidos de la pantalla (como texto)"</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"Permite que la aplicación de asistencia acceda a los contenidos de la pantalla como texto"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"Usar captura de pantalla"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Permitir que la aplicación de asistencia acceda a una imagen de la pantalla"</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Permite que la aplicación de asistencia acceda a una imagen de la pantalla"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Parpadear la pantalla"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"Hacer parpadear los bordes de la pantalla cuando la aplicación de asistencia acceda al texto de una pantalla o una captura de pantalla"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"Las aplicaciones de asistencia te ayudan según la información que aparece en la pantalla. Algunas aplicaciones admiten tanto el launcher como los servicios de entrada de voz para ofrecerte asistencia integrada."</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"Los bordes de la pantalla parpadearán cuando la aplicación de asistencia acceda al texto de una pantalla o una captura de pantalla"</string>
+    <string name="assist_footer" msgid="7030121180457472165">"Las aplicaciones de asistencia te ayudan según la información que aparezca en la pantalla. Algunas aplicaciones admiten tanto el launcher como los servicios de entrada de voz para ofrecerte asistencia integrada."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Uso medio de memoria"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Uso máximo de memoria"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Uso de memoria"</string>
@@ -3860,7 +3862,7 @@
     <string name="storage_summary_with_sdcard" msgid="8742907204848352697">"Almacenamiento interno: <xliff:g id="PERCENTAGE">%1$s</xliff:g> usado (<xliff:g id="FREE_SPACE">%2$s</xliff:g> disponible)"</string>
     <string name="display_summary" msgid="5725269449657325797">"Suspender después de <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> de inactividad"</string>
     <string name="display_dashboard_summary" msgid="7678566148167010682">"Fondo de pantalla, suspensión, tamaño de la fuente"</string>
-    <string name="display_dashboard_summary_with_style" msgid="8981059474501210956">"Estilos y fondos de pantalla, suspensión y tamaño de fuente"</string>
+    <string name="display_dashboard_summary_with_style" msgid="8981059474501210956">"Estilos y fondos de pantalla, suspensión, tamaño de fuente"</string>
     <string name="display_dashboard_nowallpaper_summary" msgid="8612534364908229000">"Tamaño de letra en la pantalla de suspensión"</string>
     <string name="display_summary_example" msgid="4555020581960719296">"Suspender después de 10 minutos de inactividad"</string>
     <string name="memory_summary" msgid="9121871336058042600">"Se está usando una media de <xliff:g id="USED_MEMORY">%1$s</xliff:g> de <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> de memoria"</string>
@@ -3955,7 +3957,7 @@
     <string name="data_used_template" msgid="761605393453849477">"<xliff:g id="ID_1">%1$s</xliff:g> usados"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"Establecer advertencia de datos"</string>
     <string name="data_warning" msgid="2699207195535036240">"Advertencia de datos"</string>
-    <string name="data_warning_footnote" msgid="965724845580257305">"La advertencia y el límite de datos se basan en los cálculos del dispositivo y es posible que no coincidan con los datos del operador."</string>
+    <string name="data_warning_footnote" msgid="965724845580257305">"La advertencia y el límite de datos se basan en los cálculos del dispositivo, así que es posible que no coincidan con los datos del operador."</string>
     <string name="set_data_limit" msgid="5043770023229990674">"Establecer límite de datos"</string>
     <string name="data_limit" msgid="5793521160051596228">"Límite de datos"</string>
     <string name="data_usage_template" msgid="6848274347956096882">"<xliff:g id="ID_1">%1$s</xliff:g> usados (<xliff:g id="ID_2">%2$s</xliff:g>)"</string>
@@ -4008,7 +4010,7 @@
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Si el dispositivo está bloqueado, evitar que se escriban respuestas u otros textos en las notificaciones"</string>
     <string name="default_spell_checker" msgid="8636661093243189533">"Corrector predeterminado"</string>
     <string name="choose_spell_checker" msgid="7619860861923582868">"Elige corrector ortográfico"</string>
-    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Usar el corrector ortográfico"</string>
+    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Usar corrector ortográfico"</string>
     <string name="spell_checker_not_selected" msgid="331034541988255137">"No seleccionado"</string>
     <string name="notification_log_no_title" msgid="3668232437235348628">"(ninguno)"</string>
     <string name="notification_log_details_delimiter" msgid="5485526744689532908">": "</string>
@@ -4104,7 +4106,7 @@
     <string name="automatic_storage_manager_master_switch_title" msgid="1456978117739582562">"Utilizar el Administrador de Almacenamiento"</string>
     <string name="deletion_helper_automatic_title" msgid="4370975149425263205">"Automático"</string>
     <string name="deletion_helper_manual_title" msgid="1011785013431162078">"Manual"</string>
-    <string name="deletion_helper_preference_title" msgid="797270307034242206">"Liberar espacio"</string>
+    <string name="deletion_helper_preference_title" msgid="797270307034242206">"Liberar espacio ahora"</string>
     <string name="gesture_preference_title" msgid="583646591518373785">"Gestos"</string>
     <string name="gesture_preference_summary" product="default" msgid="2990736567599191163">"Gestos rápidos para controlar el teléfono"</string>
     <string name="gesture_preference_summary" product="tablet" msgid="8303793594714075580">"Gestos rápidos para controlar el tablet"</string>
@@ -4118,9 +4120,9 @@
     <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"Para cambiar de aplicación, desliza el dedo hacia arriba sobre el botón de inicio. Vuelve a deslizarlo hacia arriba para ver todas las aplicaciones. Funciona en cualquier pantalla. El botón Aplicaciones recientes ya no aparecerá en la parte inferior derecha."</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"Prueba el nuevo botón de inicio"</string>
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Activa el nuevo gesto para cambiar de aplicación"</string>
-    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Tocar el teléfono dos veces para consultarlo"</string>
-    <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Tocar el tablet dos veces para comprobar notificaciones"</string>
-    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Tocar el dispositivo dos veces para comprobar notificaciones"</string>
+    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Doble toque para consultar el teléfono"</string>
+    <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Doble toque para consultar el tablet"</string>
+    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Doble toque para consultar el dispositivo"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"Toca la pantalla dos veces para consultar la hora, las notificaciones y otra información."</string>
     <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Levantar el teléfono para consultarlo"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Levantar el tablet para comprobar las notificaciones"</string>
@@ -4134,10 +4136,10 @@
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Toca para comprobar el dispositivo"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Para ver la hora, las notificaciones y otra información, toca la pantalla."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Deslizar por el sensor de huellas para ver notificaciones"</string>
-    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Deslizar huella digital"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales situado en la parte trasera del teléfono."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales situado en la parte trasera del tablet."</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales situado en la parte trasera del dispositivo."</string>
+    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Deslizar por sensor de huella digital"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales de la parte trasera del teléfono."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales de la parte trasera del tablet."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"Para ver tus notificaciones, desliza el dedo hacia abajo en el sensor de huellas digitales de la parte trasera del dispositivo."</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="948946491233738823">"Ver las notificaciones más rápido"</string>
     <string name="gesture_setting_on" msgid="7573680730101327866">"Activado"</string>
     <string name="gesture_setting_off" msgid="2540159841716890511">"Desactivado"</string>
@@ -4158,7 +4160,7 @@
     <string name="auto_sync_account_title" msgid="2394463123733529506">"Sincronizar datos automáticamente"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"Sincronizar datos personales automáticamente"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"Sincronizar datos del trabajo automáticamente"</string>
-    <string name="auto_sync_account_summary" msgid="6316230976974033772">"Permitir que las aplicaciones actualicen los datos automáticamente"</string>
+    <string name="auto_sync_account_summary" msgid="6316230976974033772">"Permite que las aplicaciones actualicen los datos automáticamente"</string>
     <string name="account_sync_title" msgid="1570164819114297154">"Sincronización"</string>
     <string name="account_sync_summary_some_on" msgid="1934556869158274053">"Sincronización activada para <xliff:g id="ID_1">%1$d</xliff:g> de <xliff:g id="ID_2">%2$d</xliff:g> elementos"</string>
     <string name="account_sync_summary_all_on" msgid="3634161204232431700">"Sincronización activada para todos los elementos"</string>
@@ -4305,7 +4307,7 @@
     <string name="unknown_unavailability_setting_summary" msgid="5785931810977403534">"La opción no está disponible"</string>
     <string name="my_device_info_account_preference_title" msgid="7965847995028952373">"Cuenta"</string>
     <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"Nombre del dispositivo"</string>
-    <string name="change_wifi_state_title" msgid="5140754955787584174">"Control de la conexión Wi‑Fi"</string>
+    <string name="change_wifi_state_title" msgid="5140754955787584174">"Control de Wi‑Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Permitir que la aplicación controle la conexión Wi‑Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Permitir que esta aplicación active o desactive la conexión Wi‑Fi, busque redes Wi‑Fi y se conecte a ellas, añada o quite redes o inicie un punto de acceso local"</string>
     <string name="media_output_title" msgid="8710632337456601848">"Reproducir contenido multimedia en"</string>
@@ -4337,7 +4339,7 @@
     <string name="homepage_personal_settings" msgid="7472638597249114564">"Sugerencias"</string>
     <string name="choose_network_title" msgid="3213314359630522396">"Elegir red"</string>
     <string name="network_disconnected" msgid="8677203031237141594">"Desconectado"</string>
-    <string name="network_connected" msgid="8197627827976712053">"Conectada"</string>
+    <string name="network_connected" msgid="8197627827976712053">"Conectado"</string>
     <string name="network_connecting" msgid="8798611458457547110">"Conectando…"</string>
     <string name="network_could_not_connect" msgid="552874922030763713">"No se ha podido conectar"</string>
     <string name="empty_networks_list" msgid="5170020017144403884">"No se ha encontrado ninguna red."</string>
@@ -4383,7 +4385,7 @@
     <string name="carrier_settings_title" msgid="7989949967020825268">"Ajustes del operador"</string>
     <string name="cdma_lte_data_service" msgid="8996857851150069339">"Configurar servicio de datos"</string>
     <string name="mobile_data_settings_title" msgid="3439626666647519547">"Datos móviles"</string>
-    <string name="mobile_data_settings_summary" msgid="6492798151325636912">"Acceder a los datos con la red móvil"</string>
+    <string name="mobile_data_settings_summary" msgid="6492798151325636912">"Acceder a datos con la red móvil"</string>
     <string name="mobile_data_settings_summary_auto_switch" msgid="3665863214578471494">"El teléfono cambiará automáticamente a este operador cuando esté en su rango"</string>
     <string name="calls_preference" msgid="2076353032705811243">"Preferencias de llamadas"</string>
     <string name="sms_preference" msgid="8449270011976880">"Preferencia de SMS"</string>
@@ -4421,9 +4423,9 @@
     <string name="mobile_network_erase_sim_dialog_progress" msgid="4881754030959536493">"Borrando SIM…"</string>
     <string name="mobile_network_erase_sim_error_dialog_title" msgid="9026625253242102706">"No se puede borrar la SIM"</string>
     <string name="mobile_network_erase_sim_error_dialog_body" msgid="5955463559366034787">"No se puede eliminar esta SIM debido a un error.\n\nReinicia el dispositivo y vuelve a intentarlo."</string>
-    <string name="preferred_network_mode_title" msgid="8324526359482124770">"Preferencia de tipo de red"</string>
+    <string name="preferred_network_mode_title" msgid="8324526359482124770">"Tipo de red preferido"</string>
     <string name="preferred_network_mode_summary" msgid="388957154320426335">"Cambiar el modo operativo de la red"</string>
-    <string name="preferred_network_mode_dialogtitle" msgid="5448698073828567428">"Preferencia de tipo de red"</string>
+    <string name="preferred_network_mode_dialogtitle" msgid="5448698073828567428">"Tipo de red preferido"</string>
     <string name="carrier_settings_euicc" msgid="7723199738771996732">"Operador"</string>
     <string name="carrier_settings_version" msgid="2657511289029828425">"Versión de Ajustes"</string>
     <string name="call_category" msgid="3418535202893644015">"Llamadas"</string>
@@ -4437,13 +4439,13 @@
     <string name="cdma_subscription_summary" msgid="2298861419202726628">"Cambiar entre RUIM/SIM y NV"</string>
     <string name="cdma_subscription_dialogtitle" msgid="232485231569225126">"suscripción"</string>
     <string name="register_automatically" msgid="1858081641661493109">"Registro automático…"</string>
-    <string name="roaming_alert_title" msgid="1849237823113454475">"¿Permitir la itinerancia de datos?"</string>
+    <string name="roaming_alert_title" msgid="1849237823113454475">"¿Permitir itinerancia de datos?"</string>
     <string name="roaming_check_price_warning" msgid="5883499714594419439">"Ponte en contacto con tu proveedor de red para consultar el precio."</string>
     <string name="mobile_data_usage_title" msgid="2376358672434990037">"Uso de datos de la aplicación"</string>
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"El modo de red <xliff:g id="NETWORKMODEID">%1$d</xliff:g> no es válido. Ignorar."</string>
     <string name="mobile_network_apn_title" msgid="5628635067747404382">"Nombres de puntos de acceso"</string>
     <string name="manual_mode_disallowed_summary" msgid="799800630000340665">"No está disponible cuando se está conectado a <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"Información médica y contactos de emergencia"</string>
+    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"Información médica, contactos de emergencia"</string>
     <string name="see_more" msgid="7463940160389802632">"Ver más"</string>
     <string name="see_less" msgid="3718892257002813387">"Ver menos"</string>
     <string name="network_connection_request_dialog_title" msgid="3150489262902506588">"Dispositivo para usar con <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
@@ -4469,13 +4471,13 @@
     <string name="hwui_force_dark_title" msgid="3744825212652331461">"Forzar el modo oscuro"</string>
     <string name="hwui_force_dark_summary" msgid="2051891908674765817">"Forzar el modo oscuro para que esté siempre activo"</string>
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"Privacidad"</string>
-    <string name="privacy_dashboard_summary" msgid="7916431309860824945">"Permisos, actividad de la cuenta y datos personales"</string>
+    <string name="privacy_dashboard_summary" msgid="7916431309860824945">"Permisos, actividad de la cuenta, datos personales"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"Eliminar"</string>
     <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Conservar"</string>
-    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"¿Eliminar esta sugerencia?"</string>
+    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"¿Quitar esta sugerencia?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Sugerencia eliminada"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Deshacer"</string>
-    <string name="low_storage_summary" msgid="4562224870189133400">"Queda poco espacio de almacenamiento. <xliff:g id="PERCENTAGE">%1$s</xliff:g> usado (disponible: <xliff:g id="FREE_SPACE">%2$s</xliff:g>)"</string>
+    <string name="low_storage_summary" msgid="4562224870189133400">"Queda poco espacio. <xliff:g id="PERCENTAGE">%1$s</xliff:g> usado - <xliff:g id="FREE_SPACE">%2$s</xliff:g> libre"</string>
     <string name="contextual_card_feedback_send" msgid="8698649023854350623">"Enviar comentarios"</string>
     <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"¿Te gustaría darnos tu opinión sobre esta sugerencia?"</string>
     <string name="copyable_slice_toast" msgid="1357518174923789947">"<xliff:g id="COPY_CONTENT">%1$s</xliff:g> se ha copiado en el portapapeles."</string>
diff --git a/tests/CarDeveloperOptions/res/values-et/arrays.xml b/tests/CarDeveloperOptions/res/values-et/arrays.xml
index 62ffe5d..b61fb65 100644
--- a/tests/CarDeveloperOptions/res/values-et/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-et/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"taustal käitamine"</item>
     <item msgid="6423861043647911030">"juurdepääsetavuse helitugevus"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Asukoht"</item>
+    <item msgid="6656077694190491067">"Asukoht"</item>
+    <item msgid="8790228218278477369">"Asukoht"</item>
+    <item msgid="7836406246005211990">"Vibratsioon"</item>
+    <item msgid="3951439024549922598">"Kontaktide lugemine"</item>
+    <item msgid="8802152411647068">"Kontaktide muutmine"</item>
+    <item msgid="229544934599698735">"Kõnelogi lugemine"</item>
+    <item msgid="7396102294405899613">"Kõnelogi muutmine"</item>
+    <item msgid="3597797992398484655">"Kalendri lugemine"</item>
+    <item msgid="2705975774250907343">"Kalendri muutmine"</item>
+    <item msgid="4668747371441932697">"Asukoht"</item>
+    <item msgid="1487578921720243646">"Märguande postitamine"</item>
+    <item msgid="4636080349724146638">"Asukoht"</item>
+    <item msgid="673510900286463926">"Helistamine telefonile"</item>
+    <item msgid="542083422784609790">"SMS-i/MMS-i lugemine"</item>
+    <item msgid="1033780373029588436">"SMS-i/MMS-i kirjutamine"</item>
+    <item msgid="5647111115517787488">"SMS-i/MMS-i vastuvõtmine"</item>
+    <item msgid="8591105601108455893">"SMS-i/MMS-i vastuvõtmine"</item>
+    <item msgid="7730995008517841903">"SMS-i/MMS-i vastuvõtmine"</item>
+    <item msgid="2613033109026626086">"SMS-i/MMS-i vastuvõtmine"</item>
+    <item msgid="3037159047591081136">"SMS-i/MMS-i saatmine"</item>
+    <item msgid="4726682243833913568">"SMS-i/MMS-i lugemine"</item>
+    <item msgid="6555678522277865572">"SMS-i/MMS-i kirjutamine"</item>
+    <item msgid="6981734935578130884">"Seadete muutmine"</item>
+    <item msgid="8705854389991425629">"Peale joonistamine"</item>
+    <item msgid="5861356020344153651">"Juurdepääsumärguanded"</item>
+    <item msgid="78432174621628659">"Kaamera"</item>
+    <item msgid="3986116419882154794">"Heli salvestamine"</item>
+    <item msgid="4516840825756409490">"Heli esitamine"</item>
+    <item msgid="6811712502798183957">"Lõikelaua lugemine"</item>
+    <item msgid="2780369012602289114">"Lõikelaua muutmine"</item>
+    <item msgid="2331359440170850868">"Meedianupud"</item>
+    <item msgid="6133599737122751231">"Helifookus"</item>
+    <item msgid="6844485713404805301">"Põhihelitugevus"</item>
+    <item msgid="1600379420669104929">"Hääle helitugevus"</item>
+    <item msgid="6296768210470214866">"Helina helitugevus"</item>
+    <item msgid="510690696071629241">"Meedia helitugevus"</item>
+    <item msgid="406861638631430109">"Äratuse helitugevus"</item>
+    <item msgid="4715864795872233884">"Märguande helitugevus"</item>
+    <item msgid="2311478519251301183">"Bluetoothi helitugevus"</item>
+    <item msgid="5133991377896747027">"Hoia ärkvel"</item>
+    <item msgid="2464189519136248621">"Asukoht"</item>
+    <item msgid="2062677934050803037">"Asukoht"</item>
+    <item msgid="1735171933192715957">"Kasutusstatistika hankimine"</item>
+    <item msgid="1014093788778383554">"Mikrofoni vaigistamine või vaigistuse tühistamine"</item>
+    <item msgid="4199297950608622850">"Teatiste kuvamine"</item>
+    <item msgid="2527962435313398821">"Meediumi projitseerimine"</item>
+    <item msgid="5117506254221861929">"VPN-i aktiveerimine"</item>
+    <item msgid="8291198322681891160">"Taustapilt kirjutamiseks"</item>
+    <item msgid="7106921284621230961">"Abistruktuur"</item>
+    <item msgid="4496533640894624799">"Abistav ekraanipilt"</item>
+    <item msgid="2598847264853993611">"Telefoni oleku lugemine"</item>
+    <item msgid="9215610846802973353">"Kõneposti lisamine"</item>
+    <item msgid="9186411956086478261">"SIP kasutamine"</item>
+    <item msgid="6884763100104539558">"Väljamineva kõne töötlemine"</item>
+    <item msgid="125513972170580692">"Sõrmejälg"</item>
+    <item msgid="2556071024281275619">"Kehaandurid"</item>
+    <item msgid="617168514928339387">"Kärjeteadete lugemine"</item>
+    <item msgid="7134693570516523585">"Tehislik asukoht"</item>
+    <item msgid="7224489175375229399">"Salvestusruumi lugemine"</item>
+    <item msgid="8472735063903258202">"Salvestusruumi kirjutamine"</item>
+    <item msgid="4069276819909595110">"Ekraani sisselülitamine"</item>
+    <item msgid="1228338896751121025">"Kontode hankimine"</item>
+    <item msgid="3181581793459233672">"Taustal käitamine"</item>
+    <item msgid="2340936043025374076">"Juurdepääsetavuse helitugevus"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Lühike"</item>
     <item msgid="4816511817309094890">"Keskmine"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Ära luba kunagi"</item>
     <item msgid="8184570120217958741">"Luba alati"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Tavaline"</item>
+    <item msgid="5101233285497327432">"Keskmine"</item>
+    <item msgid="1555861583162930714">"Väike"</item>
+    <item msgid="1719683776264798117">"Kriitiline"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Tavaline"</item>
+    <item msgid="6107138933849816768">"Mõõdukas"</item>
+    <item msgid="182695359839047859">"Väike"</item>
+    <item msgid="8577246509202964244">"Kriitiline"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Püsiv"</item>
     <item msgid="167418068739176448">"Sagedasim tegevus"</item>
diff --git a/tests/CarDeveloperOptions/res/values-et/strings.xml b/tests/CarDeveloperOptions/res/values-et/strings.xml
index 2a56fc7..864475d 100644
--- a/tests/CarDeveloperOptions/res/values-et/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-et/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Muutke ekraanil kuvatavat tekst suuremaks või väiksemaks."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Vähendamine"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Suurendamine"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Näidistekst"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Võlur Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. peatükk: Ozi imeline smaragdlinn"</string>
@@ -384,7 +383,7 @@
     <string name="encryption_and_credential_settings_summary" product="tablet" msgid="8170667308598998791">"Seade on krüpteeritud"</string>
     <string name="decryption_settings_summary" product="tablet" msgid="7524119945312453569">"Seade ei ole krüpteeritud"</string>
     <string name="lockscreen_settings_title" msgid="1221505938891948413">"Lukustuskuva seaded"</string>
-    <string name="lockscreen_settings_what_to_show_category" msgid="3133378945821488654">"Mida näidata?"</string>
+    <string name="lockscreen_settings_what_to_show_category" msgid="3133378945821488654">"Mida kuvada?"</string>
     <string name="security_settings_summary" msgid="5210109100643223686">"Määrake Minu asukoht, ekraani avamine, SIM-kaardi lukk, mandaadi talletuslukk"</string>
     <string name="cdma_security_settings_summary" msgid="1783066617800041869">"Määrake oma asukoht, ekraani avamine, mandaadi talletuslukk"</string>
     <string name="security_passwords_title" msgid="6853942836045862315">"Privaatsus"</string>
@@ -495,7 +494,7 @@
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Järgmine"</string>
     <string name="security_settings_fingerprint_enroll_disclaimer" msgid="5831834311961551423">"Lisaks telefoni avamisele saate oma sõrmejälje abil volitada ka ostusid ja juurdepääsu rakendustele. "<annotation id="url">"Lisateave"</annotation></string>
     <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7954742554236652690">" Ekraaniluku valik on keelatud. Küsige lisateavet organisatsiooni administraatorilt. "<annotation id="admin_details">"Rohkem üksikasju"</annotation>\n\n"Saate ka edaspidi sõrmejäljega oste volitada ja rakendustele juurde pääseda. "<annotation id="url">"Lisateave"</annotation></string>
-    <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"Tõstke sõrme, seejärel puudutage sõrmejäljelugejat uuesti"</string>
+    <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"Tõstke sõrme, seejärel puudutage sõrmejäljeandurit uuesti"</string>
     <string name="fingerprint_add_max" msgid="2939393314646115661">"Saate lisada kuni <xliff:g id="COUNT">%d</xliff:g> sõrmejälge"</string>
     <string name="fingerprint_intro_error_max" msgid="3247720976621039437">"Olete lisanud maksimaalse arvu sõrmejälgi"</string>
     <string name="fingerprint_intro_error_unknown" msgid="3975674268256524015">"Rohkem sõrmejälgi ei saa lisada"</string>
@@ -783,7 +782,7 @@
     <string name="bluetooth_disconnect_hid_profile" msgid="6964226087090465662">"Seadme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ühendus sisendseadmega katkestatakse."</string>
     <string name="bluetooth_disconnect_pan_user_profile" msgid="5523689915196343097">"Katkestatakse Interneti-ühendus seadme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> kaudu."</string>
     <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="8145126793699232403">"Tahvelarvuti Interneti-ühenduse jagamine seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkestatakse."</string>
-    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="6040826983120279685">"Telefoni Interneti-ühenduse jagamine seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkestatakse."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="6040826983120279685">"Telefoni internetiühenduse jagamine seadmega <xliff:g id="DEVICE_NAME">%1$s</xliff:g> katkestatakse."</string>
     <string name="bluetooth_device_advanced_title" msgid="5752155558126694036">"Seotud Bluetooth-seade"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="7665622268007450665">"Ühenda"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="4180673788239241086">"Ühenda Bluetooth-seadmega"</string>
@@ -934,11 +933,11 @@
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Valige WiFi-kuumkoha lubamiseks vähemalt üks sagedusriba:"</string>
     <string name="wifi_ip_settings" msgid="4636102290236116946">"IP-seaded"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Privaatsus"</string>
-    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Juhuslik MAC-aadress"</string>
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Juhulikustatud MAC-aadress"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Seadme lisamine"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Seadme võrku „<xliff:g id="SSID">%1$s</xliff:g>” lisamiseks paigutage allolev QR-kood aknas keskele"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Seadme võrku „<xliff:g id="SSID">%1$s</xliff:g>” lisamiseks paigutage QR-kood allolevas aknas keskele"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR-koodi skannimine"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Võrguga „<xliff:g id="SSID">%1$s</xliff:g>” ühenduse loomiseks paigutage allolev QR-kood aknas keskele"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Võrguga „<xliff:g id="SSID">%1$s</xliff:g>” ühenduse loomiseks paigutage QR-kood allolevas aknas keskele"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Liituge WiFi-võrguga, skannides QR-koodi"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"WiFi jagamine"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Skannige see QR-kood, et luua ühendus võrguga „<xliff:g id="SSID">%1$s</xliff:g>” ja jagada parooli"</string>
@@ -964,7 +963,7 @@
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Kinnitage oma isik"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"WiFi-võrgu parool: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Kuumkoha parool: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Lisa seade"</string>
+    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Seadme lisamine"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Looge võrguga ühendus QR-koodi abil"</string>
     <string name="retry" msgid="8500839563577344702">"Proovi uuesti"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"Jaga seadme teiste kasutajatega"</string>
@@ -976,7 +975,7 @@
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Ära kinnita"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Sertifikaati pole määratud. Teie ühendus pole privaatne."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Võrgu nimi on liiga pikk."</string>
-    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Tuleb määrata domeen."</string>
+    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Domeeni määramine on kohustuslik."</string>
     <string name="wifi_wps_available_first_item" msgid="3221671453930485243">"WPS on saadaval"</string>
     <string name="wifi_wps_available_second_item" msgid="5703265526619705185">" WPS on saadaval"</string>
     <string name="wifi_carrier_connect" msgid="7202618367339982884">"Operaatori WiFi-võrk"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"WiFi"</item>
+    <item msgid="2271962426654621656">"Mobiilne andmeside"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Kasuta mobiilsidevõrku, kui WiFi ei ole saadaval"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Kasuta WiFi-ühendust, kui mobiilsidevõrk ei ole saadaval"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Helistage WiFi-võrgu kaudu. WiFi-ühenduse katkemisel kõne lõpeb."</string>
@@ -1524,11 +1526,11 @@
     <string name="storage_wizard_ready_v2_internal_moved_body" msgid="4133133596316768033">"Sisu teisaldati seadmesse <xliff:g id="NAME_0">^1</xliff:g>. \n\nSeadme <xliff:g id="NAME_1">^2</xliff:g> haldamiseks tehke valikud "<b>"Seaded &gt; Salvestusruum"</b>"."</string>
     <string name="battery_status_title" msgid="8731200319740671905">"Aku olek"</string>
     <string name="battery_level_title" msgid="5207775387973771646">"Aku tase"</string>
-    <string name="apn_settings" msgid="8130776653826271664">"Pääsupunktid"</string>
+    <string name="apn_settings" msgid="8130776653826271664">"Pääsupunktid (APN-id)"</string>
     <string name="apn_edit" msgid="4350571070853305357">"Pääsupunkti muutmine"</string>
     <string name="apn_not_set" msgid="5344235604466825691">"Määramata"</string>
     <string name="apn_name" msgid="8431432886706852226">"Nimi"</string>
-    <string name="apn_apn" msgid="190519449579357696">"Pääsupunktnimi"</string>
+    <string name="apn_apn" msgid="190519449579357696">"Pääsupunkti nimi"</string>
     <string name="apn_http_proxy" msgid="8816906767987944465">"Puhverserver"</string>
     <string name="apn_http_port" msgid="5789193688960075486">"Port"</string>
     <string name="apn_user" msgid="6979724587671704006">"Kasutajanimi"</string>
@@ -1544,7 +1546,7 @@
     <string name="apn_auth_type_pap" msgid="6155876141679480864">"PAP"</string>
     <string name="apn_auth_type_chap" msgid="5484031368454788686">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="2977833804460109203">"PAP või CHAP"</string>
-    <string name="apn_type" msgid="6725346490902871146">"Pääsupunktinime tüüp"</string>
+    <string name="apn_type" msgid="6725346490902871146">"APN-i tüüp"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"APN-i protokoll"</string>
     <string name="apn_roaming_protocol" msgid="6913336248771263497">"APN-i rändlusprotokoll"</string>
     <string name="carrier_enabled" msgid="1819916725305365581">"Luba/keela APN"</string>
@@ -1619,11 +1621,11 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Kui andmemahu säästja on sisse lülitatud, siis ei saa jagada ega kasutada teisaldatavat kuumkohta"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB jagamine"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Telefoni Interneti-ühenduse jagamine USB kaudu"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Telefoni internetiühenduse jagamine USB kaudu"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Tahvelarvuti Interneti-ühenduse jagamine USB kaudu"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Jagamine Bluetoothiga"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Tahvelarvuti Interneti-ühenduse jagamine Bluetoothi kaudu"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Telefoni Interneti-ühenduse jagamine Bluetoothi kaudu"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Telefoni internetiühenduse jagamine Bluetoothi kaudu"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Seadme <xliff:g id="DEVICE_NAME">%1$d</xliff:g> Interneti-ühenduse jagamine Bluetoothi kaudu"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Ei saa jagada rohkem kui <xliff:g id="MAXCONNECTION">%1$d</xliff:g> seadmele."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"Seadme <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ühenduse jagamine lõpetatakse."</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Sisestage SIM-kaart ja taaskäivitage"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Looge Interneti-ühendus"</string>
     <string name="location_title" msgid="8664674161765477168">"Minu asukoht"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Tööprofiili asukoht"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Tööprofiili asukohaluba"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Rakenduste load"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Asukoht on välja lülitatud"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -2084,7 +2086,7 @@
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Valige, kui kaua soovite kuvada sõnumeid, mida peate lugema, kuid mis on nähtavad ainult ajutiselt.\n\nKõik rakendused seda seadet ei toeta"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Valige, kui kaua soovite kuvada sõnumeid, milles palutakse teil toiminguid teha, kuid mis on nähtaval ainult ajutiselt.\n\nKõik rakendused seda seadet ei toeta."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Puute ja hoidmise viide"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Värvuste ümberpööramine"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Värvide ümberpööramine"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Võib mõjutada toimivust"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"Peatumisaeg"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"Kui kasutate hiirt, võite kursori seadistada automaatselt mõne toimingu tegema, kui see teatud aja jooksul ei liigu."</string>
@@ -2149,7 +2151,7 @@
     <string name="captioning_standard_options_title" msgid="4124898413348084226">"Standardvalikud"</string>
     <string name="captioning_locale" msgid="4734464353806207943">"Keel"</string>
     <string name="captioning_text_size" msgid="1707122517246408084">"Teksti suurus"</string>
-    <string name="captioning_preset" msgid="7429888317480872337">"Tiitri stiil"</string>
+    <string name="captioning_preset" msgid="7429888317480872337">"Subtiitri stiil"</string>
     <string name="captioning_custom_options_title" msgid="4530479671071326732">"Kohandatud valikud"</string>
     <string name="captioning_background_color" msgid="2434458880326292180">"Tausta värv"</string>
     <string name="captioning_background_opacity" msgid="8178926599201811936">"Tausta läbipaistvus"</string>
@@ -2160,7 +2162,7 @@
     <string name="captioning_edge_color" msgid="4330622137047993780">"Serva värv"</string>
     <string name="captioning_edge_type" msgid="4414946407430588162">"Serva tüüp"</string>
     <string name="captioning_typeface" msgid="7893208796949341767">"Fondi perekond"</string>
-    <string name="captioning_preview_text" msgid="4877753964772618049">"Tiitrid näevad välja sellised"</string>
+    <string name="captioning_preview_text" msgid="4877753964772618049">"Subtiitrid näevad välja sellised"</string>
     <string name="captioning_preview_characters" msgid="6469599599352973561">"Aa"</string>
     <string name="locale_default" msgid="910074908458214054">"Vaikeseade"</string>
     <string name="color_title" msgid="132875486061816584">"Värv"</string>
@@ -2297,7 +2299,7 @@
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
       <item quantity="other">%2$d rakendust kasutavad taustal palju akut</item>
-      <item quantity="one">%1$s rakendus kasutab taustal palju akut</item>
+      <item quantity="one">Rakendus %1$s kasutab taustal palju akut</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Neid rakendusi ei saa taustal käitada</item>
@@ -2310,7 +2312,7 @@
     <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Aku säästmiseks peatage rakenduse <xliff:g id="APP">%1$s</xliff:g> jaoks taustal aku kasutamine. See rakendus ei pruugi korralikult töötada ja märguanded võivad viibida."</string>
     <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Aku säästmiseks peatage nende rakenduste jaoks taustal aku kasutamine. Piiratud rakendused ei pruugi korralikult töötada ja märguanded võivad viibida.\n\nRakendused:"</string>
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Aku säästmiseks peatage nende rakenduste jaoks taustal aku kasutamine. Piiratud rakendused ei pruugi korralikult töötada ja märguanded võivad viibida.\n\nRakendused:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
-    <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Piira"</string>
+    <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Piira:"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Kas eemaldada piirang?"</string>
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"See rakendus saab taustal akut kasutada. Aku võib oodatust varem tühjaks saada."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Eemalda"</string>
@@ -2528,7 +2530,7 @@
     <string name="credentials_reset" msgid="355080737664731678">"Mandaatide kustutamine"</string>
     <string name="credentials_reset_summary" msgid="7622528359699428555">"Kõikide sertifikaatide eemaldamine"</string>
     <string name="trusted_credentials" msgid="6989242522455395200">"Usaldusväärsed mandaadid"</string>
-    <string name="trusted_credentials_summary" msgid="7411781319056251582">"Usaldusväärsete CA-sertifikaatide kuvamine"</string>
+    <string name="trusted_credentials_summary" msgid="7411781319056251582">"Kuva usaldusväärsed CA-sertifikaadid"</string>
     <string name="user_credentials" msgid="8365731467650306757">"Kasutaja mandaadid"</string>
     <string name="user_credentials_summary" msgid="7350223899317423252">"Salvestatud mandaatide vaatamine ja muutmine"</string>
     <string name="advanced_security_title" msgid="286883005673855845">"Täpsemad"</string>
@@ -2577,7 +2579,7 @@
     <string name="add_device_admin_msg" msgid="3573765823476931173">"Kas aktiveerida admin. rakendus?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"Aktiveeri seadme administraatori rakendus"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Seadme administraator"</string>
-    <string name="device_admin_warning" msgid="4421817419326480449">"Selle administraatori rakenduse aktiveerimisel lubatakse rakendusel <xliff:g id="APP_NAME">%1$s</xliff:g> teha järgmisi toiminguid:"</string>
+    <string name="device_admin_warning" msgid="4421817419326480449">"Selle administraatori rakenduse aktiveerimisel lubatakse rakendusel <xliff:g id="APP_NAME">%1$s</xliff:g> teha järgmisi toiminguid."</string>
     <string name="device_admin_status" msgid="5424944611789040723">"See administraatori rakendus on aktiivne ja lubab rakendusel <xliff:g id="APP_NAME">%1$s</xliff:g> teha järgmisi toiminguid."</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Kas aktiveerida profiilihaldur?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Kui jätkate, haldab teie kasutajat edaspidi administraator, kes saab võib-olla talletada peale teie isiklike andmete ka seotud andmeid.\n\nTeie administraator saab jälgida ja hallata selle kasutajaga seotud seadeid, juurdepääsu, rakendusi ja andmeid, sealhulgas veebitegevusi ja seadme asukohateavet."</string>
@@ -2920,7 +2922,7 @@
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> – <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"Kasuta vaikerakendust"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Alati"</string>
-    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Välja arvatud siis, kui mõni teine makserakendus on avatud"</string>
+    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"V.a siis, kui mõni teine makserakendus on avatud"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Maksa teenuse Puuduta ja maksa terminalis rakendusega"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Terminali kaudu maksmine"</string>
     <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Seadistage makserakendus. Seejärel peate oma telefoni tagakülge hoidma lihtsalt mis tahes terminali suunas, millel on kontaktivaba makse sümbol."</string>
@@ -3494,7 +3496,7 @@
     <string name="zen_calls_summary_starred_repeat" msgid="9191394641577678207">"Tärniga tähistatud kontaktidelt ja korduvatelt helistajatelt"</string>
     <string name="zen_calls_summary_contacts_repeat" msgid="7747592096431111510">"Kontaktidelt ja korduvatelt helistajatelt"</string>
     <string name="zen_calls_summary_repeat_only" msgid="8839703337232747964">"Ainult korduvatelt helistajatelt"</string>
-    <string name="zen_mode_from_none" msgid="7683889985618637010">"Mitte kelleltki"</string>
+    <string name="zen_mode_from_none" msgid="7683889985618637010">"Mitte ükski"</string>
     <string name="zen_mode_from_none_calls" msgid="2967739140346917546">"Ära luba kõnesid"</string>
     <string name="zen_mode_from_none_messages" msgid="9069143820057833634">"Ära luba ühtki sõnumit"</string>
     <string name="zen_mode_alarms" msgid="5528707742250954290">"Luba märguanded"</string>
@@ -3515,9 +3517,9 @@
     <string name="zen_mode_events_list" msgid="8578102701815684873">"sündmused"</string>
     <string name="zen_mode_all_callers" msgid="4455039040077343838">"igaüks"</string>
     <string name="zen_mode_contacts_callers" msgid="3116829245339716399">"kontaktid"</string>
-    <string name="zen_mode_starred_callers" msgid="1317376207713013472">"tärniga tähistatud kontaktidelt"</string>
+    <string name="zen_mode_starred_callers" msgid="1317376207713013472">"tärniga tähistatud kontaktid"</string>
     <string name="zen_mode_repeat_callers" msgid="1435309867554692340">"Korduvad helistajad"</string>
-    <string name="zen_mode_repeat_callers_list" msgid="2750270907597457279">"korduvatelt helistajatelt"</string>
+    <string name="zen_mode_repeat_callers_list" msgid="2750270907597457279">"korduvad helistajad"</string>
     <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"Luba korduvad helistajad"</string>
     <string name="zen_mode_calls_summary_one" msgid="8327371053236689649">"Luba <xliff:g id="CALLER_TYPE">%1$s</xliff:g>"</string>
     <string name="zen_mode_calls_summary_two" msgid="9017678770532673578">"Luba <xliff:g id="CALLER_TYPE">%1$s</xliff:g> ja <xliff:g id="CALLERT_TPYE">%2$s</xliff:g>"</string>
@@ -3628,7 +3630,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> täiendav luba</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"Lube pole antud"</string>
-    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Lube ei taotletud"</string>
+    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Lube pole taotletud"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"Kõik rakendused"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"Installitud rakendused"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"Installimata avat. rakendused"</string>
@@ -3710,7 +3712,7 @@
     <string name="high_power_system" msgid="739584574711292753">"Aku optimeerimine pole saadaval"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Aku optimeerimist ei rakendata. Aku võib kiiremini tühjeneda."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Kas soovite lubada rakendusel pidevalt taustal töötada?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Kui lubate rakendusel <xliff:g id="APP_NAME">%1$s</xliff:g> pidevalt taustal töötada, võib see vähendada aku tööiga.\n\nSaate seda hiljem muuta jaotises Seaded &gt; Rakendused ja märguanded."</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Kui lubate rakendusel <xliff:g id="APP_NAME">%1$s</xliff:g> pidevalt taustal töötada, võib see lühendada aku tööiga.\n\nSaate seda hiljem muuta jaotises Seaded &gt; Rakendused ja märguanded."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Kasutus alates viimasest täislaadimisest on <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Toitehaldus"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Akut pole pärast viimast täislaadimist kasutatud"</string>
@@ -4006,7 +4008,7 @@
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Lülita kohe välja"</string>
     <string name="not_battery_optimizing" msgid="2616044774307734160">"Aku optimeerimist ei kasutata"</string>
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Kui seade on lukus, keela märguannetes vastuste või muu teksti sisestamine"</string>
-    <string name="default_spell_checker" msgid="8636661093243189533">"Vaikimisi õigekirjakontroll"</string>
+    <string name="default_spell_checker" msgid="8636661093243189533">"Vaikeõigekirjakontroll"</string>
     <string name="choose_spell_checker" msgid="7619860861923582868">"Õigekirjakontrolli valimine"</string>
     <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Kasuta õigekirjakontrolli"</string>
     <string name="spell_checker_not_selected" msgid="331034541988255137">"Pole valitud"</string>
@@ -4050,7 +4052,7 @@
     <string name="display_cutout_emulation_keywords" msgid="6795671536772871439">"ekraani väljalõige, lõige"</string>
     <string name="overlay_option_device_default" msgid="165508753381657697">"Seadme vaikeseade"</string>
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Ülekatet ei õnnestunud rakendada"</string>
-    <string name="special_access" msgid="1453926335914696206">"Rakenduste erijuurdepääs"</string>
+    <string name="special_access" msgid="1453926335914696206">"Rakenduse erijuurdepääs"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> rakendusel on piiranguteta juurdepääs andmesidele</item>
       <item quantity="one">1 rakendusel on piiranguteta juurdepääs andmesidele</item>
@@ -4110,7 +4112,7 @@
     <string name="gesture_preference_summary" product="tablet" msgid="8303793594714075580">"Kiirliigutused tahvelarvuti juhtimiseks"</string>
     <string name="gesture_preference_summary" product="device" msgid="7792199669106960922">"Kiirliigutused seadme juhtimiseks"</string>
     <string name="double_tap_power_for_camera_title" msgid="5480829329052517484">"Kaamera avamine"</string>
-    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"Kaamera kiireks avamiseks vajutage toitenuppu kaks korda. See töötab igast kuvast."</string>
+    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"Kaamera kiireks avamiseks vajutage toitenuppu kaks korda. See töötab igal kuval."</string>
     <string name="double_tap_power_for_camera_suggestion_title" msgid="509078029429865036">"Kaamera kiiresti avamine"</string>
     <string name="double_twist_for_camera_mode_title" msgid="2606032140297556018">"Kaamera vahetamine"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="8979914206876018137"></string>
@@ -4129,7 +4131,7 @@
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Kellaaja, märguannete ja muu teabe vaatamiseks võtke telefon kätte."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Kellaaja, märguannete ja muu teabe vaatamiseks võtke tahvelarvuti kätte."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Kellaaja, märguannete ja muu teabe vaatamiseks võtke seade kätte."</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Puudutamine telefoni kontrollimiseks"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Telefoni kontrollimiseks puudutamine"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Puudutamine tahvelarvuti kontrollimiseks"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Puudutamine seadme kontrollimiseks"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Kellaaja, märguannete ja muu teabe vaatamiseks puudutage oma ekraani."</string>
@@ -4308,7 +4310,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"WiFi-seadete juhtimine"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Lubage rakendusel WiFi-seadeid juhtida"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Lubage sellel rakendusel WiFi sisse või välja lülitada, otsida WiFi-võrke ja nendega ühendus luua, võrke lisada või eemaldada või luua kohalik kuumkoht"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Esita meedia seadmes"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Meedia esitamise seade:"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"See seade"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Telefon"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Tahvelarvuti"</string>
@@ -4439,7 +4441,7 @@
     <string name="register_automatically" msgid="1858081641661493109">"Automaatne registreerimine …"</string>
     <string name="roaming_alert_title" msgid="1849237823113454475">"Kas lubada andmesiderändlus?"</string>
     <string name="roaming_check_price_warning" msgid="5883499714594419439">"Hinnakirja küsige oma võrguteenuse pakkujalt."</string>
-    <string name="mobile_data_usage_title" msgid="2376358672434990037">"Rakenduse andmekasutus"</string>
+    <string name="mobile_data_usage_title" msgid="2376358672434990037">"Rakenduste andmekasutus"</string>
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"Võrgu režiim <xliff:g id="NETWORKMODEID">%1$d</xliff:g> on sobimatu. Eirake seda."</string>
     <string name="mobile_network_apn_title" msgid="5628635067747404382">"Pääsupunktide nimed"</string>
     <string name="manual_mode_disallowed_summary" msgid="799800630000340665">"Pole saadaval, kui on ühendus on loodud operaatoriga <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
diff --git a/tests/CarDeveloperOptions/res/values-eu/arrays.xml b/tests/CarDeveloperOptions/res/values-eu/arrays.xml
index 03259f7..a0df5ca 100644
--- a/tests/CarDeveloperOptions/res/values-eu/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-eu/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 minutu"</item>
     <item msgid="6677424950124253938">"30 minutu"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Inoiz ez"</item>
+    <item msgid="2517785806387977252">"15 segundo"</item>
+    <item msgid="6347954399441173672">"30 segundo"</item>
+    <item msgid="4858305253279921789">"1 minutu"</item>
+    <item msgid="8109273437140044073">"2 minutu"</item>
+    <item msgid="2788593551142462622">"5 minutu"</item>
+    <item msgid="8012672183888404961">"10 minutu"</item>
+    <item msgid="8271452751594598661">"30 minutu"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Berehala"</item>
     <item msgid="2038544972632026612">"5 segundo"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 minutu"</item>
     <item msgid="7258394417241706272">"30 minutu"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Txikia"</item>
+    <item msgid="591935967183159581">"Lehenetsia"</item>
+    <item msgid="1714184661981538355">"Handia"</item>
+    <item msgid="6195563047686707484">"Handiena"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Bilatzen…"</item>
+    <item msgid="5597394826455877834">"Konektatzen…"</item>
+    <item msgid="5848277343965362748">"Autentifikatzen…"</item>
+    <item msgid="3391238031431440676">"IP helbidea lortzen…"</item>
+    <item msgid="5257597310494000224">"Konektatuta"</item>
+    <item msgid="8472497592913050396">"Etenda"</item>
+    <item msgid="1228072488815999109">"Deskonektatzen…"</item>
+    <item msgid="7253087004422991731">"Deskonektatuta"</item>
+    <item msgid="4169850917304751227">"Ezin izan da egin"</item>
+    <item msgid="6266658166690831131">"Blokeatuta"</item>
+    <item msgid="4517230805854909775">"Konexio ahula aldi baterako saihesten"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Bilatzen…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarera konektatzen…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarearekin autentifikatzen…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarearen IP helbidea lortzen…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> sarera konektatuta"</item>
+    <item msgid="6600156231416890902">"Etenda"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> saretik deskonektatzen…"</item>
+    <item msgid="3980154971187953257">"Deskonektatuta"</item>
+    <item msgid="2847316776634969068">"Ezin izan da egin"</item>
+    <item msgid="4390990424746035383">"Blokeatuta"</item>
+    <item msgid="3618248791367063949">"Konexio ahula aldi baterako saihesten"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Sakatu botoia"</item>
+    <item msgid="7401896200768713930">"Pareko gailuaren PINa"</item>
+    <item msgid="4526848028011846710">"Gailuaren PINa"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Konektatuta"</item>
     <item msgid="983792611851499732">"Gonbidatuta"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Txarra"</item>
+    <item msgid="7882129634982603782">"Txarra"</item>
+    <item msgid="6457357501905996224">"Hala-holakoa"</item>
+    <item msgid="405271628162918841">"Ona"</item>
+    <item msgid="999948812884919584">"Bikaina"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"Azken 30 egunak"</item>
     <item msgid="3211287705232736964">"Erabilera-zikloa…"</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Estatikoa"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Bat ere ez"</item>
     <item msgid="1464741437353223198">"Eskuliburua"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"exekutatu atzeko planoan"</item>
     <item msgid="6423861043647911030">"erabilerraztasun-eginbideen bolumena"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Kokapena"</item>
+    <item msgid="6656077694190491067">"Kokapena"</item>
+    <item msgid="8790228218278477369">"Kokapena"</item>
+    <item msgid="7836406246005211990">"Egin dar-dar"</item>
+    <item msgid="3951439024549922598">"Irakurri kontaktuak"</item>
+    <item msgid="8802152411647068">"Aldatu kontaktuak"</item>
+    <item msgid="229544934599698735">"Irakurri deien erregistroa"</item>
+    <item msgid="7396102294405899613">"Aldatu deien erregistroa"</item>
+    <item msgid="3597797992398484655">"Irakurri egutegia"</item>
+    <item msgid="2705975774250907343">"Aldatu egutegia"</item>
+    <item msgid="4668747371441932697">"Kokapena"</item>
+    <item msgid="1487578921720243646">"Bidali jakinarazpena"</item>
+    <item msgid="4636080349724146638">"Kokapena"</item>
+    <item msgid="673510900286463926">"Deitu telefonora"</item>
+    <item msgid="542083422784609790">"Irakurri SMS/MMS mezuak"</item>
+    <item msgid="1033780373029588436">"Idatzi SMS/MMS mezuak"</item>
+    <item msgid="5647111115517787488">"Jaso SMS/MMS mezuak"</item>
+    <item msgid="8591105601108455893">"Jaso SMS/MMS mezuak"</item>
+    <item msgid="7730995008517841903">"Jaso SMS/MMS mezuak"</item>
+    <item msgid="2613033109026626086">"Jaso SMS/MMS mezuak"</item>
+    <item msgid="3037159047591081136">"Bidali SMS/MMS mezuak"</item>
+    <item msgid="4726682243833913568">"Irakurri SMS/MMS mezuak"</item>
+    <item msgid="6555678522277865572">"Idatzi SMS/MMS mezuak"</item>
+    <item msgid="6981734935578130884">"Aldatu ezarpenak"</item>
+    <item msgid="8705854389991425629">"Marraztu gainean"</item>
+    <item msgid="5861356020344153651">"Atzitu jakinarazpenak"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Grabatu audioa"</item>
+    <item msgid="4516840825756409490">"Erreproduzitu audioa"</item>
+    <item msgid="6811712502798183957">"Irakurri arbela"</item>
+    <item msgid="2780369012602289114">"Aldatu arbela"</item>
+    <item msgid="2331359440170850868">"Multimedia-botoiak"</item>
+    <item msgid="6133599737122751231">"Audio-fokuratzea"</item>
+    <item msgid="6844485713404805301">"Bolumen nagusia"</item>
+    <item msgid="1600379420669104929">"Ahotsaren bolumena"</item>
+    <item msgid="6296768210470214866">"Tonuaren bolumena"</item>
+    <item msgid="510690696071629241">"Multimedia-edukiaren bolumena"</item>
+    <item msgid="406861638631430109">"Alarmaren bolumena"</item>
+    <item msgid="4715864795872233884">"Jakinarazpenen bolumena"</item>
+    <item msgid="2311478519251301183">"Bluetooth bidezko audioaren bolumena"</item>
+    <item msgid="5133991377896747027">"Mantendu aktibo"</item>
+    <item msgid="2464189519136248621">"Kokapena"</item>
+    <item msgid="2062677934050803037">"Kokapena"</item>
+    <item msgid="1735171933192715957">"Lortu erabilera-estatistikak"</item>
+    <item msgid="1014093788778383554">"Aktibatu edo desaktibatu mikrofonoa"</item>
+    <item msgid="4199297950608622850">"Erakutsi leiho gainerakorra"</item>
+    <item msgid="2527962435313398821">"Proiektatu multimedia-edukia"</item>
+    <item msgid="5117506254221861929">"Aktibatu VPN konexioa"</item>
+    <item msgid="8291198322681891160">"Idatzi horma-paperean"</item>
+    <item msgid="7106921284621230961">"Lagundu egiturarekin"</item>
+    <item msgid="4496533640894624799">"Lagundu pantaila-argazkiarekin"</item>
+    <item msgid="2598847264853993611">"Irakurri telefonoaren egoera"</item>
+    <item msgid="9215610846802973353">"Gehitu erantzungailua"</item>
+    <item msgid="9186411956086478261">"Erabili SIP deiak"</item>
+    <item msgid="6884763100104539558">"Prozesatu egindako deia"</item>
+    <item msgid="125513972170580692">"Hatz-marka digitala"</item>
+    <item msgid="2556071024281275619">"Gorputz-sentsoreak"</item>
+    <item msgid="617168514928339387">"Irakurri sare mugikor bidezko igorpenak"</item>
+    <item msgid="7134693570516523585">"Imitatu kokapena"</item>
+    <item msgid="7224489175375229399">"Irakurri memoria"</item>
+    <item msgid="8472735063903258202">"Idatzi memorian"</item>
+    <item msgid="4069276819909595110">"Aktibatu pantaila"</item>
+    <item msgid="1228338896751121025">"Lortu kontuak"</item>
+    <item msgid="3181581793459233672">"Abiarazi atzeko planoan"</item>
+    <item msgid="2340936043025374076">"Erabilerraztasun-eginbideen bolumena"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Laburra"</item>
     <item msgid="4816511817309094890">"Ertaina"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"Etzana"</item>
     <item msgid="6896773537705206194">"Maiuskula txikiak"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Oso txikia"</item>
+    <item msgid="5091603983404027034">"Txikia"</item>
+    <item msgid="176844712416932112">"Normala"</item>
+    <item msgid="2784236342175159295">"Handia"</item>
+    <item msgid="218913203203160606">"Oso handia"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Lehenetsia"</item>
     <item msgid="6488643537808152001">"Bat ere ez"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"% 75"</item>
     <item msgid="6462911487571123954">"% 100"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Erabili aplikazioaren lehenespenak"</item>
+    <item msgid="8611890312638868524">"Zuria beltzaren gainean"</item>
+    <item msgid="5891360837786277638">"Beltza zuriaren gainean"</item>
+    <item msgid="2798457065945456853">"Horia beltzaren gainean"</item>
+    <item msgid="5799049811524553967">"Horia urdinaren gainean"</item>
+    <item msgid="3673930830658169860">"Pertsonalizatua"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"L2TP/IPSec VPNa aurrez partekatutako gakoekin"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"Bat ere ez"</item>
     <item msgid="1157046369795346308">"Eskuliburua"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Deskonektatuta"</item>
+    <item msgid="8754480102834556765">"Hasieratzen…"</item>
+    <item msgid="3351334355574270250">"Konektatzen…"</item>
+    <item msgid="8303882153995748352">"Konektatuta"</item>
+    <item msgid="9135049670787351881">"Denbora-muga"</item>
+    <item msgid="2124868417182583926">"Ezin izan da egin"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Galdetu"</item>
     <item msgid="7718817231348607934">"Ukatu beti"</item>
     <item msgid="8184570120217958741">"Eman baimena beti"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normala"</item>
+    <item msgid="5101233285497327432">"Ez oso ona"</item>
+    <item msgid="1555861583162930714">"Txikia"</item>
+    <item msgid="1719683776264798117">"Oso handia"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normala"</item>
+    <item msgid="6107138933849816768">"Ertaina"</item>
+    <item msgid="182695359839047859">"Txikia"</item>
+    <item msgid="8577246509202964244">"Larria"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Etengabea"</item>
     <item msgid="167418068739176448">"Jarduera nagusia"</item>
diff --git a/tests/CarDeveloperOptions/res/values-eu/strings.xml b/tests/CarDeveloperOptions/res/values-eu/strings.xml
index bbf14b7..3f8dae6 100644
--- a/tests/CarDeveloperOptions/res/values-eu/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-eu/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Handitu edo txikitu pantailako testua."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Txikitu"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Handitu"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Testu-lagina"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Ozeko azti miragarria"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. kapitulua: Esmeraldazko Oz hiri harrigarria"</string>
@@ -116,9 +115,9 @@
     <string name="bluetooth_empty_list_user_restricted" msgid="3616298363281495777">"Ez daukazu Bluetooth-aren ezarpenak aldatzeko baimenik."</string>
     <string name="bluetooth_pairing_pref_title" msgid="2904954138013884029">"Parekatu gailu batekin"</string>
     <string name="bluetooth_is_visible_message" msgid="6341088682252805612">"Bluetooth-aren ezarpenak irekita badaude, inguruko gailuek <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ikusi ahal izango dute."</string>
-    <string name="bluetooth_footer_mac_message" product="default" msgid="335341476746836260">"Telefonoaren Bluetooth helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
-    <string name="bluetooth_footer_mac_message" product="tablet" msgid="6033609611245782463">"Tabletaren Bluetooth helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
-    <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"Gailuaren Bluetooth helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_footer_mac_message" product="default" msgid="335341476746836260">"Telefonoa Bluetooth bidez konektatzeko helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_footer_mac_message" product="tablet" msgid="6033609611245782463">"Tableta Bluetooth bidez konektatzeko helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"Gailua Bluetooth bidez konektatzeko helbidea: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="6180709281434591654">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> deskonektatu nahi duzu?"</string>
     <string name="bluetooth_broadcasting" msgid="8926408584599563760">"Igorpena"</string>
     <string name="bluetooth_device" msgid="3170974107364990008">"Izenik gabeko Bluetooth bidezko gailua"</string>
@@ -179,7 +178,7 @@
     <string name="connected_device_available_call_title" msgid="6774859446815858428">"Deitzeko balio duten gailu erabilgarriak"</string>
     <string name="connected_device_connected_title" msgid="6255107326608785482">"Konektatuta daudenak"</string>
     <string name="connected_device_saved_title" msgid="8270136893488475163">"Gordetako gailuak"</string>
-    <string name="connected_device_add_device_summary" msgid="7960491471270158891">"Bluetooth konexioa aktibatuko da parekatu ahal izateko"</string>
+    <string name="connected_device_add_device_summary" msgid="7960491471270158891">"Bluetooth bidezko konexioa aktibatuko da parekatu ahal izateko"</string>
     <string name="connected_device_connections_title" msgid="9205000271382018428">"Konexio-hobespenak"</string>
     <string name="connected_device_previously_connected_title" msgid="225918223397410428">"Aurrez konektatutako gailuak"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="2018789662358162716">"Aurretik konektatutakoak"</string>
@@ -197,18 +196,18 @@
     <string name="proxy_settings_title" msgid="6014901859338211713">"Proxya"</string>
     <string name="proxy_clear_text" msgid="498317431076294101">"Garbitu"</string>
     <string name="proxy_port_label" msgid="8285157632538848509">"Proxy-ataka"</string>
-    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Egin hauen proxyaren salbuespena"</string>
+    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Egin ez ikusi proxyari kasu hauetan"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"Leheneratu balio lehenetsiak"</string>
     <string name="proxy_action_text" msgid="814511434843981413">"Eginda"</string>
     <string name="proxy_hostname_label" msgid="6798891831427287847">"Proxyaren ostalari-izena"</string>
     <string name="proxy_error" msgid="5036164133669802299">"Abisua"</string>
     <string name="proxy_error_dismiss" msgid="883805570485635650">"Ados"</string>
     <string name="proxy_error_invalid_host" msgid="5430640241353307223">"Idatzi duzun ostalari-izena ez da baliozkoa."</string>
-    <string name="proxy_error_invalid_exclusion_list" msgid="4314503082913856333">"Idatzi duzun salbuespen-zerrendak ez du formatu egokia. Idatzi domeinuen zerrenda, komaz bereizita."</string>
+    <string name="proxy_error_invalid_exclusion_list" msgid="4314503082913856333">"Idatzi duzun salbuespen-zerrendak ez du formatu egokia. Idatzi kanpo utzitako domeinuen zerrenda, komaz bereizita."</string>
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Atakaren eremua bete behar duzu."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Ataka eremuak hutsik egon behar du Ostalaria eremua ere hutsik badago."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Idatzi duzun ataka ez da baliozkoa."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Arakatzaileak HTTP proxya erabiltzen du baina ezin dute beste aplikazioek erabili."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Arakatzaileak HTTP proxya erabiltzen du, baina ezin dute beste aplikazioek erabili."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"Proxya auto. konf. URLa: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Deskargatzeko banda-zabalera (Kb/s):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Kargen banda-zabalera (Kb/s):"</string>
@@ -427,7 +426,7 @@
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Kendu aurpegiaren datuak"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Gailua desblokeatzeko eta aplikazioetan sartzeko erabil dezakezu aurpegia. "<annotation id="url">"Lortu informazio gehiago"</annotation></string>
     <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Aurpegiari buruzko datuak ezabatu?"</string>
-    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Aurpegiaren bidez desblokeatzeko aukerak erregistratutako datuak betiko eta segurtasun osoz ezabatuko dira. Horren ondoren, PIN kodea, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko, aplikazioetan saioa hasteko eta ordainketak berresteko."</string>
+    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Aurpegiaren bidez desblokeatzeko eginbideak erregistratutako datuak betiko eta segurtasun osoz ezabatuko dira. Horren ondoren, PIN kodea, eredua edo pasahitza beharko duzu telefonoa desblokeatzeko, aplikazioetan saioa hasteko eta ordainketak berresteko."</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"Hatz-marka digitala"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"Kudeatu hatz-markak"</string>
     <string name="fingerprint_usage_category_title" msgid="7298369141954599706">"Hatz-marken erabilera"</string>
@@ -771,7 +770,7 @@
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"Kokapenaren zehaztasuna hobetzeko, sistemaren aplikazioek eta zerbitzuek Bluetooth bidezko gailuak hautematen jarraituko dute. Hori aldatzeko, zoaz <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>gailuak bilatzeko ezarpenetara<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"Ezin izan da konektatu. Saiatu berriro."</string>
     <string name="device_details_title" msgid="726517818032923222">"Gailuaren xehetasunak"</string>
-    <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"Gailuaren Bluetooth helbidea: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"Gailua Bluetooth bidez konektatzeko helbidea: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_unpair_dialog_title" msgid="3669848977755142047">"Gailua ahaztu nahi duzu?"</string>
     <string name="bluetooth_unpair_dialog_body" product="default" msgid="5998071227980078077">"Aurrerantzean, telefonoa ez da parekatuko <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuarekin"</string>
     <string name="bluetooth_unpair_dialog_body" product="tablet" msgid="4696157463230518866">"Aurrerantzean, tableta ez da parekatuko <xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuarekin"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Aktibatu NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC eginbideak datuak trukatzen ditu gailu honen eta inguruko beste gailu edo helburu batzuen artean (adibidez, ordainketa-terminalak, sarbide-irakurgailuak, eta iragarki edo etiketa interaktiboak)."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Babestu NFC konexioak"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Onartu NFC ordainketak eta garraio publikoetan ordaintzeko aukera pantaila desblokeatuta dagoenean soilik"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Onartu NFC bidezko ordainketak eta garraio publikoetan ordaintzeko aukera pantaila desblokeatuta dagoenean soilik"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Aplikazioaren edukia NFC bidez transmititzeko prest"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Desaktibatuta"</string>
@@ -890,7 +889,7 @@
     <string name="wifi_menu_forget" msgid="7561140554450163075">"Ahaztu sarea"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"Aldatu sarea"</string>
     <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"Sare erabilgarriak ikusteko, aktibatu wifi-konexioa."</string>
-    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wi-Fi sareak bilatzen…"</string>
+    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wifi-sareak bilatzen…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Ez duzu wifi-sarea aldatzeko baimenik."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Gehiago"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"Konf. automatikoa (WPS)"</string>
@@ -931,8 +930,8 @@
     <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5,0 GHz-ko banda hobetsia"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
-    <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Aukeratu gutxienez banda bat wifi-sare publikorako:"</string>
-    <string name="wifi_ip_settings" msgid="4636102290236116946">"IP ezarpenak"</string>
+    <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Aukeratu gutxienez banda bat wifi-gunerako:"</string>
+    <string name="wifi_ip_settings" msgid="4636102290236116946">"IParen ezarpenak"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Pribatutasuna"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Ausaz aukeratutako MACa"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Gehitu gailua"</string>
@@ -960,10 +959,10 @@
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"Gailua aurkitu da"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"Gailu honekin wifi-konexioa partekatzen…"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"Konektatzen…"</string>
-    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Partekatu sare publikoa"</string>
+    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Partekatu wifi-gunea"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Egiaztatu zeu zarela"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Wifi-sarearen pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Sare publikoaren pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Wifi-gunearen pasahitza: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Gehitu gailu bat"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Konektatu sare honetara QR kode baten bidez"</string>
     <string name="retry" msgid="8500839563577344702">"Saiatu berriro"</string>
@@ -1029,7 +1028,7 @@
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"Harpidetzak"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
-    <string name="wifi_advanced_settings_label" msgid="9147669851658738784">"IP ezarpenak"</string>
+    <string name="wifi_advanced_settings_label" msgid="9147669851658738784">"IParen ezarpenak"</string>
     <string name="wifi_advanced_not_available" msgid="5751084989400195009">"Erabiltzaile honek ezin ditu erabili Wi-Fi aurreratuaren ezarpenak"</string>
     <string name="wifi_ip_settings_menu_save" msgid="6557330818360425933">"Gorde"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="8098696509412462494">"Utzi"</string>
@@ -1057,28 +1056,28 @@
     <string name="wifi_p2p_cancel_connect_title" msgid="2465200999145769427">"Gonbidapena bertan behera utzi nahi duzu?"</string>
     <string name="wifi_p2p_cancel_connect_message" msgid="3752679335020392154">"<xliff:g id="PEER_NAME">%1$s</xliff:g> gailura konektatzeko gonbidapena bertan behera utzi nahi duzu?"</string>
     <string name="wifi_p2p_delete_group_message" msgid="3206660449067701089">"Taldea ahaztu?"</string>
-    <string name="wifi_hotspot_checkbox_text" msgid="12062341344410520">"Wifi-sare publikoa"</string>
+    <string name="wifi_hotspot_checkbox_text" msgid="12062341344410520">"Wifi-gunea"</string>
     <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"Ez zara ari partekatzen ez Interneteko konexiorik ez edukirik beste gailuekin"</string>
-    <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"Tabletaren Interneteko konexioa partekatzen ari zara sare publiko bidez"</string>
-    <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Telefonoaren Interneteko konexioa partekatzen ari zara sare publiko bidez"</string>
-    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Edukia partekatzen ari da aplikazioa. Interneteko konexioa partekatzeko, desaktibatu eta aktibatu berriro sare publikoa"</string>
+    <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"Tabletaren Interneteko konexioa partekatzen ari zara wifi-gunearen bidez"</string>
+    <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Telefonoaren Interneteko konexioa partekatzen ari zara wifi-gunearen bidez"</string>
+    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Edukia partekatzen ari da aplikazioa. Interneteko konexioa partekatzeko, desaktibatu eta aktibatu berriro wifi-gunea"</string>
     <string name="wifi_hotspot_no_password_subtext" msgid="5400500962974373706">"Ez da ezarri pasahitzik"</string>
-    <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"Sare publikoaren izena"</string>
+    <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"Wifi-gunearen izena"</string>
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> aktibatzen…"</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> sarera konekta daitezke beste gailuak"</string>
-    <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Sare publikoaren pasahitza"</string>
+    <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Wifi-gunearen pasahitza"</string>
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Sarbide-puntuaren banda"</string>
-    <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Erabili sare publikoa beste gailuentzako wifi-sare bat sortzeko. Sare publikoen bidez, Interneteko konexioa ematen da datu-konexioa erabilita. Baliteke datu-konexioa erabiltzeagatiko kostu gehigarriak ordaindu behar izatea."</string>
-    <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Aplikazioek sare publikoak sor ditzakete edukia inguruko gailuekin partekatzeko."</string>
-    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Desaktibatu automatikoki sare publikoa"</string>
-    <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"Wifi-sare publikoa desaktibatu egingo da ez badago gailurik konektatuta"</string>
-    <string name="wifi_tether_starting" msgid="7676952148471297900">"Sare publikoa aktibatzen…"</string>
-    <string name="wifi_tether_stopping" msgid="7478561853791953349">"Sare publikoa desaktibatzen…"</string>
+    <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Erabili wifi-gunea beste gailuentzako wifi-sare bat sortzeko. Wifi-guneen bidez, Interneteko konexioa ematen da datu-konexioa erabilita. Baliteke datu-konexioa erabiltzeagatiko kostu gehigarriak ordaindu behar izatea."</string>
+    <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Aplikazioek wifi-guneak sor ditzakete edukia inguruko gailuekin partekatzeko."</string>
+    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Desaktibatu automatikoki wifi-gunea"</string>
+    <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"Wifi-gunea desaktibatu egingo da ez badago gailurik konektatuta"</string>
+    <string name="wifi_tether_starting" msgid="7676952148471297900">"Wifi-gunea aktibatzen…"</string>
+    <string name="wifi_tether_stopping" msgid="7478561853791953349">"Wifi-gunea desaktibatzen…"</string>
     <string name="wifi_tether_enabled_subtext" msgid="7534760116478734006">"Aktibatu da <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
-    <string name="wifi_tether_failed_subtext" msgid="3501001612207106">"wifi-sare publiko eramangarriaren errorea gertatu da"</string>
-    <string name="wifi_tether_configure_ap_text" msgid="4081852770996455902">"Konfiguratu wifi-sare publikoa"</string>
-    <string name="wifi_hotspot_configure_ap_text" msgid="1000003286253019522">"Wi‑Fi publikoaren konfigurazioa"</string>
-    <string name="wifi_hotspot_configure_ap_text_summary" msgid="2303120188509955656">"AndroidAP WPA2 PSK sare publikoa"</string>
+    <string name="wifi_tether_failed_subtext" msgid="3501001612207106">"Wifi-gune eramangarriaren errorea gertatu da"</string>
+    <string name="wifi_tether_configure_ap_text" msgid="4081852770996455902">"Konfiguratu wifi-gunea"</string>
+    <string name="wifi_hotspot_configure_ap_text" msgid="1000003286253019522">"Wifi-gunearen konfigurazioa"</string>
+    <string name="wifi_hotspot_configure_ap_text_summary" msgid="2303120188509955656">"AndroidAP WPA2 PSK wifi-gunea"</string>
     <string name="wifi_tether_configure_ssid_default" msgid="1722238925876152663">"AndroidSarePublikoa"</string>
     <string name="wifi_calling_settings_title" msgid="626821542308601806">"Wi-Fi bidezko deiak"</string>
     <string name="wifi_calling_suggestion_title" msgid="1402265373543523970">"Zabaldu deiak egiteko aukera Wi‑Fi konexioarekin"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wifia"</item>
+    <item msgid="2271962426654621656">"Datu-konexioa"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wifi-sarerik ez badago, erabili sare mugikorra"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Sare mugikorra erabilgarri ez badago, erabili wifi-konexioa"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Deitu wifi bidez. Wifi-konexioa galduz gero, eseki egingo da deia."</string>
@@ -1207,10 +1209,10 @@
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"Aktibatuta / Pantaila ez da itzaliko hari begira zauden bitartean"</string>
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"Desaktibatuta"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"Pantaila itzaltzea eragozten du hari begira zauden bitartean."</string>
-    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Pantaila kontzientea eginbideak aurreko kamera erabiltzen du inor pantailari begira dagoen jakiteko. Gailuko eginbidea da, eta irudiak ez dira inoiz gordetzen, ez eta Google-ra bidaltzen ere."</string>
+    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Pantaila kontzientea eginbideak aurreko kamera erabiltzen du inor pantailari begira dagoen jakiteko. Gailuan funtzionatzen du, eta irudiak ez dira inoiz gordetzen, ez eta Google-ra bidaltzen ere."</string>
     <string name="night_display_title" msgid="1305002424893349814">"Gaueko argia"</string>
     <string name="night_display_text" msgid="5330502493684652527">"Gaueko argiak tindu horikaraz janzten du pantaila. Horrela, ez zaizu horren nekagarria egingo argi gutxirekin pantailari begira egotea eta errazago hartuko duzu lo, gainera."</string>
-    <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Ordutegia"</string>
+    <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Programazioa"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Bat ere ez"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Ordu jakinetan aktibatzen da"</string>
     <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Ilunabarretik egunsentira"</string>
@@ -1244,13 +1246,13 @@
     <string name="wallpaper_suggestion_summary" msgid="4247262938988875842">"Pertsonalizatu pantaila"</string>
     <string name="wallpaper_settings_fragment_title" msgid="1503701065297188901">"Aukeratu horma-papera"</string>
     <string name="screensaver_settings_title" msgid="7720091234133721021">"Pantaila-babeslea"</string>
-    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"Kargatzen ari denean edo oinarrira konektatuta dagoenean"</string>
+    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"Kargatzen ari denean edo oinarrian dagoenean"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"Bietako edozein"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"Kargatzen ari denean"</string>
-    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"Euskarrian dagoenean"</string>
+    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"Oinarrian dagoenean"</string>
     <string name="screensaver_settings_summary_never" msgid="3995259444981620707">"Inoiz ez"</string>
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"Desaktibatuta"</string>
-    <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"Telefonoa oinarrira konektatuta edo lo dagoenean zer gertatzen den kontrolatzeko, aktiba ezazu pantaila-babeslea."</string>
+    <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"Telefonoa oinarrian edo inaktibo dagoenean zer gertatzen den kontrolatzeko, aktibatu pantaila-babeslea."</string>
     <string name="screensaver_settings_when_to_dream" msgid="3763052013516826348">"Noiz abiarazi"</string>
     <string name="screensaver_settings_current" msgid="4017556173596361672">"Uneko pantaila-babeslea"</string>
     <string name="screensaver_settings_dream_start" msgid="3772227299054662550">"Abiarazi"</string>
@@ -1307,7 +1309,7 @@
     <string name="pin_failed" msgid="4877356137480446727">"SIMaren PIN kodearen eragiketak huts egin du!"</string>
     <string name="system_update_settings_list_item_title" msgid="1907497454722790033">"Sistemaren eguneratzeak"</string>
     <string name="system_update_settings_list_item_summary" msgid="3497456690691907873"></string>
-    <string name="firmware_version" msgid="547095584029938749">"Android bertsioa"</string>
+    <string name="firmware_version" msgid="547095584029938749">"Android-en bertsioa"</string>
     <string name="security_patch" msgid="483709031051932208">"Android-en segurtasunaren adabaki-maila"</string>
     <string name="model_info" msgid="1729765474260797594">"Modeloa"</string>
     <string name="model_summary" msgid="8781425868254352168">"Modeloa: %1$s"</string>
@@ -1340,10 +1342,10 @@
     <string name="status_msid_number" msgid="7808175928664357661">"MSID"</string>
     <string name="status_prl_version" msgid="5634561205739199042">"PRL bertsioa"</string>
     <string name="meid_multi_sim" msgid="7449892644113569529">"MEID (%1$d. SIM zirrikitua)"</string>
-    <string name="scanning_status_text_wifi_on_ble_on" msgid="6370507836346838473">"Wifi-sareen eta Bluetooth gailuen bilaketa aktibatuta daude"</string>
-    <string name="scanning_status_text_wifi_on_ble_off" msgid="8205014713732412608">"Wifi-sareen bilaketa aktibatuta dago; Bluetooth gailuen bilaketa, berriz, desaktibatuta"</string>
-    <string name="scanning_status_text_wifi_off_ble_on" msgid="7400522456303307057">"Bluetooth gailuen bilaketa aktibatuta dago; Wifi-sareen bilaketa, berriz, desaktibatuta"</string>
-    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Wifi-sareen eta Bluetooth gailuen bilaketa desaktibatuta daude"</string>
+    <string name="scanning_status_text_wifi_on_ble_on" msgid="6370507836346838473">"Wifi-sareen bilaketa eta Bluetooth bidezko gailuen bilaketa aktibatuta daude"</string>
+    <string name="scanning_status_text_wifi_on_ble_off" msgid="8205014713732412608">"Wifi-sareen bilaketa aktibatuta dago; Bluetooth bidezko gailuen bilaketa, berriz, desaktibatuta"</string>
+    <string name="scanning_status_text_wifi_off_ble_on" msgid="7400522456303307057">"Bluetooth bidezko gailuen bilaketa aktibatuta dago; Wifi-sareen bilaketa, berriz, desaktibatuta"</string>
+    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Wifi-sareen bilaketa eta Bluetooth bidezko gailuen bilaketa desaktibatuta daude"</string>
     <string name="status_meid_number" msgid="8756271256760479835">"MEID"</string>
     <string name="status_icc_id" msgid="9191847562997702709">"ICCID"</string>
     <string name="status_data_network_type" msgid="2344720457353394909">"Datuetarako sare mugikor mota"</string>
@@ -1356,7 +1358,7 @@
     <string name="status_roaming" msgid="5191044997355099561">"Ibiltaritza"</string>
     <string name="status_operator" msgid="6017986100643755390">"Sarea"</string>
     <string name="status_wifi_mac_address" msgid="3868452167971295995">"Wifi-sarearen MAC helbidea"</string>
-    <string name="status_bt_address" msgid="460568179311735657">"Bluetooth helbidea"</string>
+    <string name="status_bt_address" msgid="460568179311735657">"Gailua Bluetooth bidez konektatzeko helbidea"</string>
     <string name="status_serial_number" msgid="8257722124627415159">"Serie-zenbakia"</string>
     <string name="status_up_time" msgid="77128395333934087">"Berrabiarazi ondoren abian izandako denbora"</string>
     <string name="status_awake_time" msgid="1251959094010776954">"Aktibo egondako denbora"</string>
@@ -1563,13 +1565,13 @@
     <string name="error_mcc_not3" msgid="1333037488064427164">"MCC eremuak 3 digitu izan behar ditu."</string>
     <string name="error_mnc_not23" msgid="6738398924368729180">"MNC eremuak 2 edo 3 digitu izan behar ditu."</string>
     <string name="error_adding_apn_type" msgid="671634520340569678">"Operadoreak ez du onartzen %s motako APN identifikatzailerik."</string>
-    <string name="restore_default_apn" msgid="7195266404077471007">"APN ezarpen lehenetsiak leheneratzen."</string>
+    <string name="restore_default_apn" msgid="7195266404077471007">"APNaren ezarpen lehenetsiak leheneratzen."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Berrezarri balio lehenetsiak"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"APN ezarpen lehenetsiak berrezarri dira."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"APNaren ezarpen lehenetsiak berrezarri dira."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Berrezartzeko aukerak"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Sarea, aplikazioak edota gailua berrezar daitezke"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Berrezarri wifi, Bluetooth eta sare mugikorrak"</string>
-    <string name="reset_network_desc" msgid="4982633363916261109">"Hori eginez gero, sare guztien ezarpenak berrezarri egingo dira, besteak beste: \n\n"<li>"Wifia"</li>\n<li>"Datu-konexioa"</li>\n<li>"Bluetooth-a"</li></string>
+    <string name="reset_network_desc" msgid="4982633363916261109">"Hori eginez gero, sare guztien ezarpenak berrezarriko dira, besteak beste: \n\n"<li>"Wifia"</li>\n<li>"Datu-konexioa"</li>\n<li>"Bluetooth-a"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Ezabatu deskargatutako SIMen edukia"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"Ordezko SIM txartelak deskargatzeko, jarri operadorearekin harremanetan. Ez da utziko bertan behera mugikorraren zerbitzu-planik."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Berrezarri ezarpenak"</string>
@@ -1609,14 +1611,14 @@
     <string name="call_settings_title" msgid="5033906789261282752">"Dei-ezarpenak"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Konfiguratu erantzungailua, dei-desbideratzea, deia zain uzteko eginbidea, deien identifikazio-zerbitzua."</string>
     <string name="tether_settings_title_usb" msgid="4265582654602420357">"Konexioa partekatzea (USB)"</string>
-    <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Sare publiko eramangarria"</string>
+    <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Wifi-gune eramangarria"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Konexioa partekatzea (Bluetooth)"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Konexioa partekatzea"</string>
-    <string name="tether_settings_title_all" msgid="6935843543433954181">"Sare publikoa eta konexioa partekatzea"</string>
-    <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Sare publikoa aktibatuta, konexioa partekatzea"</string>
-    <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Sare publikoa aktibatuta"</string>
+    <string name="tether_settings_title_all" msgid="6935843543433954181">"Wifi-gunea eta konexioa partekatzea"</string>
+    <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Wifi-gunea aktibatuta, konexioa partekatzea"</string>
+    <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Wifi-gunea aktibatuta dago"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Konexioa partekatzea"</string>
-    <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Datu-aurrezlea aktibatuta badago, ezin da partekatu konexioa, ezta sare publiko eramangarriak erabili ere"</string>
+    <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Datu-aurrezlea aktibatuta badago, ezin da partekatu konexioa, ezta wifi-gune eramangarriak erabili ere"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"Konexioa partekatzea (USB)"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Partekatu telefonoaren Interneteko konexioa USB bidez"</string>
@@ -1627,7 +1629,7 @@
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"<xliff:g id="DEVICE_NAME">%1$d</xliff:g> gailuaren Interneteko konexioa partekatzen ari zara Bluetooth bidez"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Ezin da <xliff:g id="MAXCONNECTION">%1$d</xliff:g> gailurekin baino gehiagorekin konexioa partekatu."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> gailuko konexioa amaituko da."</string>
-    <string name="tethering_footer_info" msgid="8019555174339154124">"Erabili sare publikoa eta konexioa partekatzea beste gailuei Interneteko konexioa emateko zure datu-konexioaren bidez. Halaber, aplikazioek sare publikoak sor ditzakete, edukia inguruko gailuekin partekatzeko."</string>
+    <string name="tethering_footer_info" msgid="8019555174339154124">"Erabili wifi-gunea eta konexioa partekatzea beste gailuei Interneteko konexioa emateko zure datu-konexioaren bidez. Halaber, aplikazioek wifi-guneak sor ditzakete, edukia inguruko gailuekin partekatzeko."</string>
     <string name="tethering_help_button_text" msgid="7653022000284543996">"Laguntza"</string>
     <string name="network_settings_title" msgid="8516526011407061679">"Sare mugikorra"</string>
     <string name="manage_mobile_plan_title" msgid="3312016665522553062">"Mugikorraren plana"</string>
@@ -1658,10 +1660,10 @@
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Ez dago kokapena berriki atzitu duen aplikaziorik"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Bateria-erabilera handia"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Bateria-erabilera txikia"</string>
-    <string name="location_scanning_screen_title" msgid="7663329319689413454">"Wifi eta Bluetooth bidezko bilaketa"</string>
+    <string name="location_scanning_screen_title" msgid="7663329319689413454">"Wifi-sareen bilaketa eta Bluetooth bidezko gailuen bilaketa"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Wifi-sareen bilaketa"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Eman wifi-sareak edozein unetan bilatzeko baimena aplikazioei eta zerbitzuei, baita wifi-konexioa desaktibatuta dagoenean ere. Kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke hori, besteak beste."</string>
-    <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Bluetooth gailuak bilatzea"</string>
+    <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Bluetooth bidezko gailuen bilaketa"</string>
     <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Eman inguruko gailuak edozein unetan bilatzeko baimena aplikazioei eta zerbitzuei, baita Bluetooth konexioa desaktibatuta dagoenean ere. Kokapenean oinarritutako eginbideak eta zerbitzuak hobetzeko erabil daiteke hori, besteak beste."</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"Lanerako kokapen-zerbitzuak"</string>
     <string name="location_network_based" msgid="1535812159327454835">"Wi‑Fi eta sare mugikor bidezko kokapena"</string>
@@ -1687,7 +1689,7 @@
     <string name="contributors_title" msgid="6800028420806884340">"Kolaboratzaileak"</string>
     <string name="manual" msgid="5431859421432581357">"Eskuliburua"</string>
     <string name="regulatory_labels" msgid="380968489247381025">"Legezko etiketak"</string>
-    <string name="safety_and_regulatory_info" msgid="7113766428000920132">"Segurtasunaren eta legeen esku-liburua"</string>
+    <string name="safety_and_regulatory_info" msgid="7113766428000920132">"Segurtasunaren eta legeen eskuliburua"</string>
     <string name="copyright_title" msgid="3847703367689932190">"Copyrighta"</string>
     <string name="license_title" msgid="7582145947873528540">"Lizentzia"</string>
     <string name="terms_title" msgid="1804549588198223771">"Zehaztapenak eta baldintzak"</string>
@@ -2232,7 +2234,7 @@
     <string name="power_discharge_remaining" msgid="3461915627093471868">"Geratzen den denbora: <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="2730510256218879651">"Kargatu arteko denbora: <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g>"</string>
     <string name="background_activity_title" msgid="7207836362312111483">"Atzeko planoa erabiltzeko muga"</string>
-    <string name="background_activity_summary" msgid="582372194738538145">"Baimendu aplikazioari atzeko planoan funtzionatzea"</string>
+    <string name="background_activity_summary" msgid="582372194738538145">"Eman atzeko planoan exekutatzeko baimena aplikazioari"</string>
     <string name="background_activity_summary_disabled" msgid="457944930942085876">"Aplikazioak ez du baimenik atzeko planoan exekutatzeko"</string>
     <string name="background_activity_summary_whitelisted" msgid="4713321059375873828">"Ezin da mugatu atzeko planoko erabilera"</string>
     <string name="background_activity_warning_dialog_title" msgid="2170790412855899678">"Atzeko planoko jarduerak mugatu nahi dituzu?"</string>
@@ -2446,12 +2448,12 @@
     <string name="process_dex2oat_label" msgid="8249082119748556085">"Aplikazio-optimizazioa"</string>
     <string name="battery_saver" msgid="3989710213758938398">"Bateria-aurrezlea"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"Aktibatu automatikoki"</string>
-    <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Ordutegirik ez"</string>
+    <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Programaziorik ez"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Zure ohituretan oinarrituta"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Bateria-mailaren ehunekoan oinarrituta"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Bateria kargatzeko ohiko ordua iritsi aurretik bateria agortzeko arriskua badago aktibatzen da bateria-aurrezlea"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Bateria-maila <xliff:g id="PERCENT">%1$s</xliff:g> denean aktibatuko da"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Ezarri ordutegia"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Ezarri programazioa"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Desaktibatu guztiz kargatu ondoren"</string>
     <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Telefonoaren bateria <xliff:g id="PERCENT">%1$s</xliff:g> denean, desaktibatu egiten da bateria-aurrezlea"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Tabletaren bateria <xliff:g id="PERCENT">%1$s</xliff:g> denean, desaktibatu egiten da bateria-aurrezlea"</string>
@@ -2489,8 +2491,8 @@
     <string name="menu_duration_6h" msgid="6169009210638008417">"6 ordu"</string>
     <string name="menu_duration_12h" msgid="1435242738163843797">"12 ordu"</string>
     <string name="menu_duration_1d" msgid="6476370834372352174">"1 egun"</string>
-    <string name="menu_show_system" msgid="6315865548558708248">"Erakutsi sistema"</string>
-    <string name="menu_hide_system" msgid="8457027118873733782">"Ezkutatu sistema"</string>
+    <string name="menu_show_system" msgid="6315865548558708248">"Erakutsi sistemaren prozesuak"</string>
+    <string name="menu_hide_system" msgid="8457027118873733782">"Ezkutatu sistemaren prozesuak"</string>
     <string name="menu_show_percentage" msgid="6983272380729890884">"Erakutsi ehunekoak"</string>
     <string name="menu_use_uss" msgid="3765054705208926803">"Erabili USS"</string>
     <string name="menu_proc_stats_type" msgid="2680179749566186247">"Estatistika mota"</string>
@@ -2538,7 +2540,7 @@
     <string name="credentials_settings_not_available" msgid="5490259681690183274">"Erabiltzaile honek ez dauka kredentzialik"</string>
     <string name="credential_for_vpn_and_apps" msgid="2462642486949593841">"VPN konexioarekin eta aplikazioekin erabiltzeko instalatuta"</string>
     <string name="credential_for_wifi" msgid="2903295786961726388">"Wi-Fi konexioarekin erabiltzeko instalatuta"</string>
-    <string name="credentials_reset_hint" msgid="3484350477764088169">"Eduki guztiak kendu?"</string>
+    <string name="credentials_reset_hint" msgid="3484350477764088169">"Eduki guztiak kendu nahi dituzu?"</string>
     <string name="credentials_erased" msgid="7287088033523869085">"Kredentz. biltegia ezabatu da."</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"Ezin izan da kredentzialen biltegia ezabatu."</string>
     <string name="usage_access_title" msgid="7981321142726540574">"Erabilera-baimena dutenak"</string>
@@ -2561,7 +2563,7 @@
     <string name="backup_erase_dialog_title" msgid="8178424339104463014"></string>
     <string name="backup_erase_dialog_message" msgid="8767843355330070902">"Wifi-sareen pasahitzen, laster-marken, bestelako ezarpenen eta aplikazioetako datuen babeskopiak egiteari utzi eta Google-ren zerbitzarietako kopia guztiak ezabatu nahi dituzu?"</string>
     <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"Gailuko datuen (adibidez, Wi-Fi pasahitzak eta deien historia) eta aplikazioetako datuen (besteak beste, ezarpenak eta aplikazioek gordetako fitxategiak) babeskopiak egiteari utzi nahi diozu eta urruneko zerbitzarietako kopia guztiak ezabatu nahi dituzu?"</string>
-    <string name="fullbackup_data_summary" msgid="406274198094268556">"Egin babeskopiak automatikoki urrunetik, bai gailuetako datuenak (esaterako, Wi-Fi sareetako pasahitzak eta deien historia), bai aplikazioetako datuenak (esaterako, ezarpenak eta aplikazioek gordetako fitxategiak).\n\nBabeskopiak automatikoki egiteko aukera aktibatzean, gailuko eta aplikazioetako datuak urrunetik gordetzen dira aldizka. Aplikazioetako datuak aplikazioek gordetako edozein datu izan daitezke (garatzailearen ezarpenen arabera), eta kontuzkoak izan litezkeen datuak ere sar daitezke (adibidez, kontaktuak, mezuak eta argazkiak)."</string>
+    <string name="fullbackup_data_summary" msgid="406274198094268556">"Egin babeskopiak automatikoki urrunetik, bai gailuetako datuenak (esaterako, Wi-Fi sareetako pasahitzak eta deien historia), bai aplikazioetako datuenak (esaterako, ezarpenak eta aplikazioek gordetako fitxategiak).\n\nBabeskopiak automatikoki egiteko aukera aktibatzean, gailuko eta aplikazioetako datuak urrunetik gordetzen dira aldizka. Aplikazioetako datuak aplikazioek gordetako edozein datu izan daitezke (garatzaileen ezarpenen arabera), eta kontuzkoak izan litezkeen datuak ere sar daitezke (adibidez, kontaktuak, mezuak eta argazkiak)."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"Gailua administratzeko aplikazioaren ezarpenak"</string>
     <string name="active_device_admin_msg" msgid="6929247869516924549">"Gailua administratzeko aplikazioa"</string>
     <string name="remove_device_admin" msgid="4413438593788336400">"Desaktibatu gailua administratzeko aplikazioa"</string>
@@ -2627,8 +2629,8 @@
     <string name="remove_account_label" msgid="5885425720323823387">"Kendu kontua"</string>
     <string name="header_add_an_account" msgid="8482614556580804956">"Gehitu kontu bat"</string>
     <string name="really_remove_account_title" msgid="4166512362915154319">"Kontua kendu nahi duzu?"</string>
-    <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Kontua kentzen baduzu, bere mezu, kontaktu eta bestelako datu guztiak tabletatik ezabatuko dira!"</string>
-    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Kontua kentzen baduzu, bere mezu, kontaktu eta bestelako datu guztiak telefonotik ezabatuko dira!"</string>
+    <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Kontua kentzen baduzu, hartako mezu, kontaktu eta bestelako datu guztiak tabletatik ezabatuko dira!"</string>
+    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Kontua kentzen baduzu, hartako mezu, kontaktu eta bestelako datu guztiak telefonotik ezabatuko dira!"</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"Kontua kentzen baduzu, bertako mezu, kontaktu eta bestelako datu guztiak ezabatuko dira gailutik!"</string>
     <string name="remove_account_failed" msgid="491458185327106966">"Administratzaileak ez du eman aldaketa egiteko baimena"</string>
     <string name="cant_sync_dialog_title" msgid="5483419398223189881">"Ezin da eskuz sinkronizatu"</string>
@@ -2647,7 +2649,7 @@
     <string name="misc_files_selected_count_bytes" msgid="3752262902203465861">"<xliff:g id="NUMBER">%1$s</xliff:g>/<xliff:g id="TOTAL">%2$s</xliff:g>"</string>
     <string name="select_all" msgid="452240217913675728">"Hautatu guztiak"</string>
     <string name="data_usage_summary_title" msgid="7288431048564861043">"Datuen erabilera"</string>
-    <string name="data_usage_app_summary_title" msgid="8277327968906074983">"Datu-konexioa eta wifi-konexioa"</string>
+    <string name="data_usage_app_summary_title" msgid="8277327968906074983">"Datu- eta wifi-konexioa"</string>
     <string name="data_usage_accounting" msgid="4681642832010140640">"Beharbada operadoreak zenbatzen duen datu kopurua eta gailuak zenbatzen duena ez datoz bat."</string>
     <string name="data_usage_app" msgid="4995297799363021198">"Aplikazioen erabilera"</string>
     <string name="data_usage_app_info_label" msgid="5358288895158910477">"APLIKAZIOARI BURUZKO INFORMAZIOA"</string>
@@ -3032,7 +3034,7 @@
     <string name="network_dashboard_title" msgid="8288134139584687806">"Sareak eta Internet"</string>
     <string name="network_dashboard_summary_mobile" msgid="5560545061217580626">"mugikorra"</string>
     <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"datuen erabilera"</string>
-    <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"sare publikoa"</string>
+    <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"wifi-gunea"</string>
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"Konektatutako gailuak"</string>
     <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, gidatze modua, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"Bluetooth, gidatze modua"</string>
@@ -3100,7 +3102,7 @@
     <string name="keywords_imei_info" msgid="4325847870422053408">"imei, meid, min, prl bertsioa, imei sv"</string>
     <string name="keywords_sim_status" msgid="3852088576719874387">"sarea, sare mugikorraren egoera, zerbitzuaren egoera, seinalearen indarra, sare mugikor mota, ibiltaritza, iccid"</string>
     <string name="keywords_model_and_hardware" msgid="2743197096210895251">"serie-zenbakia, hardwarearen bertsioa"</string>
-    <string name="keywords_android_version" msgid="4842749998088987740">"android-en segurtasunaren adabaki-maila, oinarri-bandaren bertsioa, kernelaren bertsioa"</string>
+    <string name="keywords_android_version" msgid="4842749998088987740">"android-en segurtasunaren adabaki-maila, oinarri-bandaren bertsioa, kernel bertsioa"</string>
     <string name="keywords_dark_ui_mode" msgid="1027966176887770318">"gai, argi, modu, ilun"</string>
     <string name="keywords_financial_apps_sms_access" msgid="3236014691838121857">"finantza-aplikazioa, SMSa, baimena"</string>
     <string name="keywords_systemui_theme" msgid="9150908170417305866">"gai iluna"</string>
@@ -3113,7 +3115,7 @@
     <string name="keywords_display_adaptive_sleep" msgid="1695357782432822811">"ilundu pantaila, pantaila ilundu, ezarri inaktibo, inaktibo ezarri, bateria, denbora-muga, arreta, pantaila, bistaratzea, jarduera eza, inaktibo"</string>
     <string name="keywords_auto_rotate" msgid="4320791369951647513">"biratu, irauli, errotazioa, bertikala, horizontala, orientazioa"</string>
     <string name="keywords_system_update_settings" msgid="4419971277998986067">"bertsio-berritu, android"</string>
-    <string name="keywords_zen_mode_settings" msgid="4103819458182535493">"ez molestatu, ordutegia, jakinarazpenak, blokeatu, isilik, dardara, inaktibo ezarri, lantokia, arreta, soinua, desaktibatu audioa, eguna, asteguna, asteburua, asteguneko gaua, gertaera"</string>
+    <string name="keywords_zen_mode_settings" msgid="4103819458182535493">"ez molestatu, programazioa, jakinarazpenak, blokeatu, isilik, dardara, inaktibo ezarri, lantokia, arreta, soinua, desaktibatu audioa, eguna, asteguna, asteburua, asteguneko gaua, gertaera"</string>
     <string name="keywords_screen_timeout" msgid="4328381362313993666">"pantaila, blokeatzeko denbora, denbora-muga, pantaila blokeatua"</string>
     <string name="keywords_storage_settings" msgid="6422454520424236476">"memoria, cachea, datuak, ezabatu, garbitu, tokia egin, tokia"</string>
     <string name="keywords_bluetooth_settings" msgid="1152229891590622822">"konektatuta, gailua, aurikularrak, entzungailua, bozgorailua, hari gabekoak, parekatu, musika, multimedia-edukia"</string>
@@ -3121,7 +3123,7 @@
     <string name="keywords_assist_input" msgid="8392362788794886564">"lehenetsia, laguntzailea"</string>
     <string name="keywords_default_payment_app" msgid="845369409578423996">"ordaindu, lehenetsia"</string>
     <string name="keywords_ambient_display" msgid="8835182491798487184">"jasotako jakinarazpena"</string>
-    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"usb konexioa partekatu, bluetooth konexioa partekatu, wifi sare publikoa"</string>
+    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"usb konexioa partekatu, bluetooth konexioa partekatu, wifi-gunea"</string>
     <string name="keywords_touch_vibration" msgid="2081175517528255224">"ukipena, dardara, pantaila, sentikortasuna"</string>
     <string name="keywords_ring_vibration" msgid="4210509151866460210">"ukipena, dardara, telefonoa, deia, sentikortasuna, tonua"</string>
     <string name="keywords_notification_vibration" msgid="1077515502086745166">"ukipena, dardara, sentikortasuna"</string>
@@ -3175,17 +3177,17 @@
     <string name="zen_mode_behavior_total_silence" msgid="371498357539257671">"Isiltasun osoa"</string>
     <string name="zen_mode_behavior_no_sound_except" msgid="8894465423364103198">"Ez egin soinurik. Salbuespena: <xliff:g id="CATEGORIES">%1$s</xliff:g>."</string>
     <string name="zen_mode_behavior_alarms_only" msgid="8406622989983047562">"Alarmen eta multimedia-edukiaren soinuak soilik"</string>
-    <string name="zen_mode_automation_settings_title" msgid="3916960043054489008">"Ordutegiak"</string>
-    <string name="zen_mode_delete_automatic_rules" msgid="2455264581527305755">"Ezabatu ordutegiak"</string>
+    <string name="zen_mode_automation_settings_title" msgid="3916960043054489008">"Programazioak"</string>
+    <string name="zen_mode_delete_automatic_rules" msgid="2455264581527305755">"Ezabatu programazioak"</string>
     <string name="zen_mode_schedule_delete" msgid="7786092652527516740">"Ezabatu"</string>
     <string name="zen_mode_rule_name_edit" msgid="5479435215341745578">"Editatu"</string>
-    <string name="zen_mode_automation_settings_page_title" msgid="3001783354881078983">"Ordutegiak"</string>
-    <string name="zen_mode_automatic_rule_settings_page_title" msgid="5272888746413504692">"Antolatu"</string>
-    <string name="zen_mode_schedule_category_title" msgid="1936785755444711221">"Ordutegia"</string>
+    <string name="zen_mode_automation_settings_page_title" msgid="3001783354881078983">"Programazioak"</string>
+    <string name="zen_mode_automatic_rule_settings_page_title" msgid="5272888746413504692">"Programatu"</string>
+    <string name="zen_mode_schedule_category_title" msgid="1936785755444711221">"Programazioa"</string>
     <string name="zen_mode_automation_suggestion_title" msgid="4921779962633710347">"Isilarazi telefonoa ordu jakinetan"</string>
     <string name="zen_mode_automation_suggestion_summary" msgid="2709837472884371037">"Ezarri ez molestatzeko moduaren arauak"</string>
-    <string name="zen_mode_schedule_title" msgid="5275268813192802631">"Ordutegia"</string>
-    <string name="zen_mode_use_automatic_rule" msgid="446326253915861824">"Erabili ordutegia"</string>
+    <string name="zen_mode_schedule_title" msgid="5275268813192802631">"Programazioa"</string>
+    <string name="zen_mode_use_automatic_rule" msgid="446326253915861824">"Erabili programazioa"</string>
     <string name="zen_mode_option_important_interruptions" msgid="5173944276846940149">"Lehentasuna dutenak soilik"</string>
     <string name="zen_mode_option_alarms" msgid="4843278125235203076">"Alarmak soilik"</string>
     <string name="zen_mode_option_no_interruptions" msgid="4723700274519260852">"Isiltasun osoa"</string>
@@ -3215,7 +3217,7 @@
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Ez agerrarazi jakinarazpenak pantailan"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Ezkutatu pantailaren goialdeko egoera-barraren ikonoak"</string>
     <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Ezkutatu aplikazioen ikonoetako jakinarazpen-biribiltxoak"</string>
-    <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Ez esnarazi jakinarazpenekin"</string>
+    <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Ez aktibatu jakinarazpenekin"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"Ezkutatu jakinarazpen-zerrendatik"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"Inoiz ez"</string>
     <string name="zen_mode_block_effect_summary_screen_off" msgid="2985086455557755722">"Pantaila itzalita dagoenean"</string>
@@ -3232,7 +3234,7 @@
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Desaktibatu"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"<xliff:g id="FORMATTED_TIME">%s</xliff:g> arte egongo da aktibatuta ez molestatzeko modua"</string>
     <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Desaktibatzen duzun arte egongo da aktibatuta ez molestatzeko modua"</string>
-    <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Antolaketa batek (<xliff:g id="RULE_NAME">%s</xliff:g>) automatikoki aktibatu du ez molestatzeko modua"</string>
+    <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Programazio batek (<xliff:g id="RULE_NAME">%s</xliff:g>) automatikoki aktibatu du ez molestatzeko modua"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"<xliff:g id="APP_NAME">%s</xliff:g> aplikazioak automatikoki aktibatu du ez molestatzeko modua"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"Ez molestatzeko modua aktibatuta dago <xliff:g id="RULE_NAMES">%s</xliff:g> arauetan, ezarpen pertsonalizatuekin."</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer_link" msgid="4007974052885089379"><annotation id="link">" Ikusi ezarpen pertsonalizatuak"</annotation></string>
@@ -3250,12 +3252,12 @@
     </plurals>
     <string name="zen_mode_duration_summary_time_minutes" msgid="6988728116715208859">"<xliff:g id="NUM_MINUTES">%d</xliff:g> minutu (automatikoki aktibatu ezean)"</string>
     <plurals name="zen_mode_sound_summary_summary_off_info" formatted="false" msgid="8527428833487709278">
-      <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> ordutegi aktiba daitezke automatikoki</item>
-      <item quantity="one">1 ordutegi aktiba daiteke automatikoki</item>
+      <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> programazio aktiba daitezke automatikoki</item>
+      <item quantity="one">1 programazio aktiba daiteke automatikoki</item>
     </plurals>
     <string name="zen_category_behavior" msgid="7695750848671443532">"Desaktibatu gailuaren audioa, baina onartu salbuespenak"</string>
     <string name="zen_category_exceptions" msgid="2139670640033601899">"Salbuespenak"</string>
-    <string name="zen_category_schedule" msgid="989629666210114164">"Antolaketa"</string>
+    <string name="zen_category_schedule" msgid="989629666210114164">"Programazioa"</string>
     <string name="zen_sound_title" msgid="3429086967245473870">"Ikusi salbuespen guztiak"</string>
     <string name="zen_sound_footer" msgid="1778673975517424878">"Ez molestatzeko modua aktibatuta dagoenean, audioa eta dardara desaktibatuta egongo dira, goian baimendutako elementuetan izan ezik."</string>
     <string name="zen_sound_category_title" msgid="2109447208414722786">"Desaktibatu guztien audioa eta dardara, hauena izan ezik:"</string>
@@ -3265,7 +3267,7 @@
     <string name="zen_sound_two_allowed" msgid="299344481401823614">"Audioa eta dardara desaktibatuta, baina baimendu <xliff:g id="SOUND_TYPE_0">%1$s</xliff:g> eta <xliff:g id="SOUND_TYPE_1">%2$s</xliff:g>"</string>
     <string name="zen_sound_three_allowed" msgid="8374564453060696012">"Audioa eta dardara desaktibatuta, baina baimendu <xliff:g id="SOUND_TYPE_0">%1$s</xliff:g>, <xliff:g id="SOUND_TYPE_1">%2$s</xliff:g> eta <xliff:g id="SOUND_TYPE_2">%3$s</xliff:g>"</string>
     <string name="zen_custom_settings_dialog_title" msgid="908049494676219236">"Ezarpen pertsonalizatuak"</string>
-    <string name="zen_custom_settings_dialog_review_schedule" msgid="2247761749333893513">"Berrikusi antolaketa"</string>
+    <string name="zen_custom_settings_dialog_review_schedule" msgid="2247761749333893513">"Berrikusi programazioa"</string>
     <string name="zen_custom_settings_dialog_ok" msgid="3572754922025853427">"Ados"</string>
     <string name="zen_custom_settings_notifications_header" msgid="7469592764589354302">"Jakinarazpenak"</string>
     <string name="zen_custom_settings_duration_header" msgid="1806465684026300942">"Iraupena"</string>
@@ -3433,14 +3435,14 @@
     <string name="notification_channel_sound_title" msgid="7635366839003304745">"Soinua"</string>
     <string name="zen_mode_rule_delete_button" msgid="6763486487220471193">"Ezabatu"</string>
     <string name="zen_mode_rule_rename_button" msgid="1428130397306726792">"Aldatu izena"</string>
-    <string name="zen_mode_rule_name" msgid="8583652780885724670">"Ordutegiaren izena"</string>
-    <string name="zen_mode_rule_name_hint" msgid="6569877315858105901">"Idatzi ordutegiaren izena"</string>
-    <string name="zen_mode_rule_name_warning" msgid="4773465816059587512">"Badago izen hori duen beste ordutegi bat"</string>
+    <string name="zen_mode_rule_name" msgid="8583652780885724670">"Programazioaren izena"</string>
+    <string name="zen_mode_rule_name_hint" msgid="6569877315858105901">"Idatzi programazioaren izena"</string>
+    <string name="zen_mode_rule_name_warning" msgid="4773465816059587512">"Badago izen hori duen beste programazio bat"</string>
     <string name="zen_mode_add_rule" msgid="7200004557856029928">"Gehitu beste batzuk"</string>
-    <string name="zen_mode_add_event_rule" msgid="1398181272397489506">"Gehitu gertaera baten ordutegia"</string>
-    <string name="zen_mode_add_time_rule" msgid="5999467757140524729">"Gehitu ordutegia"</string>
-    <string name="zen_mode_delete_rule" msgid="2292933835997203801">"Ezabatu ordutegia"</string>
-    <string name="zen_mode_choose_rule_type" msgid="8877138307319450306">"Aukeratu ordutegi mota"</string>
+    <string name="zen_mode_add_event_rule" msgid="1398181272397489506">"Gehitu gertaera baten programazioa"</string>
+    <string name="zen_mode_add_time_rule" msgid="5999467757140524729">"Gehitu programazioa"</string>
+    <string name="zen_mode_delete_rule" msgid="2292933835997203801">"Ezabatu programazioa"</string>
+    <string name="zen_mode_choose_rule_type" msgid="8877138307319450306">"Aukeratu programazio mota"</string>
     <string name="zen_mode_delete_rule_confirmation" msgid="2646596466259025978">"\"<xliff:g id="RULE">%1$s</xliff:g>\" araua ezabatu nahi duzu?"</string>
     <string name="zen_mode_delete_rule_button" msgid="611058106279881991">"Ezabatu"</string>
     <string name="zen_mode_rule_type_unknown" msgid="2819480113355191421">"Ezezaguna"</string>
@@ -3467,10 +3469,10 @@
     <string name="zen_mode_schedule_rule_days_none" msgid="6011716195119389956">"Bat ere ez"</string>
     <string name="zen_mode_schedule_rule_days_all" msgid="8814173364016139675">"Egunero"</string>
     <string name="zen_mode_schedule_alarm_title" msgid="2078194049274875023">"Alarmak amaiera-ordua deusezta dezake"</string>
-    <string name="zen_mode_schedule_alarm_summary" msgid="5556997989911412070">"Alarmak jotzen duenean, ordutegia desaktibatu egiten da"</string>
+    <string name="zen_mode_schedule_alarm_summary" msgid="5556997989911412070">"Alarmak jotzen duenean, programazioa desaktibatu egiten da"</string>
     <string name="zen_mode_custom_behavior_title" msgid="8908861697886331001">"Ez molestatzeko moduaren jokabidea"</string>
     <string name="zen_mode_custom_behavior_summary_default" msgid="3509865340195397447">"Erabili ezarpen lehenetsiak"</string>
-    <string name="zen_mode_custom_behavior_summary" msgid="7206909852887332604">"Sortu ezarpen pertsonalizatuak ordutegi honetarako"</string>
+    <string name="zen_mode_custom_behavior_summary" msgid="7206909852887332604">"Sortu ezarpen pertsonalizatuak programazio honetarako"</string>
     <string name="zen_mode_custom_behavior_category_title" msgid="7451686525113262087">"<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g> arauari dagokionez"</string>
     <string name="summary_divider_text" msgid="4780683204694442666">", "</string>
     <string name="summary_range_symbol_combination" msgid="6038631664844488406">"<xliff:g id="START">%1$s</xliff:g> - <xliff:g id="END">%2$s</xliff:g>"</string>
@@ -3552,8 +3554,8 @@
     <string name="restr_pin_enter_admin_pin" msgid="8577847751493521230">"Idatzi administratzailearen PIN kodea"</string>
     <string name="switch_on_text" msgid="7100491749799298324">"Aktibatuta"</string>
     <string name="switch_off_text" msgid="3539551289454353555">"Desaktibatuta"</string>
-    <string name="screen_pinning_title" msgid="578020318289781102">"Pantaila ainguratzea"</string>
-    <string name="screen_pinning_description" msgid="3814537379086412278">"Ezarpen hau aktibatzen baduzu, pantailak aingura ditzakezu, aukeratzen duzun ikuspegi hori egon dadin ikusgai harik eta aingura kentzen diozun arte.\n\nHorretarako:\n\n1. Aktibatu pantaila ainguratzeko eginbidea.\n\n2. Ireki Ikuspegi orokorra.\n\n3. Sakatu pantailaren goialdeko aplikazio-ikonoa, eta sakatu Ainguratu."</string>
+    <string name="screen_pinning_title" msgid="578020318289781102">"Pantaila ainguratzeko aukera"</string>
+    <string name="screen_pinning_description" msgid="3814537379086412278">"Ezarpen hau aktibatzen baduzu, pantailak aingura ditzakezu, aukeratzen duzun ikuspegi hori egon dadin ikusgai harik eta aingura kentzen diozun arte.\n\nHorretarako:\n\n1. Aktibatu pantaila ainguratzeko aukera.\n\n2. Ireki Ikuspegi orokorra.\n\n3. Sakatu pantailaren goialdeko aplikazio-ikonoa, eta sakatu Ainguratu."</string>
     <string name="screen_pinning_unlock_pattern" msgid="1060334707088339444">"Eskatu desblokeatzeko eredua aingura kendu aurretik"</string>
     <string name="screen_pinning_unlock_pin" msgid="1441705536015645023">"Eskatu PIN kodea aingura kendu aurretik"</string>
     <string name="screen_pinning_unlock_password" msgid="1017776884000170841">"Eskatu pasahitza aingura kendu aurretik"</string>
@@ -3628,7 +3630,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> baimen gehigarri</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"Ez du baimenik"</string>
-    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Ez du baimenik eskatu"</string>
+    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Ez da baimenik eskatu"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"Aplikazio guztiak"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"Instalatutako aplikazioak"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"Zuzeneko aplikazioak"</string>
@@ -3709,11 +3711,11 @@
     <string name="high_power_off" msgid="5906679734326490426">"Bateria optimizatu egiten da"</string>
     <string name="high_power_system" msgid="739584574711292753">"Bateria-optimizazioa ez dago erabilgarri"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Ez aplikatu bateria-optimizazioa. Aukera horrekin, bizkorrago agortuko da bateria."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Beti atzeko planoan abiarazteko baimena eman nahi diozu aplikazioari?"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Beti atzeko planoan exekutatzeko baimena eman nahi diozu aplikazioari?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> aplikazioari atzeko planoan beti abiarazteko baimena emanez gero, baliteke bateriak gutxiago irautea. \n\nAukera hori aldatzeko, sakatu Ezarpenak &gt; Aplikazioak eta jakinarazpenak."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Bateriaren <xliff:g id="PERCENTAGE">%1$s</xliff:g> erabili du bateria guztiz kargatu zenetik"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Bateriaren kudeaketa"</string>
-    <string name="no_battery_summary" msgid="4105932628367471314">"Ez du bateriarik erabili bateria guztiz kargatu zenetik"</string>
+    <string name="no_battery_summary" msgid="4105932628367471314">"Ez da bateriarik erabili bateria guztiz kargatu zenetik"</string>
     <string name="app_notification_preferences" msgid="5154466638524523201">"Aplikazioaren ezarpenak"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"Erakutsi sistemako erabiltzaile-interfazearen konfiguratzailea"</string>
     <string name="additional_permissions" msgid="3142290772324571654">"Baimen gehigarriak"</string>
@@ -3798,11 +3800,11 @@
     <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Administratzaileari aplikazio hau erabiltzeko gaitasuna kendu arren, administratzaileak aplikazioen datuen erabileraren jarraipena egiten jarraitu ahal izango du zure laneko profilean"</string>
     <string name="accessibility_lock_screen_progress" msgid="8242917828598820049">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g> karaktere erabili dira"</string>
     <string name="draw_overlay" msgid="2878665072530660668">"Bistaratu aplikazioen gainean"</string>
-    <string name="system_alert_window_settings" msgid="3024330223417646567">"Beste aplikazioen gainean bistaratzea"</string>
+    <string name="system_alert_window_settings" msgid="3024330223417646567">"Bistaratu beste aplikazioen gainean"</string>
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"Aplikazioak"</string>
-    <string name="system_alert_window_access_title" msgid="5187343732185369675">"Beste aplikazioen gainean bistaratzea"</string>
-    <string name="permit_draw_overlay" msgid="9039092257052422344">"Baimendu beste aplikazioen gainean bistaratzea"</string>
-    <string name="allow_overlay_description" msgid="6669524816705082807">"Baimendu aplikazioari erabiltzen ari zaren aplikazioen gainean agertzea. Eginbide honek abian diren aplikazioen erabilera oztopa dezake, edo haien itxura edo portaera aldatu."</string>
+    <string name="system_alert_window_access_title" msgid="5187343732185369675">"Bistaratu beste aplikazioen gainean"</string>
+    <string name="permit_draw_overlay" msgid="9039092257052422344">"Eman beste aplik. gainean bistaratzeko baimena"</string>
+    <string name="allow_overlay_description" msgid="6669524816705082807">"Eman aplikazioari erabiltzen ari zaren aplikazioen gainean agertzeko baimena. Eginbide honek abian diren aplikazioen erabilera oztopa dezake, edo haien itxura edo portaera aldatu."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"eb errealitate birtuala hautemailea estereoa laguntzailea laguntza zerbitzua"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"sistema alerta leiho koadro bistaratu beste aplikazio gainean"</string>
     <string name="overlay_settings" msgid="3325154759946433666">"Bistaratu aplikazioen gainean"</string>
@@ -3811,15 +3813,15 @@
     <string name="app_permission_summary_allowed" msgid="6458476982015518778">"Baimena dauka"</string>
     <string name="app_permission_summary_not_allowed" msgid="1171642541675462584">"Ez dauka baimenik"</string>
     <string name="keywords_install_other_apps" msgid="5383559540695847668">"instalatu aplikazio iturburu ezezagun"</string>
-    <string name="write_settings" msgid="9009040811145552108">"Sistemaren ezarpenak aldatzea"</string>
+    <string name="write_settings" msgid="9009040811145552108">"Aldatu sistemaren ezarpenak"</string>
     <string name="keywords_write_settings" msgid="3450405263390246293">"idatzi aldatu sistema ezarpenak"</string>
     <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g> aplikaziok alda ditzakete sistemaren ezarpenak"</string>
     <string name="financial_apps_sms_access_title" msgid="3422655018008259655">"Finantza-aplikazioetarako SMS bidezko sarbidea"</string>
     <string name="filter_install_sources_apps" msgid="4519839764020866701">"Ezin da instalatu beste aplikaziorik"</string>
     <string name="filter_write_settings_apps" msgid="6864144615530081121">"Sistemaren ezarpenak alda ditzaketenak"</string>
     <string name="write_settings_title" msgid="5852614614193830632">"Sistemaren ezarpenak alda ditzaketenak"</string>
-    <string name="write_system_settings" msgid="20450765210832463">"Sistemaren ezarpenak aldatzea"</string>
-    <string name="permit_write_settings" msgid="4198491281216818756">"Baimendu sistemaren ezarpenak aldatzea"</string>
+    <string name="write_system_settings" msgid="20450765210832463">"Aldatu sistemaren ezarpenak"</string>
+    <string name="permit_write_settings" msgid="4198491281216818756">"Eman sistemaren ezarpenak aldatzeko baimena"</string>
     <string name="write_settings_description" msgid="2536706293042882500">"Baimen honekin, sistemaren ezarpenak alda ditzakete aplikazioek."</string>
     <string name="write_settings_on" msgid="7328986337962635118">"Bai"</string>
     <string name="write_settings_off" msgid="5708257434958406202">"Ez"</string>
@@ -3885,7 +3887,7 @@
     <string name="condition_turn_on" msgid="1699088245481841159">"Aktibatu"</string>
     <string name="condition_expand_show" msgid="4118818022763913777">"Erakutsi"</string>
     <string name="condition_expand_hide" msgid="1112721783024332643">"Ezkutatu"</string>
-    <string name="condition_hotspot_title" msgid="4143299802283098506">"Sare publikoa aktiboa dago"</string>
+    <string name="condition_hotspot_title" msgid="4143299802283098506">"Wifi-gunea aktibo dago"</string>
     <string name="condition_airplane_title" msgid="8484582712516148433">"Hegaldi modua aktibatuta"</string>
     <string name="condition_airplane_summary" msgid="3021193218494740742">"Sareak ez daude erabilgarri"</string>
     <string name="condition_zen_title" msgid="2128184708916052585">"Aktibatuta dago ez molestatzeko modua"</string>
@@ -3904,7 +3906,7 @@
     <string name="condition_device_muted_summary" msgid="3101055117680109021">"Dei eta jakinarazpenetarako"</string>
     <string name="condition_device_vibrate_title" msgid="5712659354868872338">"Dardara soilik"</string>
     <string name="condition_device_vibrate_summary" msgid="9073880731894828604">"Dei eta jakinarazpenetarako"</string>
-    <string name="night_display_suggestion_title" msgid="4222839610992282188">"Ezarri gaueko argiaren ordutegia"</string>
+    <string name="night_display_suggestion_title" msgid="4222839610992282188">"Ezarri gaueko argiaren programazioa"</string>
     <string name="night_display_suggestion_summary" msgid="1754361016383576916">"Tindatu automatikoki pantaila gauez"</string>
     <string name="condition_night_display_title" msgid="9171491784857160135">"Gaueko argia aktibatuta"</string>
     <string name="condition_night_display_summary" msgid="7885776986937527558">"Pantaila horixkaz tindatuta"</string>
@@ -4307,7 +4309,7 @@
     <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"Gailuaren izena"</string>
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Wifi-konexioa kontrolatzeko aukera"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Baimendu aplikazioari Wi-Fi konexioa kontrolatzea"</string>
-    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Baimendu aplikazio honi Wi-Fi konexioa aktibatzea edo desaktibatzea, Wi-Fi sareak bilatzea eta haietara konektatzea, sareak gehitzea edo kentzea, edota sare publiko lokal bat sortzea"</string>
+    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Baimendu aplikazio honi Wi-Fi konexioa aktibatzea edo desaktibatzea, Wi-Fi sareak bilatzea eta haietara konektatzea, sareak gehitzea edo kentzea, edota wifi-gune lokal bat sortzea"</string>
     <string name="media_output_title" msgid="8710632337456601848">"Erreproduzitu multimedia-edukia hemen:"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Gailu hau"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Telefonoa"</string>
@@ -4331,7 +4333,7 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3509459199090688328">"Aktibatuta (audioa desaktibatuta)"</string>
     <string name="prevent_ringing_option_none_summary" msgid="5152618221093037451">"Desaktibatuta"</string>
     <string name="pref_title_network_details" msgid="3971074015034595956">"Sarearen xehetasunak"</string>
-    <string name="about_phone_device_name_warning" msgid="9088572775969880106">"Mugikorreko aplikazioek gailuaren izena ikus dezakete. Halaber, jendeak ere ikus dezake Bluetooth bidezko gailuetara konektatzean edo wifi-sare publiko bat konfiguratzean."</string>
+    <string name="about_phone_device_name_warning" msgid="9088572775969880106">"Mugikorreko aplikazioek gailuaren izena ikus dezakete. Halaber, jendeak ere ikus dezake Bluetooth bidezko gailuetara konektatzean edo wifi-gune bat konfiguratzean."</string>
     <string name="devices_title" msgid="4768432575951993648">"Gailuak"</string>
     <string name="homepage_all_settings" msgid="3201220879559136116">"Ezarpen guztiak"</string>
     <string name="homepage_personal_settings" msgid="7472638597249114564">"Iradokizunak"</string>
diff --git a/tests/CarDeveloperOptions/res/values-fa/arrays.xml b/tests/CarDeveloperOptions/res/values-fa/arrays.xml
index dd1ef51..94410d3 100644
--- a/tests/CarDeveloperOptions/res/values-fa/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-fa/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"اجرا در پس‌زمینه"</item>
     <item msgid="6423861043647911030">"میزان دسترس‌پذیری"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"مکان"</item>
+    <item msgid="6656077694190491067">"مکان"</item>
+    <item msgid="8790228218278477369">"مکان"</item>
+    <item msgid="7836406246005211990">"لرزش"</item>
+    <item msgid="3951439024549922598">"خواندن مخاطبین"</item>
+    <item msgid="8802152411647068">"تغییر مخاطبین"</item>
+    <item msgid="229544934599698735">"خواندن گزارش تماس"</item>
+    <item msgid="7396102294405899613">"تغییر گزارش تماس"</item>
+    <item msgid="3597797992398484655">"خواندن تقویم"</item>
+    <item msgid="2705975774250907343">"تغییر تقویم"</item>
+    <item msgid="4668747371441932697">"مکان"</item>
+    <item msgid="1487578921720243646">"اعلان پست"</item>
+    <item msgid="4636080349724146638">"موقعیت مکانی"</item>
+    <item msgid="673510900286463926">"تماس تلفنی"</item>
+    <item msgid="542083422784609790">"خواندن پیامک/فراپیام"</item>
+    <item msgid="1033780373029588436">"نوشتن پیامک/فراپیام"</item>
+    <item msgid="5647111115517787488">"دریافت پیامک/فراپیام"</item>
+    <item msgid="8591105601108455893">"دریافت پیامک/فراپیام"</item>
+    <item msgid="7730995008517841903">"دریافت پیامک/فراپیام"</item>
+    <item msgid="2613033109026626086">"دریافت پیامک/فراپیام"</item>
+    <item msgid="3037159047591081136">"ارسال پیامک/فراپیام"</item>
+    <item msgid="4726682243833913568">"خواندن پیامک/فراپیام"</item>
+    <item msgid="6555678522277865572">"نوشتن پیامک/فراپیام"</item>
+    <item msgid="6981734935578130884">"تغییر تنظیمات"</item>
+    <item msgid="8705854389991425629">"در بالا طراحی کنید"</item>
+    <item msgid="5861356020344153651">"اعلان‌های دسترسی"</item>
+    <item msgid="78432174621628659">"دوربین"</item>
+    <item msgid="3986116419882154794">"ضبط صدا"</item>
+    <item msgid="4516840825756409490">"پخش صدا"</item>
+    <item msgid="6811712502798183957">"خواندن بریده‌دان"</item>
+    <item msgid="2780369012602289114">"تغییر بریده‌دان"</item>
+    <item msgid="2331359440170850868">"دکمه‌های رسانه‌"</item>
+    <item msgid="6133599737122751231">"فوکوس صدا"</item>
+    <item msgid="6844485713404805301">"میزان صدای اصلی"</item>
+    <item msgid="1600379420669104929">"میزان صدای مکالمه"</item>
+    <item msgid="6296768210470214866">"میزان صدای زنگ"</item>
+    <item msgid="510690696071629241">"میزان صدای رسانه"</item>
+    <item msgid="406861638631430109">"میزان صدای زنگ"</item>
+    <item msgid="4715864795872233884">"میزان صدای اعلان"</item>
+    <item msgid="2311478519251301183">"میزان صدای بلوتوث"</item>
+    <item msgid="5133991377896747027">"بیدار باش"</item>
+    <item msgid="2464189519136248621">"مکان"</item>
+    <item msgid="2062677934050803037">"موقعیت مکانی"</item>
+    <item msgid="1735171933192715957">"دریافت آمار استفاده"</item>
+    <item msgid="1014093788778383554">"صدادار/بی‌صدا کردن میکروفن"</item>
+    <item msgid="4199297950608622850">"نمایش تست"</item>
+    <item msgid="2527962435313398821">"فرستادن رسانه"</item>
+    <item msgid="5117506254221861929">"فعال کردن VPN"</item>
+    <item msgid="8291198322681891160">"نوشتن کاغذدیواری"</item>
+    <item msgid="7106921284621230961">"ساختار دستیار"</item>
+    <item msgid="4496533640894624799">"عکس‌ صفحه‌نمایش دستیار"</item>
+    <item msgid="2598847264853993611">"خواندن وضعیت تلفن"</item>
+    <item msgid="9215610846802973353">"افزودن پست صوتی"</item>
+    <item msgid="9186411956086478261">"استفاده از SIP"</item>
+    <item msgid="6884763100104539558">"پردازش تماس خروجی"</item>
+    <item msgid="125513972170580692">"اثر انگشت"</item>
+    <item msgid="2556071024281275619">"حسگرهای بدن"</item>
+    <item msgid="617168514928339387">"خواندن پخش‌های سلولی"</item>
+    <item msgid="7134693570516523585">"مکان کاذب"</item>
+    <item msgid="7224489175375229399">"خواندن حافظه"</item>
+    <item msgid="8472735063903258202">"نوشتن در حافظه"</item>
+    <item msgid="4069276819909595110">"روشن کردن صفحه"</item>
+    <item msgid="1228338896751121025">"دریافت حساب‌ها"</item>
+    <item msgid="3181581793459233672">"اجرا در پس‌زمینه"</item>
+    <item msgid="2340936043025374076">"میزان دسترس‌پذیری"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"کوتاه"</item>
     <item msgid="4816511817309094890">"متوسط"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"همیشه غیرمجاز"</item>
     <item msgid="8184570120217958741">"همیشه مجاز است"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"عادی"</item>
+    <item msgid="5101233285497327432">"متوسط"</item>
+    <item msgid="1555861583162930714">"کم"</item>
+    <item msgid="1719683776264798117">"خیلی کم"</item>
+    <item msgid="1567326459340152525">"؟"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"عادی"</item>
+    <item msgid="6107138933849816768">"متوسط"</item>
+    <item msgid="182695359839047859">"کم"</item>
+    <item msgid="8577246509202964244">"بحرانی"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"دائمی"</item>
     <item msgid="167418068739176448">"فعالیت برتر"</item>
diff --git a/tests/CarDeveloperOptions/res/values-fa/strings.xml b/tests/CarDeveloperOptions/res/values-fa/strings.xml
index 9ee2162..863e8b1 100644
--- a/tests/CarDeveloperOptions/res/values-fa/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-fa/strings.xml
@@ -53,7 +53,7 @@
     <string name="radio_info_ims_reg_status_not_registered" msgid="1286050699734226077">"ثبت‌نشده"</string>
     <string name="radio_info_ims_feature_status_available" msgid="2040629393134756058">"در دسترس"</string>
     <string name="radio_info_ims_feature_status_unavailable" msgid="3348223769202693596">"در دسترس نیست"</string>
-    <string name="radio_info_ims_reg_status" msgid="4771711884059371514">"ثبت IMS:‏ <xliff:g id="STATUS">%1$s</xliff:g>\nصدا ازطریق LTE‏: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nصدا ازطریق WiFi‏: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n‏تماس ویدیویی: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nواسط UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
+    <string name="radio_info_ims_reg_status" msgid="4771711884059371514">"ثبت IMS:‏ <xliff:g id="STATUS">%1$s</xliff:g>\nصدا ازطریق LTE‏: <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nصدا ازطریق WiFi‏: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\n‏تماس تصویری: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nواسط UT: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
     <string name="radioInfo_service_in" msgid="1297020186765943857">"سرویس دارد"</string>
     <string name="radioInfo_service_out" msgid="8460363463722476510">"خارج از سرویس"</string>
     <string name="radioInfo_service_emergency" msgid="7674989004735662599">"فقط تماس‌های اضطراری"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"نوشتار روی صفحه‌نمایش را بزرگ‌تر یا کوچک‌تر کنید."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"کوچک‌تر کردن"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"بزرگ‌تر کردن"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"برای این آقا آبجو و کیوی سرو کنید."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"نوشتار نمونه"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"جادوگر شهر اوز"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"فصل ۱۱: شهر زمردی شگفت‌انگیز اوز"</string>
@@ -354,7 +353,7 @@
     <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"نمایش اطلاعات مالک در صفحه قفل"</string>
     <string name="owner_info_settings_title" msgid="2537966178998339896">"پیام صفحه قفل"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"فعال کردن ابزارک‌ها"</string>
-    <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"غیرفعال‌شده توسط سرپرست"</string>
+    <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"توسط سرپرست غیرفعال شده"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"نمایش گزینه «قفل همه»"</string>
     <string name="lockdown_settings_summary" msgid="7270756909878256174">"نمایش گزینه دکمه روشن/خاموش که Smart Lock، باز کردن قفل با اثرانگشت و اعلان‌های در صفحه قفل را خاموش می‌کند"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"نماینده‌های معتمد فقط تمدید حالت باز"</string>
@@ -384,11 +383,11 @@
     <string name="encryption_and_credential_settings_summary" product="tablet" msgid="8170667308598998791">"دستگاه رمزگذاری شد"</string>
     <string name="decryption_settings_summary" product="tablet" msgid="7524119945312453569">"دستگاه رمزگذاری نشده است"</string>
     <string name="lockscreen_settings_title" msgid="1221505938891948413">"نمایش صفحه قفل"</string>
-    <string name="lockscreen_settings_what_to_show_category" msgid="3133378945821488654">"آنچه باید نمایش داده شود"</string>
+    <string name="lockscreen_settings_what_to_show_category" msgid="3133378945821488654">"چه چیزی نشان داده شود"</string>
     <string name="security_settings_summary" msgid="5210109100643223686">"تنظیم مکان من، قفل صفحه، قفل سیم کارت، قفل حافظه اطلاعات کاربری"</string>
     <string name="cdma_security_settings_summary" msgid="1783066617800041869">"تنظیم مکان من، بازگشایی قفل صفحه، قفل حافظه اطلاعات کاربری"</string>
     <string name="security_passwords_title" msgid="6853942836045862315">"حریم خصوصی"</string>
-    <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"غیرفعال‌شده توسط سرپرست"</string>
+    <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"توسط سرپرست غیرفعال شده"</string>
     <string name="security_status_title" msgid="1261960357751754428">"وضعیت امنیتی"</string>
     <string name="security_dashboard_summary_face" msgid="2536136110153593745">"قفل صفحه، بازگشایی با چهره"</string>
     <string name="security_dashboard_summary" msgid="4048877125766167227">"قفل صفحه، اثرانگشت"</string>
@@ -586,7 +585,7 @@
     <string name="face_unlock_set_unlock_password" msgid="8962344604388383659">"احراز هویت با چهره + گذرواژه"</string>
     <string name="face_unlock_skip_face" msgid="7173197040501143880">"ادامه بدون احراز هویت با چهره"</string>
     <string name="face_unlock_title" msgid="1298031162909236127">"می‌توانید با استفاده از چهره‌تان قفل تلفنتان را باز کنید. بنا به دلایل ایمنی این گزینه مستلزم قفل صفحه پشتیبان است."</string>
-    <string name="unlock_set_unlock_disabled_summary" msgid="1713159782896140817">"غیرفعال‌شده توسط سرپرست، طبق خط‌مشی رمزگذاری یا حافظه اطلاعات کاربردی"</string>
+    <string name="unlock_set_unlock_disabled_summary" msgid="1713159782896140817">"توسط سرپرست غیرفعال شده، طبق خط‌مشی رمزگذاری یا حافظه اطلاعات کاربردی"</string>
     <string name="unlock_set_unlock_mode_off" msgid="2950701212659081973">"هیچ‌کدام"</string>
     <string name="unlock_set_unlock_mode_none" msgid="3441605629077912292">"تند کشیدن"</string>
     <string name="unlock_set_unlock_mode_pattern" msgid="8564909572968419459">"الگو"</string>
@@ -596,10 +595,10 @@
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"خاموش کردن قفل صفحه"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"محافظ دستگاه برداشته شود؟"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"محافظت از نمایه غیرفعال شود؟"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"قابلیت‌های محافظ دستگاه بدون الگوی شما کار نمی‌کند."</string>
-    <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"قابلیت‌های محافظت از دستگاه، بدون الگوی شما کار نمی‌کنند.<xliff:g id="EMPTY_LINE">
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"ویژگی‌های محافظ دستگاه بدون الگوی شما کار نمی‌کند."</string>
+    <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"ویژگی‌های محافظ دستگاه بدون الگوی شما کار نمی‌کند.<xliff:g id="EMPTY_LINE">
 
-</xliff:g>اثرانگشت‌های ذخیره‌شده‌تان هم از این دستگاه پاک می‌شود و نمی‌توانید با آن‌ها قفل تلفنتان را باز کنید، خریدها را تأیید کنید یا به سیستم برنامه‌ها وارد شوید."</string>
+</xliff:g>اثرانگشت‌های ذخیره‌شده‌تان هم از این دستگاه پاک می‌شود و نمی‌توانید با آن‌ها قفل تلفنتان را باز کنید، خریدها را تأیید کنید، یا به سیستم برنامه‌ها وارد شوید."</string>
     <string name="unlock_disable_frp_warning_content_pin" msgid="6760473271034592796">"قابلیت‌های محافظ دستگاه بدون پین شما کار نمی‌کند."</string>
     <string name="unlock_disable_frp_warning_content_pin_fingerprint" msgid="4384632309103635233">"قابلیت‌های محافظت از دستگاه، بدون پین شما کار نمی‌کنند.<xliff:g id="EMPTY_LINE">
 
@@ -934,14 +933,14 @@
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"حداقل یک باند برای نقطه اتصال Wi‑Fi انتخاب کنید:"</string>
     <string name="wifi_ip_settings" msgid="4636102290236116946">"تنظیمات IP"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"حریم خصوصی"</string>
-    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"MAC تصادفی‌سازی‌شده"</string>
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"MAC تصادفی"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"افزودن دستگاه"</string>
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"برای افزودن دستگاه به «<xliff:g id="SSID">%1$s</xliff:g>»،‌ کد QR را در مرکز پنجره زیر قرار دهید"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"اسکن کد QR"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"برای اتصال به «<xliff:g id="SSID">%1$s</xliff:g>»،‌ کد QR را در مرکز پنجره زیر قرار دهید"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"با اسکن کردن کد QR، به Wi‑Fi بپیوندید"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"استفاده مشترک از Wi‑Fi"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"برای اتصال به «<xliff:g id="SSID">%1$s</xliff:g>»، این کد QR را اسکن کنید و گذرواژه مربوطه را به اشتراک گذارید"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"برای اتصال به «<xliff:g id="SSID">%1$s</xliff:g>»، این کد QR را اسکن کنید و گذرواژه مربوطه را هم‌رسانی کنید"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"برای اتصال به «<xliff:g id="SSID">%1$s</xliff:g>»، این کد QR را اسکن کنید"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"کد QR خوانده نشد. کد را در مرکز قرار دهید و دوباره امتحان کنید"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"دوباره امتحان کنید. اگر مشکل همچنان ادامه دارد، با سازنده دستگاه تماس بگیرید"</string>
@@ -1025,7 +1024,7 @@
     <string name="wifi_details_subnet_mask" msgid="53396707004763012">"پوشش زیرشبکه"</string>
     <string name="wifi_details_dns" msgid="1118251455740116559">"DNS"</string>
     <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"نشانی‌های IPv6"</string>
-    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"شبکه‌های ذخیره شده"</string>
+    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"شبکه‌های ذخیره‌شده"</string>
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"اشتراک‌ها"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"داده شبکه تلفن همراه"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"استفاده از شبکه تلفن همراه، درصورت عدم‌دسترسی به Wi-Fi"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"اگر شبکه تلفن همراه دردسترس نبود، از Wi-Fi استفاده شود"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"تماس ازطریق Wi-Fi. اگر اتصال Wi-Fi قطع شود، تماس متوقف می‌شود."</string>
@@ -1199,7 +1201,7 @@
     <string name="auto_brightness_very_high_title" msgid="6649896560889239565">"بسیار زیاد"</string>
     <string name="auto_brightness_subtitle" msgid="8516999348793100665">"میزان روشنایی ترجیحی"</string>
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"برای چراغ‌های در دسترس تنظیم نکنید"</string>
-    <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"استفاده باتری افزایش‌یافته"</string>
+    <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"مصرف باتری بالا"</string>
     <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"میزان روشنایی را برای چراغ‌ در دسترس بهینه کنید. تازمانی‌که این ویژگی روشن است، می‌توانید روشنایی را به‌طورموقت تنظیم کنید."</string>
     <string name="auto_brightness_description" msgid="8209140379089535411">"روشنایی صفحه‌نمایش به‌طور خودکار با محیط و فعالیت‌هایتان تنظیم می‌شود. می‌توانید لغزاننده را به‌طور دستی حرکت دهید تا روشنایی تطبیقی ترجیح شما را دریابد."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"تعادل سفیدی نمایشگر"</string>
@@ -1247,7 +1249,7 @@
     <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"هنگام شارژ یا اتصال به پایه"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"هر دو"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"هنگام شارژ شدن"</string>
-    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"وقتی در جایگاه است"</string>
+    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"وقتی روی پایه است"</string>
     <string name="screensaver_settings_summary_never" msgid="3995259444981620707">"هرگز"</string>
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"خاموش"</string>
     <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"برای کنترل اینکه وقتی تلفن روی پایه اتصال قرار دارد و/یا در حالت خواب است چه اتفاقی بیفتد، محافظ صفحه را روشن کنید."</string>
@@ -1258,11 +1260,11 @@
     <string name="automatic_brightness" msgid="8663792987774126192">"روشنایی خودکار"</string>
     <string name="lift_to_wake_title" msgid="5523752279947392868">"بیدار شدن با بالا بردن"</string>
     <string name="ambient_display_screen_title" msgid="2632871676917956691">"نمایشگر محیط"</string>
-    <string name="ambient_display_category_triggers" msgid="3496111745340047504">"زمان نمایش دادن"</string>
+    <string name="ambient_display_category_triggers" msgid="3496111745340047504">"کی نشان داده شود"</string>
     <string name="doze_title" msgid="235269029233857546">"اعلان‌های جدید"</string>
     <string name="doze_summary" msgid="6762274282827831706">"روشن شدن صفحه‌نمایش هنگامی که اعلانی دریافت می‌کنید"</string>
     <string name="doze_always_on_title" msgid="8555184965031789941">"همیشه روشن"</string>
-    <string name="doze_always_on_summary" msgid="7654436900436328950">"نمایش زمان، نمادهای اعلان و سایر اطلاعات. استفاده باتری افزایش‌یافته."</string>
+    <string name="doze_always_on_summary" msgid="7654436900436328950">"نمایش زمان، نمادهای اعلان و سایر اطلاعات. مصرف باتری بالا."</string>
     <string name="title_font_size" msgid="5021464556860010851">"اندازه قلم"</string>
     <string name="short_summary_font_size" msgid="4141077908728522946">"نوشتار را بزرگ‌تر یا کوچک‌تر کنید"</string>
     <string name="sim_lock_settings" msgid="1986924650622642189">"تنظیمات قفل سیم کارت"</string>
@@ -1612,16 +1614,16 @@
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"نقطه اتصال قابل حمل"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"اشتراک‌گذاری اینترنت با بلوتوث"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"اشتراک‌گذاری اینترنت"</string>
-    <string name="tether_settings_title_all" msgid="6935843543433954181">"نقطه اتصال و اتصال به اینترنت با تلفن همراه"</string>
+    <string name="tether_settings_title_all" msgid="6935843543433954181">"نقطه اتصال و اشتراک‌گذاری اینترنت"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"نقطه اتصال روشن، اشتراک‌گذاری اینترنت"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"نقطه اتصال روشن"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"اشتراک‌گذاری اینترنت"</string>
-    <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"هنگامی که محافظ صفحه روشن است نمی‌توانید از نقاط اتصال قابل حمل یا اتصال به اینترنت با تلفن همراه استفاده کنید"</string>
+    <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"هنگامی که محافظ صفحه روشن است نمی‌توانید از نقاط اتصال قابل حمل یا اشتراک‌گذاری اینترنت استفاده کنید"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"اشتراک‌گذاری اینترنت با USB"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"هم‌رسانی اتصال اینترنت تلفن ازطریق USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"هم‌رسانی اینترنت رایانه لوحی ازطریق USB"</string>
-    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"تترینگ با بلوتوث"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"اشتراک‌گذاری اینترنت با بلوتوث"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"هم‌رسانی اتصال اینترنت رایانه لوحی ازطریق بلوتوث"</string>
     <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"هم‌رسانی اتصال اینترنت تلفن ازطریق بلوتوث"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"هم‌رسانی اتصال اینترنت این <xliff:g id="DEVICE_NAME">%1$d</xliff:g> ازطریق بلوتوث"</string>
@@ -1798,7 +1800,7 @@
     <string name="advanced_settings_summary" msgid="5912237062506771716">"گزینه‌های تنظیمات بیشتری فعال شود"</string>
     <string name="application_info_label" msgid="3886253474964599105">"اطلاعات برنامه"</string>
     <string name="storage_label" msgid="1109537840103290384">"حافظه"</string>
-    <string name="auto_launch_label" msgid="47089737922907379">"باز کردن به صورت پیش‌فرض"</string>
+    <string name="auto_launch_label" msgid="47089737922907379">"باز کردن به‌صورت پیش‌فرض"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"پیش‌فرض‌ها"</string>
     <string name="screen_compatibility_label" msgid="3638271673726075815">"سازگاری با صفحه‌نمایش"</string>
     <string name="permissions_label" msgid="7341733648403464213">"مجوزها"</string>
@@ -1823,11 +1825,11 @@
     <string name="install_text" msgid="2798092278891807849">"نصب"</string>
     <string name="disable_text" msgid="5065834603951474397">"غیرفعال کردن"</string>
     <string name="enable_text" msgid="7179141636849225884">"فعال کردن"</string>
-    <string name="clear_user_data_text" msgid="8894073247302821764">"پاک کردن محل ذخیره‌سازی"</string>
+    <string name="clear_user_data_text" msgid="8894073247302821764">"پاک کردن فضای ذخیره‌سازی"</string>
     <string name="app_factory_reset" msgid="8718986000278776272">"حذف نصب نسخه‌های به روز"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"شما انتخاب کرده‌اید که این برنامه را به‌طور پیش‌فرض برای برخی از عملکردها راه‌اندازی کنید."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"شما انتخاب کردید تا به این برنامه برای ایجاد ابزارک و دسترسی به اطلاعات آن‌ها اجازه دهید."</string>
-    <string name="auto_launch_disable_text" msgid="8560921288036801416">"پیش فرضی تنظیم نشده است."</string>
+    <string name="auto_launch_disable_text" msgid="8560921288036801416">"پیش‌فرضی تنظیم نشده است."</string>
     <string name="clear_activities" msgid="2068014972549235347">"پاک کردن پیش‌فرض‌ها"</string>
     <string name="screen_compatibility_text" msgid="1768064020294301496">"ممکن است این برنامه برای صفحه شما طراحی نشده باشد، نحوه تنظیم آن برای صفحه را می‌توانید از این قسمت کنترل کنید."</string>
     <string name="ask_compatibility" msgid="6687958195768084807">"هنگام راه‌اندازی سؤال شود"</string>
@@ -1836,7 +1838,7 @@
     <string name="sort_order_alpha" msgid="6689698854460261212">"مرتب سازی براساس نام"</string>
     <string name="sort_order_size" msgid="3167376197248713027">"مرتب‌سازی براساس اندازه"</string>
     <string name="sort_order_recent_notification" msgid="5592496977404445941">"جدیدترین"</string>
-    <string name="sort_order_frequent_notification" msgid="5640245013098010347">"دارای بیشترین اعلان"</string>
+    <string name="sort_order_frequent_notification" msgid="5640245013098010347">"پرتکرارترین"</string>
     <string name="show_running_services" msgid="1895994322704667543">"نمایش سرویس‌های در حال اجرا"</string>
     <string name="show_background_processes" msgid="88012264528093617">"فرآیندهای ذخیره شده در حافظهٔ پنهان"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"برنامه اضطراری"</string>
@@ -2149,7 +2151,7 @@
     <string name="captioning_standard_options_title" msgid="4124898413348084226">"گزینه‌های استاندارد"</string>
     <string name="captioning_locale" msgid="4734464353806207943">"زبان"</string>
     <string name="captioning_text_size" msgid="1707122517246408084">"اندازه نوشتار"</string>
-    <string name="captioning_preset" msgid="7429888317480872337">"سبک برنگاشت"</string>
+    <string name="captioning_preset" msgid="7429888317480872337">"سبک زیرنویس"</string>
     <string name="captioning_custom_options_title" msgid="4530479671071326732">"گزینه‌های سفارشی"</string>
     <string name="captioning_background_color" msgid="2434458880326292180">"رنگ پس‌زمینه"</string>
     <string name="captioning_background_opacity" msgid="8178926599201811936">"ماتی پس‌زمینه"</string>
@@ -2453,7 +2455,7 @@
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"در <xliff:g id="PERCENT">%1$s</xliff:g> روشن خواهد شد"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"تنظیم زمان‌بندی"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"وقتی شارژ کامل شد، خاموش شود"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"وقتی شارژ تلفن <xliff:g id="PERCENT">%1$s</xliff:g> باشد، «بهینه‌سازی باتری» خاموش می‌شود"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"وقتی شارژ تلفن <xliff:g id="PERCENT">%1$s</xliff:g> شود، «بهینه‌سازی باتری» خاموش می‌شود"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"وقتی شارژ رایانه لوحی <xliff:g id="PERCENT">%1$s</xliff:g> باشد، «بهینه‌سازی باتری» خاموش می‌شود"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"وقتی شارژ دستگاه <xliff:g id="PERCENT">%1$s</xliff:g> باشد، «بهینه‌سازی باتری» خاموش می‌شود"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2817,7 +2819,7 @@
     <string name="n_cacrts" msgid="7539893176217891549">"%d گواهی CA"</string>
     <string name="user_credential_title" msgid="6237611303219831419">"جزئیات اعتبارنامه"</string>
     <string name="user_credential_removed" msgid="6243576567538844852">"اعتبارنامه برداشته شد: <xliff:g id="CREDENTIAL_NAME">%s</xliff:g>"</string>
-    <string name="user_credential_none_installed" msgid="4129252817676332368">"اطلاعات کاربری‌ای نصب نشد"</string>
+    <string name="user_credential_none_installed" msgid="4129252817676332368">"اطلاعات کاربری‌ای نصب نشده"</string>
     <string name="spellcheckers_settings_title" msgid="1687210427248364327">"غلط‌گیر املا"</string>
     <string name="spellcheckers_settings_for_work_title" msgid="7461318390801573022">"غلط‌گیر املا برای کار"</string>
     <string name="current_backup_pw_prompt" msgid="8914812770233159610">"گذرواژه فعلی پشتیبان‌گیری‌تان را به‌طور کامل اینجا تایپ کنید"</string>
@@ -2845,7 +2847,7 @@
       <item quantity="one">بررسی گواهی</item>
       <item quantity="other">بررسی گواهی‌ها</item>
     </plurals>
-    <string name="user_settings_title" msgid="7917598650933179545">"چندین کاربر"</string>
+    <string name="user_settings_title" msgid="7917598650933179545">"چند کاربر"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"با افزودن کاربران جدید، از دستگاهتان به‌صورت مشترک استفاده کنید. هر کاربر فضایی شخصی برای سفارشی کردن صفحه‌های اصلی، حساب‌ها، برنامه‌ها، تنظیمات و موارد دیگر در دستگاه شما دارد."</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"با افزودن کاربران جدید، از رایانه لوحی‌تان به‌صورت مشترک استفاده کنید. هر کاربر فضایی شخصی برای سفارشی کردن صفحه‌های اصلی، حساب‌ها، برنامه‌ها، تنظیمات و موارد دیگر در رایانه لوحی شما دارد."</string>
     <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"با افزودن کاربران جدید، از تلفنتان به‌صورت مشترک استفاده کنید. هر کاربر فضایی شخصی برای سفارشی کردن صفحه‌های اصلی، حساب‌ها، برنامه‌ها، تنظیمات و موارد دیگر در تلفن شما دارد."</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"به‌جز وقتی برنامه پرداخت دیگری باز است"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"در پایانه «ضربه و پرداخت»، با این مورد پرداخت شود:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"پرداخت در پایانه"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"یک برنامه پرداخت تنظیم کنید. سپس کافیست پشت تلفنتان را بالای هر پایانه دارای نشان «بدون تماس» نگه دارید."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"یک برنامه پرداخت تنظیم کنید. سپس کافی است پشت تلفنتان را بالای هر پایانه دارای نشان «بدون تماس» نگه دارید."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"متوجه شدم"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"بیشتر..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"به عنوان روش ترجیحی شما تنظیم شود؟"</string>
@@ -3042,7 +3044,7 @@
     <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"دستیار، برنامه‌های اخیر، برنامه‌های پیش‌فرض"</string>
     <string name="notification_settings_work_profile" msgid="7190550347842400029">"برنامه‌ها نمی‌توانند در نمایه کاری به اعلان‌ها دسترسی داشته باشند."</string>
     <string name="account_dashboard_title" msgid="4734300939532555885">"حساب‌ها"</string>
-    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"حسابی اضافه نشد"</string>
+    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"حسابی اضافه نشده"</string>
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"برنامه‌های پیش‌فرض"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"زبان‌ها، ژست‌ها، زمان، پشتیبان"</string>
     <string name="search_results_title" msgid="4160717656435503940">"تنظیمات"</string>
@@ -3084,7 +3086,7 @@
     <string name="keywords_keyboard_and_ime" msgid="3327265741354129990">"تصحیح نوشتار، تصحیح، صدا، لرزش، خودکار، زبان، اشاره، پیشنهاد دادن، پیشنهاد، طرح زمینه، توهین‌آمیز، کلمه، نوع، اموجی، بین‌المللی"</string>
     <string name="keywords_reset_apps" msgid="2645701455052020435">"بازنشانی، اولویت‌ها، پیش‌فرض"</string>
     <string name="keywords_all_apps" msgid="846444448435698930">"برنامه‌ها، بارگیری، برنامه‌های کاربردی، سیستم"</string>
-    <string name="keywords_app_permissions" msgid="8539841019997048500">"برنامه‌ها، مجوزها، امنیت"</string>
+    <string name="keywords_app_permissions" msgid="8539841019997048500">"برنامه‌ها، اجازه‌ها، امنیت"</string>
     <string name="keywords_default_apps" msgid="7435952699323965532">"برنامه‌ها، پیش‌فرض"</string>
     <string name="keywords_ignore_optimizations" msgid="9127632532176249438">"نادیده گرفتن بهینه‌سازی، چرت، حالت آماده به‌کار برنامه"</string>
     <string name="keywords_color_mode" msgid="8893345199519181751">"زنده، RGB، ‏sRGB، رنگ، طبیعی، استاندارد"</string>
@@ -3121,7 +3123,7 @@
     <string name="keywords_assist_input" msgid="8392362788794886564">"پیش‌فرض، دستیار"</string>
     <string name="keywords_default_payment_app" msgid="845369409578423996">"پرداخت، پیش‌فرض"</string>
     <string name="keywords_ambient_display" msgid="8835182491798487184">"اعلان ورودی"</string>
-    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"اتصال به اینترنت با USB تلفن همراه، اتصال اینترنت به بلوتوث تلفن همراه، نقطه اتصال Wi-Fi"</string>
+    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"اشتراک‌گذاری اینترنت با USB، اتصال اینترنت به بلوتوث تلفن همراه، نقطه اتصال Wi-Fi"</string>
     <string name="keywords_touch_vibration" msgid="2081175517528255224">"لمسی، لرزش، صفحه نمایش، حساسیت"</string>
     <string name="keywords_ring_vibration" msgid="4210509151866460210">"لمس، لرزش، تلفن، تماس، حساسیت، به صدا در آوردن زنگ"</string>
     <string name="keywords_notification_vibration" msgid="1077515502086745166">"لمس، لرزش، حساسیت"</string>
@@ -3159,7 +3161,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"آهنگ‌ها"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"لرزش‌ها"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"صدای راه‌اندازی"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"برنگاشت زنده"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"زیرنویس زنده"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"رسانه زیرنویس خودکار"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"هرگز"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3586,7 +3588,7 @@
     <string name="imei_information_title" msgid="7666097743700170757">"اطلاعات IMEI"</string>
     <string name="imei_information_summary" msgid="716516316022275083">"اطلاعات مربوط به IMEI"</string>
     <string name="slot_number" msgid="785422579177068698">"(شکاف<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
-    <string name="launch_by_default" msgid="6106985160202769725">"باز کردن به صورت پیش‌فرض"</string>
+    <string name="launch_by_default" msgid="6106985160202769725">"باز کردن به‌صورت پیش‌فرض"</string>
     <string name="app_launch_domain_links_title" msgid="2987289657348349133">"باز کردن پیوندها"</string>
     <string name="app_launch_open_domain_urls_title" msgid="8595126859922391331">"باز کردن پیوندهای پشتیبانی شده"</string>
     <string name="app_launch_open_domain_urls_summary" msgid="6803029846855502366">"باز کردن بدون پرسش"</string>
@@ -3624,8 +3626,8 @@
       <item quantity="other">‏<xliff:g id="COUNT_2">%d</xliff:g> از <xliff:g id="COUNT_3">%d</xliff:g> اجازه اعطا شد</item>
     </plurals>
     <plurals name="runtime_permissions_additional_count" formatted="false" msgid="2068102378805218668">
-      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> مجوز اضافی</item>
-      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> مجوز اضافی</item>
+      <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> اجازه تکمیلی</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> اجازه‌های تکمیلی</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"اجازه‌ای داده نشده"</string>
     <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"اجازه‌ای درخواست نشده"</string>
@@ -3643,7 +3645,7 @@
     <string name="advanced_apps" msgid="6643869089344883537">"پیشرفته"</string>
     <string name="configure_apps" msgid="4066683118857400943">"پیکربندی برنامه‌ها"</string>
     <string name="unknown_app" msgid="2312052973570376877">"برنامه ناشناس"</string>
-    <string name="app_permissions" msgid="3215958256821756086">"مدیر مجوز"</string>
+    <string name="app_permissions" msgid="3215958256821756086">"مدیر اجازه‌ها"</string>
     <string name="app_permissions_summary" msgid="8785798165776061594">"برنامه‌های درحال استفاده از <xliff:g id="APPS">%1$s</xliff:g>"</string>
     <string name="tap_to_wake" msgid="1902991239401652323">"ضربه برای بیدار شدن"</string>
     <string name="tap_to_wake_summary" msgid="8485222120721006793">"برای بیدار کردن دستگاه روی قسمتی از صفحه دوبار ضربه بزنید"</string>
@@ -3716,7 +3718,7 @@
     <string name="no_battery_summary" msgid="4105932628367471314">"از آخرین شارژ کامل، از باتری استفاده نشده است"</string>
     <string name="app_notification_preferences" msgid="5154466638524523201">"تنظیمات برنامه"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"نمایش تنظیم‌گر واسط کاربری سیستم"</string>
-    <string name="additional_permissions" msgid="3142290772324571654">"مجوزهای بیشتر"</string>
+    <string name="additional_permissions" msgid="3142290772324571654">"اجازه‌های تکمیلی"</string>
     <string name="additional_permissions_more" msgid="714264060348056246">"<xliff:g id="COUNT">%1$d</xliff:g> مورد دیگر"</string>
     <string name="share_remote_bugreport_dialog_title" msgid="1390719492733882678">"گزارش اشکال به اشتراک گذاشته شود؟"</string>
     <string name="share_remote_bugreport_dialog_message_finished" msgid="5133489230646384192">"سرپرست فناوری اطلاعات شما برای کمک به عیب‌یابی این دستگاه، گزارش اشکال درخواست کرده است. ممکن است برنامه‌ها و داده‌ها به اشتراک گذاشته شوند."</string>
@@ -3758,10 +3760,10 @@
     <string name="background_check_title" msgid="4136736684290307970">"دسترسی کامل به پس‌زمینه"</string>
     <string name="assist_access_context_title" msgid="2274614501747710439">"استفاده از نوشتار صفحه"</string>
     <string name="assist_access_context_summary" msgid="5867997494395842785">"اجازه به برنامه همیار برای دسترسی به محتوای صفحه به‌عنوان نوشتار"</string>
-    <string name="assist_access_screenshot_title" msgid="1991014038776117688">"استفاده از عکس صفحه‌نمایش"</string>
+    <string name="assist_access_screenshot_title" msgid="1991014038776117688">"استفاده از نماگرفت"</string>
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"اجازه به برنامه همیار برای دسترسی به تصویری از صفحه"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"چشمک زدن صفحه‌نمایش"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"چشمک زدن لبه‌های صفحه‌نمایش وقتی برنامه همیار به نوشتار صفحه‌نمایش یا عکس صفحه‌نمایش دسترسی پیدا می‌کند"</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"چشمک زدن لبه‌های صفحه‌نمایش وقتی برنامه همیار به نوشتار صفحه‌نمایش یا نماگرفت دسترسی پیدا می‌کند"</string>
     <string name="assist_footer" msgid="7030121180457472165">"برنامه‌های همیار براساس اطلاعات از صفحه‌ای که در آن هستید به شما کمک می‌کنند. بعضی از برنامه‌ها از هر دو سرویس راه‌انداز و ورودی صوتی پشتیبانی می‌کنند تا کمک یکپارچه‌ای به شما ارائه دهند."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"مصرف حافظه به‌طور متوسط"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"حداکثر مصرف حافظه"</string>
@@ -3869,7 +3871,7 @@
     <string name="backup_disabled" msgid="6941165814784765643">"پشتیبان‌گیری غیرفعال است"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"به‌روزرسانی‌شده به Android نسخه <xliff:g id="VERSION">%1$s</xliff:g>"</string>
     <string name="android_version_pending_update_summary" msgid="3554543810520655076">"به‌روزرسانی در دسترس است"</string>
-    <string name="disabled_by_policy_title" msgid="1238318274952958846">"عملکرد مجاز نیست"</string>
+    <string name="disabled_by_policy_title" msgid="1238318274952958846">"کنش مجاز نیست"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7094547090629203316">"نمی‌توان بلندی صدا را تغییر داد"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="3805836913095496278">"برقراری تماس تلفنی مجاز نیست"</string>
     <string name="disabled_by_policy_title_sms" msgid="1453236584236681105">"استفاده از پیامک مجاز نیست"</string>
@@ -4101,7 +4103,7 @@
     <string name="automatic_storage_manager_text" msgid="4270379105066667493">"برای کمک به خالی کردن فضای ذخیره‌سازی، مدیر ذخیره‌سازی عکس‌ها و ویدیوهای پشتیبان‌گیری‌شده را از دستگاهتان پاک می‌کند."</string>
     <string name="automatic_storage_manager_days_title" msgid="1783767804707813799">"پاک کردن عکس‌ها و ویدئوها"</string>
     <string name="automatic_storage_manager_preference_title" msgid="4668642150512639466">"مدیر فضای ذخیره‌سازی"</string>
-    <string name="automatic_storage_manager_master_switch_title" msgid="1456978117739582562">"استفاده از مدیر حافظه"</string>
+    <string name="automatic_storage_manager_master_switch_title" msgid="1456978117739582562">"استفاده از «مدیر فضای ذخیره‌سازی»"</string>
     <string name="deletion_helper_automatic_title" msgid="4370975149425263205">"خودکار"</string>
     <string name="deletion_helper_manual_title" msgid="1011785013431162078">"دستی"</string>
     <string name="deletion_helper_preference_title" msgid="797270307034242206">"هم‌اکنون فضا را خالی کنید"</string>
@@ -4152,7 +4154,7 @@
     <string name="web_action_section_title" msgid="5563229447734734662">"برنامه‌های فوری"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"اولویت‌های برنامه‌های فوری"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"برنامه‌های نصب‌شده"</string>
-    <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"حافظه شما اکنون توسط مدیر حافظه مدیریت می‌شود"</string>
+    <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"مدیر فضای ذخیره‌سازی اکنون فضای ذخیره‌سازی شما را مدیریت می‌کند"</string>
     <string name="account_for_section_header" msgid="5975241715840642563">"حساب‌های <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"پیکربندی"</string>
     <string name="auto_sync_account_title" msgid="2394463123733529506">"همگام‌سازی خودکار داده‌ها"</string>
@@ -4246,7 +4248,7 @@
     <string name="launch_instant_app" msgid="5251693061228352333">"باز کردن"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"بازی"</string>
     <string name="audio_files_title" msgid="3073879661731363935">"فایل‌های صوتی"</string>
-    <string name="app_info_storage_title" msgid="6643391804949509308">"فضای مورداستفاده"</string>
+    <string name="app_info_storage_title" msgid="6643391804949509308">"فضای استفاده‌شده"</string>
     <string name="webview_uninstalled_for_user" msgid="3407952144444040557">"(برای کاربر <xliff:g id="USER">%s</xliff:g> حذف نصب شد)"</string>
     <string name="webview_disabled_for_user" msgid="8057805373224993504">"(برای کاربر <xliff:g id="USER">%s</xliff:g> غیرفعال شد)"</string>
     <string name="autofill_app" msgid="3990765434980280073">"سرویس تکمیل خودکار"</string>
@@ -4427,7 +4429,7 @@
     <string name="carrier_settings_euicc" msgid="7723199738771996732">"شرکت مخابراتی"</string>
     <string name="carrier_settings_version" msgid="2657511289029828425">"نسخه تنظیمات"</string>
     <string name="call_category" msgid="3418535202893644015">"درحال تماس"</string>
-    <string name="video_calling_settings_title" msgid="8011841542502156112">"تماس ویدیویی با شرکت مخابراتی"</string>
+    <string name="video_calling_settings_title" msgid="8011841542502156112">"تماس تصویری با شرکت مخابراتی"</string>
     <string name="cdma_system_select_title" msgid="5620679296177526467">"انتخاب سیستم"</string>
     <string name="cdma_system_select_summary" msgid="6749131988334321244">"تغییر حالت فراگردی CDMA"</string>
     <string name="cdma_system_select_dialogtitle" msgid="7489000866289285390">"انتخاب سیستم"</string>
diff --git a/tests/CarDeveloperOptions/res/values-fi/arrays.xml b/tests/CarDeveloperOptions/res/values-fi/arrays.xml
index 2a383bb..a92007f 100644
--- a/tests/CarDeveloperOptions/res/values-fi/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-fi/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"toimi taustalla"</item>
     <item msgid="6423861043647911030">"esteettömyys äänenvoimakkuus"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Sijainti"</item>
+    <item msgid="6656077694190491067">"Sijainti"</item>
+    <item msgid="8790228218278477369">"Sijainti"</item>
+    <item msgid="7836406246005211990">"Värinä"</item>
+    <item msgid="3951439024549922598">"Lue yhteystietoja"</item>
+    <item msgid="8802152411647068">"Muokkaa yhteystietoja"</item>
+    <item msgid="229544934599698735">"Lue puhelulokia"</item>
+    <item msgid="7396102294405899613">"Muokkaa puhelulokia"</item>
+    <item msgid="3597797992398484655">"Lue kalenteria"</item>
+    <item msgid="2705975774250907343">"Muokkaa kalenteria"</item>
+    <item msgid="4668747371441932697">"Sijainti"</item>
+    <item msgid="1487578921720243646">"Lisää ilmoitus"</item>
+    <item msgid="4636080349724146638">"Sijainti"</item>
+    <item msgid="673510900286463926">"Soita numeroon"</item>
+    <item msgid="542083422784609790">"Lue SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Kirjoita SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Vastaanota multimedia- tai tekstiviestejä"</item>
+    <item msgid="8591105601108455893">"Vastaanota multimedia- tai tekstiviestejä"</item>
+    <item msgid="7730995008517841903">"Vastaanota multimedia- tai tekstiviestejä"</item>
+    <item msgid="2613033109026626086">"Vastaanota multimedia- tai tekstiviestejä"</item>
+    <item msgid="3037159047591081136">"Lähetä multimedia- tai tekstiviestejä"</item>
+    <item msgid="4726682243833913568">"Lue SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Kirjoita SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Muokkaa asetuksia"</item>
+    <item msgid="8705854389991425629">"Piirrä päälle"</item>
+    <item msgid="5861356020344153651">"Käytä ilmoituksia"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Tallenna ääntä"</item>
+    <item msgid="4516840825756409490">"Toista ääntä"</item>
+    <item msgid="6811712502798183957">"Lue leikepöytä"</item>
+    <item msgid="2780369012602289114">"Muokkaa leikepöytää"</item>
+    <item msgid="2331359440170850868">"Mediapainikkeet"</item>
+    <item msgid="6133599737122751231">"Äänen painopiste"</item>
+    <item msgid="6844485713404805301">"Pää-äänenvoimakkuus"</item>
+    <item msgid="1600379420669104929">"Puheäänen voimakkuus"</item>
+    <item msgid="6296768210470214866">"Soittoäänen voimakkuus"</item>
+    <item msgid="510690696071629241">"Median äänenvoimakkuus"</item>
+    <item msgid="406861638631430109">"Hälytyksen voimakkuus"</item>
+    <item msgid="4715864795872233884">"Ilmoituksen äänenvoimakkuus"</item>
+    <item msgid="2311478519251301183">"Bluetooth-äänenvoimakkuus"</item>
+    <item msgid="5133991377896747027">"Ei virransäästötilaa"</item>
+    <item msgid="2464189519136248621">"Sijainti"</item>
+    <item msgid="2062677934050803037">"Sijainti"</item>
+    <item msgid="1735171933192715957">"Hae käyttötilastot"</item>
+    <item msgid="1014093788778383554">"Mykistä mikrofoni / poista mykistys"</item>
+    <item msgid="4199297950608622850">"Näytä ilmoitus"</item>
+    <item msgid="2527962435313398821">"Lähetä media"</item>
+    <item msgid="5117506254221861929">"Aktivoi VPN"</item>
+    <item msgid="8291198322681891160">"Kirjoita taustakuva"</item>
+    <item msgid="7106921284621230961">"Apurakenne"</item>
+    <item msgid="4496533640894624799">"Apukuvakaappaus"</item>
+    <item msgid="2598847264853993611">"Tarkastele puhelimen tilaa"</item>
+    <item msgid="9215610846802973353">"Lisää vastaajaviesti"</item>
+    <item msgid="9186411956086478261">"Käytä SIP:tä"</item>
+    <item msgid="6884763100104539558">"Käsittele lähtevä puhelu"</item>
+    <item msgid="125513972170580692">"Sormenjälki"</item>
+    <item msgid="2556071024281275619">"Kehon anturit"</item>
+    <item msgid="617168514928339387">"Tarkastele solulähetyksiä"</item>
+    <item msgid="7134693570516523585">"Käytä imitoitua sijaintia"</item>
+    <item msgid="7224489175375229399">"Tarkastele tallennustilaa"</item>
+    <item msgid="8472735063903258202">"Kirjoita tallennustilaan"</item>
+    <item msgid="4069276819909595110">"Kytke näyttö päälle"</item>
+    <item msgid="1228338896751121025">"Hae tilit"</item>
+    <item msgid="3181581793459233672">"Toimi taustalla"</item>
+    <item msgid="2340936043025374076">"Esteettömyys äänenvoimakkuus"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Lyhyt"</item>
     <item msgid="4816511817309094890">"Keskitaso"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Älä salli koskaan"</item>
     <item msgid="8184570120217958741">"Salli aina"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normaali"</item>
+    <item msgid="5101233285497327432">"Tyydyttävä"</item>
+    <item msgid="1555861583162930714">"Matala"</item>
+    <item msgid="1719683776264798117">"Kriittinen"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normaali"</item>
+    <item msgid="6107138933849816768">"Keskitaso"</item>
+    <item msgid="182695359839047859">"Matala"</item>
+    <item msgid="8577246509202964244">"Kriittinen"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Pysyvä"</item>
     <item msgid="167418068739176448">"Tärkein toiminta"</item>
@@ -396,12 +472,12 @@
     <item msgid="3118234477029486741">"0"</item>
   </string-array>
   <string-array name="wifi_metered_entries">
-    <item msgid="4329206416008519163">"Tunnista automaattisesti."</item>
+    <item msgid="4329206416008519163">"Tunnista automaattisesti"</item>
     <item msgid="773943026484148895">"Merkitse maksulliseksi"</item>
     <item msgid="1008268820118852416">"Merkitse maksuttomaksi"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Käytä satunnaistettua MAC-osoitetta (oletus)."</item>
+    <item msgid="6545683814310036454">"Käytä satunnaistettua MAC-osoitetta (oletus)"</item>
     <item msgid="214234417308375326">"Käytä laitteen MAC-osoitetta"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-fi/strings.xml b/tests/CarDeveloperOptions/res/values-fi/strings.xml
index b88338b..53d2b78 100644
--- a/tests/CarDeveloperOptions/res/values-fi/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-fi/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Suurenna tai pienennä tekstiä näytöllä."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Pienennä"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Suurenna"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Esimerkkiteksti"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Ihmemaa Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Luku 11: Ozin ihastuttava smaragdikaupunki"</string>
@@ -310,8 +309,8 @@
     <string name="cellular_data_summary" msgid="8817717603450318646">"Salli tiedonsiirto mobiiliverkossa"</string>
     <string name="allow_data_usage_title" msgid="5381624105803294315">"Salli roaming-tiedonsiirto"</string>
     <string name="roaming" msgid="8860308342135146004">"Roaming"</string>
-    <string name="roaming_enable" msgid="2108142024297441116">"Yhdistä verkkoon roaming-tilassa."</string>
-    <string name="roaming_disable" msgid="1915440242079953809">"Yhdistä verkkoon roaming-tilassa."</string>
+    <string name="roaming_enable" msgid="2108142024297441116">"Yhdistä verkkoon roaming-tilassa"</string>
+    <string name="roaming_disable" msgid="1915440242079953809">"Yhdistä verkkoon roaming-tilassa"</string>
     <string name="roaming_reenable_message" msgid="8388505868655113258">"Verkkoyhteys katkesi, koska poistuit kotiverkkosi alueelta eikä roaming-tilaa ole otettu käyttöön."</string>
     <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"Ota käyttöön"</string>
     <string name="roaming_warning" msgid="5488050911277592868">"Tästä voi aiheutua huomattavia kuluja."</string>
@@ -356,7 +355,7 @@
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Käytä widgetejä"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Järjestelmänvalvojan estämä"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"Näytä lukitusasetus"</string>
-    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Näytä virtapainikeasetus, joka poistaa käytöstä Smart Lockin, lukituksen avaamisen sormenjäljellä ja lukitusnäytön ilmoitukset."</string>
+    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Näytä virtapainikeasetus, joka poistaa käytöstä Smart Lockin, lukituksen avaamisen sormenjäljellä ja lukitusnäytön ilmoitukset"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Luotettavat tahot vain pitävät avattuna"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"Kun tämä on käytössä, luotettavat tahot pitävät puhelimen avattuna pidempään mutta eivät voi enää avata lukittua laitetta."</string>
     <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"Lukitse näyttö ilman luotettavaa tahoa"</string>
@@ -411,7 +410,7 @@
     <string name="face_add_max" msgid="8870899421165189413">"Voit lisätä korkeintaan <xliff:g id="COUNT">%d</xliff:g> kasvoa"</string>
     <string name="face_intro_error_max" msgid="4024147799079828937">"Et voi lisätä useampia kasvoja"</string>
     <string name="face_intro_error_unknown" msgid="3241592604198351134">"Enimmäismäärä kasvoja lisätty"</string>
-    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Rekisteröitymistä ei suoritettu loppuun."</string>
+    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Rekisteröitymistä ei suoritettu loppuun"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"OK"</string>
     <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Kasvojen rekisteröinnin aikaraja on saavutettu. Yritä uudelleen."</string>
     <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Kasvojen rekisteröinti epäonnistui."</string>
@@ -488,7 +487,7 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Valmis"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Hups, anturi ei ole siinä."</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Kosketa puhelimen takaosan tunnistinta etusormella."</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Rekisteröitymistä ei suoritettu loppuun."</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Rekisteröitymistä ei suoritettu loppuun"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Sormenjäljen rekisteröinnin aikaraja on saavutettu. Yritä uudelleen."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Sormenjäljen rekisteröinti ei onnistunut. Yritä uudelleen tai käytä eri sormea."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Lisää toinen"</string>
@@ -549,7 +548,7 @@
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Tabletin suojaaminen"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Laitteen suojaaminen"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Suojaa puhelintasi"</string>
-    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Paranna suojausta määrittämällä näytön varalukitustapa"</string>
+    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Paranna suojausta määrittämällä näytön varalukitustapa."</string>
     <string name="setup_lock_settings_picker_message" product="tablet" msgid="7230799135599877804">"Estä tablettisi luvaton käyttö ottamalla laitteen suojausominaisuudet käyttöön. Valitse näytön lukitusmenetelmä."</string>
     <string name="setup_lock_settings_picker_message" product="device" msgid="2098404520816295371">"Estä laitteesi luvaton käyttö ottamalla laitteen suojausominaisuudet käyttöön. Valitse näytön lukitusmenetelmä."</string>
     <string name="setup_lock_settings_picker_message" product="default" msgid="2003984443953672040">"Estä puhelimesi luvaton käyttö ottamalla laitteen suojausominaisuudet käyttöön. Valitse näytön lukitusmenetelmä."</string>
@@ -936,9 +935,9 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Tietosuoja"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Satunnaistettu MAC-osoite"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Lisää laite"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Lisää laite verkkoon <xliff:g id="SSID">%1$s</xliff:g> keskittämällä alla olevaan QR-koodiin."</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Keskitä QR-koodi alle yhdistääksesi laitteen <xliff:g id="SSID">%1$s</xliff:g>:iin"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Lue QR-koodi"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Yhdistä verkkoon <xliff:g id="SSID">%1$s</xliff:g> keskittämällä alla olevaan QR-koodiin"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Keskitä QR-koodi alle yhdistääksesi <xliff:g id="SSID">%1$s</xliff:g>:iin"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Yhdistä Wi-Fi-verkkoon lukemalla QR-koodi."</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Jaa Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Yhdistä <xliff:g id="SSID">%1$s</xliff:g> ja jaa salasana lukemalla tämä QR-koodi."</string>
@@ -1070,7 +1069,7 @@
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"AP-taajuus"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Hotspot-ominaisuudella voit luoda muille laitteillesi Wi-Fi-verkon. Ominaisuus jakaa internetyhteyden muille laitteille mobiilidatayhteydellä. Lisämaksuja mobiilidatan käytöstä voidaan periä."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Sovellukset voivat luoda hotspotin ja jakaa sisältöä lähellä olevien laitteiden kanssa."</string>
-    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Poista hotspot käytöstä automaattisesti"</string>
+    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Laita hotspot pois päältä automaattisesti"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"Wi‑Fi-hotspot poistetaan käytöstä, jos laitteita ei ole yhdistetty."</string>
     <string name="wifi_tether_starting" msgid="7676952148471297900">"Otetaan yhteyspiste käyttöön..."</string>
     <string name="wifi_tether_stopping" msgid="7478561853791953349">"Poistetaan yhteyspiste käytöstä..."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobiili"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Jos Wi-Fi-yhteys ei ole käytettävissä, käytä mobiiliverkkoa"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Jos mobiiliverkkoa ei ole saatavilla, käytä Wi-Fi-yhteyttä."</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Soita Wi-Fi-yhteyden kautta. Jos Wi-Fi-yhteys katkeaa, puhelu päättyy."</string>
@@ -1226,8 +1228,8 @@
     <string name="night_display_summary_on_auto_mode_never" msgid="5461580863060506687">"Ei sammu automaattisesti"</string>
     <string name="night_display_summary_on_auto_mode_custom" msgid="2200631112239399233">"Sammuu automaattisesti kello <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_on_auto_mode_twilight" msgid="8386769601369289561">"Sammuu automaattisesti, kun aurinko nousee"</string>
-    <string name="night_display_activation_on_manual" msgid="8379477527072027346">"Ota käyttöön nyt"</string>
-    <string name="night_display_activation_off_manual" msgid="7776082151269794201">"Poista käytöstä nyt"</string>
+    <string name="night_display_activation_on_manual" msgid="8379477527072027346">"Laita päälle"</string>
+    <string name="night_display_activation_off_manual" msgid="7776082151269794201">"Laita pois päältä"</string>
     <string name="night_display_activation_on_twilight" msgid="5610294051700287249">"Käytössä auringonnousuun asti"</string>
     <string name="night_display_activation_off_twilight" msgid="6846727701281556110">"Pois käytöstä auringonlaskuun asti"</string>
     <string name="night_display_activation_on_custom" msgid="4761140206778957611">"Käytössä <xliff:g id="ID_1">%1$s</xliff:g> asti"</string>
@@ -1343,7 +1345,7 @@
     <string name="scanning_status_text_wifi_on_ble_on" msgid="6370507836346838473">"Wi-Fi- ja Bluetooth-haku ovat käytössä."</string>
     <string name="scanning_status_text_wifi_on_ble_off" msgid="8205014713732412608">"Wi‑Fi-haku on käytössä, Bluetooth-haku ei ole käytössä"</string>
     <string name="scanning_status_text_wifi_off_ble_on" msgid="7400522456303307057">"Bluetooth-haku on käytössä, Wi-Fi-haku ei ole käytössä"</string>
-    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Wi-Fi- ja Bluetooth-haku eivät ole käytössä."</string>
+    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Wi-Fi- ja Bluetooth-haku eivät ole käytössä"</string>
     <string name="status_meid_number" msgid="8756271256760479835">"MEID"</string>
     <string name="status_icc_id" msgid="9191847562997702709">"ICCID"</string>
     <string name="status_data_network_type" msgid="2344720457353394909">"Mobiilidataverkon tyyppi"</string>
@@ -1547,7 +1549,7 @@
     <string name="apn_type" msgid="6725346490902871146">"APN-tyyppi"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"APN-protokolla"</string>
     <string name="apn_roaming_protocol" msgid="6913336248771263497">"APN roaming -protokolla"</string>
-    <string name="carrier_enabled" msgid="1819916725305365581">"Ota APN käyttöön / poista se käytöstä."</string>
+    <string name="carrier_enabled" msgid="1819916725305365581">"Ota APN käyttöön / pois käytöstä"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN otettu käyttöön"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN poistettu käytöstä"</string>
     <string name="bearer" msgid="4378444317087536401">"Bearer"</string>
@@ -1567,7 +1569,7 @@
     <string name="menu_restore" msgid="3799288817317293115">"Palauta oletukset"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"APN-oletusasetukset on palautettu."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Palautusvalinnat"</string>
-    <string name="reset_dashboard_summary" msgid="8778383341461126642">"Voit nollata verkon, sovellusten tai laitteen asetukset."</string>
+    <string name="reset_dashboard_summary" msgid="8778383341461126642">"Voit nollata verkon, sovellusten tai laitteen asetukset"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Nollaa Wi-Fin, mobiiliverkon ja Bluetoothin asetukset"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"Tämä nollaa kaikki verkkoasetukset, esimerkiksi seuraavat:\n\n"<li>"Wi‑Fi"</li>\n<li>"Mobiilidata"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Tyhjennä ladatut SIM-kortit"</string>
@@ -1619,11 +1621,11 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Kun Data Saver on käytössä, puhelinta ei voi käyttää modeemina eikä kannettavien hotspotien käyttäminen onnistu."</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"Internetin jakaminen USB:n kautta"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Jaa puhelimen internetyhteys USB:llä."</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Jaa puhelimen internetyhteys USB:llä"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Jaa tabletin internetyhteys USB:llä"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Jaettu Bluetooth-yhteys"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Jaa tabletin internetyhteys Bluetoothilla"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Jaa puhelimen internetyhteys Bluetoothilla."</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Jaa puhelimen internetyhteys Bluetoothilla"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"<xliff:g id="DEVICE_NAME">%1$d</xliff:g> jakaa internetyhteyden Bluetoothilla"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Voidaan yhdistää korkeintaan <xliff:g id="MAXCONNECTION">%1$d</xliff:g> laitteeseen."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"Jaettu internetyhteys katkaistaan laitteesta <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
@@ -1968,9 +1970,9 @@
     <string name="keyboard_assistance_category" msgid="2276351807419818125">"Näppäimistön apuvälineet"</string>
     <string name="physical_keyboard_title" msgid="3508591962962814313">"Fyysinen näppäimistö"</string>
     <string name="show_ime" msgid="7322620473198763563">"Näytä virtuaalinen näppäimistö"</string>
-    <string name="show_ime_summary" msgid="3246628154011464373">"Pidä näytöllä, kun fyysinen näppäimistö on aktiivinen."</string>
+    <string name="show_ime_summary" msgid="3246628154011464373">"Pidä näytöllä, kun fyysinen näppäimistö on aktiivinen"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"Pikanäppäinapuri"</string>
-    <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Näytä käytettävissä olevat pikanäppäimet."</string>
+    <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Näytä käytettävissä olevat pikanäppäimet"</string>
     <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Työprofiilin näppäimistöt ja työkalut"</string>
     <string name="virtual_keyboards_for_work_title" msgid="3968291646938204523">"Virtuaalinen näppäimistö työkäyttöön"</string>
     <string name="default_keyboard_layout" msgid="9171704064451242230">"Oletus"</string>
@@ -2070,7 +2072,7 @@
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"Suuri hiiren osoitin"</string>
     <string name="accessibility_disable_animations" msgid="8378441317115710009">"Poista animaatiot"</string>
     <string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"Monoääni"</string>
-    <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"Yhdistä kanavat ääntä toistettaessa."</string>
+    <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"Yhdistä kanavat ääntä toistettaessa"</string>
     <string name="accessibility_toggle_master_balance_title" msgid="8723492001092647562">"Äänitasapaino"</string>
     <string name="accessibility_toggle_master_balance_left_label" msgid="8531986342666527970">"Vasen"</string>
     <string name="accessibility_toggle_master_balance_right_label" msgid="7757024572140589558">"Oikea"</string>
@@ -2277,13 +2279,13 @@
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Ota Virranhallinta käyttöön"</string>
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Ota Virransäästö käyttöön"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Akku voi loppua odotettua aiemmin"</string>
-    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Virransäästö on käytössä"</string>
+    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Virransäästö on päällä"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Joitakin toimintoja voidaan rajoittaa"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Puhelinta on käytetty tavallista enemmän"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Puhelinta käytetty tavallista enemmän"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Tablettia on käytetty tavallista enemmän"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Laitetta on käytetty tavallista enemmän"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Akku voi loppua odotettua aiemmin"</string>
-    <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"Puhelinta on käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nKäytetyimmät sovellukset edellisen latauksen jälkeen:"</string>
+    <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"Puhelinta käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nKäytetyimmät sovellukset edellisen latauksen jälkeen:"</string>
     <string name="battery_tip_dialog_message" product="tablet" msgid="6489981050645444068">"Tablettia on käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nKäytetyimmät sovellukset edellisen latauksen jälkeen:"</string>
     <string name="battery_tip_dialog_message" product="device" msgid="6348123094674390337">"Laitetta on käytetty tavallista enemmän. Akku voi loppua odotettua aiemmin.\n\nKäytetyimmät sovellukset edellisen latauksen jälkeen:"</string>
     <string name="battery_tip_dialog_message_footer" msgid="1118827395267487197">"Sisältää virtaa paljon kuluttavat taustatoiminnot"</string>
@@ -2297,7 +2299,7 @@
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
       <item quantity="other">%2$d sovellusta käyttää paljon akkua taustalla</item>
-      <item quantity="one">%1$s sovellus käyttää paljon akkua taustalla</item>
+      <item quantity="one">%1$s käyttää paljon akkua taustalla</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Nämä sovellukset eivät voi toimia taustalla</item>
@@ -2449,13 +2451,13 @@
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Ei aikataulua"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Perustuu ohjelmaasi"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Perustuu varausprosenttiin"</string>
-    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Virransäästö käynnistyy, jos akku näyttää todennäköisesti loppuvan ennen seuraavaa tavallista lataamista."</string>
-    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Käynnistyy, kun taso on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Virransäästö käynnistyy, jos akku näyttää todennäköisesti loppuvan ennen seuraavaa tavallista lataamista"</string>
+    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Menee päälle kun jäljellä on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Luo aikataulu"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Poista käytöstä, kun ladattu täyteen"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Virransäästö poistetaan käytöstä, kun puhelimen varaus on <xliff:g id="PERCENT">%1$s</xliff:g>."</string>
-    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Virransäästö poistetaan käytöstä, kun tabletin varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
-    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"Virransäästö poistetaan käytöstä, kun laitteen varaus on <xliff:g id="PERCENT">%1$s</xliff:g>."</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Virransäästö menee pois päältä, kun puhelimen varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Virransäästö menee pois päältä, kun tabletin varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"Virransäästö menee pois päältä, kun laitteen varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="2321082163892561703">"Ota käyttöön"</string>
@@ -2464,7 +2466,7 @@
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"Ei koskaan"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"kun akun varaus on <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"Akun varaus prosentteina"</string>
-    <string name="battery_percentage_description" msgid="9219875229166700610">"Näytä akun varaus prosentteina tilapalkissa."</string>
+    <string name="battery_percentage_description" msgid="9219875229166700610">"Näytä akun varaus prosentteina tilapalkissa"</string>
     <string name="process_stats_summary_title" msgid="9189588417488537954">"Käsittelytiedot"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"Käsittelyn tarkat tiedot"</string>
     <string name="app_memory_use" msgid="5126237308545653706">"Muistin käyttö"</string>
@@ -3210,7 +3212,7 @@
     <string name="zen_mode_block_effects_screen_on" msgid="1042489123800404560">"Kun näyttö on päällä"</string>
     <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"Kun näyttö on pois päältä"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"Mykistä ääni ja sammuta värinä"</string>
-    <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"Älä kytke näyttöä päälle"</string>
+    <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"Älä laita näyttöä päälle"</string>
     <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Älä vilkuta merkkivaloa"</string>
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Älä tuo ilmoituksia näytölle"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Piilota näytön yläreunan tilapalkkikuvakkeet"</string>
@@ -3228,8 +3230,8 @@
     <string name="zen_mode_other_options" msgid="7216192179063769057">"muut vaihtoehdot"</string>
     <string name="zen_mode_add" msgid="2533484377786927366">"Lisää"</string>
     <string name="zen_mode_enable_dialog_turn_on" msgid="6396050543542026184">"Ota käyttöön"</string>
-    <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Ota käyttöön nyt"</string>
-    <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Poista käytöstä nyt"</string>
+    <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Laita päälle"</string>
+    <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Laita pois päältä"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"Älä häiritse ‑tila on käytössä <xliff:g id="FORMATTED_TIME">%s</xliff:g> asti."</string>
     <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Älä häiritse ‑tila on käytössä, kunnes poistat sen käytöstä."</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Aikataulu (<xliff:g id="RULE_NAME">%s</xliff:g>) otti Älä häiritse ‑tilan automaattisesti käyttöön."</string>
@@ -3243,7 +3245,7 @@
     <string name="zen_mode_sound_summary_off" msgid="2800265178411749309">"Pois käytöstä"</string>
     <string name="zen_mode_sound_summary_on" msgid="6964666541479146310">"Käytössä"</string>
     <string name="zen_mode_duration_summary_always_prompt" msgid="7642321938427056823">"Kysy aina (paitsi jos se käynnistyy automaattisesti)"</string>
-    <string name="zen_mode_duration_summary_forever" msgid="4563938129424903030">"Kunnes poistat sen käytöstä (paitsi jos se käynnistyy automaattisesti)"</string>
+    <string name="zen_mode_duration_summary_forever" msgid="4563938129424903030">"Kunnes laitat pois päältä (paitsi jos se käynnistyy automaattisesti)"</string>
     <plurals name="zen_mode_duration_summary_time_hours" formatted="false" msgid="8872000022033647725">
       <item quantity="other"><xliff:g id="NUM_HOURS">%d</xliff:g> tuntia (paitsi jos se käynnistyy automaattisesti)</item>
       <item quantity="one">1 tunti (paitsi jos se käynnistyy automaattisesti)</item>
@@ -3319,9 +3321,9 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"Vilkuta valoa"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Lukitusnäytöllä"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Kun työprofiili on lukittu"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Näytä ilmoitusten koko sisältö."</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Näytä ilmoitusten koko sisältö"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Piilota arkaluontoinen sisältö"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Älä näytä ilmoituksia lainkaan."</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Älä näytä ilmoituksia lainkaan"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Miten haluat ilmoitusten näkyvän, kun laite on lukittu?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"Ilmoitukset"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Näytä kaikki työilmoitussisältö"</string>
@@ -3648,9 +3650,9 @@
     <string name="tap_to_wake" msgid="1902991239401652323">"Herätä napauttamalla"</string>
     <string name="tap_to_wake_summary" msgid="8485222120721006793">"Herätä laite napauttamalla näyttöä kahdesti."</string>
     <string name="domain_urls_title" msgid="7939209950373945367">"Linkkien avautuminen"</string>
-    <string name="domain_urls_summary_none" msgid="5401203416941265109">"Älä avaa tuettuja linkkejä."</string>
+    <string name="domain_urls_summary_none" msgid="5401203416941265109">"Älä avaa tuettuja linkkejä"</string>
     <string name="domain_urls_summary_one" msgid="3893975485064803435">"Avaa <xliff:g id="DOMAIN">%s</xliff:g>"</string>
-    <string name="domain_urls_summary_some" msgid="2130534984153210797">"Avaa <xliff:g id="DOMAIN">%s</xliff:g> ja muut URL-osoitteet."</string>
+    <string name="domain_urls_summary_some" msgid="2130534984153210797">"Avaa <xliff:g id="DOMAIN">%s</xliff:g> ja muut URL-osoitteet"</string>
     <string name="domain_urls_apps_summary_off" msgid="1110203970617922543">"Ei tuettuja linkkejä avaavia sovelluksia"</string>
     <plurals name="domain_urls_apps_summary_on" formatted="false" msgid="3571309605151815405">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sovellusta avaa tuettuja linkkejä</item>
@@ -3706,8 +3708,8 @@
     </plurals>
     <string name="high_power_filter_on" msgid="5294209328473386403">"Ei optimointia"</string>
     <string name="high_power_on" msgid="3573501822510580334">"Ei optimointia"</string>
-    <string name="high_power_off" msgid="5906679734326490426">"Akun käyttöä optimoidaan."</string>
-    <string name="high_power_system" msgid="739584574711292753">"Akun käytön optimointi ei ole käytettävissä."</string>
+    <string name="high_power_off" msgid="5906679734326490426">"Akun käyttöä optimoidaan"</string>
+    <string name="high_power_system" msgid="739584574711292753">"Akun käytön optimointi ei käytettävissä"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Älä optimoi akun käyttöä. Tämä voi kuluttaa akkua nopeammin."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Annetaanko sovellukselle oikeus toimia aina taustalla?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"Jos <xliff:g id="APP_NAME">%1$s</xliff:g> saa toimia aina taustalla, laitteen akku voi kulua loppuun nopeammin. \n\nVoit muuttaa tätä asetusta myöhemmin kohdassa Asetukset &gt; Sovellukset ja ilmoitukset."</string>
@@ -3757,11 +3759,11 @@
     <string name="background_check_pref" msgid="664081406854758392">"Taustatarkistus"</string>
     <string name="background_check_title" msgid="4136736684290307970">"Täydet taustakäyttöoikeudet"</string>
     <string name="assist_access_context_title" msgid="2274614501747710439">"Käytä näytön tekstiä"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"Salli avustajasovelluksen käsitellä näytön sisältöä tekstinä."</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"Salli avustajasovelluksen käsitellä näytön sisältöä tekstinä"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"Käytä kuvakaappausta"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Salli avustajasovelluksen käsitellä näytön kuvaa."</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Salli avustajasovelluksen käsitellä näytön kuvaa"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Näytön välkytys"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"Välkytä näytön reunoja, kun avustajasovellus käyttää näytöllä tai kuvakaappauksessa näkyvää tekstiä."</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"Välkytä näytön reunoja, kun avustajasovellus käyttää näytöllä tai kuvakaappauksessa näkyvää tekstiä"</string>
     <string name="assist_footer" msgid="7030121180457472165">"Avustajasovellukset voivat auttaa sinua näytöllä näkyvien tietojen perusteella. Jotkin sovellukset tukevat myös käynnistysohjelma- ja äänisyötepalveluja, joten ne voivat tarjota sinulle integroitua apua."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Keskimääräinen muistin käyttö"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Muistin enimmäiskäyttö"</string>
@@ -4000,9 +4002,9 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"Lisää uusi sormenjälki"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"Avaa lukitus toisella sormella."</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"Käytössä"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Käynnistyy, kun taso on <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Menee päälle kun jäljellä on <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"Pois käytöstä"</string>
-    <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Ota käyttöön nyt"</string>
+    <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Laita päälle"</string>
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Sammuta nyt"</string>
     <string name="not_battery_optimizing" msgid="2616044774307734160">"Akun käytön optimointi ei käytössä"</string>
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Estä vastausten ja muun tekstin kirjoittaminen ilmoituksiin, kun laite on lukittu."</string>
@@ -4052,8 +4054,8 @@
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Peittokuvan piirto epäonnistui"</string>
     <string name="special_access" msgid="1453926335914696206">"Sovellusten erikoiskäyttö"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sovelluksen datankäyttöä ei rajoiteta.</item>
-      <item quantity="one">1 sovelluksen datankäyttöä ei rajoiteta.</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> sovelluksen datankäyttöä ei rajoiteta</item>
+      <item quantity="one">1 sovelluksen datankäyttöä ei rajoiteta</item>
     </plurals>
     <string name="special_access_more" msgid="7086690625048471400">"Katso lisää"</string>
     <string name="confirm_convert_to_fbe_warning" msgid="4972595831034280189">"Haluatko varmasti poistaa käyttäjätiedot ja ottaa tiedostojen salauksen käyttöön?"</string>
@@ -4148,7 +4150,7 @@
     <string name="oem_lock_info_message" msgid="5090850412279403901">"Käynnistä laite uudelleen, niin voit ottaa laitteen turvaominaisuuden käyttöön."</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7360443072390107772">"<xliff:g id="SIZE">%1$s</xliff:g> tilaa vapautettu yhteensä\n\nKäytetty viimeksi <xliff:g id="DATE">%2$s</xliff:g>"</string>
     <string name="web_action_enable_title" msgid="4462106633708675959">"Pikasovellukset"</string>
-    <string name="web_action_enable_summary" msgid="1729016644691793085">"Avaa linkkejä sovelluksessa, vaikka sitä ei ole asennettu."</string>
+    <string name="web_action_enable_summary" msgid="1729016644691793085">"Avaa linkkejä sovelluksessa, vaikka sitä ei ole asennettu"</string>
     <string name="web_action_section_title" msgid="5563229447734734662">"Pikasovellukset"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"Pikasovellusvalinnat"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"Asennetut sovellukset"</string>
@@ -4158,7 +4160,7 @@
     <string name="auto_sync_account_title" msgid="2394463123733529506">"Synkronoi tiedot automaattisesti"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"Synkronoi henkilökohtaiset tiedot automaattisesti"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"Synkronoi työtiedot automaattisesti"</string>
-    <string name="auto_sync_account_summary" msgid="6316230976974033772">"Salli sovellusten päivittää tietoja automaattisesti."</string>
+    <string name="auto_sync_account_summary" msgid="6316230976974033772">"Salli sovellusten päivittää tietoja automaattisesti"</string>
     <string name="account_sync_title" msgid="1570164819114297154">"Tilin synkronointi"</string>
     <string name="account_sync_summary_some_on" msgid="1934556869158274053">"Synkronointi käytössä <xliff:g id="ID_1">%1$d</xliff:g>/<xliff:g id="ID_2">%2$d</xliff:g> kohteella"</string>
     <string name="account_sync_summary_all_on" msgid="3634161204232431700">"Synkronointi käytössä kaikilla kohteilla"</string>
@@ -4383,7 +4385,7 @@
     <string name="carrier_settings_title" msgid="7989949967020825268">"Operaattoriasetukset"</string>
     <string name="cdma_lte_data_service" msgid="8996857851150069339">"Määritä datapalvelu"</string>
     <string name="mobile_data_settings_title" msgid="3439626666647519547">"Mobiilidata"</string>
-    <string name="mobile_data_settings_summary" msgid="6492798151325636912">"Käytä mobiiliverkon dataa."</string>
+    <string name="mobile_data_settings_summary" msgid="6492798151325636912">"Käytä mobiiliverkon dataa"</string>
     <string name="mobile_data_settings_summary_auto_switch" msgid="3665863214578471494">"Puhelin vaihtaa automaattisesti tähän operaattoriin, kun se on kantoalueella."</string>
     <string name="calls_preference" msgid="2076353032705811243">"Puheluasetus"</string>
     <string name="sms_preference" msgid="8449270011976880">"Tekstiviestiasetus"</string>
diff --git a/tests/CarDeveloperOptions/res/values-fr-rCA/arrays.xml b/tests/CarDeveloperOptions/res/values-fr-rCA/arrays.xml
index 40e4daa..066375c 100644
--- a/tests/CarDeveloperOptions/res/values-fr-rCA/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-fr-rCA/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"fonctionner en arrière-plan"</item>
     <item msgid="6423861043647911030">"volume d\'accessibilité"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Position"</item>
+    <item msgid="6656077694190491067">"Position"</item>
+    <item msgid="8790228218278477369">"Position"</item>
+    <item msgid="7836406246005211990">"Vibreur"</item>
+    <item msgid="3951439024549922598">"Lire des contacts"</item>
+    <item msgid="8802152411647068">"Modifier les contacts"</item>
+    <item msgid="229544934599698735">"Lire le journal d\'appels"</item>
+    <item msgid="7396102294405899613">"Modifier le journal d\'appels"</item>
+    <item msgid="3597797992398484655">"Accéder à l\'agenda"</item>
+    <item msgid="2705975774250907343">"Modifier l\'agenda"</item>
+    <item msgid="4668747371441932697">"Position"</item>
+    <item msgid="1487578921720243646">"Publier des notifications"</item>
+    <item msgid="4636080349724146638">"Position"</item>
+    <item msgid="673510900286463926">"Appeler"</item>
+    <item msgid="542083422784609790">"Lire des messages texte ou des messages multimédias"</item>
+    <item msgid="1033780373029588436">"Écrire des messages texte ou des messages multimédias"</item>
+    <item msgid="5647111115517787488">"Recevoir des SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Recevoir des SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Recevoir des SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Recevoir des SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Envoyer des SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Lire des messages texte ou des messages multimédias"</item>
+    <item msgid="6555678522277865572">"Écrire des messages texte ou des messages multimédias"</item>
+    <item msgid="6981734935578130884">"Modifier les paramètres"</item>
+    <item msgid="8705854389991425629">"Dessiner par dessus"</item>
+    <item msgid="5861356020344153651">"Accéder aux notifications"</item>
+    <item msgid="78432174621628659">"Appareil photo"</item>
+    <item msgid="3986116419882154794">"Enregistrer des fichiers audio"</item>
+    <item msgid="4516840825756409490">"Lire le fichier audio"</item>
+    <item msgid="6811712502798183957">"Lire le presse-papiers"</item>
+    <item msgid="2780369012602289114">"Modifier le presse-papiers"</item>
+    <item msgid="2331359440170850868">"Boutons multimédias"</item>
+    <item msgid="6133599737122751231">"Priorité audio"</item>
+    <item msgid="6844485713404805301">"Volume général"</item>
+    <item msgid="1600379420669104929">"Volume de la voix"</item>
+    <item msgid="6296768210470214866">"Volume de la sonnerie"</item>
+    <item msgid="510690696071629241">"Volume du contenu multimédia"</item>
+    <item msgid="406861638631430109">"Volume de l\'alarme"</item>
+    <item msgid="4715864795872233884">"Volume des notifications"</item>
+    <item msgid="2311478519251301183">"Volume Bluetooth"</item>
+    <item msgid="5133991377896747027">"Maintenir activé"</item>
+    <item msgid="2464189519136248621">"Lieu"</item>
+    <item msgid="2062677934050803037">"Position"</item>
+    <item msgid="1735171933192715957">"Obtenir les statistiques d\'utilisation"</item>
+    <item msgid="1014093788778383554">"Activer/Désactiver le micro"</item>
+    <item msgid="4199297950608622850">"Afficher le message"</item>
+    <item msgid="2527962435313398821">"Projeter des contenus multimédias"</item>
+    <item msgid="5117506254221861929">"Activer le RPV"</item>
+    <item msgid="8291198322681891160">"Définir le fond d\'écran"</item>
+    <item msgid="7106921284621230961">"Structure d\'assistance"</item>
+    <item msgid="4496533640894624799">"Saisie d\'écran d\'assistance"</item>
+    <item msgid="2598847264853993611">"Lire l\'état du téléphone"</item>
+    <item msgid="9215610846802973353">"Ajouter des messages vocaux"</item>
+    <item msgid="9186411956086478261">"Utiliser le protocole SIP"</item>
+    <item msgid="6884763100104539558">"Traiter l\'appel sortant"</item>
+    <item msgid="125513972170580692">"Empreintes digitales"</item>
+    <item msgid="2556071024281275619">"Capteurs corporels"</item>
+    <item msgid="617168514928339387">"Lire les messages de diffusion cellulaire"</item>
+    <item msgid="7134693570516523585">"Créer une position fictive"</item>
+    <item msgid="7224489175375229399">"Lire les données de l\'espace de stockage"</item>
+    <item msgid="8472735063903258202">"Écrire dans les données de l\'espace de stockage"</item>
+    <item msgid="4069276819909595110">"Activer l\'écran"</item>
+    <item msgid="1228338896751121025">"Obtenir les comptes"</item>
+    <item msgid="3181581793459233672">"Fonctionner en arrière-plan"</item>
+    <item msgid="2340936043025374076">"Volume d\'accessibilité"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Court"</item>
     <item msgid="4816511817309094890">"Moyenne"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Ne jamais autoriser"</item>
     <item msgid="8184570120217958741">"Toujours autoriser"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Modérée"</item>
+    <item msgid="1555861583162930714">"Faible"</item>
+    <item msgid="1719683776264798117">"Critique"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normale"</item>
+    <item msgid="6107138933849816768">"Modérée"</item>
+    <item msgid="182695359839047859">"Faible"</item>
+    <item msgid="8577246509202964244">"Critique"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Permanent"</item>
     <item msgid="167418068739176448">"Activité principale"</item>
diff --git a/tests/CarDeveloperOptions/res/values-fr-rCA/strings.xml b/tests/CarDeveloperOptions/res/values-fr-rCA/strings.xml
index 67dcd0d..87fea87 100644
--- a/tests/CarDeveloperOptions/res/values-fr-rCA/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-fr-rCA/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Agrandissez ou réduisez le texte affiché."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Rapetisser"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Agrandir"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Exemple de texte"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Le Magicien d\'Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chapitre 11 : La merveilleuse cité d\'émeraude d\'Oz"</string>
@@ -212,7 +211,7 @@
     <string name="proxy_url_title" msgid="882042361706435904">"URL config. auto mand. : "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Bande passante de téléchargement (kb/s) :"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Bande passante de téléversement (kb/s) :"</string>
-    <string name="radio_info_signal_location_label" msgid="6788144906873498013">"Données de la position de la cellule (discontinuées) :"</string>
+    <string name="radio_info_signal_location_label" msgid="6788144906873498013">"Données de la position de la cellule (obsolètes) :"</string>
     <string name="radio_info_phy_chan_config" msgid="1184401689381480522">"Configuration du canal physique LTE :"</string>
     <string name="radio_info_cell_info_refresh_rate" msgid="3557422342215875913">"Taux d\'actualisation des données de la cellule :"</string>
     <string name="radio_info_cellinfo_label" msgid="632796561627452215">"Données des mesures de toutes les cellules :"</string>
@@ -419,7 +418,7 @@
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Terminé"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Util. votre visage pour"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Déverr. l\'appareil"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Connex. et paiements dans applis"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Connexion applis et paiements"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Yeux ouverts pour déverrouillage"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Lorsque vous utilisez l\'authent. visage, vos yeux doivent être ouverts"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Toujours demander une confirmation"</string>
@@ -596,20 +595,20 @@
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"Désactiver le verrouillage de l\'écran"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"Supprimer la protection de l\'appareil?"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"Supprimer la protection du profil?"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre schéma."</string>
-    <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre schéma.<xliff:g id="EMPTY_LINE">
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre schéma."</string>
+    <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre schéma.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>Vos empreintes digitales enregistrées seront également supprimées de cet appareil et vous ne pourrez pas déverrouiller votre téléphone, autoriser des achats ni vous connecter à des applications avec celles-ci."</string>
-    <string name="unlock_disable_frp_warning_content_pin" msgid="6760473271034592796">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre NIP."</string>
-    <string name="unlock_disable_frp_warning_content_pin_fingerprint" msgid="4384632309103635233">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre NIP.<xliff:g id="EMPTY_LINE">
+    <string name="unlock_disable_frp_warning_content_pin" msgid="6760473271034592796">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre NIP."</string>
+    <string name="unlock_disable_frp_warning_content_pin_fingerprint" msgid="4384632309103635233">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre NIP.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>Vos empreintes digitales enregistrées seront également supprimées de cet appareil et vous ne pourrez pas déverrouiller votre téléphone, autoriser des achats ni vous connecter à des applications avec celles-ci."</string>
-    <string name="unlock_disable_frp_warning_content_password" msgid="854665587186358170">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre mot de passe."</string>
-    <string name="unlock_disable_frp_warning_content_password_fingerprint" msgid="218143910981979545">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre mot de passe. <xliff:g id="EMPTY_LINE">
+    <string name="unlock_disable_frp_warning_content_password" msgid="854665587186358170">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre mot de passe."</string>
+    <string name="unlock_disable_frp_warning_content_password_fingerprint" msgid="218143910981979545">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre mot de passe. <xliff:g id="EMPTY_LINE">
 
 </xliff:g>Vos empreintes digitales enregistrées seront également supprimées de cet appareil et vous ne pourrez pas déverrouiller votre téléphone, autoriser des achats ni vous connecter à des applications avec celles-ci."</string>
-    <string name="unlock_disable_frp_warning_content_unknown" msgid="3570135744390201244">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran."</string>
-    <string name="unlock_disable_frp_warning_content_unknown_fingerprint" msgid="5775815077478538855">"Les fonctions de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran.<xliff:g id="EMPTY_LINE">
+    <string name="unlock_disable_frp_warning_content_unknown" msgid="3570135744390201244">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran."</string>
+    <string name="unlock_disable_frp_warning_content_unknown_fingerprint" msgid="5775815077478538855">"Les fonctionnalités de protection de l\'appareil ne fonctionneront pas sans votre verrouillage d\'écran.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>Vos empreintes digitales enregistrées seront également supprimées de cet appareil et vous ne pourrez pas déverrouiller votre téléphone, autoriser des achats ni vous connecter à des applications avec celles-ci."</string>
     <string name="unlock_disable_frp_warning_content_pattern_profile" msgid="2369992898062808499">"Les fonctions de protection du profil ne fonctionneront pas sans votre schéma."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Cellulaire"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Si aucun réseau Wi‑Fi n\'est accessible, utiliser le réseau cellulaire"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Si le réseau cellulaire n\'est pas accessible, utiliser le Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Appeler sur réseau Wi‑Fi. Si le Wi‑Fi est interr., l\'appel prendra fin."</string>
@@ -1796,7 +1798,7 @@
     <string name="install_all_warning" product="device" msgid="9141585291103603515">"Votre appareil et vos données personnelles sont plus vulnérables aux attaques provenant d\'applications inconnues. En installant des applications provenant de cette source, vous acceptez d\'être responsable de tout dommage causé à votre appareil ou de toute perte de données pouvant découler de l\'utilisation de telles applications."</string>
     <string name="advanced_settings" msgid="6282069364060968122">"Paramètres avancés"</string>
     <string name="advanced_settings_summary" msgid="5912237062506771716">"Activer d\'autres paramètres"</string>
-    <string name="application_info_label" msgid="3886253474964599105">"Infos sur l\'application"</string>
+    <string name="application_info_label" msgid="3886253474964599105">"Infos sur les applis"</string>
     <string name="storage_label" msgid="1109537840103290384">"Stockage"</string>
     <string name="auto_launch_label" msgid="47089737922907379">"Ouvert par défaut"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"Valeurs par défaut"</string>
@@ -2275,9 +2277,9 @@
     <string name="battery_tip_smart_battery_title" product="tablet" msgid="203494973250969040">"Améliorer l\'autonomie de la tablette"</string>
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Améliorer l\'autonomie de l\'appareil"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Activer le gestionnaire de pile"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Activer la fonction Économie d\'énergie"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Activer l\'économiseur de pile"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"La pile pourrait s\'épuiser plus tôt que d\'habitude"</string>
-    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"La fonction Économie d\'énergie est activée"</string>
+    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Économiseur de pile activé"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Certaines fonctionnalités pourraient être limitées"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Le téléphone a été sollicité plus que d\'habitude"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"La tablette a été sollicitée plus que d\'habitude"</string>
@@ -2315,9 +2317,9 @@
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Cette application pourra utiliser la pile en arrière-plan. Cela pourrait épuiser la pile plus rapidement."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Supprimer"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Annuler"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre téléphone vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économie d\'énergie si la pile est trop faible."</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre tablette vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économie d\'énergie si la pile est trop faible."</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre appareil vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économie d\'énergie si la pile est trop faible."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre téléphone vous suggérera des actions à essayer.\n\nVous pouvez toujours activer la fonction Économiseur de pile si la pile est trop faible."</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre tablette vous suggérera des actions à essayer.\n\nVous pouvez toujours activer l\'économiseur de pile si la pile est trop faible."</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Vos applications utilisent une quantité normale d\'énergie. Si les applications utilisent trop d\'énergie, votre appareil vous suggérera des actions à essayer.\n\nVous pouvez toujours activer l\'économiseur de pile si la pile est trop faible."</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"Gestionnaire de pile"</string>
     <string name="smart_battery_title" msgid="4919670408532804351">"Gérer les applications automatiquement"</string>
     <string name="smart_battery_summary" msgid="640027046471198174">"Restreindre l\'usage de la pile pour les applications que vous n\'utilisez pas souvent"</string>
@@ -2444,7 +2446,7 @@
     <string name="process_kernel_label" msgid="4175060316414593760">"Système d\'exploitation Android"</string>
     <string name="process_mediaserver_label" msgid="8591722404282619153">"Serveur multimédia"</string>
     <string name="process_dex2oat_label" msgid="8249082119748556085">"Optimisation des applications"</string>
-    <string name="battery_saver" msgid="3989710213758938398">"Économie d\'énergie"</string>
+    <string name="battery_saver" msgid="3989710213758938398">"Économiseur de pile"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"Activer automatiquement"</string>
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Aucun horaire"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Selon votre routine"</string>
@@ -2669,7 +2671,7 @@
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"Interrompues à la limite"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"Synchronisation auto données"</string>
     <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Synchro auto des données perso"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Synchro auto données profess."</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Synchro auto des données pros"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"Changer le cycle..."</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"Jour du mois de réinitialisation du cycle utilisation données :"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"Aucune donnée utilisée par les applications pendant cette période."</string>
@@ -2749,8 +2751,8 @@
     <string name="vpn_ipsec_server_cert" msgid="3066696943831527934">"Certificat de serveur IPSec"</string>
     <string name="vpn_show_options" msgid="7672984921872882859">"Afficher les options avancées"</string>
     <string name="vpn_search_domains" msgid="8469394307693909080">"Domaines de recherche DNS"</string>
-    <string name="vpn_dns_servers" msgid="3017453300909321239">"Serveurs DNS (Ex. 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="3393989650778663742">"Itinéraires transfert (Ex. 10.0.0.0/8)"</string>
+    <string name="vpn_dns_servers" msgid="3017453300909321239">"Serveurs DNS (p. ex. 8.8.8.8)"</string>
+    <string name="vpn_routes" msgid="3393989650778663742">"Itinéraires transfert (p. ex. 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="5357878823189445042">"Nom d\'utilisateur"</string>
     <string name="vpn_password" msgid="5325943601523662246">"Mot de passe"</string>
     <string name="vpn_save_login" msgid="6215503139606646915">"Enregistrer les informations de compte"</string>
@@ -3724,7 +3726,7 @@
     <string name="sharing_remote_bugreport_dialog_message" msgid="3814787466701526359">"Ce rapport de bogue est partagé avec votre administrateur informatique. Pour en savoir plus, communiquez avec lui."</string>
     <string name="share_remote_bugreport_action" msgid="8600797271670537888">"Partager"</string>
     <string name="decline_remote_bugreport_action" msgid="706319275774199033">"Refuser"</string>
-    <string name="usb_use_charging_only" msgid="2344625733377110164">"Pas de transfert de données"</string>
+    <string name="usb_use_charging_only" msgid="2344625733377110164">"Aucun transfert de données"</string>
     <string name="usb_use_charging_only_desc" msgid="3283518562582478950">"Charger cet appareil seulement"</string>
     <string name="usb_use_power_only" msgid="6595783381323810697">"Charger l\'appareil connecté"</string>
     <string name="usb_use_file_transfers" msgid="6153021302176151884">"Transfert de fichiers"</string>
@@ -3891,7 +3893,7 @@
     <string name="condition_zen_title" msgid="2128184708916052585">"Mode Ne pas déranger activé"</string>
     <string name="condition_zen_summary_phone_muted" msgid="4396050395522974654">"Téléphone en sourdine"</string>
     <string name="condition_zen_summary_with_exceptions" msgid="3435216391993785818">"Avec des exceptions"</string>
-    <string name="condition_battery_title" msgid="6704870010912986274">"Économie d\'énergie activée"</string>
+    <string name="condition_battery_title" msgid="6704870010912986274">"Économiseur de pile activé"</string>
     <string name="condition_battery_summary" msgid="1236078243905690620">"Fonctionnalités restreintes"</string>
     <string name="condition_cellular_title" msgid="6605277435894307935">"Données cellulaires désactivées"</string>
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Internet est uniquement accessible par Wi‑Fi"</string>
@@ -3940,7 +3942,7 @@
     <string name="cell_data_template" msgid="5473177306229738078">"Données cellulaires utilisées : <xliff:g id="AMOUNT">^1</xliff:g>"</string>
     <string name="wifi_data_template" msgid="3146090439147042068">"Données Wi-Fi : <xliff:g id="AMOUNT">^1</xliff:g>"</string>
     <string name="ethernet_data_template" msgid="6414118030827090119">"Données Ethernet : <xliff:g id="AMOUNT">^1</xliff:g>"</string>
-    <string name="billing_cycle" msgid="5740717948341713190">"Avertissement et limites données"</string>
+    <string name="billing_cycle" msgid="5740717948341713190">"Avertissement et limites de données"</string>
     <string name="app_usage_cycle" msgid="213483325132959663">"Cycle d\'util. données d\'appli."</string>
     <string name="cell_data_warning" msgid="8902740337286652689">"Seuil à partir duquel un avertissement relatif à la consommation des données est envoyé : <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"Limite d\'utilisation de données : <xliff:g id="ID_1">^1</xliff:g>"</string>
@@ -4308,7 +4310,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Gestion du Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Autoriser l\'application à gérer le Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Autorisez cette application à activer ou à désactiver le Wi-Fi, à rechercher les réseaux Wi-Fi et à s\'y connecter, à ajouter et à supprimer des réseaux ou à créer un point d\'accès local uniquement"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Faire jouer les médias vers"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Faire jouer les contenus multimédias sur"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Cet appareil"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Téléphone"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Tablette"</string>
diff --git a/tests/CarDeveloperOptions/res/values-fr/arrays.xml b/tests/CarDeveloperOptions/res/values-fr/arrays.xml
index 27ba552..0a5df1f 100644
--- a/tests/CarDeveloperOptions/res/values-fr/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-fr/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Ne jamais autoriser"</item>
     <item msgid="8184570120217958741">"Toujours autoriser"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moyenne"</item>
+    <item msgid="1555861583162930714">"Faible"</item>
+    <item msgid="1719683776264798117">"Critique"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normale"</item>
+    <item msgid="6107138933849816768">"Moyenne"</item>
+    <item msgid="182695359839047859">"Faible"</item>
+    <item msgid="8577246509202964244">"Critique"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Permanent"</item>
     <item msgid="167418068739176448">"Activité principale"</item>
diff --git a/tests/CarDeveloperOptions/res/values-fr/strings.xml b/tests/CarDeveloperOptions/res/values-fr/strings.xml
index e806a9f..2d4038f 100644
--- a/tests/CarDeveloperOptions/res/values-fr/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-fr/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Agrandissez ou réduisez la taille du texte affiché."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Réduire"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Agrandir"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Exemple de texte"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Le Magicien d\'Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chapitre 11 : La merveilleuse cité d\'émeraude"</string>
@@ -549,7 +548,7 @@
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Protéger la tablette"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Protéger l\'appareil"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Protégez votre téléphone"</string>
-    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Pour plus de sécurité, définissez un mode de verrouillage d\'écran secondaire"</string>
+    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Pour plus de sécurité, définissez une méthode secondaire pour verrouiller l\'écran"</string>
     <string name="setup_lock_settings_picker_message" product="tablet" msgid="7230799135599877804">"Activez les fonctionnalités de protection de l\'appareil pour empêcher d\'autres personnes d\'utiliser cette tablette sans votre autorisation. Choisissez la méthode de verrouillage de l\'écran à utiliser."</string>
     <string name="setup_lock_settings_picker_message" product="device" msgid="2098404520816295371">"Activez les fonctionnalités de protection de l\'appareil pour empêcher d\'autres personnes d\'utiliser cet appareil sans votre autorisation. Choisissez la méthode de verrouillage de l\'écran à utiliser."</string>
     <string name="setup_lock_settings_picker_message" product="default" msgid="2003984443953672040">"Activez les fonctionnalités de protection de l\'appareil pour empêcher d\'autres personnes d\'utiliser ce téléphone sans votre autorisation. Choisissez la méthode de verrouillage de l\'écran à utiliser."</string>
@@ -637,7 +636,7 @@
     <string name="unlock_footer_low_complexity_requested" msgid="513212093196833566">"<xliff:g id="APP_NAME">%1$s</xliff:g> recommande d\'utiliser un nouveau schéma, code ou mot de passe et risque de ne pas fonctionner comme prévu si vous n\'en définissez pas"</string>
     <string name="unlock_footer_none_complexity_requested" msgid="1669550050597044896">"<xliff:g id="APP_NAME">%1$s</xliff:g> recommande d\'utiliser un nouveau verrouillage d\'écran"</string>
     <string name="lock_failed_attempts_before_wipe" msgid="7565412834122130877">"Réessayez. Tentative <xliff:g id="CURRENT_ATTEMPTS">%1$d</xliff:g> sur <xliff:g id="TOTAL_ATTEMPTS">%2$d</xliff:g>."</string>
-    <string name="lock_last_attempt_before_wipe_warning_title" msgid="7853820095898368793">"Vos données seront supprimées"</string>
+    <string name="lock_last_attempt_before_wipe_warning_title" msgid="7853820095898368793">"Risque de perte des données"</string>
     <string name="lock_last_pattern_attempt_before_wipe_device" msgid="1021644947949306054">"Si vous dessinez un schéma incorrect lors de la prochaine tentative, les données de cet appareil seront supprimées"</string>
     <string name="lock_last_pin_attempt_before_wipe_device" msgid="3823600293847594141">"Si vous saisissez un code incorrect lors de la prochaine tentative, les données de cet appareil seront supprimées"</string>
     <string name="lock_last_password_attempt_before_wipe_device" msgid="3548966006264835462">"Si vous saisissez un mot de passe incorrect lors de la prochaine tentative, les données de cet appareil seront supprimées"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Si le réseau Wi‑Fi n\'est pas disponible, utilisez le réseau mobile"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Si le réseau mobile n\'est pas disponible, utiliser le réseau Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Appel via le Wi-Fi. Si vous perdez le Wi‑Fi, l\'appel se terminera."</string>
@@ -1183,7 +1185,7 @@
     <string name="brightness" msgid="7309120144111305275">"Niveau de luminosité"</string>
     <string name="brightness_title" msgid="5660190946911149690">"Luminosité"</string>
     <string name="brightness_summary" msgid="8687101964451818730">"Régler la luminosité de l\'écran"</string>
-    <string name="auto_brightness_title" msgid="908511534369820426">"Adaptation de la luminosité"</string>
+    <string name="auto_brightness_title" msgid="908511534369820426">"Luminosité adaptative"</string>
     <string name="auto_brightness_summary_on" msgid="121488862610275737">"Activée"</string>
     <string name="auto_brightness_summary_off" msgid="8569141123211510256">"Désactivé"</string>
     <string name="auto_brightness_summary_very_low" msgid="7625647285740629347">"Niveau de luminosité préféré très faible"</string>
@@ -1608,7 +1610,7 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"Veuillez patienter..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"Paramètres d\'appel"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Messagerie vocale, transferts d\'appel, mise en attente, numéro de l\'appelant"</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Partage connexion Bluetooth par USB"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Partage de connexion via USB"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Point d\'accès Wi-Fi mobile"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Partage connexion Bluetooth"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Partage de connexion"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Insérez la carte SIM, puis redémarrez."</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Connectez-vous à Internet."</string>
     <string name="location_title" msgid="8664674161765477168">"Ma position"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Emplacement du profil pro"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Position du profil pro"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Autorisation des applications"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"La localisation est désactivée"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"Vibreur de la sonnerie"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"Vibration au toucher"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Utiliser le service"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Corriger les couleurs"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Utiliser la correction des couleurs"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Utiliser les sous-titres"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Continuer"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Appareils auditifs"</string>
@@ -2450,7 +2452,7 @@
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"En fonction de vos habitudes"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"En fonction du pourcentage de batterie"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"L\'économiseur de batterie s\'activera si l\'autonomie restante risque d\'être insuffisante pour tenir jusqu\'au moment où vous mettez généralement votre téléphone en charge"</string>
-    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"S\'activera à <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"S\'active à <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Paramétrer l\'économiseur de batterie"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Désactiver une fois la batterie complètement chargée"</string>
     <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"L\'économiseur de batterie se désactive lorsque votre téléphone atteint un niveau de charge de <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
@@ -2464,7 +2466,7 @@
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"Jamais"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"niveau de la batterie : <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"Pourcentage de la batterie"</string>
-    <string name="battery_percentage_description" msgid="9219875229166700610">"Afficher le pourcentage de la batterie dans la barre d\'état"</string>
+    <string name="battery_percentage_description" msgid="9219875229166700610">"Afficher dans la barre d\'état"</string>
     <string name="process_stats_summary_title" msgid="9189588417488537954">"Statistiques relatives aux processus"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"Statistiques détaillées relatives aux processus en cours d\'exécution"</string>
     <string name="app_memory_use" msgid="5126237308545653706">"Utilisation de la mémoire"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Sauf si une autre application de paiement est ouverte"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Application à utiliser pour le paiement sans contact :"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Paiement à un terminal"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Configurez une application de paiement. Il suffit ensuite de poser l\'arrière de votre téléphone sur n\'importe quel terminal disposant du symbole Sans contact."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Configurez une application de paiement. Il suffit ensuite d\'approcher l\'arrière de votre appareil de n\'importe quel terminal disposant du symbole Sans contact."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"OK"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Plus..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Définir comme mode de paiement prioritaire ?"</string>
@@ -3306,11 +3308,11 @@
     <string name="notification_badging_title" msgid="6311699476970264712">"Autoriser les pastilles de notification"</string>
     <string name="notification_bubbles_title" msgid="9196562435741861317">"Bulles"</string>
     <string name="notification_bubbles_summary" msgid="4624512775901949578">"Accéder rapidement au contenu des applications grâce aux raccourcis flottants"</string>
-    <string name="bubbles_feature_education" msgid="8979109826818881018">"Certaines notifications ainsi que d\'autres contenus peuvent s\'afficher à l\'écran sous forme de bulles. Pour ouvrir une bulle, appuyez dessus. Pour l\'ignorer, faites-la glisser vers le bas de l\'écran."</string>
+    <string name="bubbles_feature_education" msgid="8979109826818881018">"Certaines notifications et d\'autres contenus peuvent s\'afficher à l\'écran sous forme de bulles. Pour ouvrir une bulle, appuyez dessus. Pour l\'ignorer, faites-la glisser vers le bas de l\'écran."</string>
     <string name="bubbles_app_toggle_title" msgid="6401217027603326439">"Bulles"</string>
     <string name="bubbles_app_toggle_summary" msgid="7707611139796553855">"Autoriser <xliff:g id="APP_NAME">%1$s</xliff:g> à afficher certaines notifications sous forme de bulles"</string>
     <string name="bubbles_feature_disabled_dialog_title" msgid="3375452386012079293">"Activer les bulles"</string>
-    <string name="bubbles_feature_disabled_dialog_text" msgid="326945485806386477">"Avant d\'activer les bulles pour cette application, vous devez les activer pour votre appareil. Ceci a une incidence sur les autres applications dans lesquelles vous avez déjà activé les bulles."</string>
+    <string name="bubbles_feature_disabled_dialog_text" msgid="326945485806386477">"Pour activer les bulles dans cette application, vous devez d\'abord les activer pour votre appareil. Ceci a une incidence sur les autres applications dans lesquelles vous avez déjà activé les bulles."</string>
     <string name="bubbles_feature_disabled_button_approve" msgid="6661464849674493351">"Activer pour l\'appareil"</string>
     <string name="bubbles_feature_disabled_button_cancel" msgid="4807286844588486198">"Annuler"</string>
     <string name="swipe_direction_title" msgid="7535031630668873009">"Actions associées au balayage"</string>
@@ -3518,7 +3520,7 @@
     <string name="zen_mode_starred_callers" msgid="1317376207713013472">"contacts favoris"</string>
     <string name="zen_mode_repeat_callers" msgid="1435309867554692340">"Appels répétés"</string>
     <string name="zen_mode_repeat_callers_list" msgid="2750270907597457279">"appelants fréquents"</string>
-    <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"Autoriser les appelants fréquents"</string>
+    <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"Autoriser les appels répétés"</string>
     <string name="zen_mode_calls_summary_one" msgid="8327371053236689649">"Autoriser les appels de <xliff:g id="CALLER_TYPE">%1$s</xliff:g>"</string>
     <string name="zen_mode_calls_summary_two" msgid="9017678770532673578">"Autoriser les appels de <xliff:g id="CALLER_TYPE">%1$s</xliff:g> et <xliff:g id="CALLERT_TPYE">%2$s</xliff:g>"</string>
     <string name="zen_mode_repeat_callers_summary" msgid="1752513516040525545">"Si la même personne appelle deux fois en <xliff:g id="MINUTES">%d</xliff:g> minutes"</string>
@@ -4000,7 +4002,7 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"Ajouter une empreinte digitale"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"Déverrouiller avec un autre doigt"</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"Activé"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Activer à <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"S\'active à <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"Désactivé"</string>
     <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Activer maintenant"</string>
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Désactiver maintenant"</string>
@@ -4129,7 +4131,7 @@
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Pour afficher l\'heure, les notifications et d\'autres informations, saisissez votre téléphone."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Pour afficher l\'heure, les notifications et d\'autres informations, saisissez votre tablette."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Pour afficher l\'heure, les notifications et d\'autres informations, saisissez votre appareil."</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Appuyer pour vérifier le téléphone"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Appuyer pour consulter le téléphone"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Appuyer pour vérifier la tablette"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Appuyer pour vérifier l\'appareil"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Pour afficher l\'heure, les notifications et d\'autres informations, appuyez sur l\'écran."</string>
diff --git a/tests/CarDeveloperOptions/res/values-gl/arrays.xml b/tests/CarDeveloperOptions/res/values-gl/arrays.xml
index 905bdc7..b3e835e 100644
--- a/tests/CarDeveloperOptions/res/values-gl/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-gl/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 minutos"</item>
     <item msgid="6677424950124253938">"30 minutos"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Nunca"</item>
+    <item msgid="2517785806387977252">"15 segundos"</item>
+    <item msgid="6347954399441173672">"30 segundos"</item>
+    <item msgid="4858305253279921789">"1 minuto"</item>
+    <item msgid="8109273437140044073">"2 minutos"</item>
+    <item msgid="2788593551142462622">"5 minutos"</item>
+    <item msgid="8012672183888404961">"10 minutos"</item>
+    <item msgid="8271452751594598661">"30 minutos"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Inmediatamente"</item>
     <item msgid="2038544972632026612">"5 segundos"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 minutos"</item>
     <item msgid="7258394417241706272">"30 minutos"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Pequeno"</item>
+    <item msgid="591935967183159581">"Predeterminado"</item>
+    <item msgid="1714184661981538355">"Grande"</item>
+    <item msgid="6195563047686707484">"O máis grande"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Buscando..."</item>
+    <item msgid="5597394826455877834">"Conectando..."</item>
+    <item msgid="5848277343965362748">"Autenticando…"</item>
+    <item msgid="3391238031431440676">"Obtendo enderezo IP..."</item>
+    <item msgid="5257597310494000224">"Rede conectada"</item>
+    <item msgid="8472497592913050396">"Suspendido"</item>
+    <item msgid="1228072488815999109">"Desconectando..."</item>
+    <item msgid="7253087004422991731">"Desconectado"</item>
+    <item msgid="4169850917304751227">"Incorrecto"</item>
+    <item msgid="6266658166690831131">"Bloqueada"</item>
+    <item msgid="4517230805854909775">"Evitando conexión deficiente temporalmente"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Buscando…"</item>
+    <item msgid="8058143476674427024">"Conectando con <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="7547609081339573756">"Autenticándose na rede (<xliff:g id="NETWORK_NAME">%1$s</xliff:g>)…"</item>
+    <item msgid="5145158315060185414">"Obtendo enderezo IP da rede (<xliff:g id="NETWORK_NAME">%1$s</xliff:g>)…"</item>
+    <item msgid="3283243151651124831">"Conectado a <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="6600156231416890902">"Suspendido"</item>
+    <item msgid="4133290864821295785">"Desconectando de <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="3980154971187953257">"Desconectado"</item>
+    <item msgid="2847316776634969068">"Incorrecto"</item>
+    <item msgid="4390990424746035383">"Bloqueada"</item>
+    <item msgid="3618248791367063949">"Evitando conexión deficiente temporalmente"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Preme o botón"</item>
+    <item msgid="7401896200768713930">"PIN do dispositivo mesmo nivel"</item>
+    <item msgid="4526848028011846710">"PIN do dispositivo"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Rede conectada"</item>
     <item msgid="983792611851499732">"Invitado"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Baixa"</item>
+    <item msgid="7882129634982603782">"Baixa"</item>
+    <item msgid="6457357501905996224">"Aceptable"</item>
+    <item msgid="405271628162918841">"Boa"</item>
+    <item msgid="999948812884919584">"Excelente"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"Últimos 30 días"</item>
     <item msgid="3211287705232736964">"Definir ciclo de uso..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Estático"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Ningunha"</item>
     <item msgid="1464741437353223198">"Manual"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"executar en segundo plano"</item>
     <item msgid="6423861043647911030">"volume de accesibilidade"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Localización"</item>
+    <item msgid="6656077694190491067">"Localización"</item>
+    <item msgid="8790228218278477369">"Localización"</item>
+    <item msgid="7836406246005211990">"Vibrar"</item>
+    <item msgid="3951439024549922598">"Ler contactos"</item>
+    <item msgid="8802152411647068">"Modificar contactos"</item>
+    <item msgid="229544934599698735">"Ler rexistro de chamadas"</item>
+    <item msgid="7396102294405899613">"Modificar rexistro de chamadas"</item>
+    <item msgid="3597797992398484655">"Ler calendario"</item>
+    <item msgid="2705975774250907343">"Modificar calendario"</item>
+    <item msgid="4668747371441932697">"Localización"</item>
+    <item msgid="1487578921720243646">"Notificación de publicación"</item>
+    <item msgid="4636080349724146638">"Localización"</item>
+    <item msgid="673510900286463926">"Chamada telefónica"</item>
+    <item msgid="542083422784609790">"Ler SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Escribir SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Recibir SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Recibir SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Recibir SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Recibir SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Enviar SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Ler SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Escribir SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modificar configuración"</item>
+    <item msgid="8705854389991425629">"Debuxar na parte superior"</item>
+    <item msgid="5861356020344153651">"Acceso ás notificacións"</item>
+    <item msgid="78432174621628659">"Cámara"</item>
+    <item msgid="3986116419882154794">"Gravar audio"</item>
+    <item msgid="4516840825756409490">"Reproducir audio"</item>
+    <item msgid="6811712502798183957">"Ler portapapeis"</item>
+    <item msgid="2780369012602289114">"Modificar portapapeis"</item>
+    <item msgid="2331359440170850868">"Botóns multimedia"</item>
+    <item msgid="6133599737122751231">"Enfoque de audio"</item>
+    <item msgid="6844485713404805301">"Volume principal"</item>
+    <item msgid="1600379420669104929">"Volume da voz"</item>
+    <item msgid="6296768210470214866">"Volume do ton"</item>
+    <item msgid="510690696071629241">"Volume dos elementos multimedia"</item>
+    <item msgid="406861638631430109">"Volume da alarma"</item>
+    <item msgid="4715864795872233884">"Volume das notificacións"</item>
+    <item msgid="2311478519251301183">"Volume do Bluetooth"</item>
+    <item msgid="5133991377896747027">"Activo"</item>
+    <item msgid="2464189519136248621">"Localización"</item>
+    <item msgid="2062677934050803037">"Localización"</item>
+    <item msgid="1735171933192715957">"Obter estatísticas de uso"</item>
+    <item msgid="1014093788778383554">"Desactivar/activar o son do micrófono"</item>
+    <item msgid="4199297950608622850">"Mostrar notificación emerxente"</item>
+    <item msgid="2527962435313398821">"Multimedia do proxecto"</item>
+    <item msgid="5117506254221861929">"Activar VPN"</item>
+    <item msgid="8291198322681891160">"Fondo de pantalla de escritura"</item>
+    <item msgid="7106921284621230961">"Estrutura do asistente"</item>
+    <item msgid="4496533640894624799">"Captura de pantalla do asistente"</item>
+    <item msgid="2598847264853993611">"Ler estado do teléfono"</item>
+    <item msgid="9215610846802973353">"Engadir correo de voz"</item>
+    <item msgid="9186411956086478261">"Usar SIP"</item>
+    <item msgid="6884763100104539558">"Procesar chamada saínte"</item>
+    <item msgid="125513972170580692">"Impresión dixital"</item>
+    <item msgid="2556071024281275619">"Sensores corporais"</item>
+    <item msgid="617168514928339387">"Ler difusións de cela"</item>
+    <item msgid="7134693570516523585">"Localización falsa"</item>
+    <item msgid="7224489175375229399">"Ler almacenamento"</item>
+    <item msgid="8472735063903258202">"Escribir almacenamento"</item>
+    <item msgid="4069276819909595110">"Activar pantalla"</item>
+    <item msgid="1228338896751121025">"Obter contas"</item>
+    <item msgid="3181581793459233672">"Executar en segundo plano"</item>
+    <item msgid="2340936043025374076">"Volume de accesibilidade"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Curto"</item>
     <item msgid="4816511817309094890">"Media"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"Cursiva"</item>
     <item msgid="6896773537705206194">"Versaleta"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Moi pequeno"</item>
+    <item msgid="5091603983404027034">"Pequeno"</item>
+    <item msgid="176844712416932112">"Normal"</item>
+    <item msgid="2784236342175159295">"Grande"</item>
+    <item msgid="218913203203160606">"Moi grande"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Predeterminado"</item>
     <item msgid="6488643537808152001">"Ningunha"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100 %"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Usar config. predet. da aplicación"</item>
+    <item msgid="8611890312638868524">"Branco sobre negro"</item>
+    <item msgid="5891360837786277638">"Negro sobre branco"</item>
+    <item msgid="2798457065945456853">"Amarelo sobre negro"</item>
+    <item msgid="5799049811524553967">"Amarelo sobre azul"</item>
+    <item msgid="3673930830658169860">"Personalizados"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"VPN PPTP"</item>
     <item msgid="1349760781118368659">"VPN L2TP/IPSec con claves precompartidas"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"Ningún"</item>
     <item msgid="1157046369795346308">"Manual"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Desconectado"</item>
+    <item msgid="8754480102834556765">"Inicializando..."</item>
+    <item msgid="3351334355574270250">"Conectando..."</item>
+    <item msgid="8303882153995748352">"Rede conectada"</item>
+    <item msgid="9135049670787351881">"Tempo de espera"</item>
+    <item msgid="2124868417182583926">"Incorrecto"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Preguntar"</item>
     <item msgid="7718817231348607934">"Non permitir nunca"</item>
     <item msgid="8184570120217958741">"Permitir sempre"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderada"</item>
+    <item msgid="1555861583162930714">"Baixa"</item>
+    <item msgid="1719683776264798117">"Crítico"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderado"</item>
+    <item msgid="182695359839047859">"Baixa"</item>
+    <item msgid="8577246509202964244">"Crítico"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistente"</item>
     <item msgid="167418068739176448">"Actividade principal"</item>
diff --git a/tests/CarDeveloperOptions/res/values-gl/strings.xml b/tests/CarDeveloperOptions/res/values-gl/strings.xml
index 5cf425c..37c8a9b 100644
--- a/tests/CarDeveloperOptions/res/values-gl/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-gl/strings.xml
@@ -80,11 +80,10 @@
     <string name="sdcard_format" product="default" msgid="4831611387627849108">"Borrar tarxeta SD"</string>
     <string name="preview_pager_content_description" msgid="5731599395893090038">"Vista previa"</string>
     <string name="preview_page_indicator_content_description" msgid="3192955679074998362">"Vista previa, páxina <xliff:g id="CURRENT_PAGE">%1$d</xliff:g> de <xliff:g id="NUM_PAGES">%2$d</xliff:g>"</string>
-    <string name="font_size_summary" msgid="9120023206321191067">"Reduce ou amplía o texto da pantalla."</string>
+    <string name="font_size_summary" msgid="9120023206321191067">"Reduce ou amplía o tamaño do texto na pantalla."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Reducir"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Ampliar"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Texto de mostra"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"O marabilloso mago de Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capítulo 11: A marabillosa Cidade Esmeralda de Oz"</string>
@@ -396,7 +395,7 @@
     <string name="security_settings_face_preference_summary" msgid="4437701024542221434">"Engadiuse a cara"</string>
     <string name="security_settings_face_preference_summary_none" msgid="8427755590493904386">"Toca e configura a autenticación facial"</string>
     <string name="security_settings_face_preference_title" msgid="2630071872604654381">"Autenticación facial"</string>
-    <string name="security_settings_face_enroll_introduction_accessibility" msgid="1563255314851533140">"Usar configur. de accesibilidade"</string>
+    <string name="security_settings_face_enroll_introduction_accessibility" msgid="1563255314851533140">"Usar axustes de accesibilidade"</string>
     <string name="security_settings_face_enroll_introduction_accessibility_diversity" msgid="1130222333285509856"></string>
     <string name="security_settings_face_enroll_introduction_accessibility_vision" msgid="356568621735811168"></string>
     <string name="security_settings_face_enroll_introduction_cancel" msgid="4190924649721437238">"Cancelar"</string>
@@ -764,7 +763,7 @@
     <string name="bluetooth_device_context_unpair" msgid="250588431708253041">"Desincronizar"</string>
     <string name="bluetooth_device_context_disconnect_unpair" msgid="4519151805677280077">"Desconectar e desincronizar"</string>
     <string name="bluetooth_device_context_connect_advanced" msgid="423463405499392444">"Opcións..."</string>
-    <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"Config. avanzada"</string>
+    <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"Axustes avanzada"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"Bluetooth avanzado"</string>
     <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"Co Bluetooth activado, o dispositivo pode comunicarse con outros dispositivos Bluetooth próximos."</string>
     <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"Cando o Bluetooth está activado, o dispositivo pode comunicarse con outros dispositivos Bluetooth das proximidades.\n\nPara mellorar a experiencia de uso do dispositivo, as aplicacións e os servizos poden seguir buscando dispositivos próximos en calquera momento, mesmo cando o Bluetooth está desactivado. Esta opción pode utilizarse, por exemplo, para mellorar as funcións e os servizos baseados na localización. Podes cambiar esta opción na "<annotation id="link">"configuración de busca"</annotation>"."</string>
@@ -883,7 +882,7 @@
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"Máis opcións"</string>
     <string name="wifi_menu_p2p" msgid="4945665601551289791">"Wi‑Fi Direct"</string>
     <string name="wifi_menu_scan" msgid="9082691677803181629">"Explorar"</string>
-    <string name="wifi_menu_advanced" msgid="5984484498045511072">"Config. avanzada"</string>
+    <string name="wifi_menu_advanced" msgid="5984484498045511072">"Axustes avanzada"</string>
     <string name="wifi_menu_configure" msgid="52192491120701266">"Configurar"</string>
     <string name="wifi_menu_connect" msgid="3984327567173931219">"Conectar coa rede"</string>
     <string name="wifi_menu_remember" msgid="717257200269700641">"Lembrar rede"</string>
@@ -893,7 +892,7 @@
     <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Buscando redes wifi..."</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Non tes permiso para cambiar a rede wifi."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Máis"</string>
-    <string name="wifi_setup_wps" msgid="6730131677695521321">"Config. automática (WPS)"</string>
+    <string name="wifi_setup_wps" msgid="6730131677695521321">"Axustes automática (WPS)"</string>
     <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"Queres activar a busca de redes wifi?"</string>
     <string name="wifi_settings_scanning_required_summary" msgid="7469610959462708782">"Para activar a wifi automaticamente, primeiro debes activar a busca de redes wifi."</string>
     <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"A busca de redes wifi permite que as aplicacións e os servizos busquen estas redes en calquera momento, mesmo se este tipo de conexión está desactivado. Esta opción pode utilizarse, por exemplo, para mellorar as funcións e os servizos baseados na localización."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wifi"</item>
+    <item msgid="2271962426654621656">"Datos móbiles"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Se non hai ningunha rede wifi dispoñible, utilizar a rede móbil"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Se a rede de telefonía móbil non está dispoñible, utiliza a wifi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Chama por wifi. Se se perde a conexión wifi, a chamada rematará."</string>
@@ -1173,7 +1175,7 @@
     <string name="color_mode_option_natural" msgid="1292837781836645320">"Naturais"</string>
     <string name="color_mode_option_boosted" msgid="453557938434778933">"Realzadas"</string>
     <string name="color_mode_option_saturated" msgid="7758384943407859851">"Saturadas"</string>
-    <string name="color_mode_option_automatic" msgid="6572718611315165117">"Automática"</string>
+    <string name="color_mode_option_automatic" msgid="6572718611315165117">"Automáticas"</string>
     <string name="color_mode_summary_natural" msgid="1247153893843263340">"Utiliza só cores precisas"</string>
     <string name="color_mode_summary_automatic" msgid="6066740785261330514">"Axuste entre cores vivas e precisas"</string>
     <string name="accelerometer_summary_on" product="tablet" msgid="5750977897791656412">"Cambia a orientación automaticamente ao xirar a tableta"</string>
@@ -1210,9 +1212,9 @@
     <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"A función Pantalla adaptable utiliza a cámara dianteira para ver se alguén está mirando a pantalla. Funciona no dispositivo e as imaxes nunca se almacenan nin envían a Google."</string>
     <string name="night_display_title" msgid="1305002424893349814">"Luz nocturna"</string>
     <string name="night_display_text" msgid="5330502493684652527">"A función Luz nocturna dálle un ton ámbar á pantalla pola noite para que che resulte máis fácil mirala con pouca luz e che axude a coller o sono."</string>
-    <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Planificar"</string>
+    <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Planificación"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Nunca"</string>
-    <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Actívase en horario personalizado"</string>
+    <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Actívase no horario escollido"</string>
     <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Actívase do solpor ao amencer"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"Hora de inicio"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Hora de finalización"</string>
@@ -1463,7 +1465,7 @@
     <string name="storage_wizard_init_external_summary" msgid="6993815290050489327">"Para migrar fotos e outros contidos multimedia entre dispositivos."</string>
     <string name="storage_wizard_init_internal_title" msgid="8750856962785644870">"Usar como almacenamento interno"</string>
     <string name="storage_wizard_init_internal_summary" msgid="4510546464921608029">"Para almacenar calquera cousa só neste dispositivo, incluídas as aplicacións e as fotos. É necesario formatar para evitar que funcione con outros dispositivos."</string>
-    <string name="storage_wizard_format_confirm_title" msgid="7785358616068633439">"Formatar como almacenam. interno"</string>
+    <string name="storage_wizard_format_confirm_title" msgid="7785358616068633439">"Formatar como almacenaxe interna"</string>
     <string name="storage_wizard_format_confirm_body" msgid="4107762933332992624">"Esta acción esixe que se formate a <xliff:g id="NAME_0">^1</xliff:g> para que estea protexida. \n\nDespois de formatala, esta <xliff:g id="NAME_1">^1</xliff:g> só funcionará neste dispositivo. \n\n"<b>"Ao formatar borraranse todos os datos almacenados actualmente na <xliff:g id="NAME_2">^1</xliff:g>."</b>" Para evitar perder os datos, considera a posibilidade de facer unha copia de seguranza."</string>
     <string name="storage_wizard_format_confirm_public_title" msgid="5866830103788091426">"Formatar como almacen. portátil"</string>
     <string name="storage_wizard_format_confirm_public_body" msgid="1451308701654703353">"Esta acción esixe que se formate a <xliff:g id="NAME_0">^1</xliff:g>. \n\n"<b>"O formatado borra todos os datos actualmente almacenados en <xliff:g id="NAME_1">^1</xliff:g>."</b>" Para evitar perder os datos, pensa na posibilidade de facer unha copia de seguranza."</string>
@@ -1765,7 +1767,7 @@
     <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Facer visible o padrón"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"Facer visible o padrón do perfil"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"Vibrar ao tocar"</string>
-    <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Bloquear ao acender"</string>
+    <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Bloquear co botón de acender"</string>
     <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"Excepto se <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> mantén o dispositivo desbloqueado"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"Definir padrón de desbloqueo"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"Cambiar padrón de desbloqueo"</string>
@@ -1796,7 +1798,7 @@
     <string name="install_all_warning" product="device" msgid="9141585291103603515">"O teu dispositivo e os datos persoais son máis vulnerables aos ataques de aplicacións descoñecidas. Ao instalar aplicacións desta fonte, aceptas que es responsable dos danos que se poidan producir no dispositivo ou da perda de datos que se poida derivar do seu uso."</string>
     <string name="advanced_settings" msgid="6282069364060968122">"Configuración avanzada"</string>
     <string name="advanced_settings_summary" msgid="5912237062506771716">"Activa máis opcións de configuración"</string>
-    <string name="application_info_label" msgid="3886253474964599105">"Info da app"</string>
+    <string name="application_info_label" msgid="3886253474964599105">"Información das aplicacións"</string>
     <string name="storage_label" msgid="1109537840103290384">"Almacenamento"</string>
     <string name="auto_launch_label" msgid="47089737922907379">"Abrir de forma predeterminada"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"Valores predeterminados"</string>
@@ -2296,8 +2298,8 @@
       <item quantity="one">Restrinxiuse recentemente a aplicación %1$s</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="other">%2$d aplicacións utilizan moita batería en segundo plano</item>
-      <item quantity="one">A aplicación %1$s utiliza moita batería en segundo plano</item>
+      <item quantity="other">%2$d apps usan moita batería en segundo plano</item>
+      <item quantity="one">%1$s usa moita batería en segundo plano</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Estas aplicacións non se poden executar en segundo plano</item>
@@ -2447,7 +2449,7 @@
     <string name="battery_saver" msgid="3989710213758938398">"Aforro de batería"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"Activar automaticamente"</string>
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Sen planificación"</string>
-    <string name="battery_saver_auto_routine" msgid="886514412067906980">"Baseada na túa rutina"</string>
+    <string name="battery_saver_auto_routine" msgid="886514412067906980">"Segundo a túa rutina"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Baseada nunha porcentaxe"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"A función Aforro de batería actívase se se prevé que a batería pode esgotarse antes da seguinte carga. Esta estimación realízase a partir da rutina que segues habitualmente"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Activarase cando a batería estea ao <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
@@ -2539,7 +2541,7 @@
     <string name="credential_for_vpn_and_apps" msgid="2462642486949593841">"Instalada para a VPN e as aplicacións"</string>
     <string name="credential_for_wifi" msgid="2903295786961726388">"Instalada para a wifi"</string>
     <string name="credentials_reset_hint" msgid="3484350477764088169">"Queres eliminar todos os contidos?"</string>
-    <string name="credentials_erased" msgid="7287088033523869085">"Almacenam. credenciais borrado"</string>
+    <string name="credentials_erased" msgid="7287088033523869085">"Almacenaxe credenciais borrada"</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"Imposible borrar almacen. credenciais"</string>
     <string name="usage_access_title" msgid="7981321142726540574">"Apps con acceso de uso"</string>
     <string name="emergency_tone_title" msgid="130211364025984428">"Sinal de marcación de emerxencia"</string>
@@ -2604,8 +2606,7 @@
     <string name="background_data_summary" msgid="799640633948841990">"Aplicacións poden sincronizar, enviar e recibir datos sempre"</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"Des. datos 2º plano?"</string>
     <string name="background_data_dialog_message" msgid="8126774244911656527">"A desactivación dos datos en segundo plano amplía a duración da batería e reduce o uso de datos. É posible que algunhas aplicacións continúen utilizando a conexión de datos en segundo plano."</string>
-    <!-- no translation found for sync_automatically (5746117156896468099) -->
-    <skip />
+    <string name="sync_automatically" msgid="5746117156896468099">"Sincronizar automat. datos das apps"</string>
     <string name="sync_enabled" msgid="535172627223336983">"Sincronización activada"</string>
     <string name="sync_disabled" msgid="713721807204805062">"Sen sincronización"</string>
     <string name="sync_error" msgid="988155155932442765">"Erro de sincronización"</string>
@@ -2915,7 +2916,7 @@
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Ampliar axustes aplicación"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Tocar e pagar"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Como funciona"</string>
-    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Paga co teu teléfono nas tendas"</string>
+    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Paga co teléfono nas tendas"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"Aplicación de pago predeterminada"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Sen configurar"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
@@ -3200,7 +3201,7 @@
     <string name="zen_mode_restrict_notifications_mute_footer" msgid="3049522809520549054">"O teléfono non vibrará nin emitirá sons cando cheguen notificacións."</string>
     <string name="zen_mode_restrict_notifications_hide" msgid="3296933643539682552">"Notificacións sen son nin elementos visuais"</string>
     <string name="zen_mode_restrict_notifications_hide_summary" msgid="1449301153755270168">"Non verás nin escoitarás notificacións"</string>
-    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"O teléfono non mostrará notificacións, nin vibrará nin emitirá sons con notificacións novas ou existentes. Ten en conta que se seguirán mostrando as notificacións esenciais para o estado e a actividade do teléfono.\n\nCando desactives o modo Non molestar, poderás pasar o dedo cara abaixo desde a parte superior da pantalla para ler as notificacións que non viches."</string>
+    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"O teléfono non mostrará notificacións, vibrará nin emitirá sons con notificacións novas ou existentes. Ten en conta que se seguirán mostrando as notificacións esenciais para o estado e a actividade do teléfono.\n\nCando desactives o modo Non molestar, poderás pasar o dedo cara abaixo desde a parte superior da pantalla para ler as notificacións que non viches."</string>
     <string name="zen_mode_restrict_notifications_custom" msgid="3167252482570424133">"Configuración personalizada"</string>
     <string name="zen_mode_restrict_notifications_enable_custom" msgid="6376983315529894440">"Activar configuración personalizada"</string>
     <string name="zen_mode_restrict_notifications_disable_custom" msgid="8004212081465043044">"Quitar configuración personalizada"</string>
@@ -3495,7 +3496,7 @@
     <string name="zen_calls_summary_starred_repeat" msgid="9191394641577678207">"De contactos marcados con estrela e chamadas repetidas"</string>
     <string name="zen_calls_summary_contacts_repeat" msgid="7747592096431111510">"Dos contactos e de chamadas repetidas"</string>
     <string name="zen_calls_summary_repeat_only" msgid="8839703337232747964">"Só de chamadas repetidas"</string>
-    <string name="zen_mode_from_none" msgid="7683889985618637010">"De ninguén"</string>
+    <string name="zen_mode_from_none" msgid="7683889985618637010">"Ninguén"</string>
     <string name="zen_mode_from_none_calls" msgid="2967739140346917546">"Non permitir ningunha chamada"</string>
     <string name="zen_mode_from_none_messages" msgid="9069143820057833634">"Non permitir ningunha mensaxe"</string>
     <string name="zen_mode_alarms" msgid="5528707742250954290">"Permitir alarmas"</string>
@@ -3695,7 +3696,7 @@
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="2518319744362028920">"Optimización da batería"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"Alertas de uso"</string>
-    <string name="show_all_apps" msgid="5442552004569634846">"Mostrar uso completo do dispositivo"</string>
+    <string name="show_all_apps" msgid="5442552004569634846">"Uso do dispositivo"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"Mostrar uso das aplicacións"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
       <item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> aplicacións presentan un comportamento anormal</item>
@@ -3832,7 +3833,7 @@
     <string name="screen_zoom_title" msgid="164369086350486104">"Tamaño de visualización"</string>
     <string name="screen_zoom_short_summary" msgid="5508079362742276703">"Reduce ou amplía os elementos da pantalla"</string>
     <string name="screen_zoom_keywords" msgid="8358462497896524092">"densidade de visualización, zoom da pantalla, escala, escalado"</string>
-    <string name="screen_zoom_summary" msgid="5294003755961312560">"Reduce ou amplía os elementos da pantalla. É posible que algunhas aplicacións da pantalla cambien de posición."</string>
+    <string name="screen_zoom_summary" msgid="5294003755961312560">"Reduce ou amplía o tamaño dos elementos na pantalla. É posible que algunhas aplicacións da pantalla cambien de posición."</string>
     <string name="screen_zoom_preview_title" msgid="2924312934036753091">"Vista previa"</string>
     <string name="screen_zoom_make_smaller_desc" msgid="1374501139722916729">"Facer máis pequeno"</string>
     <string name="screen_zoom_make_larger_desc" msgid="5306684807895846141">"Facer máis grande"</string>
diff --git a/tests/CarDeveloperOptions/res/values-gu/arrays.xml b/tests/CarDeveloperOptions/res/values-gu/arrays.xml
index 4691201..9671c68 100644
--- a/tests/CarDeveloperOptions/res/values-gu/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-gu/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"પેસિફિક"</item>
     <item msgid="7044520255415007865">"તમામ"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 સેકન્ડ"</item>
+    <item msgid="772029947136115322">"30 સેકન્ડ"</item>
+    <item msgid="8743663928349474087">"1 મિનિટ"</item>
+    <item msgid="1506508631223164814">"2 મિનિટ"</item>
+    <item msgid="8664703938127907662">"5 મિનિટ"</item>
+    <item msgid="5827960506924849753">"10 મિનિટ"</item>
+    <item msgid="6677424950124253938">"30 મિનિટ"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ક્યારેય નહીં"</item>
+    <item msgid="2517785806387977252">"15 સેકન્ડ"</item>
+    <item msgid="6347954399441173672">"30 સેકન્ડ"</item>
+    <item msgid="4858305253279921789">"1 મિનિટ"</item>
+    <item msgid="8109273437140044073">"2 મિનિટ"</item>
+    <item msgid="2788593551142462622">"5 મિનિટ"</item>
+    <item msgid="8012672183888404961">"10 મિનિટ"</item>
+    <item msgid="8271452751594598661">"30 મિનિટ"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"ત્વરિત"</item>
     <item msgid="2038544972632026612">"5 સેકન્ડ"</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"10 મિનિટ"</item>
     <item msgid="7258394417241706272">"30 મિનિટ"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"નાના"</item>
+    <item msgid="591935967183159581">"ડિફૉલ્ટ"</item>
+    <item msgid="1714184661981538355">"મોટા"</item>
+    <item msgid="6195563047686707484">"સૌથી મોટું"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"સ્કેન કરી રહ્યું છે..."</item>
+    <item msgid="5597394826455877834">"કનેક્ટ થઈ રહ્યું છે…"</item>
+    <item msgid="5848277343965362748">"પ્રમાણિત કરી રહ્યું છે…"</item>
+    <item msgid="3391238031431440676">"IP ઍડ્રેસ મેળવી રહ્યાં છે..."</item>
+    <item msgid="5257597310494000224">"કનેક્ટ થયું"</item>
+    <item msgid="8472497592913050396">"સસ્પેન્ડેડ"</item>
+    <item msgid="1228072488815999109">"ડિસ્કનેક્ટ થઈ રહ્યું છે..."</item>
+    <item msgid="7253087004422991731">"ડિસ્કનેક્ટ કર્યું"</item>
+    <item msgid="4169850917304751227">"અસફળ"</item>
+    <item msgid="6266658166690831131">"અવરોધિત"</item>
+    <item msgid="4517230805854909775">"નબળા કનેક્શનને અસ્થાયી રૂપે ટાળી રહ્યું છે"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"સ્કૅન કરી રહ્યાં છીએ…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> પર કનેક્ટ થઈ રહ્યું છે..."</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> સાથે પ્રમાણિત કરી રહ્યું છે…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> તરફથી IP ઍડ્રેસ મેળવી રહ્યું છે…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> સાથે કનેક્ટ થયાં"</item>
+    <item msgid="6600156231416890902">"સસ્પેન્ડેડ"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> થી ડિસ્કનેક્ટ થઈ રહ્યાં છે…"</item>
+    <item msgid="3980154971187953257">"ડિસ્કનેક્ટ કર્યું"</item>
+    <item msgid="2847316776634969068">"અસફળ"</item>
+    <item msgid="4390990424746035383">"અવરોધિત"</item>
+    <item msgid="3618248791367063949">"અસ્થાયી રૂપે નબળા કનેક્શનને ટાળી રહ્યું છે"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"પુશ બટન"</item>
+    <item msgid="7401896200768713930">"પીઅર ઉપકરણ પરથી પિન"</item>
+    <item msgid="4526848028011846710">"આ ઉપકરણ પરથી પિન"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"કનેક્ટ થયું"</item>
     <item msgid="983792611851499732">"આમંત્રિત"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"ઉપલબ્ધ"</item>
     <item msgid="3230556734162006146">"શ્રેણીથી બહાર"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 મિનિટ"</item>
+    <item msgid="2759776603549270587">"5 મિનિટ"</item>
+    <item msgid="167772676068860015">"1 કલાક"</item>
+    <item msgid="5985477119043628504">"ક્યારેય સમયસમાપ્તિ નહીં"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"સિસ્ટમ ડિફૉલ્ટનો ઉપયોગ કરો: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"નબળી"</item>
+    <item msgid="7882129634982603782">"નબળી"</item>
+    <item msgid="6457357501905996224">"ઠીક"</item>
+    <item msgid="405271628162918841">"સારી"</item>
+    <item msgid="999948812884919584">"ઉત્તમ"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"છેલ્લા 30 દિવસ"</item>
     <item msgid="3211287705232736964">"વપરાશ સાયકલ સેટ કરો..."</item>
@@ -106,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"સ્ટેટિક"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"કોઈ નહીં"</item>
     <item msgid="1464741437353223198">"મેન્યુઅલ"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"પૃષ્ઠભૂમિમાં ચલાવો"</item>
     <item msgid="6423861043647911030">"ઍક્સેસિબિલિટી વૉલ્યૂમ"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"સ્થાન"</item>
+    <item msgid="6656077694190491067">"સ્થાન"</item>
+    <item msgid="8790228218278477369">"સ્થાન"</item>
+    <item msgid="7836406246005211990">"વાઇબ્રેટ"</item>
+    <item msgid="3951439024549922598">"સંપર્કો વાંચો"</item>
+    <item msgid="8802152411647068">"સંપર્કો સંશોધિત કરો"</item>
+    <item msgid="229544934599698735">"કૉલ લૉગ વાંચો"</item>
+    <item msgid="7396102294405899613">"કૉલ લૉગ સંશોધિત કરો"</item>
+    <item msgid="3597797992398484655">"કૅલેન્ડર વાંચો"</item>
+    <item msgid="2705975774250907343">"કૅલેન્ડર સંશોધિત કરો"</item>
+    <item msgid="4668747371441932697">"સ્થાન"</item>
+    <item msgid="1487578921720243646">"પોસ્ટ નોટિફિકેશન"</item>
+    <item msgid="4636080349724146638">"સ્થાન"</item>
+    <item msgid="673510900286463926">"કૉલ કરો"</item>
+    <item msgid="542083422784609790">"SMS/MMS વાંચો"</item>
+    <item msgid="1033780373029588436">"SMS/MMS લખો"</item>
+    <item msgid="5647111115517787488">"SMS/MMS પ્રાપ્ત કરો"</item>
+    <item msgid="8591105601108455893">"SMS/MMS પ્રાપ્ત કરો"</item>
+    <item msgid="7730995008517841903">"SMS/MMS પ્રાપ્ત કરો"</item>
+    <item msgid="2613033109026626086">"SMS/MMS પ્રાપ્ત કરો"</item>
+    <item msgid="3037159047591081136">"SMS/MMS મોકલો"</item>
+    <item msgid="4726682243833913568">"SMS/MMS વાંચો"</item>
+    <item msgid="6555678522277865572">"SMS/MMS લખો"</item>
+    <item msgid="6981734935578130884">"સેટિંગ્સ સંશોધિત કરો"</item>
+    <item msgid="8705854389991425629">"શીર્ષ પર ખેંચો"</item>
+    <item msgid="5861356020344153651">"સૂચનાઓ ઍક્સેસ કરો"</item>
+    <item msgid="78432174621628659">"કૅમેરો"</item>
+    <item msgid="3986116419882154794">"ઑડિઓ રેકોર્ડ કરો"</item>
+    <item msgid="4516840825756409490">"ઑડિઓ ચલાવો"</item>
+    <item msgid="6811712502798183957">"ક્લિપબોર્ડ વાંચો"</item>
+    <item msgid="2780369012602289114">"ક્લિપબોર્ડ સંશોધિત કરો"</item>
+    <item msgid="2331359440170850868">"મીડિયા બટન્સ"</item>
+    <item msgid="6133599737122751231">"ઑડિઓ ફોકસ"</item>
+    <item msgid="6844485713404805301">"માસ્ટર વૉલ્યૂમ"</item>
+    <item msgid="1600379420669104929">"વૉઇસ વૉલ્યૂમ"</item>
+    <item msgid="6296768210470214866">"રિંગ વૉલ્યૂમ"</item>
+    <item msgid="510690696071629241">"મીડિયા વૉલ્યૂમ"</item>
+    <item msgid="406861638631430109">"એલાર્મ વૉલ્યૂમ"</item>
+    <item msgid="4715864795872233884">"નોટિફિકેશન વૉલ્યૂમ"</item>
+    <item msgid="2311478519251301183">"બ્લૂટૂથ વૉલ્યૂમ"</item>
+    <item msgid="5133991377896747027">"સક્રિય રાખો"</item>
+    <item msgid="2464189519136248621">"સ્થાન"</item>
+    <item msgid="2062677934050803037">"સ્થાન"</item>
+    <item msgid="1735171933192715957">"ઉપયોગના આંકડા મેળવો"</item>
+    <item msgid="1014093788778383554">"માઇક્રોફોનનો અવાજ બંધ/ચાલુ કરો"</item>
+    <item msgid="4199297950608622850">"ટોસ્ટ બતાવો"</item>
+    <item msgid="2527962435313398821">"પ્રોજેક્ટ મીડિયા"</item>
+    <item msgid="5117506254221861929">"VPN સક્રિય કરો"</item>
+    <item msgid="8291198322681891160">"વૉલપેપર લખો"</item>
+    <item msgid="7106921284621230961">"મદદ સંરચના"</item>
+    <item msgid="4496533640894624799">"મદદ સ્ક્રીનશોટ"</item>
+    <item msgid="2598847264853993611">"ફોન સ્થિતિ વાંચો"</item>
+    <item msgid="9215610846802973353">"વૉઇસમેઇલ ઉમેરો"</item>
+    <item msgid="9186411956086478261">"sip નો ઉપયોગ કરો"</item>
+    <item msgid="6884763100104539558">"આઉટગોઇંગ કૉલ પર પ્રક્રિયા કરો"</item>
+    <item msgid="125513972170580692">"ફિંગરપ્રિન્ટ"</item>
+    <item msgid="2556071024281275619">"બોડી સેન્સર્સ"</item>
+    <item msgid="617168514928339387">"સેલ બ્રોડકાસ્ટ્સ વાંચો"</item>
+    <item msgid="7134693570516523585">"મોક સ્થાન"</item>
+    <item msgid="7224489175375229399">"સ્ટોરેજ વાંચો"</item>
+    <item msgid="8472735063903258202">"સ્ટોરેજ પર લખો"</item>
+    <item msgid="4069276819909595110">"સ્ક્રીન ચાલુ કરો"</item>
+    <item msgid="1228338896751121025">"એકાઉન્ટ્સ મેળવો"</item>
+    <item msgid="3181581793459233672">"પૃષ્ઠભૂમિમાં ચલાવો"</item>
+    <item msgid="2340936043025374076">"ઍક્સેસિબિલિટી વૉલ્યૂમ"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"નાનો"</item>
     <item msgid="4816511817309094890">"મધ્યમ"</item>
@@ -247,15 +369,35 @@
     <item msgid="4627069151979553527">"કર્સિવ"</item>
     <item msgid="6896773537705206194">"નાના કેપિટલ્સ"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (8019330250538856521) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"ઘણું નાનું"</item>
+    <item msgid="5091603983404027034">"નાનું"</item>
+    <item msgid="176844712416932112">"સામાન્ય"</item>
+    <item msgid="2784236342175159295">"મોટા"</item>
+    <item msgid="218913203203160606">"ઘણું મોટું"</item>
+  </string-array>
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="3865198759294188069">"ડિફૉલ્ટ"</item>
+    <item msgid="6488643537808152001">"કોઈ નહીં"</item>
+    <item msgid="552332815156010137">"બાહ્યરેખા"</item>
+    <item msgid="7187891159463789272">"છાયો છોડો"</item>
+    <item msgid="8019330250538856521">"ઉપસેલા"</item>
+    <item msgid="8987385315647049787">"દબાવેલ"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="313003243371588365">"25%"</item>
     <item msgid="4665048002584838262">"50%"</item>
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"ઍપ્લિકેશન ડિફોલ્ટ્સનો ઉપયોગ કરો"</item>
+    <item msgid="8611890312638868524">"કાળા પર સફેદ"</item>
+    <item msgid="5891360837786277638">"સફેદ પર કાળી"</item>
+    <item msgid="2798457065945456853">"કાળા પર પીળી"</item>
+    <item msgid="5799049811524553967">"વાદળી પર પીળી"</item>
+    <item msgid="3673930830658169860">"કસ્ટમ"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"પહેલાંથી શેર કરેલ કીઝ સાથે L2TP/IPSec VPN"</item>
@@ -264,16 +406,36 @@
     <item msgid="3319427315593649917">"પ્રમાણપત્રો અને Xauth પ્રમાણીકરણ સાથે IPSec VPN"</item>
     <item msgid="8258927774145391041">"પ્રમાણપત્રો અને સંકર પ્રમાણીકરણ સાથે IPSec VPN"</item>
   </string-array>
-    <!-- no translation found for vpn_proxy_settings:0 (2958623927055120839) -->
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_proxy_settings">
+    <item msgid="2958623927055120839">"કોઈ નહીં"</item>
+    <item msgid="1157046369795346308">"મેન્યુઅલ"</item>
+  </string-array>
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"ડિસ્કનેક્ટ કર્યું"</item>
+    <item msgid="8754480102834556765">"પ્રારંભ કરી રહ્યું છે..."</item>
+    <item msgid="3351334355574270250">"કનેક્ટ થઈ રહ્યું છે…"</item>
+    <item msgid="8303882153995748352">"કનેક્ટ થયું"</item>
+    <item msgid="9135049670787351881">"સમયસમાપ્તિ"</item>
+    <item msgid="2124868417182583926">"અસફળ"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"પૂછો"</item>
     <item msgid="7718817231348607934">"ક્યારેય મંજૂરી આપશો નહીં"</item>
     <item msgid="8184570120217958741">"હંમેશા મંજૂરી આપો"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"સામાન્ય"</item>
+    <item msgid="5101233285497327432">"મધ્યમ"</item>
+    <item msgid="1555861583162930714">"ઓછી"</item>
+    <item msgid="1719683776264798117">"ગંભીર"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"સામાન્ય"</item>
+    <item msgid="6107138933849816768">"મધ્યમ"</item>
+    <item msgid="182695359839047859">"ઓછી"</item>
+    <item msgid="8577246509202964244">"ગંભીર"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"નિરંતર"</item>
     <item msgid="167418068739176448">"ટોચની પ્રવૃત્તિ"</item>
@@ -310,7 +472,7 @@
     <item msgid="3118234477029486741">"0"</item>
   </string-array>
   <string-array name="wifi_metered_entries">
-    <item msgid="4329206416008519163">"આપમેળે શોધો"</item>
+    <item msgid="4329206416008519163">"ઑટોમૅટિક રીતે શોધો"</item>
     <item msgid="773943026484148895">"મીટર કરેલ તરીકે ગણો"</item>
     <item msgid="1008268820118852416">"મીટર ન કરેલ તરીકે ગણો"</item>
   </string-array>
diff --git a/tests/CarDeveloperOptions/res/values-gu/strings.xml b/tests/CarDeveloperOptions/res/values-gu/strings.xml
index 24d8f86..18cf173 100644
--- a/tests/CarDeveloperOptions/res/values-gu/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-gu/strings.xml
@@ -27,7 +27,7 @@
       <item quantity="other">તમે હવે એક વિકાસકર્તા બનવાથી <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> પગલાં દૂર છો.</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"તમે હવે વિકાસકર્તા છો!"</string>
-    <string name="show_dev_already" msgid="7665948832405148689">"કોઈ જરૂર નથી, તમે પહેલાંથી જ એક વિકાસકર્તા છો."</string>
+    <string name="show_dev_already" msgid="7665948832405148689">"કોઈ જરૂર નથી, તમે પહેલાંથી જ એક ડેવલપર છો."</string>
     <string name="dev_settings_disabled_warning" msgid="3198732189395396721">"કૃપા કરીને પહેલાં વિકાસકર્તાના વિકલ્પો સક્ષમ કરો."</string>
     <string name="header_category_wireless_networks" msgid="8968405993937795898">"વાયરલેસ અને નેટવર્ક્સ"</string>
     <string name="header_category_system" msgid="4045988717359334410">"સિસ્ટમ"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"સ્ક્રીન પરની ટેક્સ્ટને નાની અથવા મોટી કરો."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"વધુ નાનું બનાવો"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"વધુ મોટું બનાવો"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ટેક્સ્ટની સાઇઝનો નમૂનો"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"અદ્ભુત Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"પ્રકરણ 11: ધ વન્ડરફૂલ એમરલ્ડ સીટી ઓફ ઓઝ"</string>
@@ -100,13 +99,13 @@
     <string name="bluetooth_visibility_timeout" msgid="4804679276398564496">"દૃશ્યતાની સમયસમાપ્તિ"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="1600385868298081015">"વૉઇસ ડાયલિંગ લૉક કરો"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="5005776616112427980">"જ્યારે સ્ક્રીન લૉક થયેલ હોય ત્યારે બ્લૂટૂથ ડાયલરના ઉપયોગને અટકાવો"</string>
-    <string name="bluetooth_devices" msgid="4143880830505625666">"બ્લૂટૂથ ઉપકરણો"</string>
-    <string name="bluetooth_device_name" msgid="3682016026866302981">"ઉપકરણનું નામ"</string>
-    <string name="bluetooth_device_details" msgid="2500840679106321361">"ઉપકરણ સેટિંગ્સ"</string>
+    <string name="bluetooth_devices" msgid="4143880830505625666">"બ્લૂટૂથ ડિવાઇસ"</string>
+    <string name="bluetooth_device_name" msgid="3682016026866302981">"ડિવાઇસનું નામ"</string>
+    <string name="bluetooth_device_details" msgid="2500840679106321361">"ડિવાઇસના સેટિંગ"</string>
     <string name="bluetooth_profile_details" msgid="1785505059738682493">"પ્રોફાઇલ સેટિંગ્સ"</string>
     <string name="bluetooth_name_not_set" msgid="1886067683138385142">"કોઈ નામ સેટ નથી, એકાઉન્ટ નામનો ઉપયોગ કરીને"</string>
     <string name="bluetooth_scan_for_devices" msgid="3215740768422735880">"ઉપકરણો માટે સ્કૅન કરો"</string>
-    <string name="bluetooth_rename_device" msgid="7862992396452800566">"આ ઉપકરણનું નામ બદલો"</string>
+    <string name="bluetooth_rename_device" msgid="7862992396452800566">"આ ડિવાઇસનું નામ બદલો"</string>
     <string name="bluetooth_rename_button" msgid="8946904845821073267">"નામ બદલો"</string>
     <string name="bluetooth_disconnect_title" msgid="2689706557852333780">"ઉપકરણને ડિસ્કનેક્ટ કરીએ?"</string>
     <string name="bluetooth_disconnect_all_profiles" product="default" msgid="8920448151607060442">"તમારો ફોન <xliff:g id="DEVICE_NAME">%1$s</xliff:g>થી ડિસ્કનેક્ટ થઈ જશે."</string>
@@ -114,11 +113,11 @@
     <string name="bluetooth_disconnect_all_profiles" product="device" msgid="4707569949253450208">"તમારું ઉપકરણ <xliff:g id="DEVICE_NAME">%1$s</xliff:g>થી ડિસ્કનેક્ટ થઈ જશે."</string>
     <string name="bluetooth_disconnect_dialog_ok" msgid="4183522987246110145">"ડિસ્કનેક્ટ"</string>
     <string name="bluetooth_empty_list_user_restricted" msgid="3616298363281495777">"તમારી પાસે બ્લૂટૂથ સેટિંગ્સ બદલવાની પરવાનગી નથી."</string>
-    <string name="bluetooth_pairing_pref_title" msgid="2904954138013884029">"નવા ઉપકરણ જોડો"</string>
+    <string name="bluetooth_pairing_pref_title" msgid="2904954138013884029">"નવા ડિવાઇસ જોડો"</string>
     <string name="bluetooth_is_visible_message" msgid="6341088682252805612">"જ્યારે બ્લૂટૂથ  સેટિંગ્સ ખુલ્લી હોય ત્યારે <xliff:g id="DEVICE_NAME">%1$s</xliff:g> નજીકનાં ઉપકરણોને દૃશ્યક્ષમ છે."</string>
     <string name="bluetooth_footer_mac_message" product="default" msgid="335341476746836260">"ફોનનું બ્લૂટૂથ ઍડ્રેસ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_footer_mac_message" product="tablet" msgid="6033609611245782463">"ટૅબ્લેટનું બ્લૂટૂથ ઍડ્રેસ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
-    <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"ઉપકરણનું બ્લૂટૂથ ઍડ્રેસ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"ડિવાઇસનું બ્લૂટૂથ ઍડ્રેસ: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="6180709281434591654">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ને ડિસ્કનેક્ટ કરીએ?"</string>
     <string name="bluetooth_broadcasting" msgid="8926408584599563760">"બ્રૉડકાસ્ટ કરી રહ્યાં છે"</string>
     <string name="bluetooth_device" msgid="3170974107364990008">"અનામાંકિત બ્લૂટૂથ ઉપકરણ"</string>
@@ -163,10 +162,10 @@
     <string name="bluetooth_map_acceptance_dialog_text" msgid="736507842082640410">"%1$s તમારા સંદેશા અ‍ૅક્સેસ કરવા માંગે છે. %2$s ને અ‍ૅક્સેસ આપીએ?"</string>
     <string name="bluetooth_sap_request" msgid="6318039677671263261">"સિમ ઍક્સેસ વિનંતી"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="1909352413109340355">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> તમારા સિમ કાર્ડને અ‍ૅક્સેસ કરવા માગે છે. સિમ કાર્ડની અ‍ૅક્સેસને મંજૂરી આપવું કનેક્શનના સમયગાળા માટે તમારા ઉપકરણ પર ડેટા કનેક્ટિવિટીને અક્ષમ કરશે. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> ને અ‍ૅક્સેસ આપો"</string>
-    <string name="bluetooth_device_name_summary" msgid="8661066392056595005">"તે અન્ય ઉપકરણોને \'<xliff:g id="DEVICE_NAME">^1</xliff:g>\' તરીકે દેખાય છે"</string>
+    <string name="bluetooth_device_name_summary" msgid="8661066392056595005">"તે અન્ય ડિવાઇસને \'<xliff:g id="DEVICE_NAME">^1</xliff:g>\' તરીકે દેખાય છે"</string>
     <string name="bluetooth_off_footer" msgid="7658444560543730571">"અન્ય ઉપકરણો સાથે કનેક્ટ કરવા માટે બ્લૂટૂથ ચાલુ કરો."</string>
     <string name="bluetooth_paired_device_title" msgid="8361860197780425286">"તમારા ડિવાઇસ"</string>
-    <string name="bluetooth_pairing_page_title" msgid="9053463656712597709">"નવા ઉપકરણ જોડો"</string>
+    <string name="bluetooth_pairing_page_title" msgid="9053463656712597709">"નવા ડિવાઇસ જોડો"</string>
     <string name="bluetooth_pref_summary" product="tablet" msgid="3601662966604648212">"તમારા ટૅબ્લેટને નજીકના બ્લૂટૂથ ઉપકરણો સાથે સંચાર કરવાની મંજૂરી આપો"</string>
     <string name="bluetooth_pref_summary" product="device" msgid="2286727776570956969">"તમારા ઉપકરણને નજીકના બ્લૂટૂથ ઉપકરણો સાથે સંચાર કરવાની મંજૂરી આપો"</string>
     <string name="bluetooth_pref_summary" product="default" msgid="863659221858781186">"તમારા ફોનને નજીકના બ્લૂટૂથ ઉપકરણો સાથે સંચાર કરવાની મંજૂરી આપો"</string>
@@ -181,7 +180,7 @@
     <string name="connected_device_saved_title" msgid="8270136893488475163">"સાચવેલ ઉપકરણો"</string>
     <string name="connected_device_add_device_summary" msgid="7960491471270158891">"બ્લૂટૂથ જોડી બનાવવાનું ચાલુ કરશે"</string>
     <string name="connected_device_connections_title" msgid="9205000271382018428">"કનેક્શનની પસંદગીઓ"</string>
-    <string name="connected_device_previously_connected_title" msgid="225918223397410428">"પહેલાં કનેક્ટ થયેલા ઉપકરણો"</string>
+    <string name="connected_device_previously_connected_title" msgid="225918223397410428">"પહેલાં કનેક્ટ થયેલા ડિવાઇસ"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="2018789662358162716">"પહેલાં કનેક્ટ કરેલા"</string>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="4652326177920814476">"બ્લૂટૂથ ચાલુ કર્યું"</string>
     <string name="previous_connected_see_all" msgid="7237095013087310923">"બધા ડિવાઇસ જુઓ"</string>
@@ -355,7 +354,7 @@
     <string name="owner_info_settings_title" msgid="2537966178998339896">"લૉક સ્ક્રીન સંદેશ"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"વિજેટ્સને સક્ષમ કરો"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"વ્યવસ્થાપકે અક્ષમ કરેલ"</string>
-    <string name="lockdown_settings_title" msgid="4534779922580115990">"લોકડાઉનનો વિકલ્પ બતાવો"</string>
+    <string name="lockdown_settings_title" msgid="4534779922580115990">"લૉકડાઉનનો વિકલ્પ બતાવો"</string>
     <string name="lockdown_settings_summary" msgid="7270756909878256174">"ડિસ્પ્લે પાવર બટનનો વિકલ્પ જે Smart Lock, ફિંગરપ્રિન્ટ અનલૉક કરવાનું, અને લૉક સ્ક્રીન પર નોટિફિકેશનને બંધ કરે છે"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"માત્ર ટ્રસ્ટ એજન્ટ અનલૉક મોડ લંબાવી શકશે"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"જો ચાલુ કરવામાં આવે, તો ટ્રસ્ટ એજન્ટ વધુ લાંબા સમય માટે ડિવાઇસને અનલૉક રાખી શકશે, પરંતુ લૉક થયેલા ડિવાઇસને ફરી અનલૉક કરી શકશે નહીં."</string>
@@ -499,12 +498,12 @@
     <string name="fingerprint_add_max" msgid="2939393314646115661">"તમે <xliff:g id="COUNT">%d</xliff:g> જેટલી ફિંગરપ્રિન્ટ્સ ઉમેરી શકો છો"</string>
     <string name="fingerprint_intro_error_max" msgid="3247720976621039437">"તમે મહત્તમ ફિંગરપ્રિન્ટ્સ ઉમેર્યા છે"</string>
     <string name="fingerprint_intro_error_unknown" msgid="3975674268256524015">"વધુ ફિંગરપ્રિન્ટ્સ ઉમેરી શકતાં નથી"</string>
-    <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"તમામ ફિંગરપ્રિન્ટ્સ દૂર કરીએ?"</string>
+    <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"તમામ ફિંગરપ્રિન્ટ કાઢી નાખીએ?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\'ને દૂર કરો"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"શું તમે આ ફિંગરપ્રિન્ટ કાઢી નાખવા માગો છો?"</string>
     <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"તમારી ફિંગરપ્રિન્ટનો ઉપયોગ કરીને તમે તમારો ફોન અનલૉક, ખરીદીઓ અધિકૃત અથવા તેમના વડે ઍપ્લિકેશનો પર સાઇન ઇન કરવામાં સમર્થ હશો નહીં"</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"તમારી ફિંગરપ્રિન્ટનો ઉપયોગ કરીને તમે તમારી કાર્યાલયની પ્રોફાઇલ અનલૉક, ખરીદીઓ અધિકૃત અથવા કાર્ય ઍપ્લિકેશનો પર સાઇન ઇન કરવામાં સમર્થ હશો નહીં"</string>
-    <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"હા, દૂર કરો"</string>
+    <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"હા, કાઢી નાખો"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"એન્ક્રિપ્શન"</string>
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"ટેબ્લેટને એન્ક્રિપ્ટ કરો"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="3110852053238357832">"ફોન એન્ક્રિપ્ટ કરો"</string>
@@ -594,9 +593,9 @@
     <string name="unlock_set_unlock_mode_password" msgid="397703731925549447">"પાસવર્ડ"</string>
     <string name="unlock_setup_wizard_fingerprint_details" msgid="6515136915205473675">"એકવાર તમે સ્ક્રીન લૉક સેટ કરી લો, પછી તમે સેટિંગ્સ &gt; સુરક્ષામાં ફિંગરપ્રિન્ટ પણ સેટ કરી શકો છો."</string>
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"સ્ક્રીન લૉક બંધ કરો"</string>
-    <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"ઉપકરણ સુરક્ષા દૂર કરીએ?"</string>
+    <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"ડિવાઇસની સુરક્ષા કાઢી નાખીએ?"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"પ્રોફાઇલ સુરક્ષા દૂર કરીએ?"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"તમારી પૅટર્ન વગર ઉપકરણ સુરક્ષા સુવિધાઓ કામ કરશે નહીં."</string>
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"તમારી પૅટર્ન વગર ડિવાઇસની સુરક્ષા સુવિધાઓ કામ કરશે નહીં."</string>
     <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"ઉપકરણની સુરક્ષા સુવિધાઓ તમારી પૅટર્ન વગર કાર્ય કરશે નહીં.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>આ ઉપકરણમાંથી તમારી સાચવેલ રેફરન્સ ફાઇલને પણ દૂર કરવામાં આવશે અને તમે તમારા ફોનને અનલૉક કરી શકશો નહીં, ખરીદીઓને અધિકૃત કરી શકશો નહીં અથવા તેના વડે ઍપ્લિકેશનો પર સાઇન ઇન કરી શકશો નહીં."</string>
@@ -628,7 +627,7 @@
     <string name="unlock_disable_frp_warning_content_unknown_fingerprint_profile" msgid="1201259228331105948">"પ્રોફાઇલ સુરક્ષા સુવિધાઓ તમારા સ્ક્રીન લૉક વગર કાર્ય કરશે નહીં.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>આ પ્રોફાઇલમાંથી તમારી સાચવેલ રેફરન્સ ફાઇલને પણ દૂર કરવામાં આવશે અને તમે તમારી પ્રોફાઇલને અનલૉક કરી શકશો નહીં, ખરીદીઓને અધિકૃત કરી શકશો નહીં અથવા તેના વડે ઍપ્લિકેશનો પર સાઇન ઇન કરી શકશો નહીં."</string>
-    <string name="unlock_disable_frp_warning_ok" msgid="2373890505202766456">"હા, દૂર કરો"</string>
+    <string name="unlock_disable_frp_warning_ok" msgid="2373890505202766456">"હા, કાઢી નાખો"</string>
     <string name="unlock_change_lock_pattern_title" msgid="7622476883851319877">"અનલૉક પૅટર્ન બદલો"</string>
     <string name="unlock_change_lock_pin_title" msgid="6671224158800812238">"અનલૉક પિન બદલો"</string>
     <string name="unlock_change_lock_password_title" msgid="7886432065775170719">"અનલૉક પાસવર્ડ બદલો"</string>
@@ -649,7 +648,7 @@
     <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"જો તમે આગલા પ્રયત્નમાં ખોટો પાસવર્ડ દાખલ કરશો, તો તમારી કાર્યાલયની પ્રોફાઇલ અને તેનો ડેટા કાઢી નાખવામાં આવશે"</string>
     <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"ઘણા બધા ખોટા પ્રયત્નો. આ ઉપકરણોનો ડેટા કાઢી નાખવામાં આવશે."</string>
     <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"ઘણા બધા ખોટા પ્રયત્નો. આ વપરાશકર્તાને કાઢી નાખવામાં આવશે."</string>
-    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"ઘણા બધા ખોટા પ્રયત્નો. આ કાર્યાલયની પ્રોફાઇલ અને તેનો ડેટા કાઢી નાખવામાં આવશે."</string>
+    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"ઘણા બધા ખોટા પ્રયત્નો. આ કાર્યાલયની પ્રોફાઇલ અને તેનો ડેટા ડિલીટ કરવામાં આવશે."</string>
     <string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="3950582268749037318">"છોડી દો"</string>
     <plurals name="lockpassword_password_too_short" formatted="false" msgid="694091983183310827">
       <item quantity="one">ઓછામાં ઓછા <xliff:g id="COUNT_1">%d</xliff:g> અક્ષરો હોવા જરૂરી છે</item>
@@ -718,7 +717,7 @@
       <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> સક્રિય ઍપ્લિકેશન</item>
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> સક્રિય ઍપ્લિકેશન</item>
     </plurals>
-    <string name="manage_trust_agents" msgid="8129970926213142261">"ટ્રસ્ટ એજન્ટ્સ"</string>
+    <string name="manage_trust_agents" msgid="8129970926213142261">"ટ્રસ્ટ એજન્ટ"</string>
     <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"ઉપયોગ કરવા માટે, પ્રથમ એક સ્ક્રીન લૉક સેટ કરો"</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"કોઈ નહીં"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
@@ -747,7 +746,7 @@
     <string name="bluetooth_preference_scan_title" msgid="457781003962324807">"ઉપકરણો માટે સ્કૅન કરો"</string>
     <string name="bluetooth_search_for_devices" msgid="6796307228261078451">"તાજું કરો"</string>
     <string name="bluetooth_searching_for_devices" msgid="7820814625522702494">"શોધી રહ્યું છે..."</string>
-    <string name="bluetooth_preference_device_settings" msgid="4247085616427015908">"ઉપકરણ સેટિંગ્સ"</string>
+    <string name="bluetooth_preference_device_settings" msgid="4247085616427015908">"ડિવાઇસના સેટિંગ"</string>
     <string name="bluetooth_preference_paired_dialog_title" msgid="3567187438908143693">"જોડી કરેલ ઉપકરણ"</string>
     <string name="bluetooth_preference_paired_dialog_internet_option" msgid="3693599743477470469">"ઇન્ટરનેટ કનેક્શન"</string>
     <string name="bluetooth_preference_paired_dialog_keyboard_option" msgid="4627309436489645755">"કીબોર્ડ"</string>
@@ -756,7 +755,7 @@
     <string name="bluetooth_pairing_dialog_sharing_phonebook_title" msgid="7395493311980018460">"ફોન પુસ્તિકા શેર કરીએ?"</string>
     <string name="bluetooth_pairing_dialog_contants_request" msgid="2103132762434487717">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> તમારા સંપર્કો અને કૉલ ઇતિહાસને અ‍ૅક્સેસ કરવા માંગે છે."</string>
     <string name="bluetooth_pairing_dialog_paring_request" msgid="5513953935086446387">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>, બ્લૂટૂથ સાથે જોડી કરવા માંગે છે. જ્યારે કનેક્ટ થયેલ હોય, ત્યારે તેની પાસે તમારા સંપર્કો અને કૉલ ઇતિહાસની ઍક્સેસ હશે."</string>
-    <string name="bluetooth_preference_found_media_devices" msgid="5748539613567836379">"ઉપલબ્ધ ઉપકરણો"</string>
+    <string name="bluetooth_preference_found_media_devices" msgid="5748539613567836379">"ઉપલબ્ધ ડિવાઇસ"</string>
     <string name="bluetooth_preference_no_found_devices" msgid="4190090666412408576">"કોઈ ઉપકરણો ઉપલબ્ધ નથી"</string>
     <string name="bluetooth_device_context_connect" msgid="1812090541371432890">"કનેક્ટ કરો"</string>
     <string name="bluetooth_device_context_disconnect" msgid="8085015949275771802">"ડિસ્કનેક્ટ કરો"</string>
@@ -766,12 +765,12 @@
     <string name="bluetooth_device_context_connect_advanced" msgid="423463405499392444">"વિકલ્પો..."</string>
     <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"વિગતવાર"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"વિગતવાર બ્લૂટૂથ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"જ્યારે બ્લૂટૂથ ચાલુ હોય, ત્યારે તમારું ઉપકરણ નજીકનાં અન્ય બ્લૂટૂથ ઉપકરણો સાથે સંચાર કરી શકે છે."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"જ્યારે બ્લૂટૂથ ચાલુ હોય, ત્યારે તમારું ડિવાઇસ નજીકનાં અન્ય બ્લૂટૂથ ડિવાઇસ સાથે સંચાર કરી શકે છે."</string>
     <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"જ્યારે બ્લૂટૂથ ચાલુ હોય, ત્યારે તમારું ઉપકરણ નજીકના અન્ય બ્લૂટૂથ ઉપકરણો સાથે સંચાર કરી શકે છે.\n\nતમારા ઉપકરણનો અનુભવ બહેતર બનાવવા માટે, જ્યારે બ્લૂટૂથ બંધ હોય ત્યારે પણ ઍપ અને સેવાઓ નજીકના ઉપકરણો માટે ગમે ત્યારે સ્કૅન કરી શકે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ સ્થાન આધારિત સુવિધાઓ અને સેવાઓને બહેતર બનાવવા માટે કરી શકાય છે. તમે આને "<annotation id="link">"સ્કૅનીંગ સેટિંગ"</annotation>"માં બદલી શકો છો."</string>
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"સ્થાન સચોટતા બહેતર બનાવવા માટે, સિસ્ટમ ઍપ્લિકેશનો અને સેવાઓ હજી પણ બ્લૂટૂથ ઉપકરણો શોધી શકે છે. તમે આને <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>સ્કેનિંગ સેટિંગ્સ<xliff:g id="LINK_END_1">LINK_END</xliff:g>માં બદલી શકો છો."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"કનેક્ટ ન કરી શક્યાં. ફરી પ્રયાસ કરો."</string>
-    <string name="device_details_title" msgid="726517818032923222">"ઉપકરણની વિગતો"</string>
-    <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"ઉપકરણનું બ્લૂટૂથ ઍડ્રેસ: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
+    <string name="device_details_title" msgid="726517818032923222">"ડિવાઇસની વિગતો"</string>
+    <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"ડિવાઇસનું બ્લૂટૂથ ઍડ્રેસ: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_unpair_dialog_title" msgid="3669848977755142047">"ઉપકરણને ભૂલી જઈએ?"</string>
     <string name="bluetooth_unpair_dialog_body" product="default" msgid="5998071227980078077">"હવેથી તમારા ફોનની <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ની સાથે જોડી કરવામાં નહીં આવે"</string>
     <string name="bluetooth_unpair_dialog_body" product="tablet" msgid="4696157463230518866">"હવેથી તમારા ટૅબ્લેટની <xliff:g id="DEVICE_NAME">%1$s</xliff:g>ની સાથે જોડી કરવામાં નહીં આવે"</string>
@@ -801,7 +800,7 @@
     <string name="bluetooth_max_connected_audio_devices_dialog_title" msgid="6049527354499590314">"મહત્તમ સંખ્યામાં કનેક્ટ થયેલા બ્લૂટૂથ ઑડિઓ ઉપકરણો પસંદ કરો"</string>
     <string name="wifi_display_settings_title" msgid="8718182672694575456">"કાસ્ટ કરો"</string>
     <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"વાયરલેસ ડિસ્પ્લે સક્ષમ કરો"</string>
-    <string name="wifi_display_no_devices_found" msgid="186501729518830451">"કોઈ નજીકના ઉપકરણો મળ્યાં નથી"</string>
+    <string name="wifi_display_no_devices_found" msgid="186501729518830451">"કોઈ નજીકના ડિવાઇસ મળ્યાં નથી"</string>
     <string name="wifi_display_status_connecting" msgid="3799827425457383349">"કનેક્ટ થઈ રહ્યું છે"</string>
     <string name="wifi_display_status_connected" msgid="85692409327461403">"કનેક્ટ કર્યું"</string>
     <string name="wifi_display_status_in_use" msgid="7646114501132773174">"ઉપયોગમાં છે"</string>
@@ -863,7 +862,7 @@
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"આ સુવિધાનો ઉપયોગ કરવા માટે, સુસંગત નેટવર્ક રેટિંગ પ્રદાતાને પસંદ કરો"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"પ્રમાણપત્રો ઇન્સ્ટોલ કરો"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"સ્થાન સચોટતાને બહેતર બનાવવા માટે, જ્યારે વાઇ-ફાઇ બંધ હોય ત્યારે પણ ઍપ અને સેવાઓ વાઇ-ફાઇ નેટવર્ક માટે ગમે ત્યારે સ્કૅન કરી શકે છે. ઉદાહરણ તરીકે, આનો ઉપયોગ સ્થાન આધારિત સુવિધાઓ અને સેવાઓને બહેતર બનાવવા માટે કરી શકાય છે. તમે આને <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>સ્કૅનીંગ સેટિંગ<xliff:g id="LINK_END_1">LINK_END</xliff:g>માં બદલી શકો છો."</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"સ્થાનની સચોટતા સુધારવા માટે, <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>સ્કૅનીંગ સેટિંગ્સ<xliff:g id="LINK_END_1">LINK_END</xliff:g> માં જઈને વાઇ-ફાઇ સ્કૅનિંગ ચાલુ કરો."</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"સ્થાનની સચોટતા સુધારવા માટે, <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>સ્કૅનિંગ સેટિંગ<xliff:g id="LINK_END_1">LINK_END</xliff:g> માં જઈને વાઇ-ફાઇ સ્કૅનિંગ ચાલુ કરો."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"ફરીથી બતાવશો નહીં"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"નિષ્ક્રિય દરમ્યાન વાઇ-ફાઇ ચાલુ રાખો"</string>
     <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"નિષ્ક્રિય હોય તે દરમ્યાન વાઇ-ફાઇ ચાલુ"</string>
@@ -879,7 +878,7 @@
     <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"વાઇ-ફાઇ પસંદગીઓ"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"વાઇ-ફાઇ ફરી આપમેળે ચાલુ થાય છે"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"વાઇ-ફાઇ પાછું આપમેળે ચાલુ થતું નથી"</string>
-    <string name="wifi_access_points" msgid="1647976498906871869">"વાઇ-ફાઇ નેટવર્ક્સ"</string>
+    <string name="wifi_access_points" msgid="1647976498906871869">"વાઇ-ફાઇ નેટવર્ક"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"વધુ વિકલ્પો"</string>
     <string name="wifi_menu_p2p" msgid="4945665601551289791">"વાઇ-ફાઇ ડાઇરેક્ટ"</string>
     <string name="wifi_menu_scan" msgid="9082691677803181629">"સ્કેન"</string>
@@ -889,8 +888,8 @@
     <string name="wifi_menu_remember" msgid="717257200269700641">"નેટવર્ક યાદ રાખો"</string>
     <string name="wifi_menu_forget" msgid="7561140554450163075">"નેટવર્કને ભૂલી જાઓ"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"નેટવર્ક સંશોધિત કરો"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"ઉપલબ્ધ નેટવર્ક્સ જોવા માટે, વાઇ-ફાઇ ચાલુ કરો."</string>
-    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"વાઇ-ફાઇ નેટવર્ક્સ માટે શોધી રહ્યું છે..."</string>
+    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"ઉપલબ્ધ નેટવર્ક જોવા માટે, વાઇ-ફાઇ ચાલુ કરો."</string>
+    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"વાઇ-ફાઇ નેટવર્ક માટે શોધી રહ્યું છે..."</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"તમને વાઇ-ફાઇ નેટવર્ક બદલવાની પરવાનગી નથી."</string>
     <string name="wifi_more" msgid="3538241640407382185">"વધુ"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"ઑટોમૅટિક સેટઅપ (WPS)"</string>
@@ -1025,7 +1024,7 @@
     <string name="wifi_details_subnet_mask" msgid="53396707004763012">"સબનેટ માસ્ક"</string>
     <string name="wifi_details_dns" msgid="1118251455740116559">"DNS"</string>
     <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"IPv6 સરનામા"</string>
-    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"સાચવેલા નેટવર્ક્સ"</string>
+    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"સાચવેલા નેટવર્ક"</string>
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"સબ્સ્ક્રિપ્શન"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
@@ -1047,7 +1046,7 @@
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"ઉપકરણો શોધો"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"શોધી રહ્યું છે..."</string>
     <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"ઉપકરણનું નામ બદલો"</string>
-    <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"પીઅર ઉપકરણો"</string>
+    <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"પીઅર ડિવાઇસ"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"યાદ રાખેલ જૂથો"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"કનેક્ટ કરી શકાયું નહીં."</string>
     <string name="wifi_p2p_failed_rename_message" msgid="638656605352538706">"ઉપકરણનું નામ બદલવામાં નિષ્ફળ."</string>
@@ -1070,7 +1069,7 @@
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"AP બૅન્ડ"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"તમારા અન્ય ઉપકરણો માટે વાઇ-ફાઇ નેટવર્ક બનાવવા હૉટસ્પૉટનો ઉપયોગ કરો. હૉટસ્પૉટ તમારા મોબાઇલ ડેટા કનેક્શનનો ઉપયોગ કરીને ઇન્ટરનેટ પૂરું પાડે છે. વધારાનો મોબાઇલ ડેટા શુલ્ક લાગુ થઈ શકે છે."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"ઍપ્લિકેશનો નજીકના ઉપકરણો સાથે કન્ટેન્ટ શેર કરવા માટે હૉટસ્પૉટ બનાવી શકે છે."</string>
-    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"હૉટસ્પૉટ આપમેળે બંધ કરો"</string>
+    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"હૉટસ્પૉટ ઑટોમૅટિક રીતે બંધ કરો"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"જો કોઈ ઉપકરણો કનેક્ટ થયેલા ન હશે તો વાઇ-ફાઇ હૉટસ્પૉટ બંધ થઈ જશે"</string>
     <string name="wifi_tether_starting" msgid="7676952148471297900">"હૉટસ્પૉટ ચાલુ કરી રહ્યું છે…"</string>
     <string name="wifi_tether_stopping" msgid="7478561853791953349">"હૉટસ્પૉટ બંધ કરી રહ્યું છે…"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"વાઇ-ફાઇ"</item>
+    <item msgid="2271962426654621656">"મોબાઇલ"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"વાઇ-ફાઇ ઉપલબ્ધ ન હોય, તો મોબાઇલ નેટવર્કનો ઉપયોગ કરો"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"મોબાઇલ નેટવર્ક ઉપલબ્ધ ન હોય, તો વાઇ-ફાઇનો ઉપયોગ કરો"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"વાઇ-ફાઇ પરથી કૉલ કરો. વાઇ-ફાઇ જતું રહેશે, તો કૉલ સમાપ્ત થઈ જશે."</string>
@@ -1118,17 +1120,17 @@
     <string name="wifi_calling_not_supported" msgid="216781767605669775">"%1$s માટે વાઇ-ફાઇ કૉલિંગ સમર્થિત નથી"</string>
     <string name="carrier" msgid="3413463182542176886">"કૅરિઅર"</string>
     <string name="display_settings_title" msgid="1243571562133261601">"ડિસ્પ્લે"</string>
-    <string name="sound_settings" msgid="3306063041029638807">"ધ્વનિ"</string>
+    <string name="sound_settings" msgid="3306063041029638807">"સાઉન્ડ"</string>
     <string name="all_volume_title" msgid="1750261506951315423">"વૉલ્યૂમ્સ"</string>
     <string name="musicfx_title" msgid="6456079041566773649">"સંગીત પ્રભાવો"</string>
     <string name="ring_volume_title" msgid="5874791723449821646">"રિંગ વૉલ્યુમ"</string>
     <string name="vibrate_in_silent_title" msgid="2314667015729841220">"શાંત હોય ત્યારે વાઇબ્રેટ કરો"</string>
-    <string name="notification_sound_title" msgid="6812164482799723931">"નોટિફિકેશન માટે ડિફૉલ્ટ ધ્વનિ"</string>
+    <string name="notification_sound_title" msgid="6812164482799723931">"ડિફૉલ્ટ નોટિફિકેશન સાઉન્ડ"</string>
     <string name="incoming_call_volume_title" msgid="4736570528754310450">"રિંગટોન"</string>
     <string name="notification_volume_title" msgid="6022562909288085275">"નોટિફિકેશન"</string>
     <string name="checkbox_notification_same_as_incoming_call" msgid="7312942422655861175">"સૂચનાઓ માટે ઇનકમિંગ કૉલ વોલ્યુમનો ઉપયોગ કરો"</string>
     <string name="home_work_profile_not_supported" msgid="6137073723297076818">"કાર્ય પ્રોફાઇલ્સનું સમર્થન કરતું નથી"</string>
-    <string name="notification_sound_dialog_title" msgid="6653341809710423276">"નોટિફિકેશન માટે ડિફૉલ્ટ ધ્વનિ"</string>
+    <string name="notification_sound_dialog_title" msgid="6653341809710423276">"ડિફૉલ્ટ નોટિફિકેશન સાઉન્ડ"</string>
     <string name="media_volume_title" msgid="1030438549497800914">"મીડિયા"</string>
     <string name="media_volume_summary" msgid="3142433516297061652">"સંગીત અને વીડિઓ માટે વોલ્યૂમ સેટ કરો"</string>
     <string name="alarm_volume_title" msgid="8902277801531496243">"એલાર્મ"</string>
@@ -1140,7 +1142,7 @@
     <string name="volume_media_description" msgid="3659485559976891268">"સંગીત, વીડિઓ, રમતો, અને અને અન્ય મીડિયા"</string>
     <string name="volume_ring_description" msgid="1975431532517579212">"રિંગટોન અને સૂચનાઓ"</string>
     <string name="volume_notification_description" msgid="8871940450828766751">"નોટિફિકેશનો"</string>
-    <string name="volume_alarm_description" msgid="3230692343946237658">"એલાર્મ્સ"</string>
+    <string name="volume_alarm_description" msgid="3230692343946237658">"એલાર્મ"</string>
     <string name="volume_ring_mute" msgid="6022038055768721847">"રિંગટોન અને સૂચનાઓ મ્યૂટ કરો"</string>
     <string name="volume_media_mute" msgid="816848304566175614">"સંગીત અને અન્ય મીડિયાને મ્યૂટ કરો"</string>
     <string name="volume_notification_mute" msgid="7759564556421535211">"સૂચનાઓ મ્યૂટ કરો"</string>
@@ -1307,7 +1309,7 @@
     <string name="pin_failed" msgid="4877356137480446727">"સિમ પિન ઑપરેશન નિષ્ફળ થયું!"</string>
     <string name="system_update_settings_list_item_title" msgid="1907497454722790033">"સિસ્ટમ અપડેટ્સ"</string>
     <string name="system_update_settings_list_item_summary" msgid="3497456690691907873"></string>
-    <string name="firmware_version" msgid="547095584029938749">"Android સંસ્કરણ"</string>
+    <string name="firmware_version" msgid="547095584029938749">"Android વર્ઝન"</string>
     <string name="security_patch" msgid="483709031051932208">"Android સુરક્ષા પૅચ સ્તર"</string>
     <string name="model_info" msgid="1729765474260797594">"મોડલ"</string>
     <string name="model_summary" msgid="8781425868254352168">"મૉડલ: %1$s"</string>
@@ -1369,7 +1371,7 @@
     <string name="memory_calculating_size" msgid="8407591625479256510">"ગણતરી કરી રહ્યું છે..."</string>
     <string name="memory_apps_usage" msgid="1886814780760368266">"ઍપ્લિકેશનો અને ઍપ્લિકેશન ડેટા"</string>
     <string name="memory_media_usage" msgid="2744652206722240527">"મીડિયા"</string>
-    <string name="memory_downloads_usage" msgid="7039979723012065168">"ડાઉનલોડ્સ"</string>
+    <string name="memory_downloads_usage" msgid="7039979723012065168">"ડાઉનલોડ"</string>
     <string name="memory_dcim_usage" msgid="599009211606524732">"ચિત્રો, વિડિઓઝ"</string>
     <string name="memory_music_usage" msgid="809605300042546279">"ઑડિઓ (સંગીત, રિંગટોન્સ, પોડકાસ્ટ્સ વગેરે)"</string>
     <string name="memory_media_misc_usage" msgid="6258827529046910705">"અન્ય ફાઇલો"</string>
@@ -1456,7 +1458,7 @@
     <string name="storage_detail_system" msgid="6784247618772153283">"સિસ્ટમ"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"<xliff:g id="NAME">^1</xliff:g> નું અન્વેષણ કરો"</string>
     <string name="storage_detail_dialog_other" msgid="5073511663616043370">"ઍપ દ્વારા સાચવવામાં આવેલ શેર કરેલ ફાઇલો, ઇન્ટરનેટ અથવા બ્લૂટૂથ વડે ડાઉનલોડ કરેલ ફાઇલો, Android ફાઇલો અને આના જેવી વધુ ફાઇલો અન્યમાં શામેલ હોય છે. \n\nઆ <xliff:g id="NAME">^1</xliff:g>નું દૃશ્યક્ષમ કન્ટેન્ટ જોવા માટે શોધખોળ કરો પર ટૅપ કરો."</string>
-    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"સિસ્ટમમાં Android સંસ્કરણ <xliff:g id="VERSION">%s</xliff:g> ચલાવવા માટે ઉપયોગી ફાઇલોનો સમાવેશ છે"</string>
+    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"સિસ્ટમમાં Android વર્ઝન <xliff:g id="VERSION">%s</xliff:g> ચલાવવા માટે ઉપયોગી ફાઇલોનો સમાવેશ છે"</string>
     <string name="storage_detail_dialog_user" msgid="1663117417635010371">"<xliff:g id="USER_0">^1</xliff:g>એ <xliff:g id="SIZE">^2</xliff:g> સ્ટોરેજનો ઉપયોગ કરીને ફોટો, સંગીત, ઍપ્લિકેશનો અથવા અન્ય ડેટા સાચવ્યો હોઈ શકે છે.\n\nવિગતો જોવા માટે, <xliff:g id="USER_1">^1</xliff:g> પર સ્વિચ કરો."</string>
     <string name="storage_wizard_init_title" msgid="3407283236421089014">"તમારું <xliff:g id="NAME">^1</xliff:g> સેટ કરો"</string>
     <string name="storage_wizard_init_external_title" msgid="6853250619674645478">"પોર્ટેબલ સંગ્રહ તરીકે ઉપયોગ કરો"</string>
@@ -1567,9 +1569,9 @@
     <string name="menu_restore" msgid="3799288817317293115">"ડીફોલ્ટ પર ફરીથી સેટ કરો"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"ડિફોલ્ટ APN સેટિંગ્સ ફરીથી સેટ કરો પૂર્ણ થયું."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"રીસેટ માટેના વિકલ્પો"</string>
-    <string name="reset_dashboard_summary" msgid="8778383341461126642">"નેટવર્ક, ઍપ અથવા ઉપકરણ રીસેટ કરી શકાય છે"</string>
+    <string name="reset_dashboard_summary" msgid="8778383341461126642">"નેટવર્ક, ઍપ અથવા ડિવાઇસ રીસેટ કરી શકાય છે"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"વાઇ-ફાઇ, મોબાઇલ અને બ્લૂટૂથ રીસેટ કરો"</string>
-    <string name="reset_network_desc" msgid="4982633363916261109">"આ બધી નેટવર્ક સેટિંગ્સ ફરીથી સેટ કરશે, જેમાં સમાવિષ્ટ છે: \n\n"<li>"Wi‑Fi"</li>\n<li>"મોબાઇલ ડેટા"</li>\n<li>"Bluetooth"</li></string>
+    <string name="reset_network_desc" msgid="4982633363916261109">"આ બધા નેટવર્ક સેટિંગ રીસેટ કરશે, જેમાં આનો સમાવેશ છે: \n\n"<li>"Wi‑Fi"</li>\n<li>"મોબાઇલ ડેટા"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"ડાઉનલોડ કરેલાં સિમ કાઢી નખાશે"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"બદલીને લેવાના સિમ ડાઉનલોડ કરવા માટે, તમારા કૅરિઅરનો સંપર્ક કરો. આનાથી કોઈપણ મોબાઇલ સેવા પ્લાન રદ થશે નહીં."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"સેટિંગ્સ ફરીથી સેટ કરો"</string>
@@ -1581,7 +1583,7 @@
     <string name="reset_network_complete_toast" msgid="128225929536005495">"નેટવર્ક સેટિંગ્સ ફરીથી સેટ કરવામાં આવી છે"</string>
     <string name="reset_esim_error_title" msgid="4728931209471875632">"સિમ કાઢી નાખી શકાતાં નથી"</string>
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"ડાઉનલોડ કરેલાં સિમ ભૂલને કારણે કાઢી નાખી શકાતાં નથી.\n\nતમારું ડિવાઇસ ફરી શરૂ કરો અને ફરી પ્રયાસ કરો."</string>
-    <string name="master_clear_title" msgid="1560712943955904673">"બધો ડેટા ભૂંસી નાખો (ફેક્ટરી રીસેટ)"</string>
+    <string name="master_clear_title" msgid="1560712943955904673">"બધો ડેટા કાઢી નાખો (ફેક્ટરી રીસેટ)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"બધો ડેટા કાઢી નાખો (ફેક્ટરી રીસેટ)"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"આ ક્રિયા તમારા ટૅબ્લેટના "<b>"આંતરિક સ્ટોરેજ"</b>"માંથી બધો ડેટા કાઢી નાખશે, જેમાં આનો સમાવેશ થાય છે:\n\n"<li>"તમારું Google એકાઉન્ટ"</li>\n<li>"સિસ્ટમ તેમજ ઍપ ડેટા અને સેટિંગ"</li>\n<li>"ડાઉનલોડ કરેલી ઍપ"</li></string>
     <string name="master_clear_desc" product="default" msgid="8765543541962866697">"આ ક્રિયા તમારા ફોનના "<b>"આંતરિક સ્ટોરેજ"</b>"માંથી બધો ડેટા કાઢી નાખશે, જેમાં આનો સમાવેશ થાય છે:\n\n"<li>"તમારું Google એકાઉન્ટ"</li>\n<li>"સિસ્ટમ તેમજ ઍપ ડેટા અને સેટિંગ"</li>\n<li>"ડાઉનલોડ કરેલી ઍપ"</li></string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"કૃપા કરીને સિમ કાર્ડ શામેલ કરો અને પુનઃપ્રારંભ કરો"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"કૃપા કરીને ઇન્ટરનેટ સાથે કનેક્ટ કરો"</string>
     <string name="location_title" msgid="8664674161765477168">"મારું સ્થાન"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"કાર્યાલયની પ્રોફાઇલ માટે સ્થાન"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ઑફિસની પ્રોફાઇલ માટે સ્થાન"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"ઍપ પરવાનગી"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"સ્થાન બંધ છે"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1714,7 +1716,7 @@
     <string name="lockpassword_confirm_your_password_header" msgid="9055242184126838887">"તમારો પાસવર્ડ ફરી દાખલ કરો"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"તમારા પેટર્નની પુષ્ટિ કરો"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"તમારો પિન ફરી દાખલ કરો"</string>
-    <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"પાસવર્ડ્સ મેળ ખાતા નથી"</string>
+    <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"પાસવર્ડ મેળ ખાતા નથી"</string>
     <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"પિન મેળ ખાતા નથી"</string>
     <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"તમારી પૅટર્ન ફરીથી દોરો"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"અનલૉક પસંદગી"</string>
@@ -1970,7 +1972,7 @@
     <string name="show_ime" msgid="7322620473198763563">"વર્ચ્યુઅલ કીબોર્ડ બતાવો"</string>
     <string name="show_ime_summary" msgid="3246628154011464373">"જ્યારે ભૌતિક કીબોર્ડ સક્રિય હોય ત્યારે તેને સ્ક્રીન પર રાખો"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"કીબોર્ડ શૉર્ટકટ્સ સહાયક"</string>
-    <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"ઉપલબ્ધ શૉર્ટકટ્સ પ્રદર્શિત કરો"</string>
+    <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"ઉપલબ્ધ શૉર્ટકટ પ્રદર્શિત કરો"</string>
     <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"કાર્યાલયનું પ્રોફાઇલ અને સાધનો"</string>
     <string name="virtual_keyboards_for_work_title" msgid="3968291646938204523">"કાર્ય માટે વર્ચ્યુઅલ કીબોર્ડ"</string>
     <string name="default_keyboard_layout" msgid="9171704064451242230">"ડિફોલ્ટ"</string>
@@ -1998,7 +2000,7 @@
     <string name="user_dict_settings_add_word_hint" msgid="4184010899351180735">"એક શબ્દ લખો"</string>
     <string name="user_dict_settings_add_shortcut_hint" msgid="2212771507741334156">"વૈકલ્પિક શોર્ટકટ"</string>
     <string name="user_dict_settings_edit_dialog_title" msgid="6492621665762797309">"શબ્દ સંપાદિત કરો"</string>
-    <string name="user_dict_settings_context_menu_edit_title" msgid="4577283176672181497">"સંપાદિત કરો"</string>
+    <string name="user_dict_settings_context_menu_edit_title" msgid="4577283176672181497">"ફેરફાર કરો"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="670470172230144069">"ડિલીટ કરો"</string>
     <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"તમારી પાસે વપરાશકર્તા શબ્દકોશમાં કોઈપણ શબ્દ નથી. શબ્દને ઉમેરવા માટે, ઉમેરો (+) બટન ટૅપ કરો."</string>
     <string name="user_dict_settings_all_languages" msgid="8839702015353418176">"તમામ ભાષાઓ માટે"</string>
@@ -2084,7 +2086,7 @@
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"તમારે વાંચવા જરૂરી હોય, પરંતુ હંગામી રૂપે દેખાતા સંદેશાને કેટલા સમય સુધી બતાવવા તે પસંદ કરો.\n\nઆ સેટિંગની સુવિધા બધી ઍપમાં નથી હોતી."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"તમને ક્રિયા કરવાનું કહેતાં હોય, પરંતુ હંગામી રૂપે દેખાતા સંદેશાને કેટલા સમય સુધી દેખાડવા તે પસંદ કરો.\n\nઆ સેટિંગની સુવિધા બધી ઍપમાં નથી હોતી."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"ટચ કરી અને પકડવા પર વિલંબ"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"રંગ બદલવાની સુવિધા"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"વિપરીત રંગમાં બદલવું"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"કાર્યપ્રદર્શનને અસર થઈ શકે છે"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"જોવાયાનો સમયગાળો"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"જો તમે માઉસનો ઉપયોગ કરી રહ્યાં હોય, તો જ્યારે કર્સર અમુક ચોક્કસ સમય માટે કાર્ય કરતું રોકાઈ જાય ત્યારે તમે તેને આપમેળે ક્રિયા કરવા માટે સેટ કરી શકો છો."</string>
@@ -2433,7 +2435,7 @@
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"બૅટરી વપરાશ"</string>
     <string name="battery_detail_info_title" msgid="4617514228447481336">"સંપૂર્ણ ચાર્જ પછી"</string>
     <string name="battery_detail_manage_title" msgid="745194290572617507">"બૅટરી વપરાશ સંચાલિત કરો"</string>
-    <string name="advanced_battery_graph_subtext" msgid="3349760453669664057">"બાકી રહેલી બૅટરીનો અંદાજ ઉપકરણના તમારા ઉપયોગ પર આધારિત છે"</string>
+    <string name="advanced_battery_graph_subtext" msgid="3349760453669664057">"બાકી રહેલી બૅટરીનો અંદાજ ડિવાઇસના તમારા ઉપયોગ પર આધારિત છે"</string>
     <string name="estimated_time_left" msgid="8849913193475011250">"અંદાજિત બાકી સમય"</string>
     <string name="estimated_charging_time_left" msgid="7597080379844486777">"સંપૂર્ણપણે ચાર્જ થવામાં"</string>
     <string name="estimated_time_description" msgid="9220355793080184567">"વપરાશના આધારે અનુમાન બદલાઈ શકે છે"</string>
@@ -2563,18 +2565,18 @@
     <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"ઉપકરણ ડેટા (જેમ કે વાઇ-ફાઇ પાસવર્ડ્સ અને કૉલ ઇતિહાસ) અને ઍપ્લિકેશન ડેટા (જેમ કે સેટિંગ્સ અને ઍપ્લિકેશનો દ્વારા સંગ્રહિત ફાઇલો) નું બેકઅપ લેવાનું રોકીએ, ઉપરાંત રિમોટ સર્વર્સ પરની તમામ કૉપિઝ કાઢી નાખીએ?"</string>
     <string name="fullbackup_data_summary" msgid="406274198094268556">"ઉપકરણ ડેટા (જેમ કે વાઇ-ફાઇ પાસવર્ડ્સ અને કૉલ ઇતિહાસ) અને ઍપ્લિકેશન ડેટા (જેમ કે સેટિંગ્સ અને ઍપ્લિકેશનો દ્વારા સંગ્રહિત ફાઇલો)નો રિમોટલી આપમેળે બેક અપ લો.\n\nજ્યારે તમે સ્વચલિત બેકઅપ ચાલુ કરો છો, ત્યારે ઉપકરણ અને ઍપ્લિકેશન ડેટા સમયાંતરે રિમોટલી સચવાય છે. ઍપ્લિકેશન ડેટા એવો કોઈપણ ડેટા હોઈ શકે જેને કોઈ ઍપ્લિકેશને સાચવ્યો હોય (વિકાસકર્તા સેટિંગ્સનાં આધારે) જેમાં સંપર્કો, સંદેશા અને ફોટો જેવા સંભવિતપણે સંવેદનશીલ ડેટાનો સમાવેશ થાય છે."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"ઉપકરણ વ્યવસ્થાપક સેટિંગ્સ"</string>
-    <string name="active_device_admin_msg" msgid="6929247869516924549">"ઉપકરણ વ્યવસ્થાપક ઍપ્લિકેશન"</string>
+    <string name="active_device_admin_msg" msgid="6929247869516924549">"ડિવાઇસ વ્યવસ્થાપક ઍપ્લિકેશન"</string>
     <string name="remove_device_admin" msgid="4413438593788336400">"આ ઉપકરણ વ્યવસ્થાપક ઍપ્લિકેશનને નિષ્ક્રિય કરો"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"ઍપ્લિકેશન અનઇન્સ્ટૉલ કરો"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"નિષ્ક્રિય અને અનઇન્સ્ટૉલ કરો"</string>
     <string name="select_device_admin_msg" msgid="4173769638399075387">"ઉપકરણ વ્યવસ્થાપક ઍપ્લિકેશનો"</string>
     <string name="no_device_admins" msgid="4129231900385977460">"કોઈ ઉપકરણ વ્યવસ્થાપક ઍપ્લિકેશનો ઉપલબ્ધ નથી"</string>
     <string name="personal_device_admin_title" msgid="759440849188565661">"વ્યક્તિગત"</string>
-    <string name="managed_device_admin_title" msgid="8021522755492551726">"કાર્યાલય"</string>
+    <string name="managed_device_admin_title" msgid="8021522755492551726">"ઑફિસ"</string>
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"SMS અને કૉલ લૉગનો અ‍ૅક્સેસ પ્રતિબંધિત કરો"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"માત્ર ડિફૉલ્ટ ફોન અને સંદેશ માટેની અ‍ૅપ પાસે SMS અને કૉલ લૉગની પરવાનગીઓ હોય છે"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"કોઈ ઉપલબ્ધ ટ્રસ્ટ એજન્ટ્સ નથી"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"ઉપકરણ વ્યવસ્થાપક ઍપ્લિકેશન સક્રિય કરીએ?"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"ડિવાઇસ વ્યવસ્થાપક ઍપ્લિકેશન સક્રિય કરીએ?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"આ ઉપકરણ વ્યવસ્થાપક ઍપ્લિકેશન સક્રિય કરો"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"ઉપકરણ વ્યવસ્થાપક"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"આ વ્યવસ્થાપક ઍપ્લિકેશનને સક્રિય કરવું ઍપ્લિકેશન <xliff:g id="APP_NAME">%1$s</xliff:g>ને નીચેની ક્રિયાઓ કરવાની મંજૂરી આપશે:"</string>
@@ -2599,7 +2601,7 @@
     <string name="work_mode_label" msgid="6845849194740195757">"કાર્યાલયની પ્રોફાઇલ"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"તમારી સંસ્થા દ્વારા મેનેજ કરેલ"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"ઍપ અને નોટિફિકેશન બંધ છે"</string>
-    <string name="remove_managed_profile_label" msgid="4625542553784793536">"કાર્યાલયની પ્રોફાઇલ દૂર કરો"</string>
+    <string name="remove_managed_profile_label" msgid="4625542553784793536">"ઑફિસની પ્રોફાઇલ દૂર કરો"</string>
     <string name="background_data" msgid="8275750862371471171">"બૅકગ્રાઉન્ડ ડેટા"</string>
     <string name="background_data_summary" msgid="799640633948841990">"ઍપ્લિકેશનો કોઈપણ સમયે ડેટાને સમન્વયિત, મોકલી અને પ્રાપ્ત કરી શકે છે"</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"બૅકગ્રાઉન્ડ ડેટાને અક્ષમ કરીએ?"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"હમણાં સમન્વયિત કરવા માટે ટૅપ કરો<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"કૅલેન્ડર"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"સંપર્કો"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google સમન્વયન પર સ્વાગત છે!"</font>" \nતમારા સંપર્કો, એપોઇન્ટમેન્ટ્સ અને વધુના અ‍ૅક્સેસની તમે જ્યાં પણ હોવ ત્યાંથી મંજૂરી આપવા માટે ડેટાને સમન્વયિત કરવાનો એક Google અભિગમ."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"ઍપ્લિકેશન સમન્વયન સેટિંગ્સ"</string>
@@ -2668,8 +2670,8 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"સિમ કાર્ડ"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"થોભાવવાની મર્યાદા"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"ડેટાને આપમેળે સિંક કરો"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"વ્યક્તિગત ડેટાને આપમેળે સિંક કરો"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"કાર્યાલયના ડેટાને આપમેળે સિંક કરો"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"વ્યક્તિગત ડેટાને ઑટો સિંક કરો"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"ઑફિસના ડેટાને ઑટો સિંક કરો"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"ચક્ર બદલો…"</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"ડેટા વપરાશ ચક્ર ફરીથી સેટ કરવા માટે મહિનાનો દિવસ:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"આ સમયગાળા દરમ્યાન કોઈ એપ્લિકેશને ડેટાનો ઉપયોગ કર્યો નથી."</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"વપરાશકર્તા"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"પ્રતિબંધિત પ્રોફાઇલ"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"નવા વપરાશકર્તાને ઉમેરીએ?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"તમે વધારાના વપરાશકર્તાઓ બનાવીને અન્ય લોકો સાથે આ ઉપકરણને શેર કરી શકો છો. દરેક વપરાશકર્તા પાસે તેમની પોતાની સ્પેસ છે, જેને તેઓ ઍપ, વૉલપેપર, વગેરે સાથે કસ્ટમાઇઝ કરી શકે છે. વપરાશકર્તાઓ પ્રત્યેક વ્યક્તિને અસર કરતી હોય તેવી ઉપકરણ સેટિંગ જેમ કે વાઇ-ફાઇને પણ સમાયોજિત કરી શકે છે.\n\nજ્યારે તમે કોઈ નવા વપરાશકર્તાને ઉમેરો છો, ત્યારે તે વ્યક્તિને તેમની સ્પેસ સેટ કરવાની જરૂર પડે છે.\n\nકોઈપણ વપરાશકર્તા અન્ય બધા વપરાશકર્તાઓ માટે ઍપને અપડેટ કરી શકે છે. નવા વપરાશકર્તાને ઍક્સેસિબિલિટી સેટિંગ અને સેવાઓ ટ્રાન્સફર ન પણ થાય."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"તમે વધારાના વપરાશકર્તાઓ બનાવીને અન્ય લોકો સાથે આ ડિવાઇસને શેર કરી શકો છો. દરેક વપરાશકર્તા પાસે તેમની પોતાની સ્પેસ છે, જેને તેઓ ઍપ, વૉલપેપર, વગેરે સાથે કસ્ટમાઇઝ કરી શકે છે. વપરાશકર્તાઓ પ્રત્યેક વ્યક્તિને અસર કરતી હોય તેવી ડિવાઇસ સેટિંગ જેમ કે વાઇ-ફાઇને પણ સમાયોજિત કરી શકે છે.\n\nજ્યારે તમે કોઈ નવા વપરાશકર્તાને ઉમેરો છો, ત્યારે તે વ્યક્તિને તેમની સ્પેસ સેટ કરવાની જરૂર પડે છે.\n\nકોઈપણ વપરાશકર્તા અન્ય બધા વપરાશકર્તાઓ માટે ઍપને અપડેટ કરી શકે છે. નવા વપરાશકર્તાને ઍક્સેસિબિલિટી સેટિંગ અને સેવાઓ ટ્રાન્સફર ન પણ થાય."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"જ્યારે તમે કોઈ નવા વપરાશકર્તાને ઉમેરો છો, ત્યારે તે વ્યક્તિને તેમનું સ્થાન સેટ અપ કરવાની જરૂર પડે છે.\n\nકોઈપણ વપરાશકર્તા બધા અન્ય વપરાશકર્તાઓ માટે એપ્લિકેશન્સને અપડેટ કરી શકે છે."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"અત્યારે જ વપરાશકર્તાને સેટ અપ કરીએ?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"ખાતરી કરો કે વ્યક્તિ ઉપકરણ લેવા અને તેમના સ્થાનનું સેટ અપ કરવા માટે ઉપલબ્ધ છે"</string>
@@ -2886,7 +2888,7 @@
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"તમને પોતાને કાઢી નાખીએ?"</string>
     <string name="user_confirm_remove_title" msgid="1034498514019462084">"આ વપરાશકર્તા ડિલીટ કરીએ?"</string>
     <string name="user_profile_confirm_remove_title" msgid="6138684743385947063">"આ પ્રોફાઇલ દૂર કરીએ?"</string>
-    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"કાર્યાલયની પ્રોફાઇલ દૂર કરીએ?"</string>
+    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"ઑફિસની પ્રોફાઇલ દૂર કરીએ?"</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="2889456786320157545">"તમ તમારું સ્થાન અને ડેટા આ ટેબ્લેટ પરથી ગુમાવશો. તમે આ ક્રિયાને પૂર્વવત્ કરી શકતા નથી."</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="8441729423565705183">"તમે આ ફોન પરથી તમારું સ્થાન અને ડેટા ગુમાવશો. તમે આ ક્રિયાને પૂર્વવત્ કરી શકતા નથી."</string>
     <string name="user_confirm_remove_message" msgid="5202150470271756013">"તમામ ઍપ્લિકેશનો અને ડેટા કાઢી નાખવામાં આવશે."</string>
@@ -2900,7 +2902,7 @@
     <string name="user_exit_guest_confirm_title" msgid="4767911571671099844">"અતિથિ દૂર કરીએ?"</string>
     <string name="user_exit_guest_confirm_message" msgid="6955182181145748919">"આ સત્રમાંની તમામ ઍપ્લિકેશનો અને ડેટા કાઢી નાખવામાં આવશે."</string>
     <string name="user_exit_guest_dialog_remove" msgid="1878866060881115716">"દૂર કરો"</string>
-    <string name="user_enable_calling" msgid="864760054792249503">"ફોન કોલ્સ ચાલુ કરો"</string>
+    <string name="user_enable_calling" msgid="864760054792249503">"ફોન કૉલ ચાલુ કરો"</string>
     <string name="user_enable_calling_sms" msgid="3450252891736718793">"ફોન કૉલ્સ અને SMS ચાલુ કરો"</string>
     <string name="user_remove_user" msgid="3687544420125911166">"વપરાશકર્તાને ડિલીટ કરો"</string>
     <string name="user_enable_calling_confirm_title" msgid="1141612415529158542">"ફોન કૉલ્સ ચાલુ કરીએ?"</string>
@@ -3033,7 +3035,7 @@
     <string name="network_dashboard_summary_mobile" msgid="5560545061217580626">"મોબાઇલ"</string>
     <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"ડેટા વપરાશ"</string>
     <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"હૉટસ્પૉટ"</string>
-    <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"કનેક્ટ થયેલ ઉપકરણો"</string>
+    <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"કનેક્ટ થયેલા ડિવાઇસ"</string>
     <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"બ્લૂટૂથ, ડ્રાઇવિંગ મોડ, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"બ્લૂટૂથ, ડ્રાઇવિંગ મોડ"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"બ્લૂટૂથ, NFC"</string>
@@ -3139,9 +3141,9 @@
     <string name="ring_volume_option_title" msgid="2038924918468372264">"રિંગ વૉલ્યૂમ"</string>
     <string name="notification_volume_option_title" msgid="1358512611511348260">"નોટિફિકેશન વૉલ્યૂમ"</string>
     <string name="ringtone_title" msgid="1409086028485922583">"ફોન રિંગટોન"</string>
-    <string name="notification_ringtone_title" msgid="2932960620843976285">"નોટિફિકેશન માટે ડિફૉલ્ટ ધ્વનિ"</string>
+    <string name="notification_ringtone_title" msgid="2932960620843976285">"ડિફૉલ્ટ નોટિફિકેશન સાઉન્ડ"</string>
     <string name="notification_unknown_sound_title" msgid="8043718667804838398">"ઍપ્લિકેશને અવાજ પૂરો પાડ્યો"</string>
-    <string name="notification_sound_default" msgid="2664544380802426260">"નોટિફિકેશન માટે ડિફૉલ્ટ ધ્વનિ"</string>
+    <string name="notification_sound_default" msgid="2664544380802426260">"ડિફૉલ્ટ નોટિફિકેશન સાઉન્ડ"</string>
     <string name="alarm_ringtone_title" msgid="6411326147408635902">"ડિફૉલ્ટ એલાર્મ સાઉન્ડ"</string>
     <string name="vibrate_when_ringing_title" msgid="2757996559847126952">"કૉલ માટે વાઇબ્રેટ કરો"</string>
     <string name="other_sound_settings" msgid="5250376066099818676">"અન્ય ધ્વનિઓ"</string>
@@ -3321,7 +3323,7 @@
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"કાર્ય પ્રોફાઇલ લૉક થાય ત્યારે"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"તમામ નોટિફિકેશન કન્ટેન્ટ બતાવો"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"સંવેદનશીલ કન્ટેન્ટ છુપાવો"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"નોટિફિકેશનો બિલકુલ બતાવશો નહીં"</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"નોટિફિકેશન બિલકુલ બતાવશો નહીં"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"જ્યારે તમારું ઉપકરણ લૉક કરેલું હોય, ત્યારે તમે નોટિફિકેશનો કેવી રીતે બતાવવા માગો છો?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"નોટિફિકેશનો"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"કાર્યાલયનું તમામ નોટિફિકેશન કન્ટેન્ટ બતાવો"</string>
@@ -3379,7 +3381,7 @@
     <string name="no_vr_listeners" msgid="7675484190394450979">"કોઇ ઇન્સ્ટૉલ કરેલ ઍપ્લિકેશનોએ VR સહાયક સેવાઓ તરીકે શરૂ કરવાની વિનંતી કરી નથી."</string>
     <string name="vr_listener_security_warning_title" msgid="7019322246707645361">"<xliff:g id="SERVICE">%1$s</xliff:g> માટે VR સેવા ઍક્સેસની મંજૂરી આપીએ?"</string>
     <string name="vr_listener_security_warning_summary" msgid="5093225583584522067">"જ્યારે તમે વર્ચ્યુઅલ રિયાલિટી મોડમાં ઍપ્લિકેશનોનો ઉપયોગ કરી રહ્યાં હોવ ત્યારે <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> શરૂ થવા માટે સમર્થ હશે."</string>
-    <string name="display_vr_pref_title" msgid="1088464812293416981">"ઉપકરણ, VR માં હોય ત્યારે"</string>
+    <string name="display_vr_pref_title" msgid="1088464812293416981">"ડિવાઇસ, VR માં હોય ત્યારે"</string>
     <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"બ્લર ઘટાડો (ભલામણ કરેલ)"</string>
     <string name="display_vr_pref_off" msgid="4681320968818852691">"ફ્લિકર ઘટાડો"</string>
     <string name="picture_in_picture_title" msgid="4960733106166035448">"ચિત્ર-માં-ચિત્ર"</string>
@@ -3430,7 +3432,7 @@
     <string name="app_notification_importance_title" msgid="1902794400671001142">"મહત્વ"</string>
     <string name="notification_show_lights_title" msgid="5381920725933228542">"લાઇટ ઝબકવી"</string>
     <string name="notification_vibrate_title" msgid="8221718258793835282">"વાઇબ્રેટ"</string>
-    <string name="notification_channel_sound_title" msgid="7635366839003304745">"ધ્વનિ"</string>
+    <string name="notification_channel_sound_title" msgid="7635366839003304745">"સાઉન્ડ"</string>
     <string name="zen_mode_rule_delete_button" msgid="6763486487220471193">"ડિલીટ કરો"</string>
     <string name="zen_mode_rule_rename_button" msgid="1428130397306726792">"નામ બદલો"</string>
     <string name="zen_mode_rule_name" msgid="8583652780885724670">"શેડ્યૂલનું નામ"</string>
@@ -3548,7 +3550,7 @@
     <string name="zen_mode_screen_off_summary_no_led" msgid="7255874108150630145">"ખલેલ પાડશો નહીં દ્વારા શાંત કરેલ નોટિફિકેશનોને સ્ક્રીન ચાલુ કરવા દો"</string>
     <string name="notification_app_settings_button" msgid="3651180424198580907">"સૂચનાઓની સેટિંગ્સ"</string>
     <string name="suggestion_button_text" msgid="5783566542423813847">"ઓકે"</string>
-    <string name="device_feedback" msgid="4042352891448769818">"આ ઉપકરણ વિશે પ્રતિસાદ મોકલો"</string>
+    <string name="device_feedback" msgid="4042352891448769818">"આ ડિવાઇસ વિશે પ્રતિસાદ મોકલો"</string>
     <string name="restr_pin_enter_admin_pin" msgid="8577847751493521230">"વ્યવસ્થાપક પિન દાખલ કરો"</string>
     <string name="switch_on_text" msgid="7100491749799298324">"ચાલુ"</string>
     <string name="switch_off_text" msgid="3539551289454353555">"બંધ"</string>
@@ -3633,7 +3635,7 @@
     <string name="filter_enabled_apps" msgid="5888459261768538489">"ઇન્સ્ટૉલ કરેલી ઍપ્લિકેશનો"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"ઝટપટ ઍપ્લિકેશનો"</string>
     <string name="filter_personal_apps" msgid="3473268022652904457">"વ્યક્તિગત"</string>
-    <string name="filter_work_apps" msgid="4202483998339465542">"કાર્યાલય"</string>
+    <string name="filter_work_apps" msgid="4202483998339465542">"ઑફિસ"</string>
     <string name="filter_notif_all_apps" msgid="1862666327228804896">"ઍપ્લિકેશનો: તમામ"</string>
     <string name="filter_notif_blocked_apps" msgid="5694956954776028202">"બંધ કરેલી છે"</string>
     <string name="filter_notif_urgent_channels" msgid="5000735867167027148">"કૅટેગરી: તાત્કાલિક મહત્વની"</string>
@@ -3694,7 +3696,7 @@
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="2518319744362028920">"બૅટરી ઓપ્ટિમાઇઝેશન"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"વપરાશ સંબંધી ચેતવણીઓ"</string>
-    <string name="show_all_apps" msgid="5442552004569634846">"ઉપકરણનો સંપૂર્ણ વપરાશ બતાવો"</string>
+    <string name="show_all_apps" msgid="5442552004569634846">"ડિવાઇસનો સંપૂર્ણ વપરાશ બતાવો"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"ઍપ્લિકેશનનો વપરાશ બતાવો"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
       <item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> ઍપ્લિકેશન અસાધારણ રીતે વર્તન કરી રહી છે</item>
@@ -3709,8 +3711,8 @@
     <string name="high_power_off" msgid="5906679734326490426">"બૅટરી વપરાશને ઓપ્ટિમાઇઝ કરી રહ્યું છે"</string>
     <string name="high_power_system" msgid="739584574711292753">"બૅટરી ઓપ્ટિમાઇઝેશન ઉપલબ્ધ નથી"</string>
     <string name="high_power_desc" msgid="333756885680362741">"બૅટરી ઓપ્ટિમાઇઝેશન લાગુ કરશો નહીં. તેનાથી તમારી બૅટરી વધુ ઝડપથી ખાલી થઈ શકે છે."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"ઍપ્લિકેશનને હંમેશાં પૃષ્ઠભૂમિમાં ચાલવા દઈએ?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g>ને હંમેશાં પૃષ્ઠભૂમિમાં ચાલવાની મંજૂરી આપવાથી બૅટરી આવરદા ઓછી થઈ શકે છે. \n\nતમે આને સેટિંગ્સ &gt; ઍપ્લિકેશનો અને સૂચનાઓમાં પછીથી બદલી શકો છો."</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"ઍપને હંમેશાં બૅકગ્રાઉન્ડમાં ચાલવા દઈએ?"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g>ને હંમેશાં બૅકગ્રાઉન્ડમાં ચાલવાની મંજૂરી આપવાથી બૅટરી આવરદા ઓછી થઈ શકે છે. \n\nતમે આને સેટિંગ &gt; ઍપ અને નોટિફિકેશનોમાં પછીથી બદલી શકો છો."</string>
     <string name="battery_summary" msgid="4345690800899981339">"છેલ્લા પૂર્ણ ચાર્જ પછી <xliff:g id="PERCENTAGE">%1$s</xliff:g> ઉપયોગ"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"પાવર સંચાલન"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"છેલ્લા પૂર્ણ ચાર્જ પછી કોઈ બૅટરી ઉપયોગ નહીં"</string>
@@ -3741,10 +3743,10 @@
     <string name="usb_preference" msgid="7092987095048592826">"USBની પસંદગીઓ"</string>
     <string name="usb_control_title" msgid="2379698856760894768">"આના દ્વારા નિયંત્રિત USB"</string>
     <string name="usb_control_host" msgid="193292043691034178">"કનેક્ટ થયેલ ઉપકરણ"</string>
-    <string name="usb_control_device" msgid="9154790265254725254">"આ ઉપકરણ"</string>
+    <string name="usb_control_device" msgid="9154790265254725254">"આ ડિવાઇસ"</string>
     <string name="usb_switching" msgid="1230386065163529904">"સ્વિચ કરી રહ્યાં છીએ…"</string>
     <string name="usb_switching_failed" msgid="6857722544186145439">"સ્વિચ કરી શક્યા નથી"</string>
-    <string name="usb_summary_charging_only" msgid="4118449308708872339">"આ ઉપકરણને ચાર્જ કરવું"</string>
+    <string name="usb_summary_charging_only" msgid="4118449308708872339">"આ ડિવાઇસને ચાર્જ કરવું"</string>
     <string name="usb_summary_power_only" msgid="3552240122641051107">"કનેક્ટેડ ઉપકરણ ચાર્જ કરી રહ્યાં છીએ"</string>
     <string name="usb_summary_file_transfers" msgid="7805342797099821502">"ફાઇલ ટ્રાન્સફર"</string>
     <string name="usb_summary_tether" msgid="778845069037366883">"USBથી ઇન્ટરનેટ શેર કરવાની સુવિધા"</string>
@@ -3951,7 +3953,7 @@
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> પ્રતિબંધ</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> પ્રતિબંધ</item>
     </plurals>
-    <string name="operator_warning" msgid="4676042739221117031">"કૅરિઅર ડેટા ગણતરી, ઉપકરણ ગણતરીથી અલગ હોઈ શકે છે"</string>
+    <string name="operator_warning" msgid="4676042739221117031">"કૅરિઅર ડેટા ગણતરી, ડિવાઇસ ગણતરીથી અલગ હોઈ શકે છે"</string>
     <string name="data_used_template" msgid="761605393453849477">"<xliff:g id="ID_1">%1$s</xliff:g> ઉપયોગ થયો"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"ડેટા ચેતવણી સેટ કરો"</string>
     <string name="data_warning" msgid="2699207195535036240">"ડેટા ચેતવણી"</string>
@@ -4034,7 +4036,7 @@
     <string name="notification_log_details_parcel" msgid="4024970850647594029">"પાર્સલનું કદ"</string>
     <string name="notification_log_details_ashmem" msgid="4272241723105041393">"એશ્મેમ"</string>
     <string name="notification_log_details_alerted" msgid="1891749888625061319">"નોટિફિકેશન અલર્ટ કરેલ"</string>
-    <string name="notification_log_details_sound" msgid="4028782443557466322">"ધ્વનિ"</string>
+    <string name="notification_log_details_sound" msgid="4028782443557466322">"સાઉન્ડ"</string>
     <string name="notification_log_details_vibrate" msgid="8372400602058888072">"વાઇબ્રેટ"</string>
     <string name="notification_log_details_vibrate_pattern" msgid="7015554755444260922">"પૅટર્ન"</string>
     <string name="notification_log_details_default" msgid="455451833359888182">"ડિફોલ્ટ"</string>
@@ -4079,7 +4081,7 @@
     <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"ઝપડી સેટિંગ્સ વિકાસકર્તા ટાઇલ"</string>
     <string name="winscope_trace_quick_settings_title" msgid="940971040388411374">"Winscope ટ્રેસ"</string>
     <string name="sensors_off_quick_settings_title" msgid="3655699045300438902">"સેન્સર બંધ છે"</string>
-    <string name="managed_profile_settings_title" msgid="4340409321523532402">"કાર્યાલયની પ્રોફાઇલની સેટિંગ્સ"</string>
+    <string name="managed_profile_settings_title" msgid="4340409321523532402">"ઑફિસની પ્રોફાઇલના સેટિંગ"</string>
     <string name="managed_profile_contact_search_title" msgid="7337225196804457095">"સંપર્ક શોધ"</string>
     <string name="managed_profile_contact_search_summary" msgid="7278267480246726951">"કૉલર્સ અને સંપર્કોને ઓળખવા માટે તમારી સંસ્થા દ્વારા સંપર્ક શોધની મંજૂરી આપો"</string>
     <string name="cross_profile_calendar_title" msgid="2351605904015067145">"ક્રૉસ-પ્રોફાઇલ કૅલેન્ડર"</string>
@@ -4158,7 +4160,7 @@
     <string name="auto_sync_account_title" msgid="2394463123733529506">"ડેટાને ઑટોમૅટિક રીતે સિંક કરો"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"વ્યક્તિગત ડેટાનું આપમેળે સમન્વયન કરો"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"કાર્ય ડેટાનું આપમેળે સમન્વયન કરો"</string>
-    <string name="auto_sync_account_summary" msgid="6316230976974033772">"ઍપને આપમેળે ડેટાને રિફ્રેશ કરવા દો"</string>
+    <string name="auto_sync_account_summary" msgid="6316230976974033772">"ઍપને ઑટોમૅટિક રીતે ડેટાને રિફ્રેશ કરવા દો"</string>
     <string name="account_sync_title" msgid="1570164819114297154">"એકાઉન્ટ સિંક"</string>
     <string name="account_sync_summary_some_on" msgid="1934556869158274053">"<xliff:g id="ID_2">%2$d</xliff:g> માંથી <xliff:g id="ID_1">%1$d</xliff:g> આઇટમ માટે સમન્વયન ચાલુ છે"</string>
     <string name="account_sync_summary_all_on" msgid="3634161204232431700">"બધી આઇટમ માટે સમન્વયન ચાલુ છે"</string>
@@ -4233,8 +4235,8 @@
     </plurals>
     <string name="app_names_concatenation_template_2" msgid="8267577900046506189">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
     <string name="app_names_concatenation_template_3" msgid="5129064036161862327">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>, <xliff:g id="THIRD_APP_NAME">%3$s</xliff:g>"</string>
-    <string name="storage_photos_videos" msgid="1890829312367477559">"ફોટો અને વીડિઓ"</string>
-    <string name="storage_music_audio" msgid="3661289086715297149">"સંગીત અને ઑડિઓ"</string>
+    <string name="storage_photos_videos" msgid="1890829312367477559">"ફોટો અને વીડિયો"</string>
+    <string name="storage_music_audio" msgid="3661289086715297149">"સંગીત અને ઑડિયો"</string>
     <string name="storage_games" msgid="7740038143749092373">"રમતો"</string>
     <string name="storage_other_apps" msgid="3202407095387420842">"અન્ય ઍપ્લિકેશનો"</string>
     <string name="storage_files" msgid="2087824267937487880">"ફાઇલો"</string>
@@ -4245,7 +4247,7 @@
     <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"શું તમે આ ઝટપટ ઍપ્લિકેશન દૂર કરવા માંગો છો?"</string>
     <string name="launch_instant_app" msgid="5251693061228352333">"ખોલો"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"રમતો"</string>
-    <string name="audio_files_title" msgid="3073879661731363935">"ઑડિઓ ફાઇલો"</string>
+    <string name="audio_files_title" msgid="3073879661731363935">"ઑડિયો ફાઇલો"</string>
     <string name="app_info_storage_title" msgid="6643391804949509308">"જગ્યા વપરાઈ"</string>
     <string name="webview_uninstalled_for_user" msgid="3407952144444040557">"(<xliff:g id="USER">%s</xliff:g> માટે અનઇન્સ્ટૉલ કરેલ)"</string>
     <string name="webview_disabled_for_user" msgid="8057805373224993504">"(વપરાશકર્તા <xliff:g id="USER">%s</xliff:g> માટે અક્ષમ કરેલ)"</string>
@@ -4304,12 +4306,12 @@
     <string name="disabled_dependent_setting_summary" msgid="7668590009599010842">"અન્ય સેટિંગ પર આધાર રાખે છે"</string>
     <string name="unknown_unavailability_setting_summary" msgid="5785931810977403534">"સેટિંગ અનુપલબ્ધ છે"</string>
     <string name="my_device_info_account_preference_title" msgid="7965847995028952373">"એકાઉન્ટ"</string>
-    <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"ઉપકરણનું નામ"</string>
+    <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"ડિવાઇસનું નામ"</string>
     <string name="change_wifi_state_title" msgid="5140754955787584174">"વાઇ-ફાઇ નિયંત્રણ"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"ઍપને વાઇ-ફાઇ નિયંત્રિત કરવાની મંજૂરી આપો"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"આ ઍપને વાઇ-ફાઇ ચાલુ અથવા બંધ કરવા, વાઇ-ફાઇ નેટવર્કને સ્કૅન અને કનેક્ટ કરવા, નેટવર્ક ઉમેરવા અથવા કાઢી નાખવા અથવા માત્ર-સ્થાનિક હૉટસ્પૉટ શરૂ કરવાની મંજૂરી આપો"</string>
     <string name="media_output_title" msgid="8710632337456601848">"મીડિયા આના પર ચલાવો"</string>
-    <string name="media_output_default_summary" msgid="3159237976830415584">"આ ઉપકરણ"</string>
+    <string name="media_output_default_summary" msgid="3159237976830415584">"આ ડિવાઇસ"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"ફોન"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"ટૅબ્લેટ"</string>
     <string name="media_output_summary" product="device" msgid="5132223072593052660">"ઉપકરણ"</string>
@@ -4471,7 +4473,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"પ્રાઇવસી"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"પરવાનગીઓ, એકાઉન્ટ પ્રવૃત્તિ, વ્યક્તિગત ડેટા"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"કાઢી નાખો"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"રાખો"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"આ સુઝાવ કાઢી નાખીએ?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"સૂચન કાઢી નાખ્યું"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"છેલ્લો ફેરફાર રદ કરો"</string>
diff --git a/tests/CarDeveloperOptions/res/values-hi/arrays.xml b/tests/CarDeveloperOptions/res/values-hi/arrays.xml
index 68fe0bf..acc4345 100644
--- a/tests/CarDeveloperOptions/res/values-hi/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-hi/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"कभी भी अनुमति न दें"</item>
     <item msgid="8184570120217958741">"हमेशा अनुमति दें"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"मेमोरी की स्थिति सामान्य है"</item>
+    <item msgid="5101233285497327432">"मध्यम"</item>
+    <item msgid="1555861583162930714">"कम"</item>
+    <item msgid="1719683776264798117">"महत्वपूर्ण"</item>
+    <item msgid="1567326459340152525">"कितनी मेमोरी है?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"सामान्य"</item>
+    <item msgid="6107138933849816768">"मध्यम"</item>
+    <item msgid="182695359839047859">"कम"</item>
+    <item msgid="8577246509202964244">"मेमोरी बेहद कम है"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"निरंतर"</item>
     <item msgid="167418068739176448">"शीर्ष गतिविधि"</item>
@@ -467,7 +477,7 @@
     <item msgid="1008268820118852416">"इस कनेक्शन में डेटा से जुड़ी पाबंदी नहीं है"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"किसी भी MAC पते का इस्तेमाल करें (डिफ़ॉल्ट सेटिंग)"</item>
+    <item msgid="6545683814310036454">"MAC पते का इस्तेमाल करें (डिफ़ॉल्ट सेटिंग)"</item>
     <item msgid="214234417308375326">"डिवाइस के एमएसी का इस्तेमाल करें"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-hi/strings.xml b/tests/CarDeveloperOptions/res/values-hi/strings.xml
index c459e64..4f076a9 100644
--- a/tests/CarDeveloperOptions/res/values-hi/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-hi/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"स्क्रीन पर मौजूद लेख को छोटा या बड़ा करें."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"छोटा करें"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"बड़ा करें"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"नमूना लेख"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ओज़ का अद्भुत जादू"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"अध्याय 11: पन्ने का अद्भुत शहर ओज़"</string>
@@ -821,7 +820,7 @@
     <string name="wifi_ask_disable" msgid="2146839060110412974">"<xliff:g id="REQUESTER">%s</xliff:g> वाई-फ़ाई को बंद करना चाहता है"</string>
     <string name="art_verifier_for_debuggable_title" msgid="5223835619409464642">"डीबग वाले ऐप्लिकेशन के बाइटकोड की पुष्टि करें"</string>
     <string name="art_verifier_for_debuggable_summary" msgid="2204242476996701111">"डीबग किए जा सकने वाले ऐप्लिकेशन के लिए, ART को बाइटकोड की पुष्टि करने की मंज़ूरी दें"</string>
-    <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"आस-पास के डिवाइस से संपर्क (एनएफसी)"</string>
+    <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"आस-पास के डिवाइस से संपर्क (एनएफ़सी)"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="983451155092850657">"जब टैबलेट अन्य डिवाइस को स्पर्श करे तो डेटा ट्रांसफर करने दें"</string>
     <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"जब फ़ोन दूसरे डिवाइस को टच करे, तो डेटा ट्रांसफर करने दें"</string>
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"NFC चालू करें"</string>
@@ -936,13 +935,13 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"निजता"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"अपने आप चुना गया एमएसी"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"कोई डिवाइस जोड़ें"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ने के लिए QR कोड को कैमरा विंडो के बीच में लाएं"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ने के लिए क्यूआर कोड को कैमरा विंडो के बीच में लाएं"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR कोड स्कैन करें"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"डिवाइस को “<xliff:g id="SSID">%1$s</xliff:g>” से जोड़ने के लिए QR कोड को नीचे मौजूद कैमरा विंडो के बीच में लाएं"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR कोड स्कैन करके वाई-फ़ाई से जुड़ें"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"क्यूआर कोड स्कैन करके वाई-फ़ाई से जुड़ें"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"वाई-फ़ाई शेयर करें"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"“<xliff:g id="SSID">%1$s</xliff:g>” से जुड़ने के लिए इस QR कोड को स्कैन करें और पासवर्ड शेयर करें"</string>
-    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"“<xliff:g id="SSID">%1$s</xliff:g>” से जुड़ने के लिए इस QR कोड को स्कैन करें"</string>
+    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"“<xliff:g id="SSID">%1$s</xliff:g>” से जुड़ने के लिए इस क्यूआर कोड को स्कैन करें"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR कोड नहीं पहचाना जा सका. कोड को बीच में रखें और दोबारा कोशिश करें"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"फिर से कोशिश करें. अगर समस्या ठीक नहीं होती है, तो डिवाइस बनाने वाली कंपनी से संपर्क करें"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"काेई गड़बड़ी हुई"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"वाई-फ़ाई"</item>
+    <item msgid="2271962426654621656">"मोबाइल"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"वाई-फ़ाई उपलब्ध न होने पर मोबाइल नेटवर्क इस्तेमाल करें"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"मोबाइल नेटवर्क न होने पर वाई-फ़ाई इस्तेमाल करें"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"वाई-फ़ाई के ज़रिए कॉल करें. वाई-फ़ाई रुक जाने पर कॉल खत्म हो जाएगी."</string>
@@ -1201,7 +1203,7 @@
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"मौजूदा रोशनी के लिए एडजस्ट न करें"</string>
     <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"बढ़ा हुआ बैटरी उपयोग"</string>
     <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"मौजूदा रोशनी के लिए स्क्रीन की चमक का स्तर अनुकूलित करें. इस सुविधा के चालू होने पर, आप अब भी स्क्रीन की रोशनी कुछ समय के लिए एडजस्ट कर सकते हैं."</string>
-    <string name="auto_brightness_description" msgid="8209140379089535411">"आपकी गतिविधियों और आपके आस-पास मौजूद रोशनी के हिसाब से आपके डिवाइस की स्क्रीन की चमक अपने आप सेट हो जाएगी. आपके आस-पास मौजूद रोशनी के हिसाब से स्क्रीन की चमक अपने आप बदलने वाली इस सुविधा को आप अपनी पसंद के हिसाब से ढाल सकते हैं. ऐसा करने के लिए स्लाइडर को आगे-पीछे करें और मैन्युअल रूप से स्क्रीन की चमक सेट करें."</string>
+    <string name="auto_brightness_description" msgid="8209140379089535411">"आपकी गतिविधियों और आपके आस-पास मौजूद रोशनी के हिसाब से आपके डिवाइस की स्क्रीन की चमक अपने-आप सेट हो जाएगी. आपके आस-पास मौजूद रोशनी के हिसाब से स्क्रीन की चमक अपने-आप बदलने वाली इस सुविधा को आप अपनी पसंद के हिसाब से ढाल सकते हैं. ऐसा करने के लिए स्लाइडर को आगे-पीछे करें और मैन्युअल रूप से स्क्रीन की चमक सेट करें."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"डिसप्ले का वाइट बैलेंस"</string>
     <string name="adaptive_sleep_title" msgid="3237620948260957018">"स्क्रीन अवेयर"</string>
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"चालू करें / अगर आप स्क्रीन को देख रहे हैं, तो वह बंद नहीं होगी"</string>
@@ -1263,7 +1265,7 @@
     <string name="doze_summary" msgid="6762274282827831706">"आपको सूचना मिलने पर स्‍क्रीन चालू करें"</string>
     <string name="doze_always_on_title" msgid="8555184965031789941">"हमेशा चालू"</string>
     <string name="doze_always_on_summary" msgid="7654436900436328950">"समय, सूचना के आइकॉन और दूसरी जानकारी दिखाएं. इसमें ज़्यादा बैटरी का इस्तेमाल होगा."</string>
-    <string name="title_font_size" msgid="5021464556860010851">"अक्षरों का आकार"</string>
+    <string name="title_font_size" msgid="5021464556860010851">"फ़ॉन्ट साइज़"</string>
     <string name="short_summary_font_size" msgid="4141077908728522946">"लेख को छोटा या बड़ा करें"</string>
     <string name="sim_lock_settings" msgid="1986924650622642189">"सिम कार्ड लॉक सेटिंग"</string>
     <string name="sim_lock_settings_category" msgid="1126759898277681516">"सिम कार्ड लॉक"</string>
@@ -1619,7 +1621,7 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"डेटा बचाने की सेटिंग चालू होने पर इंटरनेट शेयर नहीं किया जा सकता या पोर्टेबल हॉटस्पॉट का इस्तेमाल नहीं किया जा सकता"</string>
     <string name="usb_title" msgid="7480927657535578688">"यूएसबी"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"यूएसबी से टेदरिंग"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"यूएसबी के ज़रिए फ़ोन का इंटरनेट कनेक्‍शन शेयर करें"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"यूएसबी से फ़ोन का इंटरनेट कनेक्‍शन शेयर करें"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"यूएसबी के ज़रिए टैबलेट का इंटरनेट कनेक्‍शन शेयर करें"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"ब्लूटूथ टेदरिंग"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"ब्लूटूथ के ज़रिए टैबलेट का इंटरनेट कनेक्शन शेयर करें"</string>
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"हाल ही में ऐक्सेस की गई जगह की जानकारी"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"जानकारी देखें"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"किसी भी ऐप ने हाल में जगह का अनुरोध नहीं किया है"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"किसी भी ऐप्लिकेशन ने हाल में जगह की जानकारी नहीं मांगी है"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"किसी भी ऐप्लिकेशन ने हाल ही में जगह की जानकारी का इस्तेमाल नहीं किया"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"ज़्यादा बैटरी उपयोग"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"कम बैटरी उपयोग"</string>
@@ -1835,7 +1837,7 @@
     <string name="unknown" msgid="2780743426415501227">"अज्ञात"</string>
     <string name="sort_order_alpha" msgid="6689698854460261212">"नाम के हिसाब से क्रम से लगाएं"</string>
     <string name="sort_order_size" msgid="3167376197248713027">"आकार के अनुसार क्रमित करें"</string>
-    <string name="sort_order_recent_notification" msgid="5592496977404445941">"सबसे हालिया सूचनाएं भेजने वाले ऐप्लिकेशन"</string>
+    <string name="sort_order_recent_notification" msgid="5592496977404445941">"सबसे हाल ही में सूचनाएं भेजने वाले ऐप्लिकेशन"</string>
     <string name="sort_order_frequent_notification" msgid="5640245013098010347">"अक्सर"</string>
     <string name="show_running_services" msgid="1895994322704667543">"चल रही सेवाएं दिखाएं"</string>
     <string name="show_background_processes" msgid="88012264528093617">"कैश की गई प्रक्रियाएं दिखाएं"</string>
@@ -2067,7 +2069,7 @@
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="2466317284195934003">"स्क्रीन को बड़ा करने की सुविधा को अपने आप अपडेट करें"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="6625473745911276917">"ऐप ट्रांज़िशन पर स्क्रीन को बड़ा दिखाना अपडेट करें"</string>
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6172987104538172869">"पावर बटन से कॉल काटना"</string>
-    <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"बड़ा माउस सूचक"</string>
+    <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"बड़ा माउस पॉइंटर"</string>
     <string name="accessibility_disable_animations" msgid="8378441317115710009">"ऐनिमेशन हटाएं"</string>
     <string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"मोनो ऑडियो"</string>
     <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"ऑडियो चलाते समय चैनल संयोजित करें"</string>
@@ -2427,7 +2429,7 @@
     <string name="battery_detail_since_full_charge" msgid="3814176986148084378">"पूरी तरह चार्ज होने के बाद से अब तक का विश्लेषण"</string>
     <string name="battery_last_full_charge" msgid="5624033030647170717">"पिछली बार पूरी तरह चार्ज किया गया"</string>
     <string name="battery_full_charge_last" msgid="4614554109170251301">"बैटरी पूरी चार्ज होने पर करीब इतनी देर चलती है"</string>
-    <string name="battery_footer_summary" msgid="4828444679643906943">"बैटरी के इस्तेमाल का यह डेटा अनुमान के हिसाब से है और यह इस्तेमाल करने के तरीके के मुताबिक बदल सकता है"</string>
+    <string name="battery_footer_summary" msgid="4828444679643906943">"बैटरी के इस्तेमाल का यह डेटा अनुमान के हिसाब से है. यह इस्तेमाल करने के तरीके के मुताबिक बदल सकता है"</string>
     <string name="battery_detail_foreground" msgid="6616408559186553085">"जब इस्तेमाल में हो"</string>
     <string name="battery_detail_background" msgid="7938146832943604280">"बैकग्राउंड में होने पर"</string>
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"बैटरी खर्च"</string>
@@ -2773,7 +2775,7 @@
     <string name="vpn_disconnect_confirm" msgid="3505111947735651082">"इस VPN को डिसकनेक्ट करना चाहते हैं?"</string>
     <string name="vpn_disconnect" msgid="4625914562388652486">"डिसकनेक्ट करें"</string>
     <string name="vpn_version" msgid="2006792987077940456">"वर्शन <xliff:g id="VERSION">%s</xliff:g>"</string>
-    <string name="vpn_forget_long" msgid="8457511440635534478">"VPN भूल जाएं"</string>
+    <string name="vpn_forget_long" msgid="8457511440635534478">"वीपीएन भूल जाएं"</string>
     <string name="vpn_replace_vpn_title" msgid="8517436922021598103">"मौजूदा VPN को बदलें?"</string>
     <string name="vpn_set_vpn_title" msgid="6483554732067951052">"हमेशा-चालू VPN सेट करें?"</string>
     <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"यह सेटिंग चालू होने पर, आपके पास तब तक इंटरनेट कनेक्शन नहीं होगा, जब तक कि VPN अच्छी तरह कनेक्ट नहीं हो जाता"</string>
@@ -2792,7 +2794,7 @@
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"VPN से हमेशा कनेक्ट रहें"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"यह ऐप्लिकेशन समर्थन नहीं करता"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"हमेशा चालू"</string>
-    <string name="vpn_require_connection" msgid="5413746839457797350">"बिना VPN वाले कनेक्शन ब्लॉक करें"</string>
+    <string name="vpn_require_connection" msgid="5413746839457797350">"बिना वीपीएन वाले कनेक्शन ब्लॉक करें"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"VPN कनेक्शन ज़रूरी है?"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"वह VPN प्रोफ़ाइल चुनें जिससे हमेशा कनेक्ट रहना है. नेटवर्क ट्रैफ़िक की अनुमति केवल इस VPN से कनेक्ट रहने पर ही दी जाएगी."</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"कोई नहीं"</string>
@@ -3633,7 +3635,7 @@
     <string name="filter_enabled_apps" msgid="5888459261768538489">"इंस्‍टॉल किए गए ऐप"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"झटपट ऐप"</string>
     <string name="filter_personal_apps" msgid="3473268022652904457">"व्यक्तिगत"</string>
-    <string name="filter_work_apps" msgid="4202483998339465542">"कार्यस्‍थल"</string>
+    <string name="filter_work_apps" msgid="4202483998339465542">"ऑफ़िस"</string>
     <string name="filter_notif_all_apps" msgid="1862666327228804896">"ऐप्लिकेशन: सभी"</string>
     <string name="filter_notif_blocked_apps" msgid="5694956954776028202">"सूचनाएं बंद कर दी गई हैं"</string>
     <string name="filter_notif_urgent_channels" msgid="5000735867167027148">"श्रेणियां: अत्यंत महत्वपूर्ण"</string>
@@ -3876,7 +3878,7 @@
     <string name="disabled_by_policy_title_camera" msgid="3741138901926111197">"कैमरा की अनुमति नहीं है"</string>
     <string name="disabled_by_policy_title_screen_capture" msgid="1856835333536274665">"स्क्रीनशॉट की अनुमति नहीं है"</string>
     <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"इस ऐप्लिकेशन को खोला नहीं जा सकता"</string>
-    <string name="default_admin_support_msg" msgid="5789424433689798637">"अगर आपके कोई सवाल हैं तो, अपने आईटी एडमिन से संपर्क करें"</string>
+    <string name="default_admin_support_msg" msgid="5789424433689798637">"अगर आपके कोई सवाल हैं, तो अपने आईटी एडमिन से संपर्क करें"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"ज़्यादा विवरण"</string>
     <string name="admin_profile_owner_message" msgid="3199544166281052845">"आपका एडमिन आपकी वर्क प्रोफ़ाइल से जुड़े ऐप और डेटा की निगरानी और उनका प्रबंधन कर सकता है, जिनमें सेटिंग, अनुमतियां, कॉर्पोरेट पहुंच, नेटवर्क गतिविधि और डिवाइस के जगह की जानकारी शामिल हैं."</string>
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"आपका एडमिन इस उपयोगकर्ता से जुड़े ऐप्लिकेशन और डेटा की निगरानी और उनका प्रबंधन कर सकता है, जिनमें सेटिंग, अनुमतियां, कॉर्पोरेट पहुंच, नेटवर्क गतिविधि और डिवाइस के जगह की जानकारी शामिल है."</string>
@@ -4126,7 +4128,7 @@
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"टैबलेट देखने के लिए लिफ़्ट करें"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"डिवाइस देखने के लिए लिफ़्ट करें"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"चालू करने का डिसप्ले"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना फ़ोन इस्तेमाल करें"</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना फ़ोन उठाएं."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना टैबलेट इस्तेमाल करें."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"समय, सूचनाएं और दूसरी जानकारी देखने के लिए, अपना डिवाइस इस्तेमाल करें."</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"फ़ोन की स्क्रीन पर टैप करके देखें कि सूचना मिली है या नहीं"</string>
@@ -4158,7 +4160,7 @@
     <string name="auto_sync_account_title" msgid="2394463123733529506">"डेटा को अपने आप सिंक करें"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"व्यक्तिगत डेटा अपने आप सिंक करें"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"दफ़्तर डेटा अपने आप सिंक करें"</string>
-    <string name="auto_sync_account_summary" msgid="6316230976974033772">"ऐप्लिकेशन को डेटा अपने आप रीफ्रे़श करने दें"</string>
+    <string name="auto_sync_account_summary" msgid="6316230976974033772">"ऐप्लिकेशन को डेटा अपने-आप रीफ्रे़श करने दें"</string>
     <string name="account_sync_title" msgid="1570164819114297154">"खाता सिंक"</string>
     <string name="account_sync_summary_some_on" msgid="1934556869158274053">"<xliff:g id="ID_2">%2$d</xliff:g> में से <xliff:g id="ID_1">%1$d</xliff:g> आइटम के लिए सिंक करना चालू है"</string>
     <string name="account_sync_summary_all_on" msgid="3634161204232431700">"सभी आइटम के लिए सिंक करना चालू है"</string>
@@ -4471,7 +4473,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"निजता"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"अनुमतियां, खाता गतिविधि, निजी डेटा"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"हटाएं"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"रखें"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"यह सुझाव हटा दें?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"सुझाव हटाया गया"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"पहले जैसा करें"</string>
diff --git a/tests/CarDeveloperOptions/res/values-hr/arrays.xml b/tests/CarDeveloperOptions/res/values-hr/arrays.xml
index 66ab70c..238797e 100644
--- a/tests/CarDeveloperOptions/res/values-hr/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-hr/arrays.xml
@@ -34,7 +34,7 @@
     <item msgid="772029947136115322">"30 sekundi"</item>
     <item msgid="8743663928349474087">"1 minuta"</item>
     <item msgid="1506508631223164814">"2 minute"</item>
-    <item msgid="8664703938127907662">"5 minuta"</item>
+    <item msgid="8664703938127907662">"5 min"</item>
     <item msgid="5827960506924849753">"10 minuta"</item>
     <item msgid="6677424950124253938">"30 minuta"</item>
   </string-array>
@@ -56,7 +56,7 @@
     <item msgid="227647485917789272">"1 minuta"</item>
     <item msgid="3367011891231217504">"2 minute"</item>
     <item msgid="4376575879222393045">"5 minuta"</item>
-    <item msgid="811192536981678974">"10 minuta"</item>
+    <item msgid="811192536981678974">"10 min"</item>
     <item msgid="7258394417241706272">"30 minuta"</item>
   </string-array>
   <string-array name="entries_font_size">
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"izvođenje u pozadini"</item>
     <item msgid="6423861043647911030">"glasnoća pristupačnosti"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokacija"</item>
+    <item msgid="6656077694190491067">"Lokacija"</item>
+    <item msgid="8790228218278477369">"Lokacija"</item>
+    <item msgid="7836406246005211990">"Vibriranje"</item>
+    <item msgid="3951439024549922598">"Čitaj kontakte"</item>
+    <item msgid="8802152411647068">"Izmjena kontakata"</item>
+    <item msgid="229544934599698735">"Čitanje zapisnika poziva"</item>
+    <item msgid="7396102294405899613">"Izmjena zapisnika poziva"</item>
+    <item msgid="3597797992398484655">"Čitanje kalendara"</item>
+    <item msgid="2705975774250907343">"Izmjena kalendara"</item>
+    <item msgid="4668747371441932697">"Lokacija"</item>
+    <item msgid="1487578921720243646">"Objavljivanje obavijesti"</item>
+    <item msgid="4636080349724146638">"Lokacija"</item>
+    <item msgid="673510900286463926">"Poziv na telefon"</item>
+    <item msgid="542083422784609790">"Čitanje SMS-a/MMS-a"</item>
+    <item msgid="1033780373029588436">"Pisanje SMS-a/MMS-a"</item>
+    <item msgid="5647111115517787488">"Primanje SMS-a/MMS-a"</item>
+    <item msgid="8591105601108455893">"Primanje SMS-a/MMS-a"</item>
+    <item msgid="7730995008517841903">"Primanje SMS-a/MMS-a"</item>
+    <item msgid="2613033109026626086">"Primanje SMS-a/MMS-a"</item>
+    <item msgid="3037159047591081136">"Slanje SMS-a/MMS-a"</item>
+    <item msgid="4726682243833913568">"Čitanje SMS-a/MMS-a"</item>
+    <item msgid="6555678522277865572">"Pisanje SMS-a/MMS-a"</item>
+    <item msgid="6981734935578130884">"Izmjena postavki"</item>
+    <item msgid="8705854389991425629">"Povlačenje na vrh"</item>
+    <item msgid="5861356020344153651">"Pristup obavijestima"</item>
+    <item msgid="78432174621628659">"Fotoaparat"</item>
+    <item msgid="3986116419882154794">"Snimanje zvuka"</item>
+    <item msgid="4516840825756409490">"Reprodukcija audiozapisa"</item>
+    <item msgid="6811712502798183957">"Čitaj međuspremnik"</item>
+    <item msgid="2780369012602289114">"Izmijeni međuspremnik"</item>
+    <item msgid="2331359440170850868">"Medijski gumbi"</item>
+    <item msgid="6133599737122751231">"Audiofokus"</item>
+    <item msgid="6844485713404805301">"Glavna glasnoća"</item>
+    <item msgid="1600379420669104929">"Glasnoća glasa"</item>
+    <item msgid="6296768210470214866">"Glasnoća zvona"</item>
+    <item msgid="510690696071629241">"Glasnoća medija"</item>
+    <item msgid="406861638631430109">"Glasnoća alarma"</item>
+    <item msgid="4715864795872233884">"Glasnoća obavijesti"</item>
+    <item msgid="2311478519251301183">"Glasnoća Bluetootha"</item>
+    <item msgid="5133991377896747027">"Zadrži u aktivnom stanju"</item>
+    <item msgid="2464189519136248621">"Lokacija"</item>
+    <item msgid="2062677934050803037">"Lokacija"</item>
+    <item msgid="1735171933192715957">"Dohvaćanje statistike o upotrebi"</item>
+    <item msgid="1014093788778383554">"Isključivanje/uključivanje mikrofona"</item>
+    <item msgid="4199297950608622850">"Prikaži poruku"</item>
+    <item msgid="2527962435313398821">"Projiciraj medijske sadržaje"</item>
+    <item msgid="5117506254221861929">"Aktiviraj VPN"</item>
+    <item msgid="8291198322681891160">"Pozadinska slika za pisanje"</item>
+    <item msgid="7106921284621230961">"Pomoćna struktura"</item>
+    <item msgid="4496533640894624799">"Pomoćna snimka zaslona"</item>
+    <item msgid="2598847264853993611">"Pročitaj stanje telefona"</item>
+    <item msgid="9215610846802973353">"Dodaj govornu poštu"</item>
+    <item msgid="9186411956086478261">"Koristi SIP"</item>
+    <item msgid="6884763100104539558">"Obradi odlazni poziv"</item>
+    <item msgid="125513972170580692">"Otisak prsta"</item>
+    <item msgid="2556071024281275619">"Biometrijski senzori"</item>
+    <item msgid="617168514928339387">"Čitanje poruka mobilne mreže"</item>
+    <item msgid="7134693570516523585">"Lažiraj lokaciju"</item>
+    <item msgid="7224489175375229399">"Pročitaj pohranu"</item>
+    <item msgid="8472735063903258202">"Piši u pohranu"</item>
+    <item msgid="4069276819909595110">"Uključi zaslon"</item>
+    <item msgid="1228338896751121025">"Dohvati račune"</item>
+    <item msgid="3181581793459233672">"Izvodi u pozadini"</item>
+    <item msgid="2340936043025374076">"Glasnoća pristupačnosti"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Kratko"</item>
     <item msgid="4816511817309094890">"Srednja"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Ne dopuštaj nikada"</item>
     <item msgid="8184570120217958741">"Dopusti uvijek"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Obično"</item>
+    <item msgid="5101233285497327432">"Umjereno"</item>
+    <item msgid="1555861583162930714">"Niska"</item>
+    <item msgid="1719683776264798117">"Kritična"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Uobičajena"</item>
+    <item msgid="6107138933849816768">"Umjerena"</item>
+    <item msgid="182695359839047859">"Niska"</item>
+    <item msgid="8577246509202964244">"Kritično"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Postojana"</item>
     <item msgid="167418068739176448">"Glavna aktivnost"</item>
@@ -401,7 +477,7 @@
     <item msgid="1008268820118852416">"Mreža bez ograničenja prometa"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Koristi nasumično određen MAC (zadano)"</item>
+    <item msgid="6545683814310036454">"Koristi nasumičnu MAC adresu (zadano)"</item>
     <item msgid="214234417308375326">"Upotrijebite MAC uređaja"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-hr/strings.xml b/tests/CarDeveloperOptions/res/values-hr/strings.xml
index 3ae9864..9c8ce06 100644
--- a/tests/CarDeveloperOptions/res/values-hr/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-hr/strings.xml
@@ -84,8 +84,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Smanjite ili povećajte tekst na zaslonu."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Smanji"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Povećaj"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Primjer teksta"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Čarobnjak iz Oza"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. poglavlje: Čudesni Smaragdni Grad čarobnjaka Oza"</string>
@@ -312,8 +311,8 @@
     <string name="cellular_data_summary" msgid="8817717603450318646">"Dopusti prijenos pod. putem mobilne mreže"</string>
     <string name="allow_data_usage_title" msgid="5381624105803294315">"Podatkovni promet u roamingu"</string>
     <string name="roaming" msgid="8860308342135146004">"Roaming"</string>
-    <string name="roaming_enable" msgid="2108142024297441116">"Povezivanje s podatkovnim uslugama u roamingu"</string>
-    <string name="roaming_disable" msgid="1915440242079953809">"Povezivanje s podatkovnim uslugama u roamingu"</string>
+    <string name="roaming_enable" msgid="2108142024297441116">"Poveži se s podatkovnim uslugama u roamingu"</string>
+    <string name="roaming_disable" msgid="1915440242079953809">"Poveži se s podatkovnim uslugama u roamingu"</string>
     <string name="roaming_reenable_message" msgid="8388505868655113258">"Izgubili ste podatkovnu vezu jer ste isključili mrežni roaming podataka."</string>
     <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"Uključi"</string>
     <string name="roaming_warning" msgid="5488050911277592868">"To može biti dosta skupo."</string>
@@ -410,7 +409,7 @@
     <string name="security_settings_face_enroll_introduction_message_setup" msgid="4533297059466270074">"Licem možete otključati telefon, autorizirati kupnje ili se prijaviti na aplikacije"</string>
     <string name="security_settings_face_enroll_introduction_footer_message" msgid="7764021721107723266"></string>
     <string name="security_settings_face_enroll_repeat_title" msgid="2507710348140837875">"Postavite lice u središte kruga"</string>
-    <string name="security_settings_face_enroll_enrolling_skip" msgid="4346077260378772613">"Učinit ću to kasnije"</string>
+    <string name="security_settings_face_enroll_enrolling_skip" msgid="4346077260378772613">"Budem kasnije"</string>
     <string name="face_add_max" msgid="8870899421165189413">"Ne možete dodati više od <xliff:g id="COUNT">%d</xliff:g> lica"</string>
     <string name="face_intro_error_max" msgid="4024147799079828937">"Dodali ste maksimalan broj lica"</string>
     <string name="face_intro_error_unknown" msgid="3241592604198351134">"Nije moguće dodati više lica"</string>
@@ -422,7 +421,7 @@
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Gotovo"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Koristite lice za"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Otključavanje uređaja"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Prijava u aplikaciju i plaćanja"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Prijava u aplikacije i plaćanja"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Oči otvorene za otključavanje"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Prilikom autentifikacije licem oči moraju biti otvorene"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Uvijek traži potvrdu"</string>
@@ -430,11 +429,11 @@
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Ukloni podatke lica"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Za otključavanje uređaja i pristup aplikacijama može se upotrijebiti vaše lice. "<annotation id="url">"Saznajte više"</annotation></string>
     <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Želite li izbrisati podatke o licu?"</string>
-    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Podaci koje je snimilo Otključavanje licem izbrisat će se trajno i na siguran način. Nakon uklanjanja trebat će vam PIN, uzorak ili zaporka da biste otključali telefon, prijavili se na aplikacije i potvrdili plaćanja."</string>
+    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Podaci koje je snimilo Otključavanje licem izbrisat će se trajno i na siguran način. Nakon uklanjanja trebat će vam PIN, uzorak ili zaporka da biste otključali telefon, prijavili se u aplikacije i potvrdili plaćanja."</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"Otisak prsta"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"Otisci prstiju"</string>
     <string name="fingerprint_usage_category_title" msgid="7298369141954599706">"Upotreba otiska prsta"</string>
-    <string name="fingerprint_add_title" msgid="6840343900784463856">"Dodaj otisak prsta"</string>
+    <string name="fingerprint_add_title" msgid="6840343900784463856">"Dodajte otisak prsta"</string>
     <string name="fingerprint_enable_keyguard_toggle_title" msgid="8847663949921113437">"zaključavanje zaslona"</string>
     <plurals name="security_settings_fingerprint_preference_summary" formatted="false" msgid="2033416761172877041">
       <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> otisak prsta postavljen</item>
@@ -444,7 +443,7 @@
     <string name="security_settings_fingerprint_preference_summary_none" msgid="3613424536269750172"></string>
     <string name="security_settings_fingerprint_enroll_introduction_title" msgid="889558002683900544">"Otključavanje otiskom"</string>
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7915504118657864429">"Upotreba otiska prsta"</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message" msgid="5586198131986682472">"Jednostavno dodirnite senzor otiska prsta da biste otključali telefon, autorizirali kupnje ili se prijavili na aplikacije. Pazite čije otiske dodajete. Svaki otisak koji dodate može se upotrijebiti za sve te radnje.\n\nNapomena: otisak prsta nije toliko siguran kao snažan uzorak ili PIN."</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message" msgid="5586198131986682472">"Jednostavno dodirnite senzor otiska prsta da biste otključali telefon, autorizirali kupnje ili se prijavili u aplikacije. Pazite čije otiske dodajete. Svaki otisak koji dodate može se upotrijebiti za sve te radnje.\n\nNapomena: otisak prsta nije toliko siguran kao snažan uzorak ili PIN."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1640839304679275468">"Otključajte telefon ili odobrite kupnje otiskom prsta.\n\nNapomena: ovaj uređaj ne možete otključati otiskom prsta. Za više informacija obratite se administratoru organizacije."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6734490666593320711">"Otključajte telefon ili odobrite kupnje otiskom prsta.\n\nNapomena: otisak prst može biti manje siguran od snažnog uzorka ili PIN-a."</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="9168637333731599827">"Odustani"</string>
@@ -476,7 +475,7 @@
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Nastavite podizati prst da biste dodali različite dijelove otiska prsta"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Otisak prsta dodan"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Kada se prikaže ta ikona, upotrijebite otisak prsta da biste se identificirali ili odobrili kupnju"</string>
-    <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Učinit ću to kasnije"</string>
+    <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Budem kasnije"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="2816424026528101690">"Preskočiti postavljanje otiska prsta?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="8139299964344809780">"Odlučili ste se za otisak prsta kao jedan od načina za otključavanje telefona. Ako sad preskočite, morat ćete ga postaviti kasnije. Postavljanje traje samo otprilike jednu minutu."</string>
     <string name="fingerprint_lock_screen_setup_skip_dialog_text" product="tablet" msgid="1384438077720821127">"Zaštitite tablet pomoću opcije zaključavanja zaslona kako se nitko ne bi mogao njime koristiti ako ga izgubite ili ga netko ukrade. Opcija zaključavanja zaslona treba vam i za postavljanje otiska prsta. Dodirnite Odustani, a zatim postavite PIN ili odaberite neku drugu opciju zaključavanja zaslona."</string>
@@ -892,7 +891,7 @@
     <string name="wifi_switch_away_when_unvalidated" msgid="2418577764071293971">"Prijeđi na mobilne podatke ako Wi‑Fi izgubi pristup internetu."</string>
     <string name="wifi_cellular_data_fallback_title" msgid="5067241930716252665">"Automatski prijeđi na mobilne podatke"</string>
     <string name="wifi_cellular_data_fallback_summary" msgid="2721467405851519769">"Koristite mobilne podatke kada Wi-Fi nema pristup internetu. Moguća je naplata potrošnje podatkovnog prometa."</string>
-    <string name="wifi_add_network" msgid="4094957940791876640">"Dodaj mrežu"</string>
+    <string name="wifi_add_network" msgid="4094957940791876640">"Dodajte mrežu"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"Postavke Wi‑Fi-ja"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"Wi‑Fi se automatski ponovo uključuje"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Wi‑Fi se ne uključuje ponovno automatski"</string>
@@ -957,7 +956,7 @@
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Skeniraj QR kôd"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Centrirajte QR kôd u nastavku da biste se povezali s mrežom “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Pridružite se Wi‑Fiju tako što ćete skenirati QR kôd"</string>
-    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Dijeli Wi‑Fi"</string>
+    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Dijelite Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Skenirajte ovaj QR kôd da biste se povezali s mrežom \"<xliff:g id="SSID">%1$s</xliff:g>\" i podijelili zaporku"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Skenirajte ovaj QR kôd da biste se povezali s mrežom \"<xliff:g id="SSID">%1$s</xliff:g>\""</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"Čitanje QR koda nije uspjelo. Ponovo centrirajte kôd, a zatim pokušajte opet"</string>
@@ -993,7 +992,7 @@
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Nemoj potvrditi"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Nije naveden nijedan certifikat. Veza neće biti privatna."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Mreža ima predugačak naziv."</string>
-    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Mora navoditi domenu."</string>
+    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Mora se navesti domena."</string>
     <string name="wifi_wps_available_first_item" msgid="3221671453930485243">"WPS dostupan"</string>
     <string name="wifi_wps_available_second_item" msgid="5703265526619705185">" (WPS dostupan)"</string>
     <string name="wifi_carrier_connect" msgid="7202618367339982884">"Wi‑Fi mreža mobilnog operatera"</string>
@@ -1039,7 +1038,7 @@
     <string name="wifi_advanced_ssid_title" msgid="4229741334913894856">"SSID"</string>
     <string name="wifi_advanced_mac_address_title" msgid="1162782083754021737">"MAC adresa"</string>
     <string name="wifi_advanced_ip_address_title" msgid="2708185994512829071">"IP adresa"</string>
-    <string name="wifi_details_title" msgid="2164042631550920157">"Pojedinosti o mreži"</string>
+    <string name="wifi_details_title" msgid="2164042631550920157">"Podaci o mreži"</string>
     <string name="wifi_details_subnet_mask" msgid="53396707004763012">"Maska podmreže"</string>
     <string name="wifi_details_dns" msgid="1118251455740116559">"DNS"</string>
     <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"IPv6 adrese"</string>
@@ -1064,7 +1063,7 @@
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"Zapamti tu vezu"</string>
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"Traženje uređaja"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"Traženje..."</string>
-    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"Preimenuj uređaj"</string>
+    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"Promjena naziva uređaja"</string>
     <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"Paralelni uređaji"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"Zapamćene grupe"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"Povezivanje nije bilo moguće."</string>
@@ -1121,7 +1120,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobilni uređaj"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ako Wi‑Fi nije dostupan, koristi mobilnu mrežu"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ako mobilna mreža nije dostupna, koristi Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Pozivi putem Wi-Fija. Ako se Wi‑Fi izgubi, poziv će završiti."</string>
@@ -1475,7 +1477,7 @@
     <string name="storage_detail_system" msgid="6784247618772153283">"Sustav"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"Istraži <xliff:g id="NAME">^1</xliff:g>"</string>
     <string name="storage_detail_dialog_other" msgid="5073511663616043370">"Ostalo uključuje dijeljene datoteke koje su spremile aplikacije, datoteke preuzete s interneta ili Bluetoothom, Android datoteke i tako dalje. \n\nDa biste vidjeli što sadrži <xliff:g id="NAME">^1</xliff:g>, dodirnite Istraži."</string>
-    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Sustav uključuje datoteke koje se upotrebljavaju za pokretanje verzije Androida <xliff:g id="VERSION">%s</xliff:g>"</string>
+    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Sustav uključuje datoteke koje se upotrebljavaju za pokretanje Androida verzije <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="storage_detail_dialog_user" msgid="1663117417635010371">"Korisnik <xliff:g id="USER_0">^1</xliff:g> možda je spremio fotografije, glazbu, aplikacije ili druge podatke, čime je iskorišteno <xliff:g id="SIZE">^2</xliff:g> prostora. \n\nZa prikaz pojedinosti prijeđite na račun korisnika <xliff:g id="USER_1">^1</xliff:g>."</string>
     <string name="storage_wizard_init_title" msgid="3407283236421089014">"Postavite uređaj <xliff:g id="NAME">^1</xliff:g>"</string>
     <string name="storage_wizard_init_external_title" msgid="6853250619674645478">"Upotrebljavaj kao prijenosnu pohranu"</string>
@@ -1637,7 +1639,7 @@
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Modemsko povezivanje"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Dok je Štednja podatkovnog prometa uključena, ne možete upotrebljavati modemsko povezivanje ni prijenosne žarišne točke"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Dijeljenje USB-om"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Dijeljenje veze USB-om"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Dijelite internetsku vezu telefona putem USB-a"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Dijelite internetsku vezu tableta putem USB-a"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Dijeljenje veze Bluetoothom"</string>
@@ -1823,7 +1825,7 @@
     <string name="screen_compatibility_label" msgid="3638271673726075815">"Kompatibilnost zaslona"</string>
     <string name="permissions_label" msgid="7341733648403464213">"Dozvole"</string>
     <string name="cache_header_label" msgid="3202284481380361966">"Predmemorija"</string>
-    <string name="clear_cache_btn_text" msgid="107507684844780651">"Očisti predmemoriju"</string>
+    <string name="clear_cache_btn_text" msgid="107507684844780651">"Isprazni predmemoriju"</string>
     <string name="cache_size_label" msgid="6205173678102220499">"Predmemorija"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="8938478333743197020">
       <item quantity="one">%d stavka</item>
@@ -1844,7 +1846,7 @@
     <string name="install_text" msgid="2798092278891807849">"Instaliraj"</string>
     <string name="disable_text" msgid="5065834603951474397">"Onemogući"</string>
     <string name="enable_text" msgid="7179141636849225884">"Omogući"</string>
-    <string name="clear_user_data_text" msgid="8894073247302821764">"Izbriši pohranu"</string>
+    <string name="clear_user_data_text" msgid="8894073247302821764">"Isprazni pohranu"</string>
     <string name="app_factory_reset" msgid="8718986000278776272">"Deinstaliraj ažuriranja"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"Odlučili ste da se ta aplikacija pokreće prema zadanim postavkama za neke radnje."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"Odlučili ste dopustiti ovoj aplikaciji izradu widgeta i pristupanje njihovim podacima."</string>
@@ -2115,7 +2117,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"Vibracija pri zvonjenju"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"Vibracija za dodir"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Upotreba usluge"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Upotreba korekcije boje"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Korekcija boje"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Upotreba titlova"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Nastavi"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Slušni aparati"</string>
@@ -2613,7 +2615,7 @@
     <string name="add_device_admin_msg" msgid="3573765823476931173">"Aktivirati apl. administratora uređaja?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"Aktiviraj aplikaciju administratora ovog uređaja"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Administrator uređaja"</string>
-    <string name="device_admin_warning" msgid="4421817419326480449">"Aktiviranjem ove administratorske aplikacije dopustit ćete aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> da izvede sljedeće postupke:"</string>
+    <string name="device_admin_warning" msgid="4421817419326480449">"Aktiviranjem ove administratorske aplikacije dopustit ćete aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> izvođenje sljedećih postupaka:"</string>
     <string name="device_admin_status" msgid="5424944611789040723">"Ova je administratorska aplikacija aktivna i omogućuje aplikaciji <xliff:g id="APP_NAME">%1$s</xliff:g> izvođenje sljedećih postupaka:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Želite li aktivirati upravitelj profila?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Ako nastavite, vašim će korisnikom upravljati administrator, koji uz vaše osobne podatke može spremiti i povezane podatke.\n\nVaš administrator može nadzirati postavke, pristup, aplikacije i podatke povezane s tim korisnikom, uključujući aktivnosti na mreži i podatke o lokaciji uređaja te njima upravljati."</string>
@@ -2793,7 +2795,7 @@
     <string name="vpn_not_used" msgid="2889520789132261454">"(ne koristi se)"</string>
     <string name="vpn_no_ca_cert" msgid="486605757354800838">"(ne potvrđuj poslužitelj)"</string>
     <string name="vpn_no_server_cert" msgid="679622228649855629">"(primljen od poslužitelja)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="165810330614905489">"Ova vrsta VPN-a ne može ostati povezana u svakom trenutku"</string>
+    <string name="vpn_always_on_invalid_reason_type" msgid="165810330614905489">"Ova vrsta VPN-a ne podržava stalnu vezu"</string>
     <string name="vpn_always_on_invalid_reason_server" msgid="3864424127328210700">"Uvijek uključeni VPN podržava samo numeričke adrese poslužitelja"</string>
     <string name="vpn_always_on_invalid_reason_no_dns" msgid="3814114757059738225">"Za uvijek uključeni VPN mora biti naveden DNS poslužitelj"</string>
     <string name="vpn_always_on_invalid_reason_dns" msgid="501388894176868973">"Adrese DNS poslužitelja za uvijek uključeni VPN moraju biti numeričke"</string>
@@ -2825,7 +2827,7 @@
     <string name="vpn_menu_delete" msgid="4128305800374946877">"Izbriši profil"</string>
     <string name="vpn_menu_lockdown" msgid="6951452279924808089">"Uvijek uključena VPN mreža"</string>
     <string name="vpn_no_vpns_added" msgid="6616183541896197147">"Nije dodan nijedan VPN"</string>
-    <string name="vpn_always_on_summary" msgid="3639994551631437397">"Zadrži vezu s VPN-om u svakom trenutku"</string>
+    <string name="vpn_always_on_summary" msgid="3639994551631437397">"Održavaj stalnu vezu s VPN-om"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"Ova aplikacija ne podržava tu opciju"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"Značajka Uvijek uključeno aktivna"</string>
     <string name="vpn_require_connection" msgid="5413746839457797350">"Blokiraj veze bez VPN-a"</string>
@@ -3019,8 +3021,8 @@
     <string name="wizard_back" msgid="223654213898117594">"Natrag"</string>
     <string name="wizard_next" msgid="5239664512608113542">"Dalje"</string>
     <string name="wizard_finish" msgid="3742102879981212094">"Završi"</string>
-    <string name="user_image_take_photo" msgid="2000247510236178111">"Snimi fotografiju"</string>
-    <string name="user_image_choose_photo" msgid="4920315415203051898">"Odaberi sliku"</string>
+    <string name="user_image_take_photo" msgid="2000247510236178111">"Snimite fotografiju"</string>
+    <string name="user_image_choose_photo" msgid="4920315415203051898">"Odaberite sliku"</string>
     <string name="user_image_photo_selector" msgid="8429694590849882411">"Odabir slike"</string>
     <string name="regulatory_info_text" msgid="9112993912873512834"></string>
     <string name="sim_setup_wizard_title" msgid="77627575294867180">"SIM kartice"</string>
@@ -3273,7 +3275,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Uključi sada"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Odmah isključi"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"Način Ne uznemiravaj uključen je do <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Način Ne ometaj ostat će uključen dok ga ne isključite"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Način Ne uznemiravaj ostat će uključen dok ga ne isključite"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Raspored <xliff:g id="RULE_NAME">%s</xliff:g> automatski je uključio Ne uznemiravaj"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"Način Ne uznemiravaj automatski je uključila aplikacija (<xliff:g id="APP_NAME">%s</xliff:g>)"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"Način Ne uznemiravaj uključen je za <xliff:g id="RULE_NAMES">%s</xliff:g> uz prilagođene postavke."</string>
@@ -3751,8 +3753,8 @@
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="2518319744362028920">"Optimizacija baterije"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"Upozorenja o upotrebi"</string>
-    <string name="show_all_apps" msgid="5442552004569634846">"Prikaži potpunu upotrebu uređaja"</string>
-    <string name="hide_extra_apps" msgid="6798261081113299441">"Prikaži upotrebu aplikacije"</string>
+    <string name="show_all_apps" msgid="5442552004569634846">"Prikaži ukupnu potrošnju uređaja"</string>
+    <string name="hide_extra_apps" msgid="6798261081113299441">"Prikaži potrošnju aplikacija"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
       <item quantity="one"><xliff:g id="NUMBER">%2$d</xliff:g> aplikacija ne ponaša se na uobičajen način</item>
       <item quantity="few"><xliff:g id="NUMBER">%2$d</xliff:g> aplikacije ne ponašaju se na uobičajen način</item>
@@ -3930,7 +3932,7 @@
     <string name="backup_disabled" msgid="6941165814784765643">"Sigurnosno kopiranje onemogućeno"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"Ažuriran na Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
     <string name="android_version_pending_update_summary" msgid="3554543810520655076">"Dostupno je ažuriranje"</string>
-    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Radnja nije dopuštena."</string>
+    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Radnja nije dopuštena"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7094547090629203316">"Glasnoća se ne može promijeniti"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="3805836913095496278">"Pozivanje nije dopušteno"</string>
     <string name="disabled_by_policy_title_sms" msgid="1453236584236681105">"SMS nije dopušten"</string>
@@ -3956,7 +3958,7 @@
     <string name="condition_battery_summary" msgid="1236078243905690620">"Značajke su ograničene"</string>
     <string name="condition_cellular_title" msgid="6605277435894307935">"Mobilni su podaci isključeni"</string>
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Internet je dostupan samo putem Wi‑Fija"</string>
-    <string name="condition_bg_data_title" msgid="184684435298857712">"Štednja podat. prometa"</string>
+    <string name="condition_bg_data_title" msgid="184684435298857712">"Štednja podatkovnog prometa"</string>
     <string name="condition_bg_data_summary" msgid="5194942860807136682">"Značajke su ograničene"</string>
     <string name="condition_work_title" msgid="9046811302347490371">"Radni je profil isključen"</string>
     <string name="condition_work_summary" msgid="5586134491975748565">"Za aplikacije i obavijesti"</string>
@@ -4049,8 +4051,8 @@
     <string name="no_carrier_update_now_text" msgid="4405472895804759042">"Upravo je ažurirano"</string>
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"Prikaži plan"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"Prikaz pojedinosti"</string>
-    <string name="data_saver_title" msgid="7903308134514179256">"Štednja podat. prometa"</string>
-    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Neograničena potrošnja"</string>
+    <string name="data_saver_title" msgid="7903308134514179256">"Štednja podatkovnog prometa"</string>
+    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Neograničeni podaci"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"Pozadinski su podaci isključeni"</string>
     <string name="data_saver_on" msgid="7281809065420480881">"Uključeno"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"Isključeno"</string>
@@ -4116,7 +4118,7 @@
     <string name="display_cutout_emulation_keywords" msgid="6795671536772871439">"obrezana slika za zaslon, urez"</string>
     <string name="overlay_option_device_default" msgid="165508753381657697">"Zadana postavka uređaja"</string>
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Primjena preklapanja nije uspjela"</string>
-    <string name="special_access" msgid="1453926335914696206">"Pristup aplikacija"</string>
+    <string name="special_access" msgid="1453926335914696206">"Poseban pristup za aplikacije"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> aplikacija može upotrebljavati neograničene podatke</item>
       <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> aplikacije mogu upotrebljavati neograničene podatke</item>
@@ -4203,8 +4205,8 @@
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Dodirnite da biste provjerili tablet"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Dodirnite da biste provjerili uređaj"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Da biste pogledali vrijeme, obavijesti i druge informacije, dodirnite zaslon."</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Otisak prsta za obavijesti"</string>
-    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Pokret za otisak prsta"</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Prelazak prstom preko senzora za obavijesti"</string>
+    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Prelazak prstom preko senzora"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Da biste pogledali obavijesti, prijeđite prstom prema dolje po senzoru otiska prsta na stražnjoj strani telefona."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Da biste pogledali obavijesti, prijeđite prstom prema dolje po senzoru otiska prsta na stražnjoj strani tableta."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"Da biste pogledali obavijesti, prijeđite prstom prema dolje po senzoru otiska prsta na stražnjoj strani uređaja."</string>
@@ -4316,7 +4318,7 @@
     <string name="storage_other_apps" msgid="3202407095387420842">"Ostale aplikacije"</string>
     <string name="storage_files" msgid="2087824267937487880">"Datoteke"</string>
     <string name="storage_size_large_alternate" msgid="1317796542509105857">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
-    <string name="storage_volume_total" msgid="5021484171514159913">"Upotrijebljeno od <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
+    <string name="storage_volume_total" msgid="5021484171514159913">"iskorišteno od <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="6924662861545958442">"upot."</string>
     <string name="clear_instant_app_data" msgid="3673669086522890405">"Izbriši podatke aplikacije"</string>
     <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"Želite li ukloniti tu instant aplikaciju?"</string>
@@ -4407,7 +4409,7 @@
     <string name="prevent_ringing_option_vibrate_summary" msgid="7961818570574683926">"Uključeno (vibracija)"</string>
     <string name="prevent_ringing_option_mute_summary" msgid="3509459199090688328">"Uključi (isključi zvuk)"</string>
     <string name="prevent_ringing_option_none_summary" msgid="5152618221093037451">"Isključi"</string>
-    <string name="pref_title_network_details" msgid="3971074015034595956">"Pojedinosti o mreži"</string>
+    <string name="pref_title_network_details" msgid="3971074015034595956">"Podaci o mreži"</string>
     <string name="about_phone_device_name_warning" msgid="9088572775969880106">"Naziv vašeg uređaja vidljiv je aplikacijama na vašem telefonu. Mogu ga vidjeti i drugi ljudi kada se povežete s Bluetooth uređajima ili postavite Wi-Fi žarišnu točku."</string>
     <string name="devices_title" msgid="4768432575951993648">"Uređaji"</string>
     <string name="homepage_all_settings" msgid="3201220879559136116">"Sve postavke"</string>
diff --git a/tests/CarDeveloperOptions/res/values-hu/arrays.xml b/tests/CarDeveloperOptions/res/values-hu/arrays.xml
index c735ccf..c3578f9 100644
--- a/tests/CarDeveloperOptions/res/values-hu/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-hu/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"futtatás a háttérben"</item>
     <item msgid="6423861043647911030">"kisegítő lehetőségek – hangerő"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Tartózkodási hely"</item>
+    <item msgid="6656077694190491067">"Tartózkodási hely"</item>
+    <item msgid="8790228218278477369">"Tartózkodási hely"</item>
+    <item msgid="7836406246005211990">"Rezgés"</item>
+    <item msgid="3951439024549922598">"Névjegyek olvasása"</item>
+    <item msgid="8802152411647068">"Névjegyek módosítása"</item>
+    <item msgid="229544934599698735">"Hívásnapló olvasása"</item>
+    <item msgid="7396102294405899613">"Hívásnapló módosítása"</item>
+    <item msgid="3597797992398484655">"Naptár olvasása"</item>
+    <item msgid="2705975774250907343">"Naptár módosítása"</item>
+    <item msgid="4668747371441932697">"Tartózkodási hely"</item>
+    <item msgid="1487578921720243646">"Értesítés közzététele"</item>
+    <item msgid="4636080349724146638">"Hely"</item>
+    <item msgid="673510900286463926">"Telefonálás"</item>
+    <item msgid="542083422784609790">"SMS/MMS olvasása"</item>
+    <item msgid="1033780373029588436">"SMS/MMS írása"</item>
+    <item msgid="5647111115517787488">"SMS/MMS fogadása"</item>
+    <item msgid="8591105601108455893">"SMS/MMS fogadása"</item>
+    <item msgid="7730995008517841903">"SMS/MMS fogadása"</item>
+    <item msgid="2613033109026626086">"SMS/MMS fogadása"</item>
+    <item msgid="3037159047591081136">"SMS/MMS küldése"</item>
+    <item msgid="4726682243833913568">"SMS/MMS olvasása"</item>
+    <item msgid="6555678522277865572">"SMS/MMS írása"</item>
+    <item msgid="6981734935578130884">"Beállítások módosítása"</item>
+    <item msgid="8705854389991425629">"Megjelenítés felül"</item>
+    <item msgid="5861356020344153651">"Hozzáférési értesítések"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Hanganyag rögzítése"</item>
+    <item msgid="4516840825756409490">"Hanganyag lejátszása"</item>
+    <item msgid="6811712502798183957">"Vágólap olvasása"</item>
+    <item msgid="2780369012602289114">"Vágólap módosítása"</item>
+    <item msgid="2331359440170850868">"Médiagombok"</item>
+    <item msgid="6133599737122751231">"Audiofókusz"</item>
+    <item msgid="6844485713404805301">"Hangerő-szabályozó"</item>
+    <item msgid="1600379420669104929">"Beszéd hangereje"</item>
+    <item msgid="6296768210470214866">"Csengés hangereje"</item>
+    <item msgid="510690696071629241">"Média hangereje"</item>
+    <item msgid="406861638631430109">"Ébresztés hangereje"</item>
+    <item msgid="4715864795872233884">"Értesítés hangereje"</item>
+    <item msgid="2311478519251301183">"Bluetooth hangereje"</item>
+    <item msgid="5133991377896747027">"Ébren tartás"</item>
+    <item msgid="2464189519136248621">"Hely"</item>
+    <item msgid="2062677934050803037">"Tartózkodási hely"</item>
+    <item msgid="1735171933192715957">"Használati statisztikák lekérése"</item>
+    <item msgid="1014093788778383554">"Mikrofon némítása és a némítás feloldása"</item>
+    <item msgid="4199297950608622850">"Üzenet megjelenítése"</item>
+    <item msgid="2527962435313398821">"Médiatartalom kivetítése"</item>
+    <item msgid="5117506254221861929">"VPN aktiválása"</item>
+    <item msgid="8291198322681891160">"Háttérkép írása"</item>
+    <item msgid="7106921284621230961">"Segédlet a szerkezethez"</item>
+    <item msgid="4496533640894624799">"Segédlet a képernyőképhez"</item>
+    <item msgid="2598847264853993611">"Telefonállapot olvasása"</item>
+    <item msgid="9215610846802973353">"Hangposta hozzáadása"</item>
+    <item msgid="9186411956086478261">"SIP használata"</item>
+    <item msgid="6884763100104539558">"Kimenő hívás feldolgozása"</item>
+    <item msgid="125513972170580692">"Ujjlenyomat"</item>
+    <item msgid="2556071024281275619">"Testérzékelők"</item>
+    <item msgid="617168514928339387">"Cellán belüli üzenetszórás olvasása"</item>
+    <item msgid="7134693570516523585">"Helyimitálás"</item>
+    <item msgid="7224489175375229399">"Tárhely olvasása"</item>
+    <item msgid="8472735063903258202">"Tárhely írása"</item>
+    <item msgid="4069276819909595110">"Képernyő bekapcsolása"</item>
+    <item msgid="1228338896751121025">"Fiókok beszerzése"</item>
+    <item msgid="3181581793459233672">"Futtatás a háttérben"</item>
+    <item msgid="2340936043025374076">"Kisegítő lehetőségek – hangerő"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Rövid"</item>
     <item msgid="4816511817309094890">"Közepes"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Soha nem engedélyezem"</item>
     <item msgid="8184570120217958741">"Engedélyezés mindig"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normál"</item>
+    <item msgid="5101233285497327432">"Közepes"</item>
+    <item msgid="1555861583162930714">"Alacsony"</item>
+    <item msgid="1719683776264798117">"Kritikus"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normál"</item>
+    <item msgid="6107138933849816768">"Mérsékelt"</item>
+    <item msgid="182695359839047859">"Alacsony"</item>
+    <item msgid="8577246509202964244">"Kritikus"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Állandó"</item>
     <item msgid="167418068739176448">"Leggyakoribb tevékenység"</item>
diff --git a/tests/CarDeveloperOptions/res/values-hu/strings.xml b/tests/CarDeveloperOptions/res/values-hu/strings.xml
index d211ad9..9c192df 100644
--- a/tests/CarDeveloperOptions/res/values-hu/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-hu/strings.xml
@@ -58,7 +58,7 @@
     <string name="radioInfo_service_out" msgid="8460363463722476510">"Nem működik"</string>
     <string name="radioInfo_service_emergency" msgid="7674989004735662599">"Csak segélyhívások"</string>
     <string name="radioInfo_service_off" msgid="1873939869994136791">"Rádió kikapcsolva"</string>
-    <string name="radioInfo_roaming_in" msgid="7059350234710947417">"Barangolás"</string>
+    <string name="radioInfo_roaming_in" msgid="7059350234710947417">"Roaming"</string>
     <string name="radioInfo_roaming_not" msgid="7733269160603599835">"Nem barangol"</string>
     <string name="radioInfo_phone_idle" msgid="1893851191227617344">"Tétlen"</string>
     <string name="radioInfo_phone_ringing" msgid="5587975376222853265">"Csengés"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Kicsinyítheti vagy nagyíthatja a képernyőn megjelenő szöveget."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Kisebb"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Nagyobb"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Árvíztűrő tükörfúrógép"</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Mintaszöveg"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Óz, a csodák csodája"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. fejezet: A csodálatos Smaragdváros"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Ki kell töltenie a port mezőt."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"A port mezőnek is üresnek kell maradnia, ha a gazdagép mező üres."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"A megadott port nem érvényes."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"A HTTP proxyt a böngésző használja, ám más alkalmazások nem használhatják."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"A HTTP proxyt a böngésző használja, de más alkalmazások nem használhatják."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Letöltési sávszélesség (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Feltöltési sávszélesség (kbps):"</string>
@@ -217,7 +216,7 @@
     <string name="radio_info_cell_info_refresh_rate" msgid="3557422342215875913">"Cellainformáció frissítési gyakorisága:"</string>
     <string name="radio_info_cellinfo_label" msgid="632796561627452215">"Minden cellamérési információ:"</string>
     <string name="radio_info_gprs_service_label" msgid="7926626443442993242">"Adatszolgáltatás:"</string>
-    <string name="radio_info_roaming_label" msgid="3131949337031835485">"Barangolás:"</string>
+    <string name="radio_info_roaming_label" msgid="3131949337031835485">"Roaming:"</string>
     <string name="radio_info_imei_label" msgid="7300156592358133405">"IMEI:"</string>
     <string name="radio_info_call_redirect_label" msgid="2679891718182753061">"Hívásátirányítás:"</string>
     <string name="radio_info_ppp_resets_label" msgid="2785162965440312941">"PPP-visszaállítások száma a legutolsó rendszerindítás óta:"</string>
@@ -310,14 +309,14 @@
     <string name="cellular_data_summary" msgid="8817717603450318646">"Mobiladat-forgalom engedélyezése"</string>
     <string name="allow_data_usage_title" msgid="5381624105803294315">"Adatforgalom barangoláskor"</string>
     <string name="roaming" msgid="8860308342135146004">"Roaming"</string>
-    <string name="roaming_enable" msgid="2108142024297441116">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
-    <string name="roaming_disable" msgid="1915440242079953809">"Csatlakozás adatszolgáltatásokhoz barangolás során"</string>
+    <string name="roaming_enable" msgid="2108142024297441116">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
+    <string name="roaming_disable" msgid="1915440242079953809">"Csatlakozás adatszolgáltatásokhoz roaming során"</string>
     <string name="roaming_reenable_message" msgid="8388505868655113258">"Megszakadt az adatkapcsolat, mert elhagyta az otthoni hálózatot, és az adatbarangolás nincs bekapcsolva."</string>
     <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"Bekapcsolás"</string>
     <string name="roaming_warning" msgid="5488050911277592868">"Lehet, hogy jelentős összeget számítanak fel érte."</string>
     <string name="roaming_warning_multiuser" product="tablet" msgid="7090388691615686893">"Az adatbarangolás engedélyezése jelentős díjnövekedéssel járhat.\n\nEz a beállítás minden felhasználót érint ezen a táblagépen."</string>
     <string name="roaming_warning_multiuser" product="default" msgid="6999819541078827556">"Az adatbarangolás engedélyezése jelentős díjnövekedéssel járhat.\n\nEz a beállítás minden felhasználót érint ezen a telefonon."</string>
-    <string name="roaming_reenable_title" msgid="6985082191178297921">"Engedélyezi az adatbarangolást?"</string>
+    <string name="roaming_reenable_title" msgid="6985082191178297921">"Engedélyezi az adatroamingot?"</string>
     <string name="networks" msgid="3073876464102136771">"Szolgáltatóválasztás"</string>
     <string name="sum_carrier_select" msgid="8964744180598499121">"Válassza ki a hálózat üzemeltetőjét"</string>
     <string name="date_and_time_settings_title" msgid="7827088656940910631">"Dátum és idő"</string>
@@ -411,10 +410,10 @@
     <string name="face_add_max" msgid="8870899421165189413">"Legfeljebb <xliff:g id="COUNT">%d</xliff:g> arcot adhat hozzá"</string>
     <string name="face_intro_error_max" msgid="4024147799079828937">"Elérte a hozzáadható arcok maximális számát"</string>
     <string name="face_intro_error_unknown" msgid="3241592604198351134">"Nem lehet további arcokat hozzáadni"</string>
-    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"A regisztráció nincs kész"</string>
+    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"A rögzítés nincs kész"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"OK"</string>
     <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Letelt az arcregisztráció időkorlátja. Próbálja újra."</string>
-    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Az arc regisztrálása sikertelen volt."</string>
+    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Az arc rögzítése sikertelen volt."</string>
     <string name="security_settings_face_enroll_finish_title" msgid="6800717857394410769">"Minden beállítva. Jónak tűnik."</string>
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Kész"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Arc használata erre:"</string>
@@ -488,8 +487,8 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Kész"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Hoppá! Az nem az érzékelő"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Érintse meg a hátsó érzékelőt mutatóujjával."</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"A regisztráció nincs kész"</string>
-    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Letelt az ujjlenyomat-regisztráció időkorlátja. Próbálja újra."</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"A rögzítés nincs kész"</string>
+    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Letelt az ujjlenyomat-rögzítés időkorlátja. Próbálja újra."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Az ujjlenyomat regisztrációja nem sikerült. Próbálja újra, vagy próbálkozzon egy másik ujjával."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Még egy hozzáadása"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Következő"</string>
@@ -936,9 +935,9 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Adatvédelem"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Véletlenszerű MAC-cím"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Eszköz hozzáadása"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Irányítsa a QR-kódot az alábbi panel közepéhez az eszköznek a következőhöz való hozzáadásához: <xliff:g id="SSID">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Irányítsa a QR-kódot az alábbi panel közepére, hogy hozzáadja az eszközt a(z) <xliff:g id="SSID">%1$s</xliff:g> hálózathoz"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR-kód beolvasása"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Irányítsa a QR-kódot az alábbi panel közepéhez a következőhöz való csatlakozáshoz: <xliff:g id="SSID">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Irányítsa a QR-kódot az alábbi panel közepére, hogy hozzáadja az eszközt a(z) <xliff:g id="SSID">%1$s</xliff:g> hálózathoz"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Csatlakozzon Wi-Fi-hálózathoz QR-kód beolvasásával"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi megosztása"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"A(z) „<xliff:g id="SSID">%1$s</xliff:g>” hálózathoz való csatlakozás érdekében olvassa be ezt a QR-kódot, és ossza meg a jelszót"</string>
@@ -1085,10 +1084,10 @@
     <string name="wifi_calling_suggestion_summary" msgid="198402175473169630">"Kapcsolja be a Wi-Fi-hívást a lefedettség növeléséhez"</string>
     <string name="wifi_calling_mode_title" msgid="3350624859819920176">"Híváspreferencia"</string>
     <string name="wifi_calling_mode_dialog_title" msgid="652534533091724333">"Híváspreferencia"</string>
-    <string name="wifi_calling_roaming_mode_title" msgid="2059151080231602753">"Barangolási beállítás"</string>
+    <string name="wifi_calling_roaming_mode_title" msgid="2059151080231602753">"Roaming beállítása"</string>
     <!-- no translation found for wifi_calling_roaming_mode_summary (620031651074963360) -->
     <skip />
-    <string name="wifi_calling_roaming_mode_dialog_title" msgid="4018579440109122790">"Barangolási beállítás"</string>
+    <string name="wifi_calling_roaming_mode_dialog_title" msgid="4018579440109122790">"Roaming beállítása"</string>
   <string-array name="wifi_calling_mode_choices">
     <item msgid="7952573372663890448">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="2552412793005571845">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Mobilhálózat használata, ha nem áll rendelkezésre Wi-Fi-hálózat"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Wi‑Fi használata, ha nem áll rendelkezésre mobilhálózat"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Hívás Wi-Fi-n. Ha a Wi-Fi kapcsolat megszűnik, a hívás véget ér."</string>
@@ -1213,7 +1215,7 @@
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Ütemezés"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Nincs"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Adott időpontban kapcsol be"</string>
-    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Napnyugtától napkeltéig kapcsol be"</string>
+    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Napnyugtától napkeltéig"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"Kezdés ideje"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Befejezés ideje"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"Állapot"</string>
@@ -1308,7 +1310,7 @@
     <string name="system_update_settings_list_item_title" msgid="1907497454722790033">"Rendszerfrissítések"</string>
     <string name="system_update_settings_list_item_summary" msgid="3497456690691907873"></string>
     <string name="firmware_version" msgid="547095584029938749">"Android verziója"</string>
-    <string name="security_patch" msgid="483709031051932208">"Androidos biztonsági hibajavító csomag szintje"</string>
+    <string name="security_patch" msgid="483709031051932208">"Androidos biztonsági hibajavító csomag"</string>
     <string name="model_info" msgid="1729765474260797594">"Modell"</string>
     <string name="model_summary" msgid="8781425868254352168">"Modell: %1$s"</string>
     <string name="hardware_info" msgid="174270144950621815">"Modell és hardver"</string>
@@ -1353,7 +1355,7 @@
     <string name="status_esim_id" msgid="9201767073386770286">"EID"</string>
     <string name="status_service_state" msgid="4406215321296496234">"Szolgáltatás állapota"</string>
     <string name="status_signal_strength" msgid="4302597886933728789">"Jelerősség"</string>
-    <string name="status_roaming" msgid="5191044997355099561">"Barangolás"</string>
+    <string name="status_roaming" msgid="5191044997355099561">"Roaming"</string>
     <string name="status_operator" msgid="6017986100643755390">"Hálózat"</string>
     <string name="status_wifi_mac_address" msgid="3868452167971295995">"Wi-Fi MAC-címe"</string>
     <string name="status_bt_address" msgid="460568179311735657">"Bluetooth-cím"</string>
@@ -1546,7 +1548,7 @@
     <string name="apn_auth_type_pap_chap" msgid="2977833804460109203">"PAP vagy CHAP"</string>
     <string name="apn_type" msgid="6725346490902871146">"APN típusa"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"Hozzáférési pont protokollja"</string>
-    <string name="apn_roaming_protocol" msgid="6913336248771263497">"Hozzáférési pont barangolási protokollja"</string>
+    <string name="apn_roaming_protocol" msgid="6913336248771263497">"Hozzáférési pont roamingprotokollja"</string>
     <string name="carrier_enabled" msgid="1819916725305365581">"APN be-/kikapcsolása"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN engedélyezve"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN kikapcsolva"</string>
@@ -1687,7 +1689,7 @@
     <string name="contributors_title" msgid="6800028420806884340">"Közreműködők"</string>
     <string name="manual" msgid="5431859421432581357">"Útmutató"</string>
     <string name="regulatory_labels" msgid="380968489247381025">"Szabályozási címkék"</string>
-    <string name="safety_and_regulatory_info" msgid="7113766428000920132">"Biztonsági és az előírásokkal kapcsolatos útmutató"</string>
+    <string name="safety_and_regulatory_info" msgid="7113766428000920132">"Biztonsági és szabályozási útmutató"</string>
     <string name="copyright_title" msgid="3847703367689932190">"Szerzői jog"</string>
     <string name="license_title" msgid="7582145947873528540">"Licenc"</string>
     <string name="terms_title" msgid="1804549588198223771">"Általános Szerződési Feltételek"</string>
@@ -2574,7 +2576,7 @@
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"Korlátozott SMS- és hívásnapló-hozzáférés"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"Csak az alapértelmezett telefon- és üzenetküldő alkalmazások rendelkeznek SMS-ekhez és hívásnaplóhoz való hozzáféréssel"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"Nincs elérhető trust agent komponens"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"Aktiválja az eszközrendszergazdai alkalmazást?"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"Aktiválja a rendszergazdai alkalmazást?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"Az eszközrendszergazdai alkalmazás aktiválása"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Eszközrendszergazda"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"A rendszergazdai alkalmazás aktiválása engedélyezi a(z) <xliff:g id="APP_NAME">%1$s</xliff:g> alkalmazás számára a következő műveletek elvégzését:"</string>
@@ -2691,7 +2693,7 @@
     <string name="data_usage_enable_mobile" msgid="7238385042860001374">"Mobiladatok"</string>
     <string name="data_usage_enable_3g" msgid="3725838726334043367">"2G-3G adatforgalom"</string>
     <string name="data_usage_enable_4g" msgid="8872517106293561179">"4G adatforgalom"</string>
-    <string name="data_roaming_enable_mobile" msgid="5886394350890765947">"Barangolás"</string>
+    <string name="data_roaming_enable_mobile" msgid="5886394350890765947">"Roaming"</string>
     <string name="data_usage_forground_label" msgid="8992577451178005406">"Előtér:"</string>
     <string name="data_usage_background_label" msgid="8460891123904985128">"Háttér:"</string>
     <string name="data_usage_app_settings" msgid="3276444867375694809">"Alkalmazásbeállítások"</string>
@@ -3098,7 +3100,7 @@
     <string name="keywords_assist_gesture_launch" msgid="2711433664837843513">"kézmozdulat"</string>
     <string name="keywords_face_unlock" msgid="651615819291927262">"arc, feloldás, hitelesítés, bejelentkezés"</string>
     <string name="keywords_imei_info" msgid="4325847870422053408">"imei, meid, min, prl-verzió, imei sv"</string>
-    <string name="keywords_sim_status" msgid="3852088576719874387">"hálózat, mobilhálózat állapota, szolgáltatás állapota, jelerősség, mobilhálózat típusa, barangolás, iccid"</string>
+    <string name="keywords_sim_status" msgid="3852088576719874387">"hálózat, mobilhálózat állapota, szolgáltatás állapota, jelerősség, mobilhálózat típusa, roaming, iccid"</string>
     <string name="keywords_model_and_hardware" msgid="2743197096210895251">"sorozatszám, hardververzió"</string>
     <string name="keywords_android_version" msgid="4842749998088987740">"androidos biztonsági javítókészlet szintje, alapsáv verziója, kernel verziója"</string>
     <string name="keywords_dark_ui_mode" msgid="1027966176887770318">"téma, világos, sötét, mód"</string>
@@ -3709,7 +3711,7 @@
     <string name="high_power_off" msgid="5906679734326490426">"Akkumulátorhasználat optimalizálása"</string>
     <string name="high_power_system" msgid="739584574711292753">"Nincs lehetőség akkumulátoroptimalizálásra"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Ne vonatkozzon rá az akkumulátoroptimalizálás. Így az akkumulátor gyorsabban lemerülhet."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Engedélyezi az alkalmazás számára, hogy mindig fusson a háttérben?"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Engedélyezi, hogy az alkalmazás mindig fusson a háttérben?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"Ha engedélyezi, hogy a(z) <xliff:g id="APP_NAME">%1$s</xliff:g> mindig fusson a háttérben, csökkenhet az akkumulátor üzemideje.\n\nEzt később bármikor módosíthatja a Beállítások &gt; Alkalmazások és értesítések menüpontban."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Akkumulátorhasználat az utolsó teljes feltöltés óta: <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Energiagazdálkodás"</string>
@@ -4437,7 +4439,7 @@
     <string name="cdma_subscription_summary" msgid="2298861419202726628">"Váltás RUIM/SIM és NV között"</string>
     <string name="cdma_subscription_dialogtitle" msgid="232485231569225126">"előfizetés"</string>
     <string name="register_automatically" msgid="1858081641661493109">"Automatikus regisztráció…"</string>
-    <string name="roaming_alert_title" msgid="1849237823113454475">"Engedélyezi az adatbarangolást?"</string>
+    <string name="roaming_alert_title" msgid="1849237823113454475">"Engedélyezi az adatroamingot?"</string>
     <string name="roaming_check_price_warning" msgid="5883499714594419439">"Az árakat a szolgáltatótól tudhatja meg."</string>
     <string name="mobile_data_usage_title" msgid="2376358672434990037">"Alkalmazás adathasználata"</string>
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"Érvénytelen hálózati mód: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Figyelmen kívül hagyás."</string>
diff --git a/tests/CarDeveloperOptions/res/values-hy/arrays.xml b/tests/CarDeveloperOptions/res/values-hy/arrays.xml
index 74d88a3..c4c9599 100644
--- a/tests/CarDeveloperOptions/res/values-hy/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-hy/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"աշխատել ֆոնային ռեժիմում"</item>
     <item msgid="6423861043647911030">"մատչելիության ծավալ"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Տեղադրություն"</item>
+    <item msgid="6656077694190491067">"Տեղադրություն"</item>
+    <item msgid="8790228218278477369">"Տեղադրություն"</item>
+    <item msgid="7836406246005211990">"Թրթռոց"</item>
+    <item msgid="3951439024549922598">"Տեսնել կոնտակտները"</item>
+    <item msgid="8802152411647068">"Փոփոխել կոնտակտները"</item>
+    <item msgid="229544934599698735">"Տեսնել զանգերի մատյանը"</item>
+    <item msgid="7396102294405899613">"Փոփոխել զանգերի մատյանը"</item>
+    <item msgid="3597797992398484655">"Տեսնել օրացույցը"</item>
+    <item msgid="2705975774250907343">"Փոփոխել օրացույցը"</item>
+    <item msgid="4668747371441932697">"Տեղադրություն"</item>
+    <item msgid="1487578921720243646">"Փակցնել ծանուցում"</item>
+    <item msgid="4636080349724146638">"Տեղադրություն"</item>
+    <item msgid="673510900286463926">"Հեռախոս"</item>
+    <item msgid="542083422784609790">"Կարդալ SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Գրել SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Ստանալ SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Ստանալ SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Ստանալ SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Ստանալ SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Ուղարկել SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Կարդալ SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Գրել SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Փոփոխել կարգավորումները"</item>
+    <item msgid="8705854389991425629">"Պատկերել վերևի մասում"</item>
+    <item msgid="5861356020344153651">"Մուտք գործել ծանուցումներ"</item>
+    <item msgid="78432174621628659">"Տեսախցիկ"</item>
+    <item msgid="3986116419882154794">"Ձայնագրել աուդիո ֆայլ"</item>
+    <item msgid="4516840825756409490">"Նվագարկել ձայնանյութը"</item>
+    <item msgid="6811712502798183957">"Կարդալ սեղմատախտակը"</item>
+    <item msgid="2780369012602289114">"Փոփոխել սեղմատախտակը"</item>
+    <item msgid="2331359440170850868">"Մեդիա կոճակներ"</item>
+    <item msgid="6133599737122751231">"Աուդիո ֆոկուս"</item>
+    <item msgid="6844485713404805301">"Ձայնի հիմնական բարձրություն"</item>
+    <item msgid="1600379420669104929">"Ձայնի բարձրություն"</item>
+    <item msgid="6296768210470214866">"Զանգերանգ"</item>
+    <item msgid="510690696071629241">"Մուլտիմեդիա"</item>
+    <item msgid="406861638631430109">"Զարթուցիչ"</item>
+    <item msgid="4715864795872233884">"Ծանուցման ձայնի բարձրություն"</item>
+    <item msgid="2311478519251301183">"Bluetooth-ի ձայնի բարձրություն"</item>
+    <item msgid="5133991377896747027">"Արթուն պահել"</item>
+    <item msgid="2464189519136248621">"Տեղորոշում"</item>
+    <item msgid="2062677934050803037">"Տեղադրություն"</item>
+    <item msgid="1735171933192715957">"Ստանալ օգտագործման վիճակագրությունը"</item>
+    <item msgid="1014093788778383554">"Խոսափողն անջատել/միացնել"</item>
+    <item msgid="4199297950608622850">"Ցույց տալ ծանուցումը"</item>
+    <item msgid="2527962435313398821">"Տեսարձակել մեդիան"</item>
+    <item msgid="5117506254221861929">"Ակտիվացնել VPN-ը"</item>
+    <item msgid="8291198322681891160">"Պաստառների պահում"</item>
+    <item msgid="7106921284621230961">"Օժանդակ կառույց"</item>
+    <item msgid="4496533640894624799">"Օժանդակ սքրինշոթ"</item>
+    <item msgid="2598847264853993611">"Կարդալ հեռախոսի վիճակի տվյալները"</item>
+    <item msgid="9215610846802973353">"Ավելացնել ձայնային փոստ"</item>
+    <item msgid="9186411956086478261">"Օգտագործել sip-ը"</item>
+    <item msgid="6884763100104539558">"Մշակել ելքային զանգը"</item>
+    <item msgid="125513972170580692">"Մատնահետք"</item>
+    <item msgid="2556071024281275619">"Մարմնի տվիչներ"</item>
+    <item msgid="617168514928339387">"Կարդալ բջջային հեռարձակումները"</item>
+    <item msgid="7134693570516523585">"Կեղծել տեղադրությունը"</item>
+    <item msgid="7224489175375229399">"Կարդալ կրիչի բովանդակությունը"</item>
+    <item msgid="8472735063903258202">"Փոփոխել կրիչի բովանդակությունը"</item>
+    <item msgid="4069276819909595110">"Միացնել էկրանը"</item>
+    <item msgid="1228338896751121025">"Ստանալ հաշիվները"</item>
+    <item msgid="3181581793459233672">"Աշխատել ֆոնային ռեժիմում"</item>
+    <item msgid="2340936043025374076">"Մատչելիության ծավալ"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Կարճ"</item>
     <item msgid="4816511817309094890">"Միջին"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Երբեք չթույլատրել"</item>
     <item msgid="8184570120217958741">"Միշտ թույլատրել"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Սովորական"</item>
+    <item msgid="5101233285497327432">"Չափավոր"</item>
+    <item msgid="1555861583162930714">"Ցածր"</item>
+    <item msgid="1719683776264798117">"Կրիտիկական"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Սովորական"</item>
+    <item msgid="6107138933849816768">"Չափավոր"</item>
+    <item msgid="182695359839047859">"Ցածր"</item>
+    <item msgid="8577246509202964244">"Կրիտիկական"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Կայուն"</item>
     <item msgid="167418068739176448">"Առավել հաճախակի կատարվող գործողությունը"</item>
@@ -396,7 +472,7 @@
     <item msgid="3118234477029486741">"0"</item>
   </string-array>
   <string-array name="wifi_metered_entries">
-    <item msgid="4329206416008519163">"Ավտոմատ հայտնաբերում"</item>
+    <item msgid="4329206416008519163">"Ավտոմատ որոշում"</item>
     <item msgid="773943026484148895">"Սահմանափակ"</item>
     <item msgid="1008268820118852416">"Անսահմանափակ"</item>
   </string-array>
diff --git a/tests/CarDeveloperOptions/res/values-hy/strings.xml b/tests/CarDeveloperOptions/res/values-hy/strings.xml
index 10597a3..668f88f 100644
--- a/tests/CarDeveloperOptions/res/values-hy/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-hy/strings.xml
@@ -27,7 +27,7 @@
       <item quantity="other">Ծրագրավորող դառնալու համար ձեզ մնացել է կատարել <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> քայլ:</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"Դուք արդեն ծրագրավորո՛ղ եք:"</string>
-    <string name="show_dev_already" msgid="7665948832405148689">"Կարիք չկա, դուք արդեն իսկ ծրագրավորող եք:"</string>
+    <string name="show_dev_already" msgid="7665948832405148689">"Կարիք չկա, ծրագրավորողի ընտրանքներն արդեն միացված են։"</string>
     <string name="dev_settings_disabled_warning" msgid="3198732189395396721">"Խնդրում ենք նախ միացնել մշակողի ընտրանքները:"</string>
     <string name="header_category_wireless_networks" msgid="8968405993937795898">"Անլար կապ և ցանցեր"</string>
     <string name="header_category_system" msgid="4045988717359334410">"Համակարգ"</string>
@@ -65,7 +65,7 @@
     <string name="radioInfo_phone_offhook" msgid="3186071430568806208">"Զանգն ընթանում է"</string>
     <string name="radioInfo_data_disconnected" msgid="5311119240521915279">"Անջատված է"</string>
     <string name="radioInfo_data_connecting" msgid="47095003276717745">"Միանում է"</string>
-    <string name="radioInfo_data_connected" msgid="3755289851642913750">"Կապակցված է"</string>
+    <string name="radioInfo_data_connected" msgid="3755289851642913750">"Միացված է"</string>
     <string name="radioInfo_data_suspended" msgid="5013451375409737795">"Անջատված"</string>
     <string name="radioInfo_unknown" msgid="3148839102896278859">"Անհայտ"</string>
     <string name="radioInfo_display_packets" msgid="5472652398031589527">"pkts"</string>
@@ -83,12 +83,11 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Փոփոխեք տեքստի չափը։"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Փոքրացնել"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Մեծացնել"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Տեքստի նմուշ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Օզի կախարդը"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Գլուխ 11. Օզի հրաշալի Զմրուխտե քաղաքը"</string>
-    <string name="font_size_preview_text_body" msgid="6803085337474390845">"Նույնիսկ հագնելով կանաչ ապակիներով ակնոցներ՝ Դորոթին և նրա ընկերները շլացան այս զարմանահրաշ քաղաքի փայլից: Փողոցների երկայնքով շարված էին կանաչ մարմարից գեղեցիկ տներ՝ զարդարված փայլուն զմրուխտներով: Ճամփորդները քայլում էին այդ նույն կանաչ մարմարով պատած մայթերով, որոնց սալիկների արանքները լցված էին արևի շողերի տակ փայլող զմրուխտներով: Տների պատուհանները կանաչ ապակուց էին: Զմրուխտե քաղաքում նույնիսկ երկինքն ուներ կանաչ երանգ, իսկ կանաչ արևը պայծառ կանաչ շողեր էր արձակում: \n\nՇուրջը տղամարդիկ, կանայք և երեխաներ էին քայլում, որոնք բոլորը կրում էին կանաչ հագուստ և ունեին կանաչավուն մաշկ: Նրանք զարմանքով էին նայում Դորոթիին և նրա տարօրինակ ուղեկիցներին: Նկատելով Առյուծին՝ երեխաները թաքնվում էին իրենց ծնողների մեջքի ետևում և ոչ-ոք չեր համարձակվում խոսել անծանոթների հետ: Խանութներում վաճառվում էին կանաչ գույնի ապրանքներ. կանաչ կոնֆետներ և կանաչ ադիբուդի, տարբեր տեսակի կանաչ կոշիկներ, գլխարկներ և զգեստներ: Վաճառականներից մեկն առաջարկում էր կանաչ լիմոնադ, իսկ նրան շրջապատող երեխաները լիմոնադի համար վճարում էին կանաչ մետաղադրամներով: \n\nԶմրուխտե քաղաքի փողոցներում ոչ ձիեր, ոչ էլ այլ կենդանիներ չկային: Տղամարդիկ իրենց իրերը կրում էին փոքր կանաչ ձեռնասայլակներով: Քաղաքի բոլոր բնակիչները ուրախ և անհոգ տեսք ունեին:"</string>
+    <string name="font_size_preview_text_body" msgid="6803085337474390845">"Նույնիսկ հագնելով կանաչ ապակիներով ակնոցներ՝ Դորոթին և իր ընկերները շլացան այս զարմանահրաշ քաղաքի փայլից: Փողոցների երկայնքով շարված էին կանաչ մարմարից գեղեցիկ տներ՝ զարդարված փայլուն զմրուխտներով: Ճամփորդները քայլում էին այդ նույն կանաչ մարմարով պատած մայթերով, որոնց սալիկների արանքները լցված էին արևի շողերի տակ փայլող զմրուխտներով: Տների պատուհանները կանաչ ապակուց էին: Զմրուխտե քաղաքում նույնիսկ երկինքն ուներ կանաչ երանգ, իսկ կանաչ արևը պայծառ կանաչ շողեր էր արձակում: \n\nՇուրջը տղամարդիկ, կանայք և երեխաներ էին քայլում, որոնք բոլորը կրում էին կանաչ հագուստ և ունեին կանաչավուն մաշկ: Նրանք զարմանքով էին նայում Դորոթիին և նրա տարօրինակ ուղեկիցներին: Նկատելով Առյուծին՝ երեխաները թաքնվում էին իրենց ծնողների մեջքի ետևում և ոչ-ոք չեր համարձակվում խոսել անծանոթների հետ: Խանութներում վաճառվում էին կանաչ գույնի ապրանքներ. կանաչ կոնֆետներ և կանաչ ադիբուդի, տարբեր տեսակի կանաչ կոշիկներ, գլխարկներ և զգեստներ: Վաճառականներից մեկն առաջարկում էր կանաչ լիմոնադ, իսկ նրան շրջապատող երեխաները լիմոնադի համար վճարում էին կանաչ մետաղադրամներով: \n\nԶմրուխտե քաղաքի փողոցներում ոչ ձիեր, ոչ էլ այլ կենդանիներ չկային: Տղամարդիկ իրենց իրերը կրում էին փոքր կանաչ ձեռնասայլակներով: Քաղաքի բոլոր բնակիչները ուրախ և անհոգ տեսք ունեին:"</string>
     <string name="font_size_save" msgid="8652044574655753921">"Հաստատել"</string>
     <string name="sdcard_setting" product="nosdcard" msgid="1533784309105748696">"USB կրիչ"</string>
     <string name="sdcard_setting" product="default" msgid="8398782065765523178">"SD քարտ"</string>
@@ -100,7 +99,7 @@
     <string name="bluetooth_visibility_timeout" msgid="4804679276398564496">"Տեսանելիության ժամանակի սպառում"</string>
     <string name="bluetooth_lock_voice_dialing" msgid="1600385868298081015">"Կողպել ձայնային համարհավաքումը"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="5005776616112427980">"Կանխել Bluetooth համարհավաքչի օգտագործումը, երբ էկրանը կողպված է"</string>
-    <string name="bluetooth_devices" msgid="4143880830505625666">"Bluetooth-ով սարքեր"</string>
+    <string name="bluetooth_devices" msgid="4143880830505625666">"Bluetooth սարքեր"</string>
     <string name="bluetooth_device_name" msgid="3682016026866302981">"Սարքի անունը"</string>
     <string name="bluetooth_device_details" msgid="2500840679106321361">"Սարքի կարգավորումներ"</string>
     <string name="bluetooth_profile_details" msgid="1785505059738682493">"Պրոֆիլի կարգավորումներ"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Պետք է լրացնել միացքի դաշտը:"</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Միացքի դաշտը պետք է ազատ լինի, եթե հանգույցի դաշտը դատարկ է:"</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Ձեր մուտքագրած միացքը վավեր չէ:"</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP պրոքսին օգտագործվում է դիտարկիչի կողմից, բայց չի կարող օգտագործվել այլ ծրագրերի կողմից:"</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP պրոքսին օգտագործվում է միայն դիտարկիչի կողմից:"</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL` "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL թողունակությունը (կբ/վ)՝"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL թողունակությունը (կբ/վ)՝"</string>
@@ -325,7 +324,7 @@
     <string name="date_and_time_settings_summary" msgid="4617979434474713417">"Սահմանել ամսաթիվը, ժամը, ժամային գոտին, &amp; ձևաչափերը"</string>
     <string name="date_time_auto" msgid="2679132152303750218">"Օգտագործել ցանցի ժամանակը"</string>
     <string name="zone_auto_title" msgid="5500880975376882488">"Օգտագործել ցանցի ժամային գոտին"</string>
-    <string name="date_time_24hour_auto" msgid="7499659679134962547">"Օգտագործել տեղույթի կանխադրված կարգավորումը"</string>
+    <string name="date_time_24hour_auto" msgid="7499659679134962547">"Օգտագործել կանխադրված տեղույթը"</string>
     <string name="date_time_24hour_title" msgid="6209923858891621283">"24-ժամյա ձևաչափ"</string>
     <string name="date_time_24hour" msgid="1265706705061608742">"Օգտագործել 24-ժամյա ձևաչափը"</string>
     <string name="date_time_set_time_title" msgid="7116850506333406367">"Ժամը"</string>
@@ -355,7 +354,7 @@
     <string name="owner_info_settings_title" msgid="2537966178998339896">"Կողպէկրանի տեքստը"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Միացնել վիջեթները"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Անջատվել է ադմինիստրատորի կողմից"</string>
-    <string name="lockdown_settings_title" msgid="4534779922580115990">"Ավելացնել մուտքի արգելափակման ընտրանքը"</string>
+    <string name="lockdown_settings_title" msgid="4534779922580115990">"Ավելացնել արգելափակման կոճակը"</string>
     <string name="lockdown_settings_summary" msgid="7270756909878256174">"Ցուցադրել սնուցման կոճակի ընտրանքը, որն անջատում է Smart Lock-ը, մատնահետքով ապակողպումը և կողպէկրանին ցուցադրվող ծանուցումները"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Միջանկյալ գործակալները հետաձգում են կողպումը"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"Եթե միացված է, միջանկյալ գործակալները երկար ժամանակ չեն թողնի, որ ձեր սարքը կողպվի, սակայն այլևս չեն կարողանա ապակողպել որևէ կողպված սարք:"</string>
@@ -730,7 +729,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Կառավարել կապերը, կարգավորել սարքի անունը &amp; հայտնաբերելիությունը"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Զուգակցե՞լ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի հետ:"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Զուգակցե՞լ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> սարքի հետ"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Bluetooth զուգակցման կոդը"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Մուտքագրեք զուգավորման կոդը, ապա սեղմեք Վերադառնալ կամ Մուտք"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"PIN-ը տառեր և նշաններ է պարունակում"</string>
@@ -760,7 +759,7 @@
     <string name="bluetooth_preference_no_found_devices" msgid="4190090666412408576">"Հասանելի սարքեր չկան"</string>
     <string name="bluetooth_device_context_connect" msgid="1812090541371432890">"Միանալ"</string>
     <string name="bluetooth_device_context_disconnect" msgid="8085015949275771802">"Անջատել"</string>
-    <string name="bluetooth_device_context_pair_connect" msgid="1503322591778810032">"Զուգավորել &amp; միանալ"</string>
+    <string name="bluetooth_device_context_pair_connect" msgid="1503322591778810032">"Զուգակցել &amp; միանալ"</string>
     <string name="bluetooth_device_context_unpair" msgid="250588431708253041">"Ապամիավորել"</string>
     <string name="bluetooth_device_context_disconnect_unpair" msgid="4519151805677280077">"Անջատել &amp; ապազուգավորել"</string>
     <string name="bluetooth_device_context_connect_advanced" msgid="423463405499392444">"Ընտրանքներ..."</string>
@@ -890,7 +889,7 @@
     <string name="wifi_menu_forget" msgid="7561140554450163075">"Մոռանալ ցանցը"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"Փոփոխել ցանցը"</string>
     <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"Հասանելի ցանցերը տեսնելու համար միացրեք Wi‑Fi-ը:"</string>
-    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wi‑Fi ցանցերը փնտրվում են…"</string>
+    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Որոնում ենք Wi-Fi ցանցեր…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Դուք թույլտվություն չունեք փոխելու Wi‑Fi-ի ցանցը:"</string>
     <string name="wifi_more" msgid="3538241640407382185">"Ավելին"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"Ավտոմատ կարգավորում (WPS)"</string>
@@ -917,9 +916,9 @@
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g>-ի հավատարմագրեր"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"EAP եղանակ"</string>
     <string name="please_select_phase2" msgid="5848080896810435677">"Փուլ 2-ի նույնականացում"</string>
-    <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA վկայական"</string>
+    <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA հավաստագիր"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Տիրույթ"</string>
-    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Օգտատիրոջ վկայական"</string>
+    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Օգտատիրոջ հավաստագիր"</string>
     <string name="wifi_eap_identity" msgid="5280457017705738773">"Ինքնություն"</string>
     <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Անանուն ինքնություն"</string>
     <string name="wifi_password" msgid="6942983531275177771">"Գաղտնաբառ"</string>
@@ -935,9 +934,9 @@
     <string name="wifi_ip_settings" msgid="4636102290236116946">"IP կարգավորումներ"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Գաղտնիություն"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Պատահական ընտրված MAC"</string>
-    <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Ավելացնել սարք"</string>
+    <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Ավելացրեք սարք"</string>
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Սարքը «<xliff:g id="SSID">%1$s</xliff:g>» ցանցին ավելացնելու համար տեսախցիկը պահեք QR կոդի վրա"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Սկանավորել QR կոդը"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Սկանավորեք QR կոդը"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"«<xliff:g id="SSID">%1$s</xliff:g>» ցանցին միանալու համար տեսախցիկը պահեք QR կոդի վրա"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Wi‑Fi ցանցին միանալու համար սկանավորեք QR կոդը"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Կիսվել Wi‑Fi-ով"</string>
@@ -952,18 +951,18 @@
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"Ստուգեք ինտերնետ կապը և նորից փորձեք"</string>
     <string name="wifi_dpp_choose_network" msgid="6251424431594491691">"Ընտրեք ցանց"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="6385259857886784285">"Սարքը միացնելու համար ընտրեք ցանցը"</string>
-    <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"Կապակցե՞լ այս սարքը «<xliff:g id="SSID">%1$s</xliff:g>» ցանցին"</string>
+    <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"Կապե՞լ այս սարքը «<xliff:g id="SSID">%1$s</xliff:g>» ցանցին"</string>
     <string name="wifi_dpp_wifi_shared_with_device" msgid="5713765471758272471">"Սարքը միացված է Wi‑Fi-ին"</string>
     <string name="wifi_dpp_add_another_device" msgid="3698441567235301565">"Կապացել այլ սարք"</string>
     <string name="wifi_dpp_choose_different_network" msgid="128515107488187050">"Ընտրել այլ ցանց"</string>
-    <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Չհաջողվեց ավելացնել սարք"</string>
+    <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Չհաջողվեց ավելացնել սարքը"</string>
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"Գտնվել է 1 սարք"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"Սարքը միանում է Wi‑Fi-ին…"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"Միացում…"</string>
     <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Ընդհանուր թեժ կետ"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Հաստատեք ձեր ինքնությունը"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Wi-Fi-ի գաղտնաբառ՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Թեժ կետի գաղտնաբառ՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Թեժ կետի գաղտնաբառը՝ <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Ավելացնել սարք"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Միացեք այս ցանցին QR կոդի միջոցով"</string>
     <string name="retry" msgid="8500839563577344702">"Կրկնել"</string>
@@ -971,7 +970,7 @@
     <string name="wifi_unchanged" msgid="6804964646942333992">"(անփոփոխ)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"Ընտրեք"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(Ավելացվել են մի քանի վկայագրեր)"</string>
-    <string name="wifi_use_system_certs" msgid="4794489370929885022">"Օգտագործել համակարգի վկայագրերը"</string>
+    <string name="wifi_use_system_certs" msgid="4794489370929885022">"Օգտագործել համակարգի հավաստագրերը"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"Չտրամադրել"</string>
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Չվավերացնել"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Վկայականը նշված չէ: Միացումը գաղտնի չի լինի:"</string>
@@ -1067,7 +1066,7 @@
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>-ը միանում է…"</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"Այլ սարքերը կարող են միանալ <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>-ին"</string>
     <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Թեժ կետի գաղտնաբառը"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Հաճախականությունների դիապազոն"</string>
+    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Հաճախականությունների միջակայք"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Թեժ կետի միջոցով ստեղծեք Wi‑Fi ցանց ձեր այլ սարքերի hամար: Թեժ կետը տրամադրում է ինտերնետային կապ բջջային ցանցի միջոցով: Կարող են կիրառվել լրացուցիչ գանձումներ։"</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Հավելվածները կարող են ստեղծել թեժ կետ՝ մոտակա սարքերին նյութեր փոխանցելու համար:"</string>
     <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Ավտոմատ անջատել թեժ կետը"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Բջջային"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Եթե Wi-Fi-ը հասանելի չէ, օգտագործել բջջային ցանցը"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Եթե բջջային ցանցը հասանելի չէ, օգտագործել Wi-Fi-ը"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Զանգ Wi-Fi-ի միջոցով։ Եթե Wi‑Fi կապն ընդհատվի, զանգը կավարտվի։"</string>
@@ -1311,7 +1313,7 @@
     <string name="security_patch" msgid="483709031051932208">"Անվտանգության համակարգի վերջին թարմացումը"</string>
     <string name="model_info" msgid="1729765474260797594">"Մոդելը"</string>
     <string name="model_summary" msgid="8781425868254352168">"Մոդել՝ %1$s"</string>
-    <string name="hardware_info" msgid="174270144950621815">"Մոդելը և սարքակազմը"</string>
+    <string name="hardware_info" msgid="174270144950621815">"Մոդել և սարքակազմ"</string>
     <string name="hardware_revision" msgid="3315744162524354246">"Սարքակազմի տարբերակը"</string>
     <string name="fcc_equipment_id" msgid="8681995718533066093">"Սարքավորման ID-ն"</string>
     <string name="baseband_version" msgid="9115560821840757786">"Baseband-ի տարբերակը"</string>
@@ -1356,7 +1358,7 @@
     <string name="status_roaming" msgid="5191044997355099561">"Ռոումինգ"</string>
     <string name="status_operator" msgid="6017986100643755390">"Ցանց"</string>
     <string name="status_wifi_mac_address" msgid="3868452167971295995">"Wi‑Fi MAC հասցե"</string>
-    <string name="status_bt_address" msgid="460568179311735657">"Bluetooth-ի հասցեն"</string>
+    <string name="status_bt_address" msgid="460568179311735657">"Bluetooth հասցե"</string>
     <string name="status_serial_number" msgid="8257722124627415159">"Հերթական համարը"</string>
     <string name="status_up_time" msgid="77128395333934087">"Աշխատած ժամանակը"</string>
     <string name="status_awake_time" msgid="1251959094010776954">"Արթուն մնալու տևողությունը"</string>
@@ -1566,10 +1568,10 @@
     <string name="restore_default_apn" msgid="7195266404077471007">"Կանխադրված APN կարգավորումների վերականգնում:"</string>
     <string name="menu_restore" msgid="3799288817317293115">"Վերականգնել կանխադրվածները"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"Սկզբնական APN կարգավորումների վերակարգավորումն ավարտված է:"</string>
-    <string name="reset_dashboard_title" msgid="7084966342252178530">"Զրոյացման ընտրանքներ"</string>
+    <string name="reset_dashboard_title" msgid="7084966342252178530">"Վերակայման ընտրանքներ"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Ցանցի, հավելվածների և սարքի կարգավորումները հնարավոր է զրոյացնել"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Զրոյացնել Wi-Fi-ի, բջջային թրաֆիկի և Bluetooth-ի կարգավորումները"</string>
-    <string name="reset_network_desc" msgid="4982633363916261109">"Արդյունքում կվերակայվեն բոլոր ցանցային կարգավորումները, ներառյալ հետևյալը՝\n\n"<li>"Wi‑Fi"</li>\n<li>"Բջջային ինտերնետ"</li>\n<li>"Bluetooth"</li></string>
+    <string name="reset_network_desc" msgid="4982633363916261109">"Արդյունքում կզրոյացվեն բոլոր ցանցային կարգավորումները, ներառյալ հետևյալը՝\n\n"<li>"Wi‑Fi"</li>\n<li>"Բջջային ինտերնետ"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Ջնջել ներբեռնված SIM-երը"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"Նոր SIM քարտ ներբեռնելու համար դիմեք ձեր օպերատորին։ Բջջային կապի սակագնային պլանները չեն չեղարկվի:"</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Զրոյացնել կարգավորումները"</string>
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Տեղադրության տվյալների վերջին օգտագործումը"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Մանրամասն"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Որևէ ծրագիր տեղադրության հարցում չի կատարել վերջերս"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Վերջին ժամանակաշրջանում հավելվածները տեղադրության հարցում չեն արել"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Ոչ մի հավելված չի օգտագործել տեղադրությունը"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Մարտկոցի շատ օգտագործում"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Մարտկոցի ցածր սպառում"</string>
@@ -1705,7 +1707,7 @@
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"Բեռնում..."</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Օգտագործել այլ եղանակ"</string>
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Էկրանի կողպում"</string>
-    <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Սարքը պաշտպանելու համար գաղտնաբառ"</string>
+    <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Նշեք գաղտնաբառ սարքը պաշտպանելու համար"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Մատնահետքն օգտագործելու համար ընտրեք գաղտնաբառ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Մատնահետքն օգտագործելու համար ստեղծեք նախշ"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Պաշտպանության համար ավելացրեք PIN կոդ"</string>
@@ -1752,7 +1754,7 @@
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"Սեղմեք Ցանկ` օգնության համար:"</string>
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"Հեռացրեք մատը ավարտելուց հետո"</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"Միացրեք առնվազն <xliff:g id="NUMBER">%d</xliff:g> կետ: Փորձեք կրկին:"</string>
-    <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"Նախշն ընդունված է"</string>
+    <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"Նախշը պահվեց"</string>
     <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"Նկարեք նախշը նորից` հաստատելու համար"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"Նոր նախշ"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"Հաստատել"</string>
@@ -2081,8 +2083,8 @@
     <string name="accessibility_timeout_2mins" msgid="4124259290444829477">"2 րոպե"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"Ժամանակ կարդալու համար"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"Ժամանակ գործողության կատարման համար"</string>
-    <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Նշեք, թե որքան ժամանակ է ձեզ անհրաժեշտ` ավտոմատ անհետացող հաղորդագրությունները կարդալու համար:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
-    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Նշեք, թե որքան ժամանակ է ձեզ անհրաժեշտ՝ կատարելու ավտոմատ անհետացող հաղորդագրություններում ներկայացված գործողությունները:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
+    <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Ընտրեք, թե որքան ժամանակ է ձեզ անհրաժեշտ ավտոմատ անհետացող հաղորդագրությունները կարդալու համար:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
+    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Ընտրեք, թե որքան ժամանակ է ձեզ անհրաժեշտ ավտոմատ անհետացող հաղորդագրությունների հետ կապված գործողություն կատարելու համար:\n\nԱյս կարգավորումը ոչ բոլոր հավելվածներում է աջակցվում:"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Սեղմելու և պահելու հապաղումը"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Գունաշրջում"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Կարող է ազդել սարքի աշխատանքի վրա"</string>
@@ -2193,8 +2195,8 @@
     <string name="print_settings" msgid="7886184656544483072">"Տպում"</string>
     <string name="print_settings_summary_no_service" msgid="634173687975841526">"Անջատված է"</string>
     <plurals name="print_settings_summary" formatted="false" msgid="7580293760281445137">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> print services on</item>
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> տպման ծառայություն միացված է</item>
+      <item quantity="one">Միացված է <xliff:g id="COUNT">%1$d</xliff:g> տպման ծառայություն</item>
+      <item quantity="other">Միացված է <xliff:g id="COUNT">%1$d</xliff:g> տպման ծառայություն</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="6180308415569432845">
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> print jobs</item>
@@ -2374,7 +2376,7 @@
     <string name="usage_type_wake_lock" msgid="6729977238748413476">"Արթուն պահել"</string>
     <string name="usage_type_gps" msgid="5914062195732419196">"GPS"</string>
     <string name="usage_type_wifi_running" msgid="4192567991891907030">"Wi‑Fi-ն աշխատում է"</string>
-    <string name="usage_type_phone" product="tablet" msgid="4279605085824633501">"Գրասալիկ"</string>
+    <string name="usage_type_phone" product="tablet" msgid="4279605085824633501">"Պլանշետ"</string>
     <string name="usage_type_phone" product="default" msgid="3901842461077646153">"Հեռախոս"</string>
     <string name="usage_type_data_send" msgid="6339880867171142725">"Ուղարկված բջջային փաթեթներ"</string>
     <string name="usage_type_data_recv" msgid="2099757621601333453">"Ստացված բջջային փաթեթներ"</string>
@@ -2447,11 +2449,11 @@
     <string name="battery_saver" msgid="3989710213758938398">"Մարտկոցի տնտեսում"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"Ավտոմատ միացնել"</string>
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"Ժամանակացույց չկա"</string>
-    <string name="battery_saver_auto_routine" msgid="886514412067906980">"Լիցքավորումների վիճակագրության հիման վրա"</string>
+    <string name="battery_saver_auto_routine" msgid="886514412067906980">"Լիցքավորման պատմության հիման վրա"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Լիցքի մակարդակի հիման վրա"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Միացնել, եթե հավանականությունը մեծ է, որ լիցքի մակարդակը չի բավականացնի մինչև հաջորդ լիցքավորումը"</string>
-    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Միացնել <xliff:g id="PERCENT">%1$s</xliff:g> լիցքի դեպքում"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Ժամանակացույցի ստեղծում"</string>
+    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Կմիանա <xliff:g id="PERCENT">%1$s</xliff:g> լիցքի դեպքում"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Ստեղծել ժամանակացույց"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Անջատել լրիվ լիցքավորված ժամանակ"</string>
     <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Մարտկոցի տնտեսման ռեժիմն անջատվում է, երբ հեռախոսի լիցքը <xliff:g id="PERCENT">%1$s</xliff:g> է"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Մարտկոցի տնտեսման ռեժիմն անջատվում է, երբ պլանշետի լիցքը <xliff:g id="PERCENT">%1$s</xliff:g> է"</string>
@@ -2464,7 +2466,7 @@
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"Երբեք"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"մատկոցի <xliff:g id="PERCENT">%1$s</xliff:g> լիցքի դեպքում"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"Մարտկոցի լիցքը"</string>
-    <string name="battery_percentage_description" msgid="9219875229166700610">"Մարտկոցի տոկոսը ցուցադրել կարգավիճակի գոտում"</string>
+    <string name="battery_percentage_description" msgid="9219875229166700610">"Մարտկոցի լիցքի տոկոսը ցույց տալ կարգավիճակի տողում"</string>
     <string name="process_stats_summary_title" msgid="9189588417488537954">"Գործընթացի վիճակագրություն"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"Ընթացիկ գործընթացների տեխնիկական վիճակագրություն"</string>
     <string name="app_memory_use" msgid="5126237308545653706">"Օգտագործվող հիշողություն"</string>
@@ -2507,7 +2509,7 @@
     <string name="voice_interactor_preference_summary" msgid="7321365727286121067">"Ամբողջական թեժ բառեր և շփում"</string>
     <string name="voice_recognizer_preference_summary" msgid="3681161319745912594">"Խոսքից տեքստի պարզ տարբերակ"</string>
     <string name="voice_interaction_security_warning" msgid="4986261746316889768">"Ձայնի ներածման այս ծառայությունը կկարողանա կատարել ձայնի մշտադիտարկում և ձեր անունից վերահսկել ձայնի հնարավորությամբ ծրագրերը: Դրա պատճառը <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> ծրագիրն է: Միացնե՞լ այս ծառայությունը:"</string>
-    <string name="tts_engine_preference_title" msgid="1183116842356275061">"Նախընտրելի մեխանիզմը"</string>
+    <string name="tts_engine_preference_title" msgid="1183116842356275061">"Նախընտրելի համակարգը"</string>
     <string name="tts_engine_settings_title" msgid="4079757915136562358">"Համակարգի կարգավորումները"</string>
     <string name="tts_sliders_title" msgid="1927481069989092278">"Խոսքի արագությունը և բարձրությունը"</string>
     <string name="tts_engine_section_title" msgid="7796486438271227076">"Համակարգ"</string>
@@ -2578,7 +2580,7 @@
     <string name="add_device_admin" msgid="1621152410207260584">"Ակտիվացնել այս սարքի ադմինիստրատորի հավելվածը"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Սարքի ադմինիստրատոր"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"Ադմինիստրատորի այս հավելվածի ակտիվացումը <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածին թույլ կտա կատարել հետևյալ գործողությունները`"</string>
-    <string name="device_admin_status" msgid="5424944611789040723">"Այս ադմինիստրատորն ակտիվ է և թույլ է տալիս <xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածին կատարել հետևյալ գործողությունները`"</string>
+    <string name="device_admin_status" msgid="5424944611789040723">"Ադմինիստրատորի այս հավելվածը ակտիվ է և թույլ է տալիս <xliff:g id="APP_NAME">%1$s</xliff:g>-ին կատարել հետևյալ գործողությունները`"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Ակտիվացնե՞լ պրոֆիլների կառավարիչը:"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Շարունակելու դեպքում օգտատերը կկառավարվի ձեր ադմինիստրատորի կողմից, որը, ձեր անձնական տվյալներից բացի, կկարողանա պահել նաև դրա հետ առնչվող տվյալները:\n\nՁեր ադմինիստրատորը կարող է վերահսկել և կառավարել կարգավորումները, մուտքը, հավելվածները և այս օգտատիրոջ հետ առնչվող տվյալները, ներառյալ ցանցային գործունեությունը և ձեր սարքի տեղադրության տվյալները:"</string>
     <string name="admin_disabled_other_options" msgid="8097063307730025707">"Ադմինիստրատորն անջատել է այլ ընտրանքները"</string>
@@ -2713,7 +2715,7 @@
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Թրաֆիկի օգտագործման սահմանը"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"Սահմանափակել տվյալների օգտագործումը"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"Նշված սահմանաչափն անցնելու դեպքում պլանշետը կանջատի բջջային ինտերնետը։\n\nՔանի որ տվյալների օգտագործումը չափում է պլանշետը, իսկ օպերատորի հաշվարկները կարող են տարբերվել, խորհուրդ ենք տալիս նշել նախատեսվածից ցածր սահմանաչափ։"</string>
-    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"Նշված սահմանաչափն անցնելու դեպքում հեռախոսը կանջատի բջջային ինտերնետը։\n\nՕպերատորի վիճակագրությունը կարող է տարբերվել հեռախոսի տվյալներից, խորհուրդ ենք տալիս նշել նախատեսվածից ցածր սահմանաչափ։"</string>
+    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"Նշված սահմանաչափն անցնելու դեպքում հեռախոսում կանջատվի բջջային ինտերնետը։\n\nՕպերատորի վիճակագրությունը կարող է տարբերվել հեռախոսի տվյալներից, խորհուրդ ենք տալիս նշել նախատեսվածից ցածր սահմանաչափ։"</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"Սահմանափակե՞լ հետնաշերտի տվյալները:"</string>
     <string name="data_usage_restrict_background" msgid="995811034744808575">"Եթե սահմանափակեք բջջային ինտերնետի ֆոնային օգտագործումը, ապա որոշ հավելվածներ և ծառայություններ չեն աշխատի մինչև Wi‑Fi ցանցին միանալը:"</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"Եթե սահմանափակեք բջջային ինտերնետի ֆոնային օգտագործումը, ապա որոշ հավելվածներ և ծառայություններ չեն աշխատի մինչև Wi‑Fi ցանցին միանալը:\n\nԱյս կարգավորումը վերաբերում է այս պլանշետի բոլոր օգտատերերին:"</string>
@@ -2745,7 +2747,7 @@
     <string name="vpn_ipsec_identifier" msgid="1230238784830362888">"IPSec նույնացուցիչ"</string>
     <string name="vpn_ipsec_secret" msgid="1531503910441962752">"IPSec նախորոշված բանալին"</string>
     <string name="vpn_ipsec_user_cert" msgid="2762078384595366852">"IPSec օգտատիրոջ վկայագիրը"</string>
-    <string name="vpn_ipsec_ca_cert" msgid="5537567128766402789">"IPSec CA վկայական"</string>
+    <string name="vpn_ipsec_ca_cert" msgid="5537567128766402789">"IPSec CA հավաստագիր"</string>
     <string name="vpn_ipsec_server_cert" msgid="3066696943831527934">"IPSec սերվերի վկայական"</string>
     <string name="vpn_show_options" msgid="7672984921872882859">"Ցույց տալ լրացուցիչ ընտրանքները"</string>
     <string name="vpn_search_domains" msgid="8469394307693909080">"DNS որոնման տիրույթներ"</string>
@@ -2792,7 +2794,7 @@
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"VPN-ին միշտ կապակցված մնալ"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"Չի աջակցվում այս հավելվածում"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"Միշտ միացված ընտրանքն ակտիվ է"</string>
-    <string name="vpn_require_connection" msgid="5413746839457797350">"Արգելափակել առանց VPN-ի կապակցումները"</string>
+    <string name="vpn_require_connection" msgid="5413746839457797350">"Արգելափակել առանց VPN-ի միացումները"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"VPN միացում պահանջե՞լ։"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"Ընտրել VPN պրոֆիլ` այդ պրոֆիլին միշտ միացված լինելու համար: Ցանցային շրջանառությունը թույլատրված կլինի միայն VPN-ին միացված ժամանակ:"</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"Ոչ մեկը"</string>
@@ -2913,17 +2915,17 @@
     <string name="apps_with_restrictions_header" msgid="8656739605673756176">"Սահմանափակումներով ծրագրեր"</string>
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Ընդլայնել ծրագրի կարգավորումները"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Հպել ու վճարել"</string>
-    <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Ինչպես է այն աշխատում"</string>
-    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Վճարեք հեռախոսի միջոցով խանութներում"</string>
-    <string name="nfc_payment_default" msgid="7869273092463612271">"Վճարման հիմնական հավելվածը"</string>
+    <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Ինչպես է դա աշխատում"</string>
+    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Խանութներում վճարեք հեռախոսի միջոցով"</string>
+    <string name="nfc_payment_default" msgid="7869273092463612271">"Վճարումների հիմնական հավելված"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Կարգավորված չէ"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"Օգտագործել կանխադրվածը"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Միշտ"</string>
-    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Բացի այն դեպքերից, երբ վճարումների այլ հավելված է բացված"</string>
+    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Եթե ուրիշ վճարային հավելված բացված չէ"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"«Հպել ու վճարել» տերմինալում օգտագործել"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Վճարում տերմինալով"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Տեղադրեք վճարումների որևէ հավելված: Ապա պարզապես մոտեցրեք հեռախոսը հետևի մասով ցանկացած տերմինալի՝ առանց անհպում վճարման նշանը դեպի տերմինալը:"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Կարգավորեք վճարային հավելվածը, ապա հեռախոսի հետևի մասը պահեք անհպում վճարման նշան ունեցող որևէ տերմինալի։"</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Պարզ է"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Ավելին..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Սահմանե՞լ որպես նախընտրանք:"</string>
@@ -3021,7 +3023,7 @@
     <string name="sim_notification_title" msgid="2457890173055955672">"SIM քարտերը փոխարինվել են:"</string>
     <string name="sim_notification_summary" msgid="6421556454979313850">"Հպեք՝ կարգավորելու համար"</string>
     <string name="sim_pref_divider" msgid="4967718397875240190">"Օգտագործել SIM քարտը հետևյալի համար՝"</string>
-    <string name="sim_calls_ask_first_prefs_title" msgid="8209265235625420102">"Հարցնել ամեն անգամ"</string>
+    <string name="sim_calls_ask_first_prefs_title" msgid="8209265235625420102">"Ամեն անգամ հարցնել"</string>
     <string name="sim_selection_required_pref" msgid="8738591348923992419">"Ընտրեք SIM քարտը"</string>
     <string name="sim_selection_channel_title" msgid="5671915549529226023">"SIM քարտի ընտրություն"</string>
     <string name="dashboard_title" msgid="3343056553551876215">"Կարգավորումներ"</string>
@@ -3143,13 +3145,13 @@
     <string name="notification_unknown_sound_title" msgid="8043718667804838398">"Հավելվածի տրամադրված ձայնը"</string>
     <string name="notification_sound_default" msgid="2664544380802426260">"Ծանուցման կանխադրված ձայնը"</string>
     <string name="alarm_ringtone_title" msgid="6411326147408635902">"Զարթուցիչի կանխադրված ձայնը"</string>
-    <string name="vibrate_when_ringing_title" msgid="2757996559847126952">"Թրթռալ զանգերի ժամանակ"</string>
+    <string name="vibrate_when_ringing_title" msgid="2757996559847126952">"Թրթռալ զանգի ժամանակ"</string>
     <string name="other_sound_settings" msgid="5250376066099818676">"Այլ ձայներ"</string>
     <string name="dial_pad_tones_title" msgid="8877212139988655769">"Թվաշարի հնչերանգներ"</string>
     <string name="screen_locking_sounds_title" msgid="4407110895465866809">"Էկրանի կողպման ձայներ"</string>
     <string name="charging_sounds_title" msgid="5070437987230894287">"Լիցքավորման ձայներ և թրթռոց"</string>
     <string name="docking_sounds_title" msgid="2573137471605541366">"Միակցման ձայներ"</string>
-    <string name="touch_sounds_title" msgid="165237488496165652">"Հպման ձայներ"</string>
+    <string name="touch_sounds_title" msgid="165237488496165652">"Հպում"</string>
     <string name="vibrate_on_touch_title" msgid="6360155469279157684">"Թրթռոց հպելիս"</string>
     <string name="vibrate_on_touch_summary" msgid="5504424764028676043">"Թրթռալ՝ կոճակները, ստեղները սեղմելու և այլ գործողությունների դեպքում"</string>
     <string name="dock_audio_media_title" msgid="1859521680502040781">"Նվագարկել միակցիչի բարձրախոսով"</string>
@@ -3242,7 +3244,7 @@
     <string name="zen_mode_sound_summary_off_with_info" msgid="3910718455243440265">"Անջատված է/<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="zen_mode_sound_summary_off" msgid="2800265178411749309">"Անջատված է"</string>
     <string name="zen_mode_sound_summary_on" msgid="6964666541479146310">"Միացված է"</string>
-    <string name="zen_mode_duration_summary_always_prompt" msgid="7642321938427056823">"Հարցնել ամեն անգամ (եթե ավտոմատ չմիանա)"</string>
+    <string name="zen_mode_duration_summary_always_prompt" msgid="7642321938427056823">"Ամեն անգամ հարցնել (եթե ավտոմատ չմիանա)"</string>
     <string name="zen_mode_duration_summary_forever" msgid="4563938129424903030">"Մինչև չանջատեք (եթե ավտոմատ չմիանա)"</string>
     <plurals name="zen_mode_duration_summary_time_hours" formatted="false" msgid="8872000022033647725">
       <item quantity="one"><xliff:g id="NUM_HOURS">%d</xliff:g> ժամ (եթե ավտոմատ չմիանա)</item>
@@ -3275,7 +3277,7 @@
     <string name="zen_onboarding_settings" msgid="1416466597876383322">"Կարգավորումներ"</string>
     <string name="zen_onboarding_new_setting_title" msgid="3622673375041304362">"Ամբողջությամբ անջատել ծանուցումները"</string>
     <string name="zen_onboarding_current_setting_title" msgid="2560330551761407563">"Անջատել ծանուցումների ձայնը"</string>
-    <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"Ծանուցումներն ամբողջությամբ կանջատվեն։ Դուք կստանաք միայն աստղանշված կոնտակտներից և կրկնվող զանգեր։"</string>
+    <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"Ծանուցումներն ամբողջությամբ կանջատվեն։ Զանգեր կստանաք միայն աստղանշված և հաճախակի զանգող բաժանորդներից։"</string>
     <string name="zen_onboarding_current_setting_summary" msgid="3569246708507270821">"(ընթացիկ կարգավորումը)"</string>
     <string name="zen_onboarding_dnd_visual_disturbances_header" msgid="7584229011611927613">"Փոփոխե՞լ «Չանհանգստացնել» ռեժիմի ծանուցումների կարգավորումները"</string>
     <string name="sound_work_settings" msgid="4140215240360927923">"Աշխատանքային պրոֆիլի ձայները"</string>
@@ -3319,7 +3321,7 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"Թարթող լույս"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Կողպէկրանին"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Երբ պրոֆիլն արգելափակված է"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Ցուցադրել ծանուցումներն ամբողջությամբ"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Ծանուցումները ցույց տալ ամբողջությամբ"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Թաքցնել գաղտնի տվյալները"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Չցուցադրել ծանուցումներ"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Ընտրեք ծանուցումների ցուցադրման ռեժիմը կողպված սարքում։"</string>
@@ -3388,7 +3390,7 @@
     <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"Նկար նկարի մեջ"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"Թույլատրել «Նկար նկարի մեջ» ռեժիմը"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="918632751775525347">"Թույլատրել հավելվածին ստեղծել նկար նկարի մեջ պատուհան, երբ հավելվածը բաց է կամ այն օգտագործելուց հետո (օրինակ՝ տեսանյութի դիտումը շարունակելու համար): Այս պատուհանը ցուցադրվում է ձեր կողմից օգտագործվող այլ հավելվածների վրայից:"</string>
-    <string name="manage_zen_access_title" msgid="3058206309728524196">"«Չանհանգստացնել» գործառույթի հասանելիությունը"</string>
+    <string name="manage_zen_access_title" msgid="3058206309728524196">"«Չանհանգստացնել» գործառույթի հասանելիություն"</string>
     <string name="zen_access_detail_switch" msgid="8706332327904974500">"Թույլատրել «Չանհանգստացնել» ռեժիմը"</string>
     <string name="zen_access_empty_text" msgid="7667538993781607731">"Տեղադրված հավելվածներից ոչ մեկը Չանհանգստացնել հարցում չի ուղարկել"</string>
     <string name="loading_notification_apps" msgid="1978345231934072091">"Ծրագրերը բեռնվում են..."</string>
@@ -3477,7 +3479,7 @@
     <string name="summary_range_verbal_combination" msgid="8799629589758200970">"<xliff:g id="START">%1$s</xliff:g>-ից <xliff:g id="END">%2$s</xliff:g>"</string>
     <string name="zen_mode_calls" msgid="1844534357711539325">"Թույլատրել զանգերը"</string>
     <string name="zen_mode_calls_title" msgid="2024387562355793661">"Զանգեր"</string>
-    <string name="zen_mode_calls_footer" msgid="6319824006810688433">"Համոզվելու, որ թույլատրված զանգերը կազդանշվեն, ստուգեք՝ արդյոք սարքում միացված է զանգը կամ թրթռոցը, թե լռեցված է:"</string>
+    <string name="zen_mode_calls_footer" msgid="6319824006810688433">"Համոզվելու, որ թույլատրված զանգերը կազդանշվեն, ստուգեք՝ արդյոք սարքում միացված է զանգի ձայնը կամ թրթռոցը, թե լռեցված է:"</string>
     <string name="zen_mode_custom_calls_footer" msgid="7329231648477682337">"«<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>» կանոնի համար մուտքային զանգերն արգելափակված են: Փոխեք կարգավորումները, որպեսզի ձեր մտերիմները և այլ կոնտակտներ կարողանան կապվել ձեզ հետ:"</string>
     <string name="zen_mode_starred_contacts_title" msgid="7099621384597127058">"Աստղանշված կոնտակտներ"</string>
     <plurals name="zen_mode_starred_contacts_summary_additional_contacts" formatted="false" msgid="1904181007981570805">
@@ -3485,13 +3487,13 @@
       <item quantity="other">Եվս <xliff:g id="NUM_PEOPLE">%d</xliff:g> կոնտակտ</item>
     </plurals>
     <string name="zen_mode_messages" msgid="2908722562188394107">"Թույլատրել SMS"</string>
-    <string name="zen_mode_messages_footer" msgid="5048951937714668561">"Համոզվելու, որ թույլատրված հաղորդագրությունները կազդանշվեն, ստուգեք՝ արդյոք սարքում միացված է զանգը կամ թրթռոցը, թե լռեցված է:"</string>
+    <string name="zen_mode_messages_footer" msgid="5048951937714668561">"Համոզվելու, որ թույլատրված հաղորդագրությունները կազդանշվեն, ստուգեք՝ արդյոք սարքում միացված է զանգի ձայնը կամ թրթռոցը, թե լռեցված է:"</string>
     <string name="zen_mode_custom_messages_footer" msgid="5566007423100361691">"«<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>» կանոնի համար մուտքային հաղորդագրություններն արգելափակված են: Փոխեք կարգավորումները, որպեսզի ձեր մտերիմները և այլ կոնտակտներ կարողանան կապվել ձեզ հետ:"</string>
     <string name="zen_mode_messages_title" msgid="786261471294055181">"SMS, MMS և հաղորդագրման հավելվածներ"</string>
     <string name="zen_mode_from_anyone" msgid="7778836826814131083">"Բոլորից"</string>
     <string name="zen_mode_from_contacts" msgid="267034158294332688">"Միայն կոնտակտներից"</string>
     <string name="zen_mode_from_starred" msgid="7349984569117392260">"Միայն աստղանշված կոնտակտներից"</string>
-    <string name="zen_calls_summary_starred_repeat" msgid="9191394641577678207">"Աստղանշված կոնտակտներից և կրկնվող զանգեր"</string>
+    <string name="zen_calls_summary_starred_repeat" msgid="9191394641577678207">"Աստղանշված և հաճախակի զանգող բաժանորդներից"</string>
     <string name="zen_calls_summary_contacts_repeat" msgid="7747592096431111510">"Կոնտակտներից և կրկնվող զանգեր"</string>
     <string name="zen_calls_summary_repeat_only" msgid="8839703337232747964">"Միայն կրկնվող զանգեր"</string>
     <string name="zen_mode_from_none" msgid="7683889985618637010">"Ոչ ոքից"</string>
@@ -3507,7 +3509,7 @@
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"հիշեցումներ"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"Թույլատրել միջոցառումները"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"Թույլատրել հավելվածներին փոխել «Չանհանգստացնել» ռեժիմի կարգավորումները"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Հավելվածների ընդլայնումներ"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Հավելվածների բացառություններ"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="one"><xliff:g id="NUMBER">%1$d</xliff:g> հավելվածի ծանուցումները կարող են փոխել «Չանհանգստացնել» ռեժիմի կարգավորումները</item>
       <item quantity="other"><xliff:g id="NUMBER">%1$d</xliff:g> հավելվածի ծանուցումները կարող են փոխել «Չանհանգստացնել» ռեժիմի կարգավորումները</item>
@@ -3628,7 +3630,7 @@
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> լրացուցիչ թույլտվություն</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"Թույլտվություններ չեն շնորհվել"</string>
-    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Թույլտվություններ չեն հայցվել"</string>
+    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Հավելվածը թույլտվություններ չի պահանջել"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"Բոլոր հավելվածները"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"Տեղադրված հավելվածներ"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"Ակնթարթային հավելվածները"</string>
@@ -3657,7 +3659,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> հավելված կարող է աջակցվող հղումներ բացել</item>
     </plurals>
     <string name="app_link_open_always" msgid="7723587434377688415">"Բացել այս հավելվածով"</string>
-    <string name="app_link_open_ask" msgid="4054678686331517561">"Հարցնել ամեն անգամ"</string>
+    <string name="app_link_open_ask" msgid="4054678686331517561">"Ամեն անգամ հարցնել"</string>
     <string name="app_link_open_never" msgid="5774359835242754350">"Չբացել այս հավելվածով"</string>
     <string name="default_apps_title" msgid="3848048391400989931">"Կանխադրված"</string>
     <string name="default_for_work" msgid="7290411716804495366">"Կանխադրված՝ աշխատանքի համար"</string>
@@ -3709,8 +3711,8 @@
     <string name="high_power_off" msgid="5906679734326490426">"Մարտկոցի սպառման օպտիմալացում"</string>
     <string name="high_power_system" msgid="739584574711292753">"Մարտկոցի օպտիմալացումը հասանելի չէ"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Մի կիրառեք մարտկոցի օպտիմալացումը: Մարտկոցի լիցքը կարող է ավելի արագ սպառվել:"</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Թույլատրե՞լ հավելվածին միշտ աշխատել ֆոնում:"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածին ֆոնում միշտ աշխատելու թույլատվություն տրամադրելու դեպքում մարտկոցի օգտագործման ժամանակը կարող է նվազել: \n\nԱյս կարգավորումը կարող եք հետագայում փոխել՝ անցնելով Կարգավորումներ &gt; Հավելվածներ և ծանուցումներ:"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Թույլ տա՞լ հավելվածի աշխատանքը ֆոնային ռեժիմում"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> հավելվածին ֆոնային ռեժիմում աշխատելու թույլատվություն տրամադրելու դեպքում մարտկոցի օգտագործման ժամանակը կարող է նվազել: \n\nԱյս կարգավորումը կարող եք հետագայում փոխել՝ անցնելով Կարգավորումներ &gt; Հավելվածներ և ծանուցումներ:"</string>
     <string name="battery_summary" msgid="4345690800899981339">"Վերջին լրիվ լիցքավորումից հետո օգտագործվել է <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Սնուցման կառավարում"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Վերջին լրիվ լիցքավորումից հետո մարտկոցը չի օգտագործվել"</string>
@@ -3740,7 +3742,7 @@
     <string name="usb_pref" msgid="6194821550693495068">"USB"</string>
     <string name="usb_preference" msgid="7092987095048592826">"USB-ի կարգավորումներ"</string>
     <string name="usb_control_title" msgid="2379698856760894768">"USB-ն վերահսկող սարքը"</string>
-    <string name="usb_control_host" msgid="193292043691034178">"Կապված սարք"</string>
+    <string name="usb_control_host" msgid="193292043691034178">"Միացված սարք"</string>
     <string name="usb_control_device" msgid="9154790265254725254">"Այս սարքը"</string>
     <string name="usb_switching" msgid="1230386065163529904">"Փոխարկում…"</string>
     <string name="usb_switching_failed" msgid="6857722544186145439">"Չհաջողվեց փոխարկել"</string>
@@ -3831,7 +3833,7 @@
     <string name="screen_zoom_title" msgid="164369086350486104">"Ցուցադրման չափը"</string>
     <string name="screen_zoom_short_summary" msgid="5508079362742276703">"Տարրերի մեծացում և փոքրացում"</string>
     <string name="screen_zoom_keywords" msgid="8358462497896524092">"ցուցադրման խտություն, էկրանի մասշտաբ, մասշտաբ, մասշտաբավորում"</string>
-    <string name="screen_zoom_summary" msgid="5294003755961312560">"Էկրանի տարրերի մեծացում կամ փոքրացում։ Այս կարգավորումը փոխելուց հետո որոշ հավելվածներ կարող են փոխել իրենց դիրքը:"</string>
+    <string name="screen_zoom_summary" msgid="5294003755961312560">"Մեծացրեք կամ փոքրացրեք էկրանին ցուցադրվող տարրերը։ Այս կարգավորումը փոխելուց հետո որոշ հավելվածներ կարող են փոխել իրենց դիրքը էկրանին։"</string>
     <string name="screen_zoom_preview_title" msgid="2924312934036753091">"Նախադիտում"</string>
     <string name="screen_zoom_make_smaller_desc" msgid="1374501139722916729">"Փոքրացնել"</string>
     <string name="screen_zoom_make_larger_desc" msgid="5306684807895846141">"Մեծացնել"</string>
@@ -4069,14 +4071,14 @@
     <string name="premium_sms_warning" msgid="7604011651486294515">"Վճարովի SMS-ները կարող են լրացուցիչ ծախսեր առաջացնել: Հավելվածին թույտվություն տալու դեպքում կկարողանաք դրա միջոցով վճարովի SMS-ներ ուղարկել։"</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"Վճարովի SMS"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"Անջատված է"</string>
-    <string name="bluetooth_connected_summary" msgid="439920840053965217">"Կապակցված է <xliff:g id="ID_1">%1$s</xliff:g>-ին"</string>
-    <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"Կապակցված է բազմակի շարժական սարքերի"</string>
+    <string name="bluetooth_connected_summary" msgid="439920840053965217">"Միացված է <xliff:g id="ID_1">%1$s</xliff:g>-ին"</string>
+    <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"Միացված է բազմակի շարժական սարքերի"</string>
     <string name="demo_mode" msgid="3831081808592541104">"Համակարգի միջերեսի ցուցադրական ռեժիմ"</string>
     <string name="dark_ui_mode" msgid="703844190192599217">"Թեմա"</string>
     <string name="dark_ui_mode_title" msgid="8774932716427742413">"Ընտրել թեմա"</string>
     <string name="dark_ui_settings_light_summary" msgid="5219102347744462812">"Այս կարգավորումը կիրառվում է նաև հավելվածների համար"</string>
     <string name="dark_ui_settings_dark_summary" msgid="7042737828943784289">"Աջակցվող հավելվածները ևս կանցնեն մուգ թեմային"</string>
-    <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"Մշակողի արագ կարգավորման սալիկներ"</string>
+    <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"Ծրագրավորողի արագ կարգավորման սալիկներ"</string>
     <string name="winscope_trace_quick_settings_title" msgid="940971040388411374">"Winscope-ի հետագծում"</string>
     <string name="sensors_off_quick_settings_title" msgid="3655699045300438902">"Տվիչներն անջատված են"</string>
     <string name="managed_profile_settings_title" msgid="4340409321523532402">"Աշխատանքային պրոֆիլի կարգավորումներ"</string>
@@ -4121,18 +4123,18 @@
     <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Կրկնակի հպել՝ հեռախոսը ստուգելու համար"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Կրկնակի հպեք՝ պլանշետը ստուգելու համար"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Կրկնակի հպեք՝ սարքը ստուգելու համար"</string>
-    <string name="ambient_display_summary" msgid="4882910328216411109">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար կրկնակի հպել էկրանին:"</string>
+    <string name="ambient_display_summary" msgid="4882910328216411109">"Ժամը, ծանուցումները և այլ տեղեկություններ տեսնելու համար կրկնակի հպել էկրանին:"</string>
     <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Բարձրացնել՝ հեռախոսը ստուգելու համար"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Բարձրացրեք՝ պլանշետը ստուգելու համար"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Բարձրացրեք՝ սարքը ստուգելու համար"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"Անջատել էկրանի քնի ռեժիմը"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել հեռախոսը:"</string>
-    <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել պլանշետը:"</string>
-    <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել սարքը:"</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Ժամը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել հեռախոսը:"</string>
+    <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Ժամը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել պլանշետը:"</string>
+    <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Ժամը, ծանուցումները և այլ տեղեկություններ տեսնելու համար վերցնել սարքը:"</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Հպել՝ հեռախոսը ստուգելու համար"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Հպեք՝ պլանշետը ստուգելու համար"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Հպեք՝ սարքը ստուգելու համար"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Ժամանակը, ծանուցումները և այլ տեղեկություններ տեսնելու համար կրկնակի հպեք էկրանին:"</string>
+    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Ժամը, ծանուցումները և այլ տեղեկություններ տեսնելու համար կրկնակի հպեք էկրանին:"</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Ծանուցումները դիտելու համար օգտագործել մատնահետքերի սկաները"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Մատնահետքերի սկաներ"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Ծանուցումները տեսնելու համար՝ մատը սահեցրեք ներքև հեռախոսի հետևի մասում գտնվող մատնահետքերի սկաների վրա"</string>
@@ -4246,7 +4248,7 @@
     <string name="launch_instant_app" msgid="5251693061228352333">"Բացել"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"Խաղեր"</string>
     <string name="audio_files_title" msgid="3073879661731363935">"Աուդիո ֆայլեր"</string>
-    <string name="app_info_storage_title" msgid="6643391804949509308">"Օգտագործած տարածքը"</string>
+    <string name="app_info_storage_title" msgid="6643391804949509308">"Օգտագործված տարածք"</string>
     <string name="webview_uninstalled_for_user" msgid="3407952144444040557">"(հեռացված է <xliff:g id="USER">%s</xliff:g> օգտատիրոջ համար)"</string>
     <string name="webview_disabled_for_user" msgid="8057805373224993504">"(անջատված է <xliff:g id="USER">%s</xliff:g> օգտատիրոջ համար)"</string>
     <string name="autofill_app" msgid="3990765434980280073">"Ինքնալրացման ծառայություն"</string>
@@ -4308,7 +4310,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Wi-Fi-ի կառավարում"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Թույլ տվեք հավելվածին կառավարել Wi-Fi-ը"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Թույլ տվեք այս հավելվածին միացնել և անջատել Wi-Fi-ը, գտնել Wi-Fi ցանցեր և միանալ դրանց, ավելացնել և հեռացնել ցանցեր, միացնել միայն տեղային թեժ կետ"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Միացնել…"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Որտեղ նվագարկել"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Այս սարքը"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Հեռախոս"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Պլանշետ"</string>
@@ -4321,10 +4323,10 @@
     <string name="battery_suggestion_title" product="device" msgid="765005476863631528">"Երկարացրեք սարքի մարտկոցի աշխատաժամանակը"</string>
     <string name="battery_suggestion_title" product="default" msgid="3295786171830183688">"Երկարացրեք հեռախոսի մարտկոցի աշխատաժամանակը"</string>
     <string name="battery_suggestion_summary" msgid="2669070349482656490"></string>
-    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Չզնգալ"</string>
-    <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Սնուցման և ձայնի բարձրացման կոճակների միաժամանակ սեղմումը՝"</string>
-    <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Զնգոցը կանխելու դյուրանցում"</string>
-    <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Թրթռոց"</string>
+    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Զանգի ձայնի անջատում"</string>
+    <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Սնուցման և ձայնի բարձրացման կոճակները միաժամանակ սեղմելու դեպքում"</string>
+    <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Զանգի ձայնի արագ անջատում"</string>
+    <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Թրթռալ"</string>
     <string name="prevent_ringing_option_mute" msgid="53662688921253613">"Անջատել ձայնը"</string>
     <string name="prevent_ringing_option_none" msgid="1450985763137666231">"Ոչինչ չանել"</string>
     <string name="prevent_ringing_option_vibrate_summary" msgid="7961818570574683926">"Միացված է (թրթռոց)"</string>
@@ -4387,7 +4389,7 @@
     <string name="mobile_data_settings_summary_auto_switch" msgid="3665863214578471494">"Հեռախոսն ավտոմատ կանցնի այս օպերատորին, երբ այն հասանելի լինի"</string>
     <string name="calls_preference" msgid="2076353032705811243">"Զանգերի կարգավորում"</string>
     <string name="sms_preference" msgid="8449270011976880">"SMS-ների կարգավորում"</string>
-    <string name="calls_and_sms_ask_every_time" msgid="2776167541223210738">"Հարցնել ամեն անգամ"</string>
+    <string name="calls_and_sms_ask_every_time" msgid="2776167541223210738">"Ամեն անգամ հարցնել"</string>
     <string name="mobile_network_summary_add_a_network" msgid="5408745221357144009">"Ավելացնել ցանց"</string>
     <plurals name="mobile_network_summary_count" formatted="false" msgid="6222822873390636020">
       <item quantity="one"><xliff:g id="COUNT_1">%1$d</xliff:g> SIM քարտ</item>
diff --git a/tests/CarDeveloperOptions/res/values-in/arrays.xml b/tests/CarDeveloperOptions/res/values-in/arrays.xml
index 1ef5224..0c81b79 100644
--- a/tests/CarDeveloperOptions/res/values-in/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-in/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"jalankan di latar belakang"</item>
     <item msgid="6423861043647911030">"volume aksesibilitas"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokasi"</item>
+    <item msgid="6656077694190491067">"Lokasi"</item>
+    <item msgid="8790228218278477369">"Lokasi"</item>
+    <item msgid="7836406246005211990">"Getar"</item>
+    <item msgid="3951439024549922598">"Membaca kontak"</item>
+    <item msgid="8802152411647068">"Ubah kontak"</item>
+    <item msgid="229544934599698735">"Baca log panggilan"</item>
+    <item msgid="7396102294405899613">"Ubah log panggilan"</item>
+    <item msgid="3597797992398484655">"Baca kalender"</item>
+    <item msgid="2705975774250907343">"Ubah kalender"</item>
+    <item msgid="4668747371441932697">"Lokasi"</item>
+    <item msgid="1487578921720243646">"Notifikasi postingan"</item>
+    <item msgid="4636080349724146638">"Lokasi"</item>
+    <item msgid="673510900286463926">"Telepon"</item>
+    <item msgid="542083422784609790">"Baca SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Tulis SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Terima SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Terima SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Terima SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Terima SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Kirim SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Baca SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Tulis SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Ubah setelan"</item>
+    <item msgid="8705854389991425629">"Gambar di atas"</item>
+    <item msgid="5861356020344153651">"Akses notifikasi"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Rekam audio"</item>
+    <item msgid="4516840825756409490">"Putar audio"</item>
+    <item msgid="6811712502798183957">"Baca papan klip"</item>
+    <item msgid="2780369012602289114">"Ubah papan klip"</item>
+    <item msgid="2331359440170850868">"Tombol media"</item>
+    <item msgid="6133599737122751231">"Fokus audio"</item>
+    <item msgid="6844485713404805301">"Volume utama"</item>
+    <item msgid="1600379420669104929">"Volume suara"</item>
+    <item msgid="6296768210470214866">"Volume dering"</item>
+    <item msgid="510690696071629241">"Volume media"</item>
+    <item msgid="406861638631430109">"Volume alarm"</item>
+    <item msgid="4715864795872233884">"Volume notifikasi"</item>
+    <item msgid="2311478519251301183">"Volume bluetooth"</item>
+    <item msgid="5133991377896747027">"Tetap aktif"</item>
+    <item msgid="2464189519136248621">"Lokasi"</item>
+    <item msgid="2062677934050803037">"Lokasi"</item>
+    <item msgid="1735171933192715957">"Dapatkan statistik penggunaan"</item>
+    <item msgid="1014093788778383554">"Bisukan/suarakan mikrofon"</item>
+    <item msgid="4199297950608622850">"Tampilkan seranta"</item>
+    <item msgid="2527962435313398821">"Media proyek"</item>
+    <item msgid="5117506254221861929">"Aktifkan VPN"</item>
+    <item msgid="8291198322681891160">"Tulis wallpaper"</item>
+    <item msgid="7106921284621230961">"Bantu struktur"</item>
+    <item msgid="4496533640894624799">"Bantu screenshot"</item>
+    <item msgid="2598847264853993611">"Baca status telepon"</item>
+    <item msgid="9215610846802973353">"Tambahkan pesan suara"</item>
+    <item msgid="9186411956086478261">"Gunakan sip"</item>
+    <item msgid="6884763100104539558">"Proses panggilan keluar"</item>
+    <item msgid="125513972170580692">"Sidik jari"</item>
+    <item msgid="2556071024281275619">"Sensor tubuh"</item>
+    <item msgid="617168514928339387">"Baca siaran sel"</item>
+    <item msgid="7134693570516523585">"Lokasi palsu"</item>
+    <item msgid="7224489175375229399">"Baca penyimpanan"</item>
+    <item msgid="8472735063903258202">"Tulis penyimpanan"</item>
+    <item msgid="4069276819909595110">"Aktifkan layar"</item>
+    <item msgid="1228338896751121025">"Dapatkan akun"</item>
+    <item msgid="3181581793459233672">"Jalankan di latar belakang"</item>
+    <item msgid="2340936043025374076">"Volume aksesibilitas"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Singkat"</item>
     <item msgid="4816511817309094890">"Sedang"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Jangan pernah izinkan"</item>
     <item msgid="8184570120217958741">"Selalu izinkan"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Sedang"</item>
+    <item msgid="1555861583162930714">"Rendah"</item>
+    <item msgid="1719683776264798117">"Kritis"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Sedang"</item>
+    <item msgid="182695359839047859">"Rendah"</item>
+    <item msgid="8577246509202964244">"Kritis"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Tetap"</item>
     <item msgid="167418068739176448">"Aktivitas teratas"</item>
diff --git a/tests/CarDeveloperOptions/res/values-in/strings.xml b/tests/CarDeveloperOptions/res/values-in/strings.xml
index 6f332df..bda24bf 100644
--- a/tests/CarDeveloperOptions/res/values-in/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-in/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Buat teks di layar jadi lebih kecil atau lebih besar."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Buat lebih kecil"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Buat lebih besar"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Teks contoh"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Penyihir Oz yang Menakjubkan"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Bab 11: Oz, Kota Zamrud yang Menakjubkan"</string>
@@ -180,7 +179,7 @@
     <string name="connected_device_connected_title" msgid="6255107326608785482">"Tersambung saat ini"</string>
     <string name="connected_device_saved_title" msgid="8270136893488475163">"Perangkat yang tersimpan"</string>
     <string name="connected_device_add_device_summary" msgid="7960491471270158891">"Bluetooth akan diaktifkan untuk menyambungkan"</string>
-    <string name="connected_device_connections_title" msgid="9205000271382018428">"Preferensi sambungan"</string>
+    <string name="connected_device_connections_title" msgid="9205000271382018428">"Preferensi koneksi"</string>
     <string name="connected_device_previously_connected_title" msgid="225918223397410428">"Perangkat yang sebelumnya tersambung"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="2018789662358162716">"Perangkat yang terhubung sebelumnya"</string>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="4652326177920814476">"Bluetooth diaktifkan"</string>
@@ -749,7 +748,7 @@
     <string name="bluetooth_searching_for_devices" msgid="7820814625522702494">"Menelusuri..."</string>
     <string name="bluetooth_preference_device_settings" msgid="4247085616427015908">"Setelan perangkat"</string>
     <string name="bluetooth_preference_paired_dialog_title" msgid="3567187438908143693">"Perangkat yang disandingkan"</string>
-    <string name="bluetooth_preference_paired_dialog_internet_option" msgid="3693599743477470469">"Sambungan internet"</string>
+    <string name="bluetooth_preference_paired_dialog_internet_option" msgid="3693599743477470469">"Koneksi internet"</string>
     <string name="bluetooth_preference_paired_dialog_keyboard_option" msgid="4627309436489645755">"Keyboard"</string>
     <string name="bluetooth_preference_paired_dialog_contacts_option" msgid="5290994459307558039">"Kontak dan histori panggilan"</string>
     <string name="bluetooth_pairing_dialog_title" msgid="7900515495932064945">"Sandingkan dengan perangkat ini?"</string>
@@ -782,8 +781,8 @@
     <string name="bluetooth_disconnect_headset_profile" msgid="8384028101155317339">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas sambungannya dari audio handsfree."</string>
     <string name="bluetooth_disconnect_hid_profile" msgid="6964226087090465662">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas sambungannya dari perangkat masukan."</string>
     <string name="bluetooth_disconnect_pan_user_profile" msgid="5523689915196343097">"Akses Internet melalui <xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus."</string>
-    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="8145126793699232403">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus dari berbagi sambungan internet tablet ini."</string>
-    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="6040826983120279685">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus dari berbagi sambungan internet ponsel ini."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="tablet" msgid="8145126793699232403">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus dari berbagi koneksi internet tablet ini."</string>
+    <string name="bluetooth_disconnect_pan_nap_profile" product="default" msgid="6040826983120279685">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan diputus dari berbagi koneksi internet ponsel ini."</string>
     <string name="bluetooth_device_advanced_title" msgid="5752155558126694036">"Perangkat Bluetooth yang disandingkan"</string>
     <string name="bluetooth_device_advanced_online_mode_title" msgid="7665622268007450665">"Sambungkan"</string>
     <string name="bluetooth_device_advanced_online_mode_summary" msgid="4180673788239241086">"Sambungkan ke perangkat Bluetooth"</string>
@@ -791,7 +790,7 @@
     <string name="bluetooth_device_advanced_rename_device" msgid="2270087843175307865">"Ganti nama"</string>
     <string name="bluetooth_device_advanced_enable_opp_title" msgid="8258863155491651198">"Izinkan transfer file masuk"</string>
     <string name="bluetooth_pan_user_profile_summary_connected" msgid="5934228955175911807">"Terhubung ke perangkat untuk akses internet"</string>
-    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="3103296701913705646">"Berbagi sambungan internet lokal dengan perangkat"</string>
+    <string name="bluetooth_pan_nap_profile_summary_connected" msgid="3103296701913705646">"Berbagi koneksi internet lokal dengan perangkat"</string>
     <string name="bluetooth_dock_settings" msgid="3193180757893817101">"Setelan Dok"</string>
     <string name="bluetooth_dock_settings_title" msgid="4444650787249778130">"Gunakan dok untuk audio"</string>
     <string name="bluetooth_dock_settings_headset" msgid="6043070852100434218">"Sebagai pengeras suara telepon"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Aktifkan NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC mempertukarkan data antara perangkat ini dan perangkat atau target lain di sekitar, seperti terminal pembayaran, pembaca akses, dan iklan atau tag interaktif."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Amankan NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Izinkan penggunaan Pembayaran NFC dan Transit hanya jika layar terbuka kuncinya"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Izinkan penggunaan Pembayaran NFC dan Transportasi Umum hanya jika layar terbuka kuncinya"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Siap mentransmisikan konten apl melalui NFC"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Mati"</string>
@@ -856,7 +855,7 @@
     <string name="wifi_wakeup_summary_scoring_disabled" msgid="7067018832237903151">"Untuk menggunakan, pilih penyedia rating jaringan"</string>
     <string name="wifi_poor_network_detection" msgid="7193423327400703073">"Hindari sambungan buruk"</string>
     <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"Jangan gunakan jaringan Wi-Fi, kecuali sambungan internetnya kuat"</string>
-    <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"Hanya gunakan jaringan yang memiliki sambungan internet kuat"</string>
+    <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"Hanya gunakan jaringan yang memiliki koneksi internet kuat"</string>
     <string name="use_open_wifi_automatically_title" msgid="3084513215481454350">"Sambungkan ke jaringan terbuka"</string>
     <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"Otomatis sambungkan ke jaringan publik berkualitas tinggi"</string>
     <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"Untuk menggunakan, pilih penyedia rating jaringan"</string>
@@ -926,7 +925,7 @@
     <string name="wifi_show_password" msgid="7878398590772942202">"Tampilkan sandi"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"Pilih AP Band"</string>
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Otomatis"</string>
-    <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Pita frekuensi 2,4 GHz"</string>
+    <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Band 2,4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Pita frekuensi 5,0 GHz"</string>
     <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Disarankan Band 5.0 GHz"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
@@ -939,7 +938,7 @@
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Posisikan kode QR di tengah jendela kamera untuk menambahkan perangkat ke “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Pindai kode QR"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Posisikan kode QR di tengah jendela kamera untuk menyambungkan ke “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Hubungkan ke Wi‑Fi dengan meminta kode QR"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Hubungkan ke Wi‑Fi dengan memindai kode QR"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Bagikan Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Pindai kode QR ini untuk terhubung ke “<xliff:g id="SSID">%1$s</xliff:g>” dan membagikan sandi"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Pindai kode QR ini untuk terhubung ke “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
@@ -976,7 +975,7 @@
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Jangan validasi"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Sertifikat tidak ditentukan. Sambungan tidak bersifat pribadi."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Nama jaringan terlalu panjang."</string>
-    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Harus menentukan domain."</string>
+    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Domain harus ditentukan."</string>
     <string name="wifi_wps_available_first_item" msgid="3221671453930485243">"WPS tersedia"</string>
     <string name="wifi_wps_available_second_item" msgid="5703265526619705185">" (WPS tersedia)"</string>
     <string name="wifi_carrier_connect" msgid="7202618367339982884">"Jaringan Wi‑Fi operator"</string>
@@ -1058,17 +1057,17 @@
     <string name="wifi_p2p_cancel_connect_message" msgid="3752679335020392154">"Apakah Anda ingin membatalkan undangan untuk tersambung dengan <xliff:g id="PEER_NAME">%1$s</xliff:g>?"</string>
     <string name="wifi_p2p_delete_group_message" msgid="3206660449067701089">"Lupakan grup ini?"</string>
     <string name="wifi_hotspot_checkbox_text" msgid="12062341344410520">"Hotspot Wi‑Fi"</string>
-    <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"Tidak berbagi sambungan internet atau konten dengan perangkat lain"</string>
-    <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"Berbagi sambungan internet tablet ini melalui hotspot"</string>
-    <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Berbagi sambungan internet ponsel ini melalui hotspot"</string>
-    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Aplikasi membagikan konten. Untuk membagikan sambungan internet, nonaktifkan hotspot lalu aktifkan kembali"</string>
+    <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"Tidak berbagi koneksi internet atau konten dengan perangkat lain"</string>
+    <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"Berbagi koneksi internet tablet ini melalui hotspot"</string>
+    <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Berbagi koneksi internet ponsel ini melalui hotspot"</string>
+    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Aplikasi membagikan konten. Untuk membagikan koneksi internet, nonaktifkan hotspot lalu aktifkan kembali"</string>
     <string name="wifi_hotspot_no_password_subtext" msgid="5400500962974373706">"Sandi tidak disetel"</string>
     <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"Nama hotspot"</string>
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"Mengaktifkan <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>..."</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"Perangkat lainnya dapat terhubung ke <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Sandi hotspot"</string>
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"AP Band"</string>
-    <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Gunakan hotspot untuk membuat jaringan Wi‑Fi bagi perangkat Anda yang lain. Hotspot menyediakan sambungan internet menggunakan koneksi data seluler Anda. Biaya data seluler tambahan mungkin berlaku."</string>
+    <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Gunakan hotspot untuk membuat jaringan Wi‑Fi bagi perangkat Anda yang lain. Hotspot menyediakan koneksi internet menggunakan koneksi data seluler Anda. Biaya data seluler tambahan mungkin berlaku."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Aplikasi dapat membuat hotspot untuk berbagi konten dengan perangkat di sekitar."</string>
     <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Nonaktifkan hotspot secara otomatis"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"Hotspot Wi-Fi akan dinonaktifkan jika tidak ada perangkat yang terhubung"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Ponsel"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Jika Wi-Fi tidak tersedia, gunakan jaringan seluler"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Jika jaringan seluler tidak tersedia, gunakan Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Telepon melalui Wi-Fi. Jika Wi-Fi terputus, panggilan akan berakhir."</string>
@@ -1566,7 +1568,7 @@
     <string name="restore_default_apn" msgid="7195266404077471007">"Memulihkan setelan APN default."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Setel ulang ke default"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"Penyetelan ulang setelan APN default selesai."</string>
-    <string name="reset_dashboard_title" msgid="7084966342252178530">"Opsi setel ulang"</string>
+    <string name="reset_dashboard_title" msgid="7084966342252178530">"Opsi reset"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Jaringan, aplikasi, atau perangkat dapat disetel ulang"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Setel ulang Wi-Fi, kuota seluler &amp; Bluetooth"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"Tindakan ini akan menyetel ulang semua setelan jaringan, termasuk:\n\n"<li>"Wi‑Fi"</li>\n<li>"Kuota seluler"</li>\n<li>"Bluetooth"</li></string>
@@ -1619,15 +1621,15 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Tidak dapat tethering atau menggunakan hotspot portabel saat Penghemat Kuota Internet aktif"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"Tethering USB"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Bagikan sambungan internet ponsel melalui USB"</string>
-    <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Bagikan sambungan internet tablet melalui USB"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Bagikan koneksi internet ponsel melalui USB"</string>
+    <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Bagikan koneksi internet tablet melalui USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Tethering bluetooth"</string>
-    <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Bagikan sambungan internet tablet melalui Bluetooth"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Bagikan sambungan internet ponsel melalui Bluetooth"</string>
-    <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Berbagi sambungan internet <xliff:g id="DEVICE_NAME">%1$d</xliff:g> ini melalui Bluetooth"</string>
+    <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Bagikan koneksi internet tablet melalui Bluetooth"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Bagikan koneksi internet ponsel melalui Bluetooth"</string>
+    <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Berbagi koneksi internet <xliff:g id="DEVICE_NAME">%1$d</xliff:g> ini melalui Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Tidak dapat menambatkan ke lebih dari <xliff:g id="MAXCONNECTION">%1$d</xliff:g> perangkat."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> akan dilepas dari penambatan."</string>
-    <string name="tethering_footer_info" msgid="8019555174339154124">"Gunakan hotspot dan tethering untuk menyediakan sambungan internet bagi perangkat lain melalui koneksi kuota seluler Anda. Aplikasi juga dapat membuat hotspot untuk berbagi konten dengan perangkat sekitar."</string>
+    <string name="tethering_footer_info" msgid="8019555174339154124">"Gunakan hotspot dan tethering untuk menyediakan koneksi internet bagi perangkat lain melalui koneksi kuota seluler Anda. Aplikasi juga dapat membuat hotspot untuk berbagi konten dengan perangkat sekitar."</string>
     <string name="tethering_help_button_text" msgid="7653022000284543996">"Bantuan"</string>
     <string name="network_settings_title" msgid="8516526011407061679">"Jaringan seluler"</string>
     <string name="manage_mobile_plan_title" msgid="3312016665522553062">"Paket seluler"</string>
@@ -1638,8 +1640,8 @@
     <string name="network_scorer_picker_title" msgid="1691073966560952916">"Penyedia rating jaringan"</string>
     <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Tidak ada"</string>
     <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Ubah Wi-Fi Assistant?"</string>
-    <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> sebagai ganti <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengelola sambungan jaringan?"</string>
-    <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengelola sambungan jaringan?"</string>
+    <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Gunakan <xliff:g id="NEW_APP">%1$s</xliff:g> sebagai ganti <xliff:g id="CURRENT_APP">%2$s</xliff:g> untuk mengelola koneksi jaringan?"</string>
+    <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Gunakan <xliff:g id="NEW_APP">%s</xliff:g> untuk mengelola koneksi jaringan?"</string>
     <string name="mobile_unknown_sim_operator" msgid="872589370085135817">"Operator SIM tidak dikenal"</string>
     <string name="mobile_no_provisioning_url" msgid="3216517414902166131">"<xliff:g id="OPERATOR">%1$s</xliff:g> tidak punya situs web penyediaanyang dikenal"</string>
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Masukkan kartu SIM dan mulai ulang"</string>
@@ -1707,7 +1709,7 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Setel kunci layar"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Untuk keamanan, setel sandi"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Setel sandi untuk pakai sidik jari"</string>
-    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Setel pola untuk fitur sidik jari"</string>
+    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Setel pola untuk pakai sidik jari"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Untuk keamanan, setel PIN"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"Setel PIN untuk pakai sidik jari"</string>
     <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"Untuk keamanan, setel pola"</string>
@@ -2307,12 +2309,12 @@
       <item quantity="other">Batasi %1$d aplikasi?</item>
       <item quantity="one">Batasi aplikasi?</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Untuk menghemat baterai, hentikan <xliff:g id="APP">%1$s</xliff:g> menggunakan baterai di background. Aplikasi ini mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda."</string>
-    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Untuk menghemat baterai, hentikan aplikasi ini menggunakan baterai di background. Aplikasi yang dibatasi mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda.\n\nAplikasi:"</string>
-    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Untuk menghemat baterai, hentikan aplikasi ini menggunakan baterai di background. Aplikasi yang dibatasi mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda.\n\nAplikasi:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Untuk menghemat baterai, hentikan <xliff:g id="APP">%1$s</xliff:g> menggunakan baterai di latar belakang. Aplikasi ini mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda."</string>
+    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Untuk menghemat baterai, hentikan aplikasi ini menggunakan baterai di latar belakang. Aplikasi yang dibatasi mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda.\n\nAplikasi:"</string>
+    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Untuk menghemat baterai, hentikan aplikasi ini menggunakan baterai di latar belakang. Aplikasi yang dibatasi mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda.\n\nAplikasi:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Batasi"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Hapus batasan?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Aplikasi ini dapat menggunakan baterai di background. Baterai mungkin lebih cepat habis dari biasanya."</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Aplikasi ini dapat menggunakan baterai di latar belakang. Baterai mungkin lebih cepat habis dari biasanya."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Hapus"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Batal"</string>
     <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Aplikasi Anda menggunakan baterai secara normal. Jika aplikasi terlalu banyak menggunakan daya baterai, ponsel Anda akan menyarankan beberapa tindakan.\n\nAnda selalu dapat mengaktifkan Penghemat Baterai jika daya baterai hampir habis."</string>
@@ -2330,7 +2332,7 @@
       <item quantity="one">Membatasi penggunaan baterai untuk %1$d aplikasi</item>
     </plurals>
     <string name="restricted_app_time_summary" msgid="5205881852523135226">"Dibatasi <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="restricted_app_detail_footer" msgid="482460517275754465">"Aplikasi ini telah menggunakan daya baterai di background. Aplikasi yang dibatasi mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda."</string>
+    <string name="restricted_app_detail_footer" msgid="482460517275754465">"Aplikasi ini telah menggunakan daya baterai di latar belakang. Aplikasi yang dibatasi mungkin tidak berfungsi dengan baik dan notifikasi dapat tertunda."</string>
     <string name="battery_auto_restriction_title" msgid="488905332794794076">"Gunakan Pengelola Baterai"</string>
     <string name="battery_auto_restriction_summary" msgid="1638072655581821837">"Mendeteksi jika aplikasi menghabiskan baterai"</string>
     <string name="battery_manager_on" msgid="5626982529932239656">"Aktif / Mendeteksi jika aplikasi menghabiskan baterai"</string>
@@ -2599,7 +2601,7 @@
     <string name="work_mode_label" msgid="6845849194740195757">"Profil kerja"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Dikelola oleh organisasi"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"Aplikasi dan notifikasi dinonaktifkan"</string>
-    <string name="remove_managed_profile_label" msgid="4625542553784793536">"Buang profil kerja"</string>
+    <string name="remove_managed_profile_label" msgid="4625542553784793536">"Hapus profil kerja"</string>
     <string name="background_data" msgid="8275750862371471171">"Data latar belakang"</string>
     <string name="background_data_summary" msgid="799640633948841990">"Apl dapat menyinkronkan, mengirimkan, dan menerima data kapan saja"</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"Matikn data ltr blkg?"</string>
@@ -2628,7 +2630,7 @@
     <string name="header_add_an_account" msgid="8482614556580804956">"Tambahkan akun"</string>
     <string name="really_remove_account_title" msgid="4166512362915154319">"Hapus akun?"</string>
     <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Menghapus akun ini akan menghapus semua pesan, kontak, dan data lain akun tersebut dari tablet!"</string>
-    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Menghapus akun ini akan menghapus semua pesan, kontak, dan data lainnya akun tersebut dari ponsel!"</string>
+    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Menghapus akun ini akan menghapus semua pesan, kontak, dan data lain akun tersebut dari ponsel."</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"Menghapus akun ini akan menghapus semua pesan, kontak, dan data lain akun tersebut dari perangkat."</string>
     <string name="remove_account_failed" msgid="491458185327106966">"Perubahan ini tidak diizinkan oleh admin"</string>
     <string name="cant_sync_dialog_title" msgid="5483419398223189881">"Tidak dapat menyinkronkan secara manual"</string>
@@ -2776,8 +2778,8 @@
     <string name="vpn_forget_long" msgid="8457511440635534478">"Lupakan VPN"</string>
     <string name="vpn_replace_vpn_title" msgid="8517436922021598103">"Ganti VPN yang sudah ada?"</string>
     <string name="vpn_set_vpn_title" msgid="6483554732067951052">"Setel VPN selalu aktif?"</string>
-    <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"Jika setelan ini diaktifkan, sambungan internet hanya akan tersedia setelah VPN berhasil terhubung"</string>
-    <string name="vpn_replace_always_on_vpn_enable_message" msgid="4149931501300203205">"VPN yang sudah ada akan digantikan, dan sambungan internet hanya akan tersedia setelah VPN berhasil terhubung"</string>
+    <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"Jika setelan ini diaktifkan, koneksi internet hanya akan tersedia setelah VPN berhasil terhubung"</string>
+    <string name="vpn_replace_always_on_vpn_enable_message" msgid="4149931501300203205">"VPN yang sudah ada akan digantikan, dan koneksi internet hanya akan tersedia setelah VPN berhasil terhubung"</string>
     <string name="vpn_replace_always_on_vpn_disable_message" msgid="4924947523200883088">"Anda sudah terhubung ke VPN selalu aktif. Jika Anda terhubung ke VPN yang berbeda, VPN yang sudah ada akan digantikan, dan mode selalu aktif akan dinonaktifkan."</string>
     <string name="vpn_replace_vpn_message" msgid="8009433728523145393">"Anda sudah terhubung ke VPN. Jika Anda terhubung ke VPN yang berbeda, VPN yang sudah ada akan digantikan."</string>
     <string name="vpn_turn_on" msgid="2334736319093953055">"Aktifkan"</string>
@@ -2797,7 +2799,7 @@
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"Pilih profil VPN untuk tetap tersambung. Lalu lintas jaringan hanya akan diperbolehkan jika tersambung ke VPN ini."</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"Tidak ada"</string>
     <string name="vpn_lockdown_config_error" msgid="8761770968704589885">"VPN selalu aktif membutuhkan alamat IP baik untuk server serta DNS."</string>
-    <string name="vpn_no_network" msgid="8313250136194588023">"Tidak ada sambungan jaringan. Coba lagi nanti."</string>
+    <string name="vpn_no_network" msgid="8313250136194588023">"Tidak ada koneksi jaringan. Coba lagi nanti."</string>
     <string name="vpn_disconnected" msgid="4597953053220332539">"Terputus dari VPN"</string>
     <string name="vpn_disconnected_summary" msgid="3784118965271376808">"Tidak ada"</string>
     <string name="vpn_missing_cert" msgid="2713254242731992902">"Sertifikat tidak ditemukan. Coba edit profil."</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Pengguna"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Profil dibatasi"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Tambahkan pengguna baru?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Anda dapat berbagi penggunaan perangkat ini dengan orang lain dengan membuat pengguna tambahan. Setiap pengguna memiliki ruang sendiri, yang dapat disesuaikan dengan aplikasi, wallpaper, dan lainnya.\n\nSaat Anda menambahkan pengguna baru, pengguna tersebut perlu menyiapkan ruangnya.\n\nPengguna mana pun dapat mengupdate aplikasi untuk semua pengguna lainnya. Layanan dan setelan aksesibilitas mungkin tidak ditransfer ke pengguna baru."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Anda dapat berbagi penggunaan perangkat ini dengan orang lain dengan membuat pengguna tambahan. Setiap pengguna memiliki ruang sendiri, yang dapat disesuaikan dengan aplikasi, wallpaper, dan lainnya. Pengguna juga dapat menyesuaikan setelan perangkat seperti Wi-Fi yang dapat memengaruhi semua pengguna lain.\n\nSaat Anda menambahkan pengguna baru, pengguna tersebut perlu menyiapkan ruangnya.\n\nPengguna mana pun dapat mengupdate aplikasi untuk semua pengguna lainnya. Layanan dan setelan aksesibilitas mungkin tidak ditransfer ke pengguna baru."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Saat Anda menambahkan pengguna baru, orang tersebut perlu menyiapkan ruang mereka sendiri.\n\nPengguna mana pun dapat memperbarui aplikasi untuk semua pengguna lain."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Siapkan pengguna sekarang?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"Pastikan orang tersebut ada untuk mengambil perangkat dan menyiapkan ruangnya"</string>
@@ -2886,7 +2888,7 @@
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"Hapus diri Anda sendiri?"</string>
     <string name="user_confirm_remove_title" msgid="1034498514019462084">"Hapus pengguna ini?"</string>
     <string name="user_profile_confirm_remove_title" msgid="6138684743385947063">"Buang profil ini?"</string>
-    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"Buang profil kerja?"</string>
+    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"Hapus profil kerja?"</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="2889456786320157545">"Ruang dan data Anda akan hilang dari tablet ini. Anda tidak dapat mengurungkan tindakan ini."</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="8441729423565705183">"Ruang dan data Anda akan hilang dari ponsel ini. Anda tidak dapat mengurungkan tindakan ini."</string>
     <string name="user_confirm_remove_message" msgid="5202150470271756013">"Semua aplikasi dan data akan dihapus."</string>
@@ -3046,7 +3048,7 @@
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"Aplikasi default"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"Bahasa, gestur, waktu, pencadangan"</string>
     <string name="search_results_title" msgid="4160717656435503940">"Setelan"</string>
-    <string name="keywords_wifi" msgid="8477688080895466846">"wifi, wi-fi, sambungan jaringan, internet, nirkabel, data, wi fi"</string>
+    <string name="keywords_wifi" msgid="8477688080895466846">"wifi, wi-fi, koneksi jaringan, internet, nirkabel, data, wi fi"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="1031260564121854773">"Notifikasi Wi‑Fi, notifikasi wi‑fi"</string>
     <string name="keywords_auto_brightness" msgid="5007188989783072428">"Kecerahan otomatis"</string>
     <string name="keywords_vibrate_on_touch" msgid="3615173661462446877">"Hentikan getaran, ketukan, keyboard"</string>
@@ -3709,8 +3711,8 @@
     <string name="high_power_off" msgid="5906679734326490426">"Mengoptimalkan penggunaan baterai"</string>
     <string name="high_power_system" msgid="739584574711292753">"Pengoptimalan baterai tidak tersedia"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Jangan terapkan pengoptimalan baterai. Baterai akan lebih cepat habis."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Izinkan aplikasi selalu berjalan di background?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Mengizinkan <xliff:g id="APP_NAME">%1$s</xliff:g> untuk selalu berjalan di background dapat mengurangi masa pakai baterai. \n\nAnda dapat mengubah ini nanti dari Setelan &gt; Aplikasi &amp; notifikasi."</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Izinkan aplikasi selalu berjalan di latar belakang?"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Mengizinkan <xliff:g id="APP_NAME">%1$s</xliff:g> untuk selalu berjalan di latar belakang dapat mengurangi masa pakai baterai. \n\nAnda dapat mengubah ini nanti dari Setelan &gt; Aplikasi &amp; notifikasi."</string>
     <string name="battery_summary" msgid="4345690800899981339">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> digunakan sejak terakhir kali baterai diisi penuh"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Pengelolaan daya"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Tidak ada penggunaan baterai sejak isi daya penuh terakhir"</string>
@@ -3895,7 +3897,7 @@
     <string name="condition_battery_summary" msgid="1236078243905690620">"Fitur dibatasi"</string>
     <string name="condition_cellular_title" msgid="6605277435894307935">"Kuota tidak aktif"</string>
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Internet hanya tersedia melalui Wi‑Fi"</string>
-    <string name="condition_bg_data_title" msgid="184684435298857712">"Penghemat Kuota"</string>
+    <string name="condition_bg_data_title" msgid="184684435298857712">"Penghemat Data"</string>
     <string name="condition_bg_data_summary" msgid="5194942860807136682">"Fitur dibatasi"</string>
     <string name="condition_work_title" msgid="9046811302347490371">"Profil kerja nonaktif"</string>
     <string name="condition_work_summary" msgid="5586134491975748565">"Untuk aplikasi &amp; notifikasi"</string>
@@ -3933,7 +3935,7 @@
     <string name="usage" msgid="9172908720164431622">"Penggunaan"</string>
     <string name="cellular_data_usage" msgid="1236562234207782386">"Penggunaan kuota seluler"</string>
     <string name="app_cellular_data_usage" msgid="8499761516172121957">"Penggunaan kuota aplikasi"</string>
-    <string name="wifi_data_usage" msgid="275569900562265895">"Penggunaan kuota Wi-Fi"</string>
+    <string name="wifi_data_usage" msgid="275569900562265895">"Penggunaan data Wi-Fi"</string>
     <string name="ethernet_data_usage" msgid="747614925362556718">"Penggunaan data ethernet"</string>
     <string name="wifi" msgid="1586738489862966138">"Wi-Fi"</string>
     <string name="ethernet" msgid="2365753635113154667">"Ethernet"</string>
@@ -3951,7 +3953,7 @@
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> pembatasan</item>
       <item quantity="one">1 pembatasan</item>
     </plurals>
-    <string name="operator_warning" msgid="4676042739221117031">"Perhitungan kuota operator dapat berbeda dengan perhitungan perangkat"</string>
+    <string name="operator_warning" msgid="4676042739221117031">"Perhitungan data oleh operator dapat berbeda dengan perhitungan perangkat"</string>
     <string name="data_used_template" msgid="761605393453849477">"<xliff:g id="ID_1">%1$s</xliff:g> digunakan"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"Setel peringatan kuota"</string>
     <string name="data_warning" msgid="2699207195535036240">"Peringatan kuota"</string>
@@ -3962,8 +3964,8 @@
     <string name="configure" msgid="8232696842838580549">"Konfigurasi"</string>
     <string name="data_usage_other_apps" msgid="7002491980141402084">"Aplikasi lain yang disertakan dalam penggunaan"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplikasi diizinkan untuk menggunakan kuota tak terbatas saat Penghemat Kuota Internet aktif</item>
-      <item quantity="one">1 aplikasi diizinkan untuk menggunakan kuota tak terbatas saat Penghemat Kuota Internet aktif</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> aplikasi diizinkan untuk menggunakan data tak terbatas saat Penghemat Data aktif</item>
+      <item quantity="one">1 aplikasi diizinkan untuk menggunakan data tak terbatas saat Penghemat Data aktif</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"Kuota utama"</string>
     <string name="data_usage_wifi_title" msgid="7161828479387766556">"Data Wi-Fi"</string>
@@ -3983,14 +3985,14 @@
     <string name="no_carrier_update_now_text" msgid="4405472895804759042">"Baru saja diupdate"</string>
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"Lihat paket"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"Lihat detail"</string>
-    <string name="data_saver_title" msgid="7903308134514179256">"Penghemat Kuota"</string>
-    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Kuota tidak dibatasi"</string>
+    <string name="data_saver_title" msgid="7903308134514179256">"Penghemat Data"</string>
+    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Data tidak dibatasi"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"Data latar belakang nonaktif"</string>
     <string name="data_saver_on" msgid="7281809065420480881">"Aktif"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"Nonaktif"</string>
-    <string name="data_saver_switch_title" msgid="8244008132112735207">"Gunakan Penghemat Kuota"</string>
-    <string name="unrestricted_app_title" msgid="4390661122069905122">"Penggunaan kuota tidak dibatasi"</string>
-    <string name="unrestricted_app_summary" msgid="2829141815077800483">"Izinkan akses kuota tak terbatas saat Penghemat Kuota Internet aktif"</string>
+    <string name="data_saver_switch_title" msgid="8244008132112735207">"Gunakan Penghemat Data"</string>
+    <string name="unrestricted_app_title" msgid="4390661122069905122">"Penggunaan data tidak dibatasi"</string>
+    <string name="unrestricted_app_summary" msgid="2829141815077800483">"Izinkan akses data tak terbatas saat Penghemat Data aktif"</string>
     <string name="home_app" msgid="3695063566006954160">"Aplikasi layar utama"</string>
     <string name="no_default_home" msgid="1518949210961918497">"Tidak ada Layar Utama default"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="63693894094570367">"Proses memulai dengan aman"</string>
@@ -4000,7 +4002,7 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"Tambahkan sidik jari lain"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"Buka kunci dengan jari lain"</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"Aktif"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Akan aktif jika <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Akan aktif pada <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"Nonaktif"</string>
     <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Aktifkan sekarang"</string>
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Nonaktifkan sekarang"</string>
@@ -4110,7 +4112,7 @@
     <string name="gesture_preference_summary" product="tablet" msgid="8303793594714075580">"Isyarat cepat untuk mengontrol tablet"</string>
     <string name="gesture_preference_summary" product="device" msgid="7792199669106960922">"Isyarat cepat untuk mengontrol perangkat"</string>
     <string name="double_tap_power_for_camera_title" msgid="5480829329052517484">"Buka kamera"</string>
-    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"Untuk membuka kamera dengan cepat, tekan tombol power 2 kali. Berfungsi di layar mana pun."</string>
+    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"Untuk membuka kamera dengan cepat, tekan tombol daya 2 kali. Berfungsi di layar mana pun."</string>
     <string name="double_tap_power_for_camera_suggestion_title" msgid="509078029429865036">"Buka kamera dengan cepat"</string>
     <string name="double_twist_for_camera_mode_title" msgid="2606032140297556018">"Balik kamera"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="8979914206876018137"></string>
@@ -4322,7 +4324,7 @@
     <string name="battery_suggestion_title" product="default" msgid="3295786171830183688">"Tingkatkan masa pakai baterai ponsel"</string>
     <string name="battery_suggestion_summary" msgid="2669070349482656490"></string>
     <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Cegah berdering"</string>
-    <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Tekan tombol Power &amp; Keraskan Volume secara bersamaan untuk"</string>
+    <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Tekan tombol Daya &amp; Naikkan Volume secara bersamaan untuk"</string>
     <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Pintasan untuk mencegah berdering"</string>
     <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Getar"</string>
     <string name="prevent_ringing_option_mute" msgid="53662688921253613">"Nonaktifkan suara"</string>
@@ -4461,7 +4463,7 @@
     <string name="bluetooth_right_name" msgid="8356091262762973801">"Kanan"</string>
     <string name="bluetooth_middle_name" msgid="1489185200445352103">"Casing"</string>
     <string name="settings_panel_title" msgid="8181989386118232534">"Panel Setelan"</string>
-    <string name="internet_connectivity_panel_title" msgid="341712994620215750">"Sambungan Internet"</string>
+    <string name="internet_connectivity_panel_title" msgid="341712994620215750">"Koneksi Internet"</string>
     <string name="volume_connectivity_panel_title" msgid="4998755371496690971">"Volume"</string>
     <string name="mobile_data_ap_mode_disabled" msgid="2452716524753472885">"Tidak tersedia selama mode pesawat"</string>
     <string name="force_desktop_mode" msgid="6973100177551040740">"Paksa mode desktop"</string>
diff --git a/tests/CarDeveloperOptions/res/values-is/arrays.xml b/tests/CarDeveloperOptions/res/values-is/arrays.xml
index 1cec986..6e6dc6c 100644
--- a/tests/CarDeveloperOptions/res/values-is/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-is/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 mínútur"</item>
     <item msgid="6677424950124253938">"30 mínútur"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Aldrei"</item>
+    <item msgid="2517785806387977252">"15 sekúndur"</item>
+    <item msgid="6347954399441173672">"30 sekúndur"</item>
+    <item msgid="4858305253279921789">"1 mínúta"</item>
+    <item msgid="8109273437140044073">"2 mínútur"</item>
+    <item msgid="2788593551142462622">"5 mínútur"</item>
+    <item msgid="8012672183888404961">"10 mínútur"</item>
+    <item msgid="8271452751594598661">"30 mínútur"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Strax"</item>
     <item msgid="2038544972632026612">"5 sekúndur"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 mínútur"</item>
     <item msgid="7258394417241706272">"30 mínútur"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Lítil"</item>
+    <item msgid="591935967183159581">"Sjálfgefið"</item>
+    <item msgid="1714184661981538355">"Stór"</item>
+    <item msgid="6195563047686707484">"Stærst"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Leitar…"</item>
+    <item msgid="5597394826455877834">"Tengist…"</item>
+    <item msgid="5848277343965362748">"Auðkennir…"</item>
+    <item msgid="3391238031431440676">"Sækir IP-tölu…"</item>
+    <item msgid="5257597310494000224">"Tengt"</item>
+    <item msgid="8472497592913050396">"Í bið"</item>
+    <item msgid="1228072488815999109">"Aftengist…"</item>
+    <item msgid="7253087004422991731">"Aftengt"</item>
+    <item msgid="4169850917304751227">"Mistókst"</item>
+    <item msgid="6266658166690831131">"Á bannlista"</item>
+    <item msgid="4517230805854909775">"Forðast lélega tengingu tímabundið"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Leitar…"</item>
+    <item msgid="8058143476674427024">"Tengist <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="7547609081339573756">"Auðkennir á <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="5145158315060185414">"Sækir IP-tölu frá <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="3283243151651124831">"Tengt við <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="6600156231416890902">"Í bið"</item>
+    <item msgid="4133290864821295785">"Aftengist <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="3980154971187953257">"Aftengt"</item>
+    <item msgid="2847316776634969068">"Mistókst"</item>
+    <item msgid="4390990424746035383">"Á bannlista"</item>
+    <item msgid="3618248791367063949">"Forðast lélega tengingu tímabundið"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Hnappur"</item>
+    <item msgid="7401896200768713930">"PIN-númer úr tengdu tæki"</item>
+    <item msgid="4526848028011846710">"PIN frá þessu tæki"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Tengt"</item>
     <item msgid="983792611851499732">"Boðið"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Lélegt"</item>
+    <item msgid="7882129634982603782">"Lélegt"</item>
+    <item msgid="6457357501905996224">"Sæmilegt"</item>
+    <item msgid="405271628162918841">"Góður"</item>
+    <item msgid="999948812884919584">"Frábært"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"Síðustu 30 dagar"</item>
     <item msgid="3211287705232736964">"Velja notkunartímabil..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Föst"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Ekkert"</item>
     <item msgid="1464741437353223198">"Handbók"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"keyra í bakgrunni"</item>
     <item msgid="6423861043647911030">"hljóðstyrkur aðgengis"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Staðsetning"</item>
+    <item msgid="6656077694190491067">"Staðsetning"</item>
+    <item msgid="8790228218278477369">"Staðsetning"</item>
+    <item msgid="7836406246005211990">"Titringur"</item>
+    <item msgid="3951439024549922598">"Lesa tengiliði"</item>
+    <item msgid="8802152411647068">"Breyta tengiliðum"</item>
+    <item msgid="229544934599698735">"Lesa símtalaskrá"</item>
+    <item msgid="7396102294405899613">"Breyta símtalaskrá"</item>
+    <item msgid="3597797992398484655">"Lesa dagatal"</item>
+    <item msgid="2705975774250907343">"Breyta dagatali"</item>
+    <item msgid="4668747371441932697">"Staðsetning"</item>
+    <item msgid="1487578921720243646">"Færslutilkynning"</item>
+    <item msgid="4636080349724146638">"Staðsetning"</item>
+    <item msgid="673510900286463926">"Hringja í síma"</item>
+    <item msgid="542083422784609790">"Lesa SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Skrifa SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Taka á móti SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Taka á móti SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Taka á móti SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Taka á móti SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Senda SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Lesa SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Skrifa SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Breyta stillingum"</item>
+    <item msgid="8705854389991425629">"Teikna yfir"</item>
+    <item msgid="5861356020344153651">"Opna tilkynningar"</item>
+    <item msgid="78432174621628659">"Myndavél"</item>
+    <item msgid="3986116419882154794">"Taka upp hljóð"</item>
+    <item msgid="4516840825756409490">"Spila hljóð"</item>
+    <item msgid="6811712502798183957">"Lesa klippiborð"</item>
+    <item msgid="2780369012602289114">"Breyta klippiborði"</item>
+    <item msgid="2331359440170850868">"Margmiðlunarhnappar"</item>
+    <item msgid="6133599737122751231">"Fókus hljóðs"</item>
+    <item msgid="6844485713404805301">"Meginhljóðstyrkur"</item>
+    <item msgid="1600379420669104929">"Hljóðstyrkur raddar"</item>
+    <item msgid="6296768210470214866">"Hljóðstyrkur hringingar"</item>
+    <item msgid="510690696071629241">"Hljóðstyrkur margmiðlunarefnis"</item>
+    <item msgid="406861638631430109">"Hljóðstyrkur vekjara"</item>
+    <item msgid="4715864795872233884">"Hljóðstyrkur tilkynninga"</item>
+    <item msgid="2311478519251301183">"Hljóðstyrkur Bluetooth"</item>
+    <item msgid="5133991377896747027">"Halda vakandi"</item>
+    <item msgid="2464189519136248621">"Staður"</item>
+    <item msgid="2062677934050803037">"Staðsetning"</item>
+    <item msgid="1735171933192715957">"Fá talnagögn um notkun"</item>
+    <item msgid="1014093788778383554">"Kveikja/slökkva á hljóðnema"</item>
+    <item msgid="4199297950608622850">"Sýna tilkynningu"</item>
+    <item msgid="2527962435313398821">"Margmiðlunarefni verkefnis"</item>
+    <item msgid="5117506254221861929">"Virkja VPN"</item>
+    <item msgid="8291198322681891160">"Skrifa veggfóður"</item>
+    <item msgid="7106921284621230961">"Aðstoða við uppbyggingu"</item>
+    <item msgid="4496533640894624799">"Aðstoða við skjámynd"</item>
+    <item msgid="2598847264853993611">"Lesa stöðu síma"</item>
+    <item msgid="9215610846802973353">"Bæta við talhólfi"</item>
+    <item msgid="9186411956086478261">"Nota SIP"</item>
+    <item msgid="6884763100104539558">"Vinna úr hringdu símtali"</item>
+    <item msgid="125513972170580692">"Fingrafar"</item>
+    <item msgid="2556071024281275619">"Líkamsskynjarar"</item>
+    <item msgid="617168514928339387">"Lesa skilaboð frá endurvarpa"</item>
+    <item msgid="7134693570516523585">"Gervistaðsetning"</item>
+    <item msgid="7224489175375229399">"Lesa geymslu"</item>
+    <item msgid="8472735063903258202">"Skrifa í geymslu"</item>
+    <item msgid="4069276819909595110">"Kveikja á skjánum"</item>
+    <item msgid="1228338896751121025">"Fá reikninga"</item>
+    <item msgid="3181581793459233672">"Keyra í bakgrunni"</item>
+    <item msgid="2340936043025374076">"Hljóðstyrkur aðgengis"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Stutt"</item>
     <item msgid="4816511817309094890">"Í meðallagi"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"Tengt"</item>
     <item msgid="6896773537705206194">"Litlir hástafir"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Mjög lítið"</item>
+    <item msgid="5091603983404027034">"Lítið"</item>
+    <item msgid="176844712416932112">"Venjulegt"</item>
+    <item msgid="2784236342175159295">"Stór"</item>
+    <item msgid="218913203203160606">"Mjög stórt"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Sjálfgefið"</item>
     <item msgid="6488643537808152001">"Ekkert"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Nota sjálfgildi forrits"</item>
+    <item msgid="8611890312638868524">"Hvítt á svörtu"</item>
+    <item msgid="5891360837786277638">"Svart á hvítu"</item>
+    <item msgid="2798457065945456853">"Gult á svörtu"</item>
+    <item msgid="5799049811524553967">"Gult á bláu"</item>
+    <item msgid="3673930830658169860">"Sérstillt"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"L2TP/IPSec VPN með lyklum sem hefur verið deilt"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"Ekkert"</item>
     <item msgid="1157046369795346308">"Handbók"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Aftengt"</item>
+    <item msgid="8754480102834556765">"Frumstillir…"</item>
+    <item msgid="3351334355574270250">"Tengist…"</item>
+    <item msgid="8303882153995748352">"Tengt"</item>
+    <item msgid="9135049670787351881">"Tímamörk"</item>
+    <item msgid="2124868417182583926">"Mistókst"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Spyrja"</item>
     <item msgid="7718817231348607934">"Leyfa aldrei"</item>
     <item msgid="8184570120217958741">"Leyfa alltaf"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Venjuleg"</item>
+    <item msgid="5101233285497327432">"Í meðallagi"</item>
+    <item msgid="1555861583162930714">"Lítið"</item>
+    <item msgid="1719683776264798117">"Alvarlegt"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Venjulegt"</item>
+    <item msgid="6107138933849816768">"Í meðallagi"</item>
+    <item msgid="182695359839047859">"Lítið"</item>
+    <item msgid="8577246509202964244">"Á þrotum"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Viðvarandi"</item>
     <item msgid="167418068739176448">"Mesta virkni"</item>
diff --git a/tests/CarDeveloperOptions/res/values-is/strings.xml b/tests/CarDeveloperOptions/res/values-is/strings.xml
index 81ca330..b0377ee 100644
--- a/tests/CarDeveloperOptions/res/values-is/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-is/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Stækkaðu eða minnkaðu texta á skjá."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Minnka"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Stækka"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Textadæmi"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Galdrakarlinn í Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. kafli: Smaragðsborgin dásamlega í Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Farsímakerfi"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Nota farsímakerfi ef ekki er hægt að nota Wi‑Fi"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ef farsímakerfi er ekki tiltækt skaltu nota Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Hringja í gegnum Wi-Fi. Ef Wi-Fi tenging slitnar lýkur símtalinu."</string>
diff --git a/tests/CarDeveloperOptions/res/values-it/arrays.xml b/tests/CarDeveloperOptions/res/values-it/arrays.xml
index 22a26a0..a2f4d11 100644
--- a/tests/CarDeveloperOptions/res/values-it/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-it/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Non consentire mai"</item>
     <item msgid="8184570120217958741">"Consenti sempre"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normale"</item>
+    <item msgid="5101233285497327432">"Discreta"</item>
+    <item msgid="1555861583162930714">"Bassa"</item>
+    <item msgid="1719683776264798117">"Critica"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normale"</item>
+    <item msgid="6107138933849816768">"Moderata"</item>
+    <item msgid="182695359839047859">"Bassa"</item>
+    <item msgid="8577246509202964244">"Critico"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistente"</item>
     <item msgid="167418068739176448">"Prima attività"</item>
diff --git a/tests/CarDeveloperOptions/res/values-it/strings.xml b/tests/CarDeveloperOptions/res/values-it/strings.xml
index d22c825..389df1f 100644
--- a/tests/CarDeveloperOptions/res/values-it/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-it/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Ingrandisci o riduci il testo sullo schermo."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Rimpicciolisci"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Ingrandisci"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Testo di esempio"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Il meraviglioso mago di Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capitolo 11: La splendida Città di smeraldo di Oz"</string>
@@ -469,7 +468,7 @@
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Tocca il sensore"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Appoggia il dito sul sensore e sollevalo quando senti una vibrazione"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Solleva, quindi tocca di nuovo"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Solleva ripetutamente il dito per aggiungere le diverse parti dell\'impronta digitale"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Solleva ripetutamente il dito per aggiungere le varie parti dell\'impronta"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Impronta aggiunta"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Quando vedi questa icona, usa l\'impronta digitale per identificarti o autorizzare gli acquisti"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Più tardi"</string>
@@ -499,10 +498,10 @@
     <string name="fingerprint_add_max" msgid="2939393314646115661">"Puoi aggiungere fino a <xliff:g id="COUNT">%d</xliff:g> impronte digitali"</string>
     <string name="fingerprint_intro_error_max" msgid="3247720976621039437">"Hai aggiunto il numero massimo di impronte digitali"</string>
     <string name="fingerprint_intro_error_unknown" msgid="3975674268256524015">"Impossibile aggiungere ulteriori impronte digitali"</string>
-    <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"Rimuovere tutte le impronte digitali?"</string>
+    <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"Rimuovere tutte le impronte?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"Rimuovi \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\""</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Vuoi eliminare questa impronta digitale?"</string>
-    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Non potrai più utilizzare le impronte digitali per sbloccare il telefono, autorizzare gli acquisti o accedere alle app."</string>
+    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Non potrai più utilizzare le impronte per sbloccare il telefono, autorizzare gli acquisti o accedere alle app."</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Non potrai utilizzare le impronte digitali per sbloccare il profilo di lavoro, autorizzare gli acquisti o accedere alle app di lavoro."</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Sì, rimuovi"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Crittografia"</string>
@@ -712,7 +711,7 @@
     <string name="lockpattern_tutorial_cancel_label" msgid="450401426127674369">"Annulla"</string>
     <string name="lockpattern_tutorial_continue_label" msgid="8474690922559443018">"Avanti"</string>
     <string name="lock_setup" msgid="8710689848703935088">"Impostazione completata."</string>
-    <string name="manage_device_admin" msgid="322047441168191695">"App di amministrazione dispositivo"</string>
+    <string name="manage_device_admin" msgid="322047441168191695">"App di amministrazione del dispositivo"</string>
     <string name="number_of_device_admins_none" msgid="8519193548630223132">"Nessuna app attiva"</string>
     <plurals name="number_of_device_admins" formatted="false" msgid="6445613288828151224">
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> app attive</item>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Rete mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Se il Wi‑Fi non è disponibile, usa la rete mobile"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Se la rete mobile non è disponibile, usa il Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Chiamata tramite Wi‑Fi. Se il Wi‑Fi viene perso, la chiamata termina."</string>
@@ -1212,7 +1214,7 @@
     <string name="night_display_text" msgid="5330502493684652527">"Con la funzione Luminosità notturna, il tuo schermo diventa color ambra. In questo modo potrai guardarlo senza sforzare la vista o leggere in condizioni di luce attenuata e potrai addormentarti più facilmente."</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Pianificazione"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Nessuna"</string>
-    <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Attiva in un orario personalizzato"</string>
+    <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Attiva in orario personalizzato"</string>
     <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Attiva dal tramonto all\'alba"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"Ora inizio"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Ora fine"</string>
@@ -1716,7 +1718,7 @@
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"Inserisci di nuovo il PIN"</string>
     <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"Le password non corrispondono"</string>
     <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"I PIN non corrispondono"</string>
-    <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Traccia di nuovo la sequenza"</string>
+    <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Inserisci di nuovo la sequenza"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"Seleziona metodo di sblocco"</string>
     <string name="lockpassword_password_set_toast" msgid="601928982984489868">"Password impostata"</string>
     <string name="lockpassword_pin_set_toast" msgid="172594825722240059">"PIN impostato"</string>
@@ -4267,7 +4269,7 @@
     <string name="storage_manager_indicator_on" msgid="5295306384982062320">"Attiva"</string>
     <string name="install_type_instant" msgid="6248487669862821874">"App istantanea"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"Disattivare la gestione della memoria?"</string>
-    <string name="storage_movies_tv" msgid="7282484273991655296">"App per film e programmi televisivi"</string>
+    <string name="storage_movies_tv" msgid="7282484273991655296">"App per film e programmi TV"</string>
     <string name="carrier_provisioning" msgid="3309125279191534469">"Informazioni sul provisioning operatore"</string>
     <string name="trigger_carrier_provisioning" msgid="6284005970057901477">"Attiva provisioning operatore"</string>
     <string name="zen_suggestion_title" msgid="2134699720214231950">"Aggiorna modalità Non disturbare"</string>
diff --git a/tests/CarDeveloperOptions/res/values-iw/arrays.xml b/tests/CarDeveloperOptions/res/values-iw/arrays.xml
index cf0a6b7..fb404ea 100644
--- a/tests/CarDeveloperOptions/res/values-iw/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-iw/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"הרצה ברקע"</item>
     <item msgid="6423861043647911030">"עוצמת קול של נגישות"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"מיקום"</item>
+    <item msgid="6656077694190491067">"מיקום"</item>
+    <item msgid="8790228218278477369">"מיקום"</item>
+    <item msgid="7836406246005211990">"רטט"</item>
+    <item msgid="3951439024549922598">"קרא אנשי קשר"</item>
+    <item msgid="8802152411647068">"שנה אנשי קשר"</item>
+    <item msgid="229544934599698735">"קרא יומן שיחות"</item>
+    <item msgid="7396102294405899613">"שנה יומן שיחות"</item>
+    <item msgid="3597797992398484655">"קרא יומן"</item>
+    <item msgid="2705975774250907343">"שנה יומן"</item>
+    <item msgid="4668747371441932697">"מיקום"</item>
+    <item msgid="1487578921720243646">"פירסום התראה"</item>
+    <item msgid="4636080349724146638">"מיקום"</item>
+    <item msgid="673510900286463926">"שיחת טלפון"</item>
+    <item msgid="542083422784609790">"קרא SMS/MMS"</item>
+    <item msgid="1033780373029588436">"כתוב SMS/MMS"</item>
+    <item msgid="5647111115517787488">"קבל SMS/MMS"</item>
+    <item msgid="8591105601108455893">"קבל SMS/MMS"</item>
+    <item msgid="7730995008517841903">"קבל SMS/MMS"</item>
+    <item msgid="2613033109026626086">"קבל SMS/MMS"</item>
+    <item msgid="3037159047591081136">"שלח SMS/MMS"</item>
+    <item msgid="4726682243833913568">"קרא SMS/MMS"</item>
+    <item msgid="6555678522277865572">"כתוב SMS/MMS"</item>
+    <item msgid="6981734935578130884">"שנה הגדרות"</item>
+    <item msgid="8705854389991425629">"צייר מעל"</item>
+    <item msgid="5861356020344153651">"גישה אל ההתראות"</item>
+    <item msgid="78432174621628659">"מצלמה"</item>
+    <item msgid="3986116419882154794">"הקלט אודיו"</item>
+    <item msgid="4516840825756409490">"הפעל את האודיו"</item>
+    <item msgid="6811712502798183957">"קרא לוח"</item>
+    <item msgid="2780369012602289114">"שנה לוח"</item>
+    <item msgid="2331359440170850868">"לחצני מדיה"</item>
+    <item msgid="6133599737122751231">"מיקוד אודיו"</item>
+    <item msgid="6844485713404805301">"שליטה ראשית בעוצמת קול"</item>
+    <item msgid="1600379420669104929">"עוצמת קול של דיבור"</item>
+    <item msgid="6296768210470214866">"עוצמת צלצול"</item>
+    <item msgid="510690696071629241">"עוצמת קול של מדיה"</item>
+    <item msgid="406861638631430109">"עוצמת קול של התראה"</item>
+    <item msgid="4715864795872233884">"עוצמת קול של התראות"</item>
+    <item msgid="2311478519251301183">"עוצמת קול של Bluetooth"</item>
+    <item msgid="5133991377896747027">"שמירה במצב פעיל"</item>
+    <item msgid="2464189519136248621">"מיקום"</item>
+    <item msgid="2062677934050803037">"מיקום"</item>
+    <item msgid="1735171933192715957">"קבל סטטיסטיקת שימוש"</item>
+    <item msgid="1014093788778383554">"השתק/בטל השתקה של המיקרופון"</item>
+    <item msgid="4199297950608622850">"הצגת הודעה קופצת"</item>
+    <item msgid="2527962435313398821">"הקרנת מדיה"</item>
+    <item msgid="5117506254221861929">"הפעלת VPN"</item>
+    <item msgid="8291198322681891160">"כתיבת טפט"</item>
+    <item msgid="7106921284621230961">"סיוע למבנה"</item>
+    <item msgid="4496533640894624799">"סיוע לצילום מסך"</item>
+    <item msgid="2598847264853993611">"קריאת מצב טלפון"</item>
+    <item msgid="9215610846802973353">"הוספת דואר קולי"</item>
+    <item msgid="9186411956086478261">"שימוש ב-SIP"</item>
+    <item msgid="6884763100104539558">"עיבוד שיחה יוצאת"</item>
+    <item msgid="125513972170580692">"טביעת אצבע"</item>
+    <item msgid="2556071024281275619">"חיישני גוף"</item>
+    <item msgid="617168514928339387">"קריאת שידורים סלולריים"</item>
+    <item msgid="7134693570516523585">"מיקום מדומה"</item>
+    <item msgid="7224489175375229399">"קריאת אחסון"</item>
+    <item msgid="8472735063903258202">"כתיבת אחסון"</item>
+    <item msgid="4069276819909595110">"הפעלת מסך"</item>
+    <item msgid="1228338896751121025">"קבלת חשבונות"</item>
+    <item msgid="3181581793459233672">"הרצה ברקע"</item>
+    <item msgid="2340936043025374076">"עוצמת קול של נגישות"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"קצר"</item>
     <item msgid="4816511817309094890">"בינונית"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"לעולם אל תאפשר"</item>
     <item msgid="8184570120217958741">"אפשר תמיד"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"רגיל"</item>
+    <item msgid="5101233285497327432">"בינוני"</item>
+    <item msgid="1555861583162930714">"נמוכה"</item>
+    <item msgid="1719683776264798117">"קריטי"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"רגיל"</item>
+    <item msgid="6107138933849816768">"בינוני"</item>
+    <item msgid="182695359839047859">"נמוכה"</item>
+    <item msgid="8577246509202964244">"קריטי"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"קבוע"</item>
     <item msgid="167418068739176448">"פעילות מובילה"</item>
diff --git a/tests/CarDeveloperOptions/res/values-iw/strings.xml b/tests/CarDeveloperOptions/res/values-iw/strings.xml
index b03afdc..4c50aab 100644
--- a/tests/CarDeveloperOptions/res/values-iw/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-iw/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"שינוי גודל הטקסט שמופיע במסך."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"הקטנה"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"הגדלה"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"טקסט לדוגמה"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"הקוסם המופלא מארץ עוץ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"פרק 11: עיר הברקת המופלאה של ארץ עוץ"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"‎@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"‎@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"סלולרי"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"אם חיבור Wi‑Fi לא זמין, ייעשה שימוש ברשת סלולרית"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"אם אין רשת סלולרית זמינה יש להשתמש ב-Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"התקשרות בחיבור Wi-Fi. אם חיבור ה-Wi‑Fi יתנתק, השיחה תסתיים."</string>
@@ -3478,7 +3480,7 @@
     <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"אין אפליקציות מותקנות שתומכות ב\'תמונה בתוך תמונה\'"</string>
     <string name="picture_in_picture_keywords" msgid="7326958702002259262">"תמונה בתוך תמונה"</string>
     <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"תמונה בתוך תמונה"</string>
-    <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"עם תמונה בתוך תמונה"</string>
+    <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"תמונה בתוך תמונה"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="918632751775525347">"אפליקציה זו תוכל ליצור חלון מסוג תמונה-בתוך-תמונה בזמן שהיא תהיה פתוחה או לאחר היציאה ממנה (למשל, כדי להמשיך לצפות בסרטון). חלון זה מוצג מעל אפליקציות אחרות שנמצאות בשימוש."</string>
     <string name="manage_zen_access_title" msgid="3058206309728524196">"גישה אל \'נא לא להפריע\'"</string>
     <string name="zen_access_detail_switch" msgid="8706332327904974500">"הפעלת ההרשאה \'נא לא להפריע\'"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ja/arrays.xml b/tests/CarDeveloperOptions/res/values-ja/arrays.xml
index fc69723..ebfd9f3 100644
--- a/tests/CarDeveloperOptions/res/values-ja/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ja/arrays.xml
@@ -170,7 +170,7 @@
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"なし"</item>
     <item msgid="1464741437353223198">"マニュアル"</item>
-    <item msgid="5793600062487886090">"プロキシの自動設定"</item>
+    <item msgid="5793600062487886090">"プロキシを自動設定"</item>
   </string-array>
   <string-array name="apn_auth_entries">
     <item msgid="7099647881902405997">"なし"</item>
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"許可しない"</item>
     <item msgid="8184570120217958741">"常に許可する"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"標準"</item>
+    <item msgid="5101233285497327432">"やや良好"</item>
+    <item msgid="1555861583162930714">"低"</item>
+    <item msgid="1719683776264798117">"残りわずか"</item>
+    <item msgid="1567326459340152525">"不明"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"標準"</item>
+    <item msgid="6107138933849816768">"やや不足"</item>
+    <item msgid="182695359839047859">"低"</item>
+    <item msgid="8577246509202964244">"重大"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"常駐"</item>
     <item msgid="167418068739176448">"上位のアクティビティ"</item>
@@ -463,11 +473,11 @@
   </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"自動的に検出"</item>
-    <item msgid="773943026484148895">"従量制として処理"</item>
-    <item msgid="1008268820118852416">"定額制として処理"</item>
+    <item msgid="773943026484148895">"従量制として扱う"</item>
+    <item msgid="1008268820118852416">"定額制として扱う"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"ランダムな MAC を使用する(デフォルト)"</item>
+    <item msgid="6545683814310036454">"ランダム MAC を使用(デフォルト)"</item>
     <item msgid="214234417308375326">"デバイスの MAC を使用する"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-ja/strings.xml b/tests/CarDeveloperOptions/res/values-ja/strings.xml
index b0b238f..d5ab537 100644
--- a/tests/CarDeveloperOptions/res/values-ja/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ja/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"画面上のテキストのサイズを変更します。"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"拡大"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"サンプル テキスト"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"オズの魔法使い"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"第 11 章: オズの不思議なエメラルド シティ"</string>
@@ -356,10 +355,10 @@
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"ウィジェットの有効化"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"管理アプリによって無効化"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"ロックダウン オプションの表示"</string>
-    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Smart Lock、指紋認証によるロック解除、ロック画面上の通知を無効にする電源ボタン オプションを表示します"</string>
+    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Smart Lock、指紋認証によるロック解除、ロック画面上の通知をすべて無効にするオプションを、電源ボタンの長押しで表示します"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"信頼エージェントはロック解除の延長のみ"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"有効にすると、信頼エージェントによりデバイスのロック解除状態が延長されます。ただし、ロック状態のデバイスのロックは解除できなくなります。"</string>
-    <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"信頼が失われた場合に画面をロックする"</string>
+    <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"信頼が失われた場合に画面をロック"</string>
     <string name="trust_lost_locks_screen_summary" msgid="2058567484625606803">"有効にすると、前回の信頼エージェントの信頼が失われたときにデバイスがロックされます。"</string>
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"なし"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
@@ -468,7 +467,7 @@
     <string name="security_settings_fingerprint_enroll_dialog_delete" msgid="4312297515772004580">"削除"</string>
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"センサーに触れる"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"指をセンサーに当て、振動したら離します。"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"指を離してからもう一度触れる"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"指をタッチして離す"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"指を何度か離して、あらゆる角度から指紋を登録します。"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"指紋の登録完了"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"このアイコンが表示されているときは、本人確認や購入の承認に指紋認証を使用できます"</string>
@@ -800,14 +799,14 @@
     <string name="bluetooth_max_connected_audio_devices_string" msgid="6799012540303500020">"接続できる Bluetooth オーディオ デバイスの上限"</string>
     <string name="bluetooth_max_connected_audio_devices_dialog_title" msgid="6049527354499590314">"接続できる Bluetooth オーディオ デバイス数の上限の選択"</string>
     <string name="wifi_display_settings_title" msgid="8718182672694575456">"キャスト"</string>
-    <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"ワイヤレスディスプレイの有効化"</string>
+    <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"ワイヤレス ディスプレイの有効化"</string>
     <string name="wifi_display_no_devices_found" msgid="186501729518830451">"周辺にデバイスが見つかりません"</string>
     <string name="wifi_display_status_connecting" msgid="3799827425457383349">"接続中"</string>
     <string name="wifi_display_status_connected" msgid="85692409327461403">"接続済み"</string>
     <string name="wifi_display_status_in_use" msgid="7646114501132773174">"使用中"</string>
     <string name="wifi_display_status_not_available" msgid="5600448733204688205">"ご利用いただけません"</string>
     <string name="wifi_display_details" msgid="6379855523460749126">"ディスプレイの設定"</string>
-    <string name="wifi_display_options_title" msgid="4587264519668872213">"ワイヤレスディスプレイのオプション"</string>
+    <string name="wifi_display_options_title" msgid="4587264519668872213">"ワイヤレス ディスプレイのオプション"</string>
     <string name="wifi_display_options_forget" msgid="7882982544626742073">"削除"</string>
     <string name="wifi_display_options_done" msgid="5922060890309265817">"完了"</string>
     <string name="wifi_display_options_name" msgid="8477627781133827607">"名前"</string>
@@ -823,7 +822,7 @@
     <string name="art_verifier_for_debuggable_summary" msgid="2204242476996701111">"ART にデバッグ可能なアプリのバイトコードの確認を許可する"</string>
     <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="983451155092850657">"タブレットが他のデバイスと接触したときのデータ交換を許可する"</string>
-    <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"デバイスが他のデバイスと接触したときのデータ交換を許可する"</string>
+    <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"他のデバイスと接触したときのデータ交換を許可します"</string>
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"NFC を ON にする"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC がこのデバイスと他の付近のデバイスまたはターゲット(決済デバイス、アクセス リーダー、インタラクティブ広告またはタグなど)の間でデータのやり取りを行います。"</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"NFC の保護"</string>
@@ -863,7 +862,7 @@
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"この機能を使用するには、対応するネットワーク評価プロバイダを選択してください"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"証明書のインストール"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"位置情報の精度を向上させるため、Wi‑Fi が OFF の場合でも、アプリやサービスはいつでも Wi‑Fi ネットワークをスキャンできます。この設定は、位置情報を使用する機能やサービスの改善などに役立ちます。この設定は<xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>スキャンの設定<xliff:g id="LINK_END_1">LINK_END</xliff:g>で変更できます。"</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"位置情報の精度を上げるには、<xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>スキャンの設定<xliff:g id="LINK_END_1">LINK_END</xliff:g>で Wi-Fi スキャンをオンにしてください。"</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"位置情報の精度を上げるには、<xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>スキャンの設定<xliff:g id="LINK_END_1">LINK_END</xliff:g>で Wi-Fi スキャンを ON にしてください。"</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"次回から表示しない"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"スリープ時にWi-Fi接続を維持"</string>
     <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"スリープ時にWi-Fi接続を維持"</string>
@@ -889,7 +888,7 @@
     <string name="wifi_menu_remember" msgid="717257200269700641">"ネットワークを保存"</string>
     <string name="wifi_menu_forget" msgid="7561140554450163075">"ネットワークを削除"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"ネットワークを変更"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"利用可能なネットワークを表示するにはWi-FiをON"</string>
+    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"利用可能なネットワークを表示するには Wi-Fi を ON にします。"</string>
     <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wi-Fiネットワークを検索しています…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Wi-Fiネットワークを変更する権限がありません。"</string>
     <string name="wifi_more" msgid="3538241640407382185">"その他"</string>
@@ -934,14 +933,14 @@
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Wi‑Fi アクセス ポイントの帯域幅を少なくとも 1 つ選択してください。"</string>
     <string name="wifi_ip_settings" msgid="4636102290236116946">"IP 設定"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"プライバシー"</string>
-    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"ランダム化 MAC"</string>
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"ランダム MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"デバイスの追加"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"「<xliff:g id="SSID">%1$s</xliff:g>」にデバイスを追加するには、下記の中心に QR コードを合わせてください"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"「<xliff:g id="SSID">%1$s</xliff:g>」にデバイスを追加するには、下の枠に QR コードを合わせてください"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR コードのスキャン"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"「<xliff:g id="SSID">%1$s</xliff:g>」に接続するには、下記の中心に QR コードを合わせてください"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Wi‑Fi に接続するには、QR コードをスキャンしてください"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi の共有"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"「<xliff:g id="SSID">%1$s</xliff:g>」に接続してパスワードを共有するには、この QR コードをスキャンしてください"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"パスワードを共有して「<xliff:g id="SSID">%1$s</xliff:g>」に接続するには、この QR コードをスキャンします"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"「<xliff:g id="SSID">%1$s</xliff:g>」に接続するには、この QR コードをスキャンしてください"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR コードを読み取れませんでした。コードを再度中央に捉えて、もう一度お試しください"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"もう一度お試しください。問題が解決しない場合は、デバイスのメーカーにお問い合わせください"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"モバイル"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi が利用できない場合は、モバイル ネットワークを使用します"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"モバイル ネットワークが使用できない場合は、Wi‑Fi を使用します"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi 経由で通話します。Wi‑Fi が切断されると、通話は終了します。"</string>
@@ -1156,7 +1158,7 @@
     <string name="dock_not_found_title" msgid="2035088760477532435">"ホルダーが見つかりません"</string>
     <string name="dock_not_found_text" product="tablet" msgid="5996654431405111902">"ホルダーの音声を設定するにはタブレットをホルダーに装着する必要があります。"</string>
     <string name="dock_not_found_text" product="default" msgid="8275091896320216368">"ホルダーの音声を設定するにはデバイスをホルダーに装着する必要があります。"</string>
-    <string name="dock_sounds_enable_title" msgid="3385931465312084061">"ホルダー装着時の音"</string>
+    <string name="dock_sounds_enable_title" msgid="3385931465312084061">"ドッキング時の音"</string>
     <string name="dock_sounds_enable_summary_on" product="tablet" msgid="4322104626905111669">"タブレットのホルダー脱着時に音を鳴らす"</string>
     <string name="dock_sounds_enable_summary_on" product="default" msgid="2751810717801098293">"携帯のホルダー脱着時に音を鳴らす"</string>
     <string name="dock_sounds_enable_summary_off" product="tablet" msgid="2125391395745266946">"タブレットのホルダー脱着時に音を鳴らさない"</string>
@@ -1207,7 +1209,7 @@
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"ON / 見ている間は画面が OFF になりません"</string>
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"OFF"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"見ている間は画面が OFF にならなくなります。"</string>
-    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Screen Aware は前面カメラを使用して、ユーザーが画面を見ているかどうかを検出します。この検出はデバイスのみで行われ、画像が保存されたり、Google に送信されたりすることはありません。"</string>
+    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Screen Aware は前面カメラを使用して、ユーザーが画面を見ているかどうかを検出します。この検出はデバイスのみで行われます。画像が保存されたり、Google に送信されたりすることはありません。"</string>
     <string name="night_display_title" msgid="1305002424893349814">"夜間モード"</string>
     <string name="night_display_text" msgid="5330502493684652527">"夜間モードを利用すると画面が黄味がかった色になります。薄明かりの下でも画面を見やすくなり、寝付きを良くする効果も期待できます。"</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"スケジュール"</string>
@@ -1235,7 +1237,7 @@
     <string name="night_display_not_currently_on" msgid="1436588493764429281">"夜間モードは現在 OFF です"</string>
     <string name="screen_timeout" msgid="1700950247634525588">"スリープ"</string>
     <string name="screen_timeout_title" msgid="150117777762864112">"画面がOFFになったとき"</string>
-    <string name="screen_timeout_summary" msgid="8644192861778491060">"操作が行われない状態で<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g>経過後"</string>
+    <string name="screen_timeout_summary" msgid="8644192861778491060">"操作が行われない状態で <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> 経過後"</string>
     <string name="wallpaper_settings_title" msgid="347390905813529607">"壁紙"</string>
     <string name="style_and_wallpaper_settings_title" msgid="8898539141152705754">"スタイルと壁紙"</string>
     <string name="wallpaper_settings_summary_default" msgid="2626880032742784599">"デフォルト"</string>
@@ -1244,13 +1246,13 @@
     <string name="wallpaper_suggestion_summary" msgid="4247262938988875842">"画面のカスタマイズ"</string>
     <string name="wallpaper_settings_fragment_title" msgid="1503701065297188901">"壁紙タイプの選択"</string>
     <string name="screensaver_settings_title" msgid="7720091234133721021">"スクリーンセーバー"</string>
-    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"充電時またはホルダー装着時"</string>
+    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"充電時またはドッキング時"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"いずれか"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"充電時"</string>
-    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"ホルダー装着時"</string>
+    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"ドッキング時"</string>
     <string name="screensaver_settings_summary_never" msgid="3995259444981620707">"なし"</string>
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"OFF"</string>
-    <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"スマートフォンのホルダー装着時やスリープ時の動作を管理するには、スクリーン セーバーを ON にします。"</string>
+    <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"スマートフォンのドッキング時やスリープ時の動作を管理するには、スクリーン セーバーを ON にします。"</string>
     <string name="screensaver_settings_when_to_dream" msgid="3763052013516826348">"起動するタイミング"</string>
     <string name="screensaver_settings_current" msgid="4017556173596361672">"現在のスクリーンセーバー"</string>
     <string name="screensaver_settings_dream_start" msgid="3772227299054662550">"今すぐ起動"</string>
@@ -1355,7 +1357,7 @@
     <string name="status_signal_strength" msgid="4302597886933728789">"電波強度"</string>
     <string name="status_roaming" msgid="5191044997355099561">"ローミング"</string>
     <string name="status_operator" msgid="6017986100643755390">"ネットワーク"</string>
-    <string name="status_wifi_mac_address" msgid="3868452167971295995">"Wi-Fi MACアドレス"</string>
+    <string name="status_wifi_mac_address" msgid="3868452167971295995">"Wi-Fi MAC アドレス"</string>
     <string name="status_bt_address" msgid="460568179311735657">"Bluetoothアドレス"</string>
     <string name="status_serial_number" msgid="8257722124627415159">"シリアル番号"</string>
     <string name="status_up_time" msgid="77128395333934087">"稼働時間"</string>
@@ -1570,11 +1572,11 @@
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"ネットワーク、アプリ、デバイスをリセットできます"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Wi-Fi、モバイル、Bluetooth をリセット"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"以下を含む、すべてのネットワーク設定がリセットされます。\n\n"<li>"Wi‑Fi"</li>\n<li>"モバイルデータ"</li>\n<li>"Bluetooth"</li></string>
-    <string name="reset_esim_title" msgid="7630781767040831893">"ダウンロード型 SIM の消去"</string>
-    <string name="reset_esim_desc" msgid="433226911566802">"交換用 SIM のダウンロードについては、携帯通信会社にお問い合わせください。この操作でモバイルのサービスプランが解約されることはありません。"</string>
+    <string name="reset_esim_title" msgid="7630781767040831893">"ダウンロードされた eSIM の消去"</string>
+    <string name="reset_esim_desc" msgid="433226911566802">"別の eSIM をダウンロードするには、携帯通信会社にお問い合わせください。この操作でモバイルのサービスプランが解約されることはありません。"</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"設定をリセット"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"すべてのネットワーク設定をリセットしますか?この操作を取り消すことはできません。"</string>
-    <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"すべてのネットワーク設定をリセットして、ダウンロード型 SIM を消去しますか?この操作を取り消すことはできません。"</string>
+    <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"すべてのネットワーク設定をリセットして、ダウンロードされた eSIM を消去しますか?この操作を取り消すことはできません。"</string>
     <string name="reset_network_final_button_text" msgid="345255333127794393">"設定をリセット"</string>
     <string name="reset_network_confirm_title" msgid="2432145031070536008">"リセットしますか?"</string>
     <string name="network_reset_not_available" msgid="6146655531868016281">"ネットワークのリセットはこのユーザーには許可されていません"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"SIMカードを挿入して再起動してください"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"インターネットに接続してください"</string>
     <string name="location_title" msgid="8664674161765477168">"現在地"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"仕事用プロファイルの場所"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"仕事用プロファイルで位置情報を使用"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"アプリの権限"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"位置情報は OFF です"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1968,7 +1970,7 @@
     <string name="keyboard_assistance_category" msgid="2276351807419818125">"キーボード補助機能"</string>
     <string name="physical_keyboard_title" msgid="3508591962962814313">"物理キーボード"</string>
     <string name="show_ime" msgid="7322620473198763563">"仮想キーボードの表示"</string>
-    <string name="show_ime_summary" msgid="3246628154011464373">"物理キーボードが有効になっていても画面に表示されます"</string>
+    <string name="show_ime_summary" msgid="3246628154011464373">"物理キーボードが有効になっていても画面に表示させます"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"キーボード ショートカット ヘルパー"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"使用可能なショートカットを表示します"</string>
     <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"仕事用プロファイルのキーボードとツール"</string>
@@ -2067,8 +2069,8 @@
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="2466317284195934003">"画面の拡大を自動更新"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="6625473745911276917">"アプリの遷移時に画面の拡大を更新"</string>
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6172987104538172869">"電源ボタンで通話を終了"</string>
-    <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"大きなマウスポインタ"</string>
-    <string name="accessibility_disable_animations" msgid="8378441317115710009">"アニメーションの削除"</string>
+    <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"マウスポインタを拡大"</string>
+    <string name="accessibility_disable_animations" msgid="8378441317115710009">"アニメーションを無効化"</string>
     <string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"モノラル音声"</string>
     <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"音声再生時のチャンネルを統合する"</string>
     <string name="accessibility_toggle_master_balance_title" msgid="8723492001092647562">"オーディオ バランス"</string>
@@ -2082,11 +2084,11 @@
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"表示しておく時間"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"操作を行う時間"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"表示可能な時間が限られているメッセージの表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
-    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"操作が必要にもかかわらず、短い時間しか表示されないメッセージの表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
+    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"短い時間しか表示されない操作要求メッセージについて、表示時間を指定してください。\n\nこの設定に対応していないアプリもあります。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"長押しする時間"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"色反転"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"パフォーマンスに影響することがあります"</string>
-    <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"停止時間"</string>
+    <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"静止時間"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"マウスを使用している場合は、カーソルの動きが一定時間停止したときに自動的に操作を行うよう設定できます。"</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="8303022510942147049">"クリックまでの時間"</string>
     <string name="accessibility_vibration_settings_title" msgid="1902649657883159406">"バイブレーション"</string>
@@ -2139,9 +2141,9 @@
     <string name="accessibility_vibration_summary_medium" msgid="3141272492346527298">"着信と通知は [中] に設定されています"</string>
     <string name="accessibility_vibration_summary_high" msgid="4188677504368202861">"着信と通知は [高] に設定されています"</string>
     <string name="accessibility_vibration_intensity_off" msgid="4427927348723998194">"OFF"</string>
-    <string name="accessibility_vibration_intensity_low" msgid="8250688473513963211">"低"</string>
+    <string name="accessibility_vibration_intensity_low" msgid="8250688473513963211">"弱"</string>
     <string name="accessibility_vibration_intensity_medium" msgid="2249931147940383011">"中"</string>
-    <string name="accessibility_vibration_intensity_high" msgid="7850793704772123134">"高"</string>
+    <string name="accessibility_vibration_intensity_high" msgid="7850793704772123134">"強"</string>
     <string name="accessibility_menu_item_settings" msgid="6809813639403725032">"設定"</string>
     <string name="accessibility_feature_state_on" msgid="8649102771420898911">"ON"</string>
     <string name="accessibility_feature_state_off" msgid="7536392255214437050">"OFF"</string>
@@ -2210,7 +2212,7 @@
     <string name="print_menu_item_add_service" msgid="6803000110578493782">"サービスを追加"</string>
     <string name="print_menu_item_add_printer" msgid="8529196211179574921">"プリンタを追加"</string>
     <string name="print_menu_item_search" msgid="1165316329772287360">"検索"</string>
-    <string name="print_searching_for_printers" msgid="6538687129687642542">"プリンタの検索中"</string>
+    <string name="print_searching_for_printers" msgid="6538687129687642542">"プリンタを検索しています"</string>
     <string name="print_service_disabled" msgid="6376344992705893436">"サービスが無効です"</string>
     <string name="print_print_jobs" msgid="7357841034181762157">"印刷ジョブ"</string>
     <string name="print_print_job" msgid="6846889971435170443">"印刷ジョブ"</string>
@@ -2312,8 +2314,8 @@
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"このアプリによるバックグラウンドでの電池使用を停止すると、電池が長持ちします。制限したアプリは正常に動作しないことがあります。また、通知が遅れる可能性もあります。\n\nアプリ:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"制限"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"制限を解除しますか?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"このアプリはバックグラウンドで電池を使用するため、電池が予想より早くなくなる可能性があります。"</string>
-    <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"削除"</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"このアプリはバックグラウンドで電池を使用するため、電池を予想より早く消費する可能性があります。"</string>
+    <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"解除"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"キャンセル"</string>
     <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"アプリの電池使用量は正常です。アプリが電池を使いすぎる場合は、おすすめの対処方法をスマートフォンがお知らせします。\n\n電池の残量が少なくなったら、いつでもバッテリー セーバーを ON にできます。"</string>
     <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"アプリの電池使用量は正常です。アプリが電池を使いすぎる場合は、対処可能なおすすめの方法がタブレットに表示されます。\n\n電池の残量が少なくなったら、いつでもバッテリー セーバーを ON にできます。"</string>
@@ -2453,7 +2455,7 @@
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g> で ON"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"スケジュールの設定"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"フル充電で無効"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"スマートフォンの電池残量が <xliff:g id="PERCENT">%1$s</xliff:g> になると、バッテリー セーバーは無効になります"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"スマートフォンの電池が <xliff:g id="PERCENT">%1$s</xliff:g> まで充電されると、バッテリー セーバーが OFF になります"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"タブレットの電池残量が <xliff:g id="PERCENT">%1$s</xliff:g> になると、バッテリー セーバーは無効になります"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"デバイスの電池残量が <xliff:g id="PERCENT">%1$s</xliff:g> になると、バッテリー セーバーは無効になります"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2652,7 +2654,7 @@
     <string name="data_usage_app" msgid="4995297799363021198">"アプリの使用状況"</string>
     <string name="data_usage_app_info_label" msgid="5358288895158910477">"アプリ情報"</string>
     <string name="data_usage_cellular_data" msgid="3509117353455285808">"モバイルデータ"</string>
-    <string name="data_usage_data_limit" msgid="4070740691087063670">"データの上限の設定"</string>
+    <string name="data_usage_data_limit" msgid="4070740691087063670">"データ使用量を制限"</string>
     <string name="data_usage_cycle" msgid="1877235461828192940">"データ使用サイクル"</string>
     <string name="data_usage_app_items_header_text" msgid="5396134508509913851">"アプリの使用状況"</string>
     <string name="data_usage_menu_roaming" msgid="6933555994416977198">"データローミング"</string>
@@ -2712,8 +2714,8 @@
     <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"データ使用量の警告の設定"</string>
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"データ使用量の上限の設定"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"データ使用量の上限の設定"</string>
-    <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"タブレットで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はタブレットで測定された値ですが、携帯通信会社での使用量の計算はこれと異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
-    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"スマートフォンで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はスマートフォンで測定された値ですが、携帯通信会社での使用量の計算はこれと異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
+    <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"タブレットで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はタブレットで測定された値ですが、携帯通信会社による測定結果とは異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
+    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"スマートフォンで設定した上限に達するとモバイルデータが OFF になります。\n\nデータ使用量はスマートフォンで測定された値ですが、携帯通信会社による測定結果とは異なることがあるため、余裕をもって上限を設定することをおすすめします。"</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"バックグラウンドデータを制限しますか?"</string>
     <string name="data_usage_restrict_background" msgid="995811034744808575">"バックグラウンドのモバイルデータを制限すると、アプリやサービスによっては、Wi-Fi 未接続時に機能しない場合があります。"</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"バックグラウンドのモバイルデータを制限すると、アプリやサービスによっては、Wi‑Fi 未接続時に機能しない場合があります。\n\nこの設定はこのタブレット上のすべてのユーザーに影響します。"</string>
@@ -2934,7 +2936,7 @@
     <string name="restriction_menu_change_pin" msgid="592512748243421101">"PINを変更"</string>
     <string name="app_notifications_switch_label" msgid="670683308275498821">"通知を表示"</string>
     <string name="help_label" msgid="1296484776243905646">"ヘルプとフィードバック"</string>
-    <string name="support_summary" msgid="3278943815956130740">"ヘルプ記事、電話とチャット、使ってみる"</string>
+    <string name="support_summary" msgid="3278943815956130740">"ヘルプ記事、電話とチャット、スタートガイド"</string>
     <string name="user_account_title" msgid="2108666882630552859">"コンテンツのアカウント"</string>
     <string name="user_picture_title" msgid="6664602422948159123">"画像ID"</string>
     <string name="extreme_threats_title" msgid="1405820547540456436">"極めて重大な脅威"</string>
@@ -2973,7 +2975,7 @@
     <string name="restriction_nfc_enable_title" msgid="5146674482590550598">"NFC"</string>
     <string name="restriction_nfc_enable_summary_config" msgid="405349698260328073">"この<xliff:g id="DEVICE_NAME">%1$s</xliff:g>が他のNFCデバイスと接触したときのデータ交換を許可する"</string>
     <string name="restriction_nfc_enable_summary" product="tablet" msgid="3292205836938064931">"タブレットが他のデバイスと接触したときのデータ交換を許可する"</string>
-    <string name="restriction_nfc_enable_summary" product="default" msgid="226439584043333608">"携帯電話が他のデバイスと接触したときのデータ交換を許可する"</string>
+    <string name="restriction_nfc_enable_summary" product="default" msgid="226439584043333608">"他のデバイスと接触したときのデータ交換を許可する"</string>
     <string name="restriction_location_enable_title" msgid="358506740636434856">"位置情報"</string>
     <string name="restriction_location_enable_summary" msgid="4159500201124004463">"アプリに位置情報の使用を許可する"</string>
     <string name="wizard_back" msgid="223654213898117594">"戻る"</string>
@@ -3008,7 +3010,7 @@
     <string name="color_orange" msgid="3159707916066563431">"オレンジ"</string>
     <string name="color_purple" msgid="4391440966734810713">"パープル"</string>
     <string name="sim_no_inserted_msg" msgid="1197884607569714609">"SIMカードが挿入されていません"</string>
-    <string name="sim_status_title" msgid="4483653750844520871">"SIMのステータス"</string>
+    <string name="sim_status_title" msgid="4483653750844520871">"SIM のステータス"</string>
     <string name="sim_status_title_sim_slot" msgid="416005570947546124">"SIM ステータス(SIM スロット %1$d)"</string>
     <string name="sim_call_back_title" msgid="2497274034557717457">"デフォルトのSIMからコールバック"</string>
     <string name="sim_outgoing_call_title" msgid="4683645160838507363">"発信用のSIM"</string>
@@ -3148,7 +3150,7 @@
     <string name="dial_pad_tones_title" msgid="8877212139988655769">"ダイヤルパッドの操作音"</string>
     <string name="screen_locking_sounds_title" msgid="4407110895465866809">"画面ロック音"</string>
     <string name="charging_sounds_title" msgid="5070437987230894287">"充電時の音とバイブレーション"</string>
-    <string name="docking_sounds_title" msgid="2573137471605541366">"装着音"</string>
+    <string name="docking_sounds_title" msgid="2573137471605541366">"ドッキング音"</string>
     <string name="touch_sounds_title" msgid="165237488496165652">"タッチ操作音"</string>
     <string name="vibrate_on_touch_title" msgid="6360155469279157684">"タップ操作時のバイブ"</string>
     <string name="vibrate_on_touch_summary" msgid="5504424764028676043">"タップ、キー操作などの触覚フィードバック"</string>
@@ -3321,7 +3323,7 @@
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"仕事用プロファイルのロック時"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"すべての通知内容を表示する"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"プライベートな内容を非表示"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"通知をすべて表示しない"</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"通知を一切表示しない"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"デバイスがロックされている場合、通知をどのように表示しますか?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"通知"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"仕事用通知の内容をすべて表示する"</string>
@@ -3759,7 +3761,7 @@
     <string name="assist_access_context_title" msgid="2274614501747710439">"画面のテキストを使用"</string>
     <string name="assist_access_context_summary" msgid="5867997494395842785">"画面コンテンツのテキストにアクセスすることをアシストアプリに許可する"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"スクリーンショットを使用"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"画面の画像にアクセスすることをアシストアプリに許可する"</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"表示中の画像にアクセスすることをアシストアプリに許可する"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"画面の点滅"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"アシストアプリが画面のテキストやスクリーンショットにアクセスしたときに画面の端を点滅させる"</string>
     <string name="assist_footer" msgid="7030121180457472165">"アシストアプリは、表示している画面の情報に基づいてアシスタントを提供します。一部のアプリはランチャーと音声入力サービスの両方に対応しており、統合されたアシスタントを提供します。"</string>
@@ -3940,9 +3942,9 @@
     <string name="cell_data_template" msgid="5473177306229738078">"モバイルデータ使用量 <xliff:g id="AMOUNT">^1</xliff:g>"</string>
     <string name="wifi_data_template" msgid="3146090439147042068">"<xliff:g id="AMOUNT">^1</xliff:g>(Wi-Fi データ)"</string>
     <string name="ethernet_data_template" msgid="6414118030827090119">"<xliff:g id="AMOUNT">^1</xliff:g>(イーサネット データ)"</string>
-    <string name="billing_cycle" msgid="5740717948341713190">"データの警告と制限"</string>
+    <string name="billing_cycle" msgid="5740717948341713190">"データ使用量の警告と制限"</string>
     <string name="app_usage_cycle" msgid="213483325132959663">"アプリのデータ使用量のサイクル"</string>
-    <string name="cell_data_warning" msgid="8902740337286652689">"データ警告: <xliff:g id="ID_1">^1</xliff:g>"</string>
+    <string name="cell_data_warning" msgid="8902740337286652689">"警告するデータ使用量: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"データ上限: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"データ警告: <xliff:g id="ID_1">^1</xliff:g> / データ上限: <xliff:g id="ID_2">^2</xliff:g>"</string>
     <string name="billing_cycle_fragment_summary" msgid="4926047002107855543">"毎月 <xliff:g id="ID_1">%1$s</xliff:g> 日"</string>
@@ -3953,10 +3955,10 @@
     </plurals>
     <string name="operator_warning" msgid="4676042739221117031">"デバイスで記録されるデータ使用量と携帯通信会社のデータ使用量は異なる場合があります"</string>
     <string name="data_used_template" msgid="761605393453849477">"<xliff:g id="ID_1">%1$s</xliff:g> 使用"</string>
-    <string name="set_data_warning" msgid="8115980184415563941">"データ警告を設定"</string>
-    <string name="data_warning" msgid="2699207195535036240">"データ警告"</string>
-    <string name="data_warning_footnote" msgid="965724845580257305">"データ警告とデータ上限はお使いのデバイスで測定されます。測定結果は携帯通信会社のデータとは異なることがあります。"</string>
-    <string name="set_data_limit" msgid="5043770023229990674">"データ上限を設定"</string>
+    <string name="set_data_warning" msgid="8115980184415563941">"データ使用量を警告"</string>
+    <string name="data_warning" msgid="2699207195535036240">"警告するデータ使用量"</string>
+    <string name="data_warning_footnote" msgid="965724845580257305">"警告や制限の基準となるデータ使用量はお使いのデバイスで測定されます。測定結果は携帯通信会社のデータとは異なることがあります。"</string>
+    <string name="set_data_limit" msgid="5043770023229990674">"データ使用量を制限"</string>
     <string name="data_limit" msgid="5793521160051596228">"データ上限"</string>
     <string name="data_usage_template" msgid="6848274347956096882">"<xliff:g id="ID_1">%1$s</xliff:g> 使用(<xliff:g id="ID_2">%2$s</xliff:g>)"</string>
     <string name="configure" msgid="8232696842838580549">"設定"</string>
@@ -3984,7 +3986,7 @@
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"プランを表示"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"詳細を表示"</string>
     <string name="data_saver_title" msgid="7903308134514179256">"データセーバー"</string>
-    <string name="unrestricted_data_saver" msgid="9139401849550738720">"無制限のデータアクセス"</string>
+    <string name="unrestricted_data_saver" msgid="9139401849550738720">"モバイルデータの無制限利用"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"バックグラウンド データは無効になっています"</string>
     <string name="data_saver_on" msgid="7281809065420480881">"ON"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"OFF"</string>
@@ -4052,8 +4054,8 @@
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"オーバーレイを適用できませんでした"</string>
     <string name="special_access" msgid="1453926335914696206">"特別なアプリアクセス"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
-      <item quantity="other">データの無制限使用が可能なアプリは <xliff:g id="COUNT">%d</xliff:g> 個です</item>
-      <item quantity="one">データの無制限使用が可能なアプリは 1 個です</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> 個のアプリがモバイルデータを無制限に使用可能</item>
+      <item quantity="one">1 個のアプリがモバイルデータを無制限に使用可能</item>
     </plurals>
     <string name="special_access_more" msgid="7086690625048471400">"詳細"</string>
     <string name="confirm_convert_to_fbe_warning" msgid="4972595831034280189">"ファイル暗号化のためにユーザーのデータを消去して変換してもよろしいですか?"</string>
@@ -4110,7 +4112,7 @@
     <string name="gesture_preference_summary" product="tablet" msgid="8303793594714075580">"簡単な操作でタブレットを管理できます"</string>
     <string name="gesture_preference_summary" product="device" msgid="7792199669106960922">"簡単な操作でデバイスを管理できます"</string>
     <string name="double_tap_power_for_camera_title" msgid="5480829329052517484">"カメラの起動"</string>
-    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"カメラをすばやく起動するには、電源ボタンを 2 回押します。どの画面からでも操作できます。"</string>
+    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"電源ボタンを 2 回押して、カメラをすばやく起動できます。どの画面からでも操作できます。"</string>
     <string name="double_tap_power_for_camera_suggestion_title" msgid="509078029429865036">"カメラをすばやく起動"</string>
     <string name="double_twist_for_camera_mode_title" msgid="2606032140297556018">"カメラの切り替え"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="8979914206876018137"></string>
@@ -4118,26 +4120,26 @@
     <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"アプリを切り替えるには、ホームボタンを上にスワイプします。もう一度上にスワイプするとすべてのアプリが表示されます。どの画面からでも操作できます。画面右下の [最近] ボタンは表示されなくなります。"</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"新しいホームボタンを試す"</string>
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"アプリを切り替えるための新しい操作を有効にしてください"</string>
-    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"画面をダブルタップして通知をチェック"</string>
+    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"画面をダブルタップして通知を確認"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"タブレットの画面をダブルタップして通知をチェック"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"デバイスの画面をダブルタップして通知をチェック"</string>
-    <string name="ambient_display_summary" msgid="4882910328216411109">"時刻、通知などの情報を確認するには、画面をダブルタップします。"</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"デバイスを持ち上げて通知をチェック"</string>
+    <string name="ambient_display_summary" msgid="4882910328216411109">"画面をダブルタップして、時刻、通知などの情報を確認できます。"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"スマートフォンを持ち上げて通知を確認"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"タブレットを持ち上げて通知をチェック"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"デバイスを持ち上げて通知をチェック"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"ディスプレイの復帰"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"時刻、通知などの情報を確認するには、スマートフォンを持ち上げます。"</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"スマートフォンを持ち上げることで、時刻、通知などの情報を確認できます。"</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"時刻、通知などの情報を確認するには、タブレットを持ち上げます。"</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"時刻、通知などの情報を確認するには、デバイスを持ち上げます。"</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"スマートフォンをタップしてチェック"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"デバイスをタップして通知を確認"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"タブレットをタップしてチェックする"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"デバイスをタップしてチェックする"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"時刻、通知などの情報を確認するには、画面をタップします。"</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"指紋センサーをスワイプして通知を表示"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"指紋センサーのスワイプ"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"通知を確認するには、スマートフォンの背面にある指紋認証センサーを下にスワイプします。"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"通知を確認するには、タブレットの背面にある指紋認証センサーを下にスワイプします。"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"通知を確認するには、デバイスの背面にある指紋認証センサーを下にスワイプします。"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"スマートフォンの背面にある指紋認証センサーを下にスワイプして、通知を確認できます。"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"タブレットの背面にある指紋認証センサーを下にスワイプして、通知を確認できます。"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"デバイスの背面にある指紋認証センサーを下にスワイプして、通知を確認できます。"</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="948946491233738823">"通知をすばやく確認"</string>
     <string name="gesture_setting_on" msgid="7573680730101327866">"ON"</string>
     <string name="gesture_setting_off" msgid="2540159841716890511">"OFF"</string>
@@ -4148,7 +4150,7 @@
     <string name="oem_lock_info_message" msgid="5090850412279403901">"デバイス保護機能を有効にするには、デバイスを再起動してください。"</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7360443072390107772">"計 <xliff:g id="SIZE">%1$s</xliff:g> が利用可能になりました\n\n最終実行: <xliff:g id="DATE">%2$s</xliff:g>"</string>
     <string name="web_action_enable_title" msgid="4462106633708675959">"Instant Apps"</string>
-    <string name="web_action_enable_summary" msgid="1729016644691793085">"アプリがインストールされていなくても、アプリ内のリンクを開くことができます"</string>
+    <string name="web_action_enable_summary" msgid="1729016644691793085">"アプリがインストールされていなくても、アプリでリンクを開けるようにします"</string>
     <string name="web_action_section_title" msgid="5563229447734734662">"Instant Apps"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"Instant Apps の設定"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"インストール済みアプリ"</string>
@@ -4443,7 +4445,7 @@
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"ネットワーク モード <xliff:g id="NETWORKMODEID">%1$d</xliff:g> は無効です。無視してください。"</string>
     <string name="mobile_network_apn_title" msgid="5628635067747404382">"アクセス ポイント名"</string>
     <string name="manual_mode_disallowed_summary" msgid="799800630000340665">"<xliff:g id="CARRIER">%1$s</xliff:g> への接続時は利用できません"</string>
-    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"医療記録、緊急連絡先"</string>
+    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"医療情報、緊急連絡先"</string>
     <string name="see_more" msgid="7463940160389802632">"詳細"</string>
     <string name="see_less" msgid="3718892257002813387">"一部を表示"</string>
     <string name="network_connection_request_dialog_title" msgid="3150489262902506588">"<xliff:g id="APPNAME">%1$s</xliff:g> で使用するデバイス"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ka/arrays.xml b/tests/CarDeveloperOptions/res/values-ka/arrays.xml
index bddbdec..1cec46d 100644
--- a/tests/CarDeveloperOptions/res/values-ka/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ka/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"ფონურ რეჟიმში გაშვება"</item>
     <item msgid="6423861043647911030">"მარტივი წვდომის ხმის სიმძლავრე"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"მდებარეობა"</item>
+    <item msgid="6656077694190491067">"მდებარეობა"</item>
+    <item msgid="8790228218278477369">"მდებარეობა"</item>
+    <item msgid="7836406246005211990">"ვიბრაცია"</item>
+    <item msgid="3951439024549922598">"კონტაქტების მონაცემების წაკითხვა"</item>
+    <item msgid="8802152411647068">"კონტაქტების შეცვლა"</item>
+    <item msgid="229544934599698735">"ზარების ჟურნალის ნახვა"</item>
+    <item msgid="7396102294405899613">"ზარების ჟურნალის ჩასწორება"</item>
+    <item msgid="3597797992398484655">"კალენდრის მონაცემების წაკითხვა"</item>
+    <item msgid="2705975774250907343">"კალენდრის ჩასწორება"</item>
+    <item msgid="4668747371441932697">"მდებარეობა"</item>
+    <item msgid="1487578921720243646">"შეტყობინების გამოქვეყნება"</item>
+    <item msgid="4636080349724146638">"მდებარეობა"</item>
+    <item msgid="673510900286463926">"ტელეფონზე დარეკვა"</item>
+    <item msgid="542083422784609790">"SMS/MMS-ის წაკითხვა"</item>
+    <item msgid="1033780373029588436">"SMS/MMS-ის დაწერა"</item>
+    <item msgid="5647111115517787488">"SMS/MMS-ის მიღება"</item>
+    <item msgid="8591105601108455893">"SMS/MMS-ის მიღება"</item>
+    <item msgid="7730995008517841903">"SMS/MMS მიღება"</item>
+    <item msgid="2613033109026626086">"SMS/MMS მიღება"</item>
+    <item msgid="3037159047591081136">"SMS/MMS-ის გაგზავნა"</item>
+    <item msgid="4726682243833913568">"SMS/MMS-ის წაკითხვა"</item>
+    <item msgid="6555678522277865572">"SMS/MMS-ის დაწერა"</item>
+    <item msgid="6981734935578130884">"პარამეტრების შეცვლა"</item>
+    <item msgid="8705854389991425629">"დახაზვა ზემოთ"</item>
+    <item msgid="5861356020344153651">"შეტყობინებებზე წვდომა"</item>
+    <item msgid="78432174621628659">"კამერა"</item>
+    <item msgid="3986116419882154794">"აუდიოს ჩაწერა"</item>
+    <item msgid="4516840825756409490">"აუდიოს დაკვრა"</item>
+    <item msgid="6811712502798183957">"გაცვლის ბუფერის წაკითხვა"</item>
+    <item msgid="2780369012602289114">"გაცვლის ბუფერის შეცვლა"</item>
+    <item msgid="2331359440170850868">"მედიის ღილაკები"</item>
+    <item msgid="6133599737122751231">"აუდიოს ფოკუსი"</item>
+    <item msgid="6844485713404805301">"მასტერ-ხმის სიმძლავრე"</item>
+    <item msgid="1600379420669104929">"ხმის სიმძღლავრე"</item>
+    <item msgid="6296768210470214866">"ზარის სიმძლავრე"</item>
+    <item msgid="510690696071629241">"მედიის ხმა"</item>
+    <item msgid="406861638631430109">"მაღვიძარას ხმა"</item>
+    <item msgid="4715864795872233884">"შეტყობინების ხმა"</item>
+    <item msgid="2311478519251301183">"Bluetooth-ის ხმა"</item>
+    <item msgid="5133991377896747027">"დარჩეს აქტიური"</item>
+    <item msgid="2464189519136248621">"მდებარეობა"</item>
+    <item msgid="2062677934050803037">"მდებარეობა"</item>
+    <item msgid="1735171933192715957">"გამოყენების სტატისტიკის მიღება"</item>
+    <item msgid="1014093788778383554">"მიკროფონის დადუმება/გააქტიურება"</item>
+    <item msgid="4199297950608622850">"შეტყობინების ჩვენება"</item>
+    <item msgid="2527962435313398821">"მედიის პროეცირება"</item>
+    <item msgid="5117506254221861929">"VPN-ის აქტივაცია"</item>
+    <item msgid="8291198322681891160">"ფონის ჩაწერა"</item>
+    <item msgid="7106921284621230961">"დამხმარე სტრუქტურა"</item>
+    <item msgid="4496533640894624799">"დამხმარე ეკრანის ანაბეჭდი"</item>
+    <item msgid="2598847264853993611">"ტელეფონის მდგომარეობის წაკითხვა"</item>
+    <item msgid="9215610846802973353">"ხმოვანი ფოსტის დამატება"</item>
+    <item msgid="9186411956086478261">"SIP-ის გამოყენება"</item>
+    <item msgid="6884763100104539558">"გამავალი ზარის დამუშავება"</item>
+    <item msgid="125513972170580692">"თითის ანაბეჭდი"</item>
+    <item msgid="2556071024281275619">"სხეულის სენსორები"</item>
+    <item msgid="617168514928339387">"Cell Broadcast-ების წაკითხვა"</item>
+    <item msgid="7134693570516523585">"მდებარეობის იმიტირება"</item>
+    <item msgid="7224489175375229399">"მეხსიერების წაკითხვა"</item>
+    <item msgid="8472735063903258202">"მეხსიერებაში ჩაწერა"</item>
+    <item msgid="4069276819909595110">"ეკრანის ჩართვა"</item>
+    <item msgid="1228338896751121025">"ანგარიშების მიღება"</item>
+    <item msgid="3181581793459233672">"ფონურ რეჟიმში გაშვება"</item>
+    <item msgid="2340936043025374076">"მარტივი წვდომის ხმის სიმძლავრე"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"მოკლე"</item>
     <item msgid="4816511817309094890">"საშუალო"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"არასოდეს მიეცეს უფლება"</item>
     <item msgid="8184570120217958741">"ნებართვის მიცემა - ყოველთვის"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ჩვეულებრივი"</item>
+    <item msgid="5101233285497327432">"ზომიერი"</item>
+    <item msgid="1555861583162930714">"დაბალი"</item>
+    <item msgid="1719683776264798117">"კრიტიკული"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ჩვეულებრივი"</item>
+    <item msgid="6107138933849816768">"ზომიერი"</item>
+    <item msgid="182695359839047859">"დაბალი"</item>
+    <item msgid="8577246509202964244">"კრიტიკული"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"სისტემატური"</item>
     <item msgid="167418068739176448">"ტოპ-აქტივობა"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ka/strings.xml b/tests/CarDeveloperOptions/res/values-ka/strings.xml
index 1392a22..f38954f 100644
--- a/tests/CarDeveloperOptions/res/values-ka/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ka/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"ეკრანზე ტექსტის დაპატარავება ან გადიდება."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"დაპატარავება"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"გადიდება"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ტექსტის ნიმუში"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ოზის საოცარი ჯადოქარი"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"თავი 11: ოზის ზურმუხტის ქალაქი"</string>
@@ -926,9 +925,9 @@
     <string name="wifi_show_password" msgid="7878398590772942202">"პაროლის გამოჩენა"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"აირჩიეთ AP Band"</string>
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"ავტომატური"</string>
-    <string name="wifi_ap_choose_2G" msgid="43198403259714736">"2,4 GHz დიაპაზონი"</string>
-    <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"5 GHz დიაპაზონი"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"სასურველია 5-გიგაჰერციანი დიაპაზონი"</string>
+    <string name="wifi_ap_choose_2G" msgid="43198403259714736">"2,4 გჰც დიაპაზონი"</string>
+    <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"5 გჰც დიაპაზონი"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"სასურველია 5 გჰც დიაპაზონი"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2.4 გჰც"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5 გჰც"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"აირჩიეთ მინიმუმ ერთი დიაპაზონი Wi‑Fi უსადენო ქსელისთვის:"</string>
@@ -1039,7 +1038,7 @@
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="392977552691002076">"შეიყვანეთ ქსელის პრეფიქსი, რომლის სიგრძეა 0-დან 32-მდე."</string>
     <string name="wifi_dns1" msgid="5250809981658822505">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
-    <string name="wifi_gateway" msgid="7455334454444443397">"კარიბჭე"</string>
+    <string name="wifi_gateway" msgid="7455334454444443397">"გეითვეი"</string>
     <string name="wifi_network_prefix_length" msgid="1941206966133010633">"ქსელის პრეფიქსის სიგრძე"</string>
     <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi‑Fi Direct"</string>
     <string name="wifi_p2p_device_info" msgid="4717490498956029237">"ინფორმაცია მოწყობილობის შესახებ"</string>
@@ -1058,7 +1057,7 @@
     <string name="wifi_p2p_cancel_connect_message" msgid="3752679335020392154">"ნამდვილად გსურთ <xliff:g id="PEER_NAME">%1$s</xliff:g>-თან დაკავშირების მიწვევის გაუქმება?"</string>
     <string name="wifi_p2p_delete_group_message" msgid="3206660449067701089">"გსურთ, ამ ჯგუფის დავიწყება?"</string>
     <string name="wifi_hotspot_checkbox_text" msgid="12062341344410520">"Wi‑Fi უსადენო ქსელი"</string>
-    <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"არ მოხდეს ინტერნეტის ან კონტენტის სხვა მოწყობილობებთან გაზიარება"</string>
+    <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"არ ხორციელდება ინტერნეტის ან კონტენტის სხვა მოწყობილობებთან გაზიარება"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"ამ ტაბლეტის ინტერნეტ-კავშირი უსადენო ქსელით ზიარდება"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"ამ ტელეფონის ინტერნეტ-კავშირი უსადენო ქსელით ზიარდება"</string>
     <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"აპი კონტენტს აზიარებს. ინტერნეტ-კავშირის გასაზიარებლად, ჯერ გამორთეთ, შემდეგ კი ხელახლა ჩართეთ უსადენო ქსელი"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"მობილური"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"თუ Wi‑Fi მიუწვდომელია, ისარგებლეთ მობილური ქსელით"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"თუ მობილური ქსელი მიუწვდომელია, გამოიყენეთ Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"დარეკვა Wi-Fi-ის მეშვეობით. თუ Wi‑Fi გაითიშა, ზარი დასრულდება."</string>
@@ -1796,7 +1798,7 @@
     <string name="install_all_warning" product="device" msgid="9141585291103603515">"თქვენი მოწყობილობა და პირადი მონაცემები უცნობი აპების შემოტევების წინაშე მეტად დაუცველია. აპების ამ წყაროდან ინსტალაციის შემთხვევაში თქვენ თანახმა ხართ, პასუხისმგებელი იყოთ ამ აპების გამოყენების შედეგად მოწყობილობისთვის მიყენებულ ზიანსა და მონაცემების დაკარგვაზე."</string>
     <string name="advanced_settings" msgid="6282069364060968122">"დამატებითი პარამეტრები"</string>
     <string name="advanced_settings_summary" msgid="5912237062506771716">"მეტი პარამეტრების ვარიანტების ჩართვა"</string>
-    <string name="application_info_label" msgid="3886253474964599105">"აპის მონაცემები"</string>
+    <string name="application_info_label" msgid="3886253474964599105">"აპების მონაცემები"</string>
     <string name="storage_label" msgid="1109537840103290384">"საცავი"</string>
     <string name="auto_launch_label" msgid="47089737922907379">"გახსნა ნაგულისხმევად"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"ნაგულისხმევი"</string>
@@ -2238,7 +2240,7 @@
     <string name="background_activity_warning_dialog_title" msgid="2170790412855899678">"გსურთ ფონური აქტივობის შეზღუდვა?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8242749826732375096">"აპისთვის ფონური აქტივობის შეზღუდვის შემთხვევაში, მან შეიძლება არასათანადოდ იმუშაოს"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4234598000779459640">"რადგან ეს აპი ბატარეის ოპტიმიზებისთვის დაყენებული არაა, მას ვერ შეზღუდავთ.\n\nჩართეთ ბატარეის ოპტიმიზაცია აპის შესაზღუდავად."</string>
-    <string name="device_screen_usage" msgid="4470485475363132750">"ეკრანის მოხმარება ბოლო სრული დატენვიდან"</string>
+    <string name="device_screen_usage" msgid="4470485475363132750">"ეკრანის გამოყენება ბოლო სრული დატენვიდან"</string>
     <string name="power_usage_list_summary" msgid="4314438658308211057">"ბატარეის მოხმარება ბოლო სრული დატენვიდან"</string>
     <string name="screen_usage_summary" msgid="263396144684078341">"დროის ხანგრძლივობა სრული დატენვიდან, რომლის განმავლობაშიც ეკრანი ჩართული იყო"</string>
     <string name="device_usage_list_summary" msgid="8299017481332816368">"მოწყობილობის მოხმარება ბოლო სრული დატენვიდან"</string>
@@ -2707,7 +2709,7 @@
     <string name="data_usage_auto_sync_off_dialog_title" msgid="7105334544291643305">"გამოირთოს მონაცემთა ავტომატური სინქრონიზაცია?"</string>
     <string name="data_usage_auto_sync_off_dialog" msgid="4057984234450947964">"ეს გამოიწვევს მონაცემებისა და ბატარეის გამოყენების დაზოგვას, მაგრამ თქვენ ბოლო ინფორმაციის შესაგროვებლად დაგჭირდებათ თითოეულ ანგარიშთან მექანიკურად სინქრონიზაცია. განახლებების შესახებ შეტყობინებებს არ მიიღებთ."</string>
     <string name="data_usage_cycle_editor_title" msgid="4967309390043599889">"გამოყენების ციკლის ჩამოყრის თარიღი"</string>
-    <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"თითოეული თვის თარიღი:"</string>
+    <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"თვის შემდეგ რიცხვში:"</string>
     <string name="data_usage_cycle_editor_positive" msgid="9155752056537811646">"შენახვა"</string>
     <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"გაფრთხილების დაყენება"</string>
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"ინტერნეტის მოხმარების ლიმიტის დაყენება"</string>
@@ -3142,7 +3144,7 @@
     <string name="notification_ringtone_title" msgid="2932960620843976285">"შეტყობინებების ნაგულისხმევი ხმა"</string>
     <string name="notification_unknown_sound_title" msgid="8043718667804838398">"აპის მიერ უზრუნველყოფილი ხმა"</string>
     <string name="notification_sound_default" msgid="2664544380802426260">"შეტყობინებების ნაგულისხმევი ხმა"</string>
-    <string name="alarm_ringtone_title" msgid="6411326147408635902">"მაღვიძარას ნაგულისხმევი ხმა"</string>
+    <string name="alarm_ringtone_title" msgid="6411326147408635902">"მაღვიძარას ნაგულ. ხმა"</string>
     <string name="vibrate_when_ringing_title" msgid="2757996559847126952">"ვიბრაცია ზარებისას"</string>
     <string name="other_sound_settings" msgid="5250376066099818676">"სხვა ხმები"</string>
     <string name="dial_pad_tones_title" msgid="8877212139988655769">"ციფერბლატის ტონური რეჟიმი"</string>
@@ -3321,7 +3323,7 @@
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"როცა სამსახურის პროფილი დაბლოკილია"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"შეტყობინების მთელი შინაარსის ჩვენება"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"სენსიტიური კონტენტის დამალვა"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"არ მაჩვენო არანაირი შეტყობინება"</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"არ მაჩვენო შეტყობინება"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"როგორ გსურთ შეტყობინებების ჩვენება, როდესაც მოწყობილობა ჩაკეტილია?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"შეტყობინებები"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"სამსახურის შეტყობინებების მთელი კონტენტის ჩვენება"</string>
diff --git a/tests/CarDeveloperOptions/res/values-kk/arrays.xml b/tests/CarDeveloperOptions/res/values-kk/arrays.xml
index 2dca861..bfa188c 100644
--- a/tests/CarDeveloperOptions/res/values-kk/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-kk/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"Тынық"</item>
     <item msgid="7044520255415007865">"Барлығы"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 секунд"</item>
+    <item msgid="772029947136115322">"30 секунд"</item>
+    <item msgid="8743663928349474087">"1 минут"</item>
+    <item msgid="1506508631223164814">"2 минут"</item>
+    <item msgid="8664703938127907662">"5 минут"</item>
+    <item msgid="5827960506924849753">"10 минут"</item>
+    <item msgid="6677424950124253938">"30 минут"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Ешқашан"</item>
+    <item msgid="2517785806387977252">"15 секунд"</item>
+    <item msgid="6347954399441173672">"30 секунд"</item>
+    <item msgid="4858305253279921789">"1 минут"</item>
+    <item msgid="8109273437140044073">"2 минут"</item>
+    <item msgid="2788593551142462622">"5 минут"</item>
+    <item msgid="8012672183888404961">"10 минут"</item>
+    <item msgid="8271452751594598661">"30 минут"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Бірден"</item>
     <item msgid="2038544972632026612">"5 секунд"</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"10 минут"</item>
     <item msgid="7258394417241706272">"30 минут"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Кішi"</item>
+    <item msgid="591935967183159581">"Әдепкі"</item>
+    <item msgid="1714184661981538355">"Үлкен"</item>
+    <item msgid="6195563047686707484">"Ең үлкен"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Тексеруде…"</item>
+    <item msgid="5597394826455877834">"Қосылуда..."</item>
+    <item msgid="5848277343965362748">"Растауда…"</item>
+    <item msgid="3391238031431440676">"IP мекенжайына қол жеткізуде…"</item>
+    <item msgid="5257597310494000224">"Жалғанған"</item>
+    <item msgid="8472497592913050396">"Тоқтатылған"</item>
+    <item msgid="1228072488815999109">"Ажыратылуда…"</item>
+    <item msgid="7253087004422991731">"Ажыратылған"</item>
+    <item msgid="4169850917304751227">"Сәтсіз"</item>
+    <item msgid="6266658166690831131">"Бөгелген"</item>
+    <item msgid="4517230805854909775">"Нашар байланысты уақытша қолданбау"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Іздеуде…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> қосылуда…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> арқылы расталуда…"</item>
+    <item msgid="5145158315060185414">"IP мекенжайы <xliff:g id="NETWORK_NAME">%1$s</xliff:g> желісінен алынуда…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> жалғанған"</item>
+    <item msgid="6600156231416890902">"Тоқтатылған"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> байланысынан ажыратылуда…"</item>
+    <item msgid="3980154971187953257">"Ажыратылған"</item>
+    <item msgid="2847316776634969068">"Сәтсіз"</item>
+    <item msgid="4390990424746035383">"Бөгелген"</item>
+    <item msgid="3618248791367063949">"Нашар байланысты уақытша қолданбау"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Push түймесі"</item>
+    <item msgid="7401896200768713930">"Басқа құрылғының PIN коды"</item>
+    <item msgid="4526848028011846710">"Осы құралдың PIN коды"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Жалғанған"</item>
     <item msgid="983792611851499732">"Шақырылған"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"Қолжетімді"</item>
     <item msgid="3230556734162006146">"Аумақтан тыc"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 минут"</item>
+    <item msgid="2759776603549270587">"5 минут"</item>
+    <item msgid="167772676068860015">"1 сағат"</item>
+    <item msgid="5985477119043628504">"Ешқашан"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"Жүйенінің әдепкі мәнін пайдалану: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Нашар"</item>
+    <item msgid="7882129634982603782">"Нашар"</item>
+    <item msgid="6457357501905996224">"Орташа"</item>
+    <item msgid="405271628162918841">"Жақсы"</item>
+    <item msgid="999948812884919584">"Өте жақсы"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"Соңғы 30 күн"</item>
     <item msgid="3211287705232736964">"Пайдалану циклын орнату…"</item>
@@ -106,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Статикалық"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Ешқандай"</item>
     <item msgid="1464741437353223198">"Қолмен"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"фонда іске қосу"</item>
     <item msgid="6423861043647911030">"арнайы мүмкіндіктердің дыбыс деңгейі"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Орналасу"</item>
+    <item msgid="6656077694190491067">"Орналасу"</item>
+    <item msgid="8790228218278477369">"Орналасу"</item>
+    <item msgid="7836406246005211990">"Діріл"</item>
+    <item msgid="3951439024549922598">"Контактілерді оқу"</item>
+    <item msgid="8802152411647068">"Контактілерді жөндеу"</item>
+    <item msgid="229544934599698735">"Қоңыраулар тіркелімін оқу"</item>
+    <item msgid="7396102294405899613">"Қоңыраулар тіркелімін өзгерту"</item>
+    <item msgid="3597797992398484655">"Күнтізбені оқу"</item>
+    <item msgid="2705975774250907343">"Күнтізбені жөндеу"</item>
+    <item msgid="4668747371441932697">"Орналасу"</item>
+    <item msgid="1487578921720243646">"Пост хабарлары"</item>
+    <item msgid="4636080349724146638">"Орналасу"</item>
+    <item msgid="673510900286463926">"Қоңырау шалу"</item>
+    <item msgid="542083422784609790">"SMS/MMS оқу"</item>
+    <item msgid="1033780373029588436">"SMS/MMS жазу"</item>
+    <item msgid="5647111115517787488">"SMS/MMS алу"</item>
+    <item msgid="8591105601108455893">"SMS/MMS алу"</item>
+    <item msgid="7730995008517841903">"SMS/MMS алу"</item>
+    <item msgid="2613033109026626086">"SMS/MMS алу"</item>
+    <item msgid="3037159047591081136">"SMS/MMS жіберу"</item>
+    <item msgid="4726682243833913568">"SMS/MMS оқу"</item>
+    <item msgid="6555678522277865572">"SMS/MMS жазу"</item>
+    <item msgid="6981734935578130884">"Параметрлерді өзгерту"</item>
+    <item msgid="8705854389991425629">"Үстінен сызу"</item>
+    <item msgid="5861356020344153651">"Хабарларға кіру"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Аудио жазу"</item>
+    <item msgid="4516840825756409490">"Аудио ойнату"</item>
+    <item msgid="6811712502798183957">"Ақпарат алмастыру қорын оқу"</item>
+    <item msgid="2780369012602289114">"Ақпарат алмастыру қорын өзгерту"</item>
+    <item msgid="2331359440170850868">"Meдиа түймелері"</item>
+    <item msgid="6133599737122751231">"Аудио көздеу"</item>
+    <item msgid="6844485713404805301">"Негізгі дыбыс"</item>
+    <item msgid="1600379420669104929">"Дыбыс қаттылығы"</item>
+    <item msgid="6296768210470214866">"Қоңыраудың дыбыс деңгейі"</item>
+    <item msgid="510690696071629241">"Mультимeдиа дыбыс деңгейі"</item>
+    <item msgid="406861638631430109">"Оятқыштың дыбыс деңгейі"</item>
+    <item msgid="4715864795872233884">"Хабарландырудың дыбыс деңгейі"</item>
+    <item msgid="2311478519251301183">"Bluetooth дыбысының қаттылығы"</item>
+    <item msgid="5133991377896747027">"Ұйқы бермеу"</item>
+    <item msgid="2464189519136248621">"Орын"</item>
+    <item msgid="2062677934050803037">"Орналасу"</item>
+    <item msgid="1735171933192715957">"Пайдалану статистикасын алу"</item>
+    <item msgid="1014093788778383554">"Микрофон дыбысын өшіру/қосу"</item>
+    <item msgid="4199297950608622850">"Қалқымалы хабарландыру көрсету"</item>
+    <item msgid="2527962435313398821">"Жоба тасушысы"</item>
+    <item msgid="5117506254221861929">"VPN функциясын белсендіру"</item>
+    <item msgid="8291198322681891160">"Артқы фонды жазу"</item>
+    <item msgid="7106921284621230961">"Көмекші құрылым"</item>
+    <item msgid="4496533640894624799">"Көмекші скриншот"</item>
+    <item msgid="2598847264853993611">"Телефон күйін оқу"</item>
+    <item msgid="9215610846802973353">"Дауыстық хабар қосу"</item>
+    <item msgid="9186411956086478261">"SIP пайдалану"</item>
+    <item msgid="6884763100104539558">"Шығыс қоңырауды өңдеу"</item>
+    <item msgid="125513972170580692">"Саусақ ізі"</item>
+    <item msgid="2556071024281275619">"Дене датчиктері"</item>
+    <item msgid="617168514928339387">"Ұялы таратылымдарды оқу"</item>
+    <item msgid="7134693570516523585">"Жалған орын"</item>
+    <item msgid="7224489175375229399">"Жадты оқу"</item>
+    <item msgid="8472735063903258202">"Жадқа жазу"</item>
+    <item msgid="4069276819909595110">"Экранды қосу"</item>
+    <item msgid="1228338896751121025">"Есептік жазбаларды алу"</item>
+    <item msgid="3181581793459233672">"Фонда іске қосу"</item>
+    <item msgid="2340936043025374076">"Арнайы мүмкіндіктердің дыбыс деңгейі"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Қысқа"</item>
     <item msgid="4816511817309094890">"Орташа"</item>
@@ -247,7 +369,13 @@
     <item msgid="4627069151979553527">"Көлбеу"</item>
     <item msgid="6896773537705206194">"Кішкене бас әріптер"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Өте кішкене"</item>
+    <item msgid="5091603983404027034">"Кішкене"</item>
+    <item msgid="176844712416932112">"Орташа"</item>
+    <item msgid="2784236342175159295">"Үлкен"</item>
+    <item msgid="218913203203160606">"Өте үлкен"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Әдепкі"</item>
     <item msgid="6488643537808152001">"Ешқандай"</item>
@@ -262,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Әдепкі параметр"</item>
+    <item msgid="8611890312638868524">"Қара түсте ақпен"</item>
+    <item msgid="5891360837786277638">"Ақта қарамен"</item>
+    <item msgid="2798457065945456853">"Қара түсте сарымен"</item>
+    <item msgid="5799049811524553967">"Көк түсте сарымен"</item>
+    <item msgid="3673930830658169860">"Арнаулы"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"L2TP/IPSec, пернелері ортақ ВЖЖ"</item>
@@ -275,15 +410,32 @@
     <item msgid="2958623927055120839">"Ешқандай"</item>
     <item msgid="1157046369795346308">"Қолмен"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Ажыратылған"</item>
+    <item msgid="8754480102834556765">"Бастауда…"</item>
+    <item msgid="3351334355574270250">"Қосылуда..."</item>
+    <item msgid="8303882153995748352">"Жалғанған"</item>
+    <item msgid="9135049670787351881">"Күту уақыты"</item>
+    <item msgid="2124868417182583926">"Сәтсіз"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Сұрау"</item>
     <item msgid="7718817231348607934">"Әрқашан рұқсат емес"</item>
     <item msgid="8184570120217958741">"Әрқашан рұқсат"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Орташа"</item>
+    <item msgid="5101233285497327432">"Орташа"</item>
+    <item msgid="1555861583162930714">"Төмен"</item>
+    <item msgid="1719683776264798117">"Маңызды"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Қалыпты"</item>
+    <item msgid="6107138933849816768">"Орташа"</item>
+    <item msgid="182695359839047859">"Төмен"</item>
+    <item msgid="8577246509202964244">"Өте аз"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Тұрақты"</item>
     <item msgid="167418068739176448">"Ең жоғары белсенділік"</item>
@@ -304,7 +456,7 @@
     <item msgid="3151827842194201728">"Көгілдір"</item>
     <item msgid="3228505970082457852">"Көк"</item>
     <item msgid="6590260735734795647">"Индиго түсі"</item>
-    <item msgid="3521763377357218577">"Қызылкүрең"</item>
+    <item msgid="3521763377357218577">"Күлгін"</item>
     <item msgid="5932337981182999919">"Қызғылт"</item>
     <item msgid="5642914536624000094">"Қызыл"</item>
   </string-array>
diff --git a/tests/CarDeveloperOptions/res/values-kk/strings.xml b/tests/CarDeveloperOptions/res/values-kk/strings.xml
index 83a5afd..e3e870a 100644
--- a/tests/CarDeveloperOptions/res/values-kk/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-kk/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Экрандағы мәтінді кішірейтеді немесе үлкейтеді."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Кішірек ету"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Үлкенірек ету"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Мәтін үлгісі"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Оз қаласының ғажап сиқыршысы"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11-тарау: Ғажайып жасыл қала Оз"</string>
@@ -349,8 +348,8 @@
     <string name="time_picker_title" msgid="1596400307061268660">"Уақыт"</string>
     <string name="lock_after_timeout" msgid="7755520959071097304">"Aвтоматты құлыптау"</string>
     <string name="lock_after_timeout_summary" msgid="3160517585613694740">"<xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> ұйқыдан кейін"</string>
-    <string name="lock_immediately_summary_with_exception" msgid="6442552135409347556">"Ұйықтаудан кейін бірден, <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> арқылы құлпы ашулы ұстаған кезді қоспағанда"</string>
-    <string name="lock_after_timeout_summary_with_exception" msgid="7218267834086717545">"<xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> ашық күйінде ұстап тұрмаса, ұйықтағаннан кейін <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> өткен соң"</string>
+    <string name="lock_immediately_summary_with_exception" msgid="6442552135409347556">"Ұйықтаудан кейін бірден (<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> ашық күйінде ұстап тұрмаса)"</string>
+    <string name="lock_after_timeout_summary_with_exception" msgid="7218267834086717545">"Ұйқыдан кейін <xliff:g id="TIMEOUT_STRING">%1$s</xliff:g> өткен соң (<xliff:g id="TRUST_AGENT_NAME">%2$s</xliff:g> ашық күйінде ұстап тұрмаса)"</string>
     <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"Құлыпталған экранда пайдаланушы ақпаратын көрсету"</string>
     <string name="owner_info_settings_title" msgid="2537966178998339896">"Құлып экраны мәтіні"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Виджеттерді қосу"</string>
@@ -469,7 +468,7 @@
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Сканерді түртіңіз"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Саусақты сканерге қойып, дірілді сезгеннен кейін көтеріңіз"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Саусағыңызды алып, қайта түртіңіз"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Саусақ ізінің басқа бөліктерін енгізу үшін саусағыңызды көтеріп тұрыңыз"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Саусақ ізінің басқа бөліктерін енгізу үшін саусағыңызды бір тигізіп, бір көтеріп тұрыңыз"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Саусақ ізі енгізілді"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Бұл белгіше шыққан кезде, саусақ ізі арқылы жеке басыңызды растаңыз не сатып алған нәрсені мақұлдаңыз"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Кейінірек"</string>
@@ -489,7 +488,7 @@
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Бұл сенсор емес"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Телефонның артындағы датчикті сұқ саусақпен түртіңіз."</string>
     <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Тіркеу аяқталмады"</string>
-    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Саусақ ізін тіркеу уақытының шегіне жеттіңіз. Әрекетті қайталаңыз."</string>
+    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Саусақ ізін тіркеу уақыты бітті. Әрекетті қайталаңыз."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Саусақ ізін тіркеу нәтиже бермеді. Әрекетті қайталаңыз немесе басқа саусақты пайдаланыңыз."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Тағы біреуін енгізу"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Келесі"</string>
@@ -502,7 +501,7 @@
     <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"Барлық саусақ іздерін жою керек пе?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"\"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" жою"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Саусақ ізі жойылсын ба?"</string>
-    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Телефон құлпын ашу, сатып алуларды авторизациялау немесе олармен қолданбаларға кіру үшін саусақ іздерін пайдалана алмайсыз"</string>
+    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Телефон құлпын ашу, сатып алу транзакцияларын мақұлдау немесе қолданбаларға кіру үшін саусақ іздерін пайдалана алмайсыз."</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Жұмыс профилінің құлпын ашу, сатып алуды авторизациялау немесе жұмыс қолданбаларына кіру үшін саусақ ізін пайдалану мүмкін болмайды"</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Иә, жою"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Шифрлау"</string>
@@ -858,7 +857,7 @@
     <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"Интернет байланысы жақсы болмаса, Wi‑Fi желісі қолданылмайды"</string>
     <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"Тек жақсы интернет байланысы бар желілерді пайдалану"</string>
     <string name="use_open_wifi_automatically_title" msgid="3084513215481454350">"Ашық желілерге қосылу"</string>
-    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"Жоғары сапалы ашық желілерге автоматты қосылу"</string>
+    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"Жоғары сапалы қоғамдық желілерге автоматты қосылу"</string>
     <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"Пайдалану үшін желіні бағалау провайдерін таңдаңыз"</string>
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"Пайдалану үшін үйлесімді желіні бағалау провайдерін таңдаңыз"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"Сертификаттар орнату"</string>
@@ -915,13 +914,13 @@
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP мекенжайы"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Сақталу жолы"</string>
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g> тіркелгі деректері"</string>
-    <string name="wifi_eap_method" msgid="3752116941487485859">"EAP (кеңейтілген растау протоколы) әдісі"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"Фаза 2 растауы"</string>
+    <string name="wifi_eap_method" msgid="3752116941487485859">"EAP әдісі"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"Аутентификацияның 2-сатысы"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"Растама мекемесінің сертификаты"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Домен"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Пайдаланушы сертификаты"</string>
     <string name="wifi_eap_identity" msgid="5280457017705738773">"Бірлік"</string>
-    <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Анонимді бірлік"</string>
+    <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Белгісіз"</string>
     <string name="wifi_password" msgid="6942983531275177771">"Құпия сөз"</string>
     <string name="wifi_show_password" msgid="7878398590772942202">"Құпия сөзді көрсету"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"Wi-Fi жиілік ауқымын таңдау"</string>
@@ -934,7 +933,7 @@
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Wi‑Fi хотспоты үшін кемінде бір диапазонды таңдаңыз:"</string>
     <string name="wifi_ip_settings" msgid="4636102290236116946">"IP параметрлері"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Құпиялылық"</string>
-    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Еркін таңдалған MAC"</string>
+    <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Кездейсоқ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Құрылғыны қосу"</string>
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Құрылғыны “<xliff:g id="SSID">%1$s</xliff:g>” желісіне қосу үшін төмендегі QR кодын ортасына туралаңыз"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR кодын сканерлеу"</string>
@@ -964,7 +963,7 @@
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Сіз екеніңізді растаңыз"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Wi-Fi құпия сөзі: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Хотспот құпия сөзі: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Құрылғы енгізу"</string>
+    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Құрылғы қосу"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Бұл желіге QR коды арқылы кіріңіз."</string>
     <string name="retry" msgid="8500839563577344702">"Қайталау"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"Басқа құрылғы пайдаланушыларымен бөлісу"</string>
@@ -1037,8 +1036,8 @@
     <string name="wifi_ip_settings_invalid_gateway" msgid="7602732367437862422">"Жарамды торап мекенжайын теріңіз."</string>
     <string name="wifi_ip_settings_invalid_dns" msgid="4471473055625376300">"Жарамды DNS мекенжайын теріңіз."</string>
     <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="392977552691002076">"Желі префиксінің ұзындығын 0 және 32 аралығында теріңіз"</string>
-    <string name="wifi_dns1" msgid="5250809981658822505">"DNS 1 (домен атауы жүйесі)"</string>
-    <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2  (домен атауы жүйесі)"</string>
+    <string name="wifi_dns1" msgid="5250809981658822505">"DNS 1"</string>
+    <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
     <string name="wifi_gateway" msgid="7455334454444443397">"Торап"</string>
     <string name="wifi_network_prefix_length" msgid="1941206966133010633">"Желі префиксінің ұзындығы"</string>
     <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi‑Fi Direct"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобильдік"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Егер Wi‑Fi қолжетімді болмаса, мобильдік желі пайдаланылады."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Мобильдік желі қолжетімді болмаса, Wi‑Fi пайдалану"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi арқылы қоңырау шалу. Wi‑Fi байланысы жоғалса, қоңырау аяқталады."</string>
@@ -1207,7 +1209,7 @@
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"Қосулы кезде экранға қарап тұрсаңыз, ол өшпейді."</string>
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"Өшірулі"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"Экранға қарап тұрған кезде, оның өшуіне жол бермейді."</string>
-    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Адаптивті ұйқы режимі экранға қараған адамды тану үшін алдыңғы камераны пайдаланады. Ол құрылғыда жұмыс істейді, суреттер Google жүйесінде сақталмайды және оған жіберілмейді."</string>
+    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"\"Экран сезімталдығы\" функциясы алдыңғы камера арқылы экранға адамның қарап тұрғанын тани алады. Ол құрылғыда ғана жұмыс істейді. Суреттер Google жүйесінде сақталмайды және оған жіберілмейді."</string>
     <string name="night_display_title" msgid="1305002424893349814">"Түнгі жарық"</string>
     <string name="night_display_text" msgid="5330502493684652527">"\"Түнгі жарық\" функциясы экраныңызға ашық сары реңк береді. Бұл қараңғыда экранға қарауды жеңілдетеді әрі жылдам ұйықтауға да көмектесуі мүмкін."</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Уақыт кестесі"</string>
@@ -1456,7 +1458,7 @@
     <string name="storage_detail_system" msgid="6784247618772153283">"Жүйе"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"<xliff:g id="NAME">^1</xliff:g> ашу"</string>
     <string name="storage_detail_dialog_other" msgid="5073511663616043370">"Басқаларында қолданбалар сақтаған файлдар, интернет немесе Bluetooth арқылы жүктелген файлдар, Android файлдары, т.б. қамтылады. \n\n<xliff:g id="NAME">^1</xliff:g> құрылғысындағы мазмұндарды көру үшін \"Зерттеу\" түймесін түртіңіз."</string>
-    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Жүйе Android <xliff:g id="VERSION">%s</xliff:g> нұсқасын іске қосуға пайдаланылатын файлдарды қамтиды"</string>
+    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"\"Жүйе\" қалтасында Android <xliff:g id="VERSION">%s</xliff:g> жұмысына қажетті файлдар орналасқан."</string>
     <string name="storage_detail_dialog_user" msgid="1663117417635010371">"<xliff:g id="USER_0">^1</xliff:g> жадта <xliff:g id="SIZE">^2</xliff:g> орын алатын суреттерді, музыка файлдарын, қолданбаларды не басқа деректерді сақтаған болуы керек. \n\nМәліметтерді көру үшін <xliff:g id="USER_1">^1</xliff:g> есептік жазбасына кіріңіз."</string>
     <string name="storage_wizard_init_title" msgid="3407283236421089014">"<xliff:g id="NAME">^1</xliff:g> орнату"</string>
     <string name="storage_wizard_init_external_title" msgid="6853250619674645478">"Портативті жад ретінде пайдалану"</string>
@@ -1637,7 +1639,7 @@
     <string name="sms_change_default_no_previous_dialog_text" msgid="4680224695080527907">"<xliff:g id="NEW_APP">%s</xliff:g> қолданбасы SMS қолданбасы ретінде қолданылсын ба?"</string>
     <string name="network_scorer_picker_title" msgid="1691073966560952916">"Желі рейтингісін ұсынған"</string>
     <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Ешқандай"</string>
-    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Wi‑Fi assistant өзгерту керек пе?"</string>
+    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Wi‑Fi көмек құралын ауыстыру керек пе?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Желілік байланыстарды басқару үшін <xliff:g id="CURRENT_APP">%2$s</xliff:g> орнына <xliff:g id="NEW_APP">%1$s</xliff:g> қолданбасын пайдалану керек пе?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Желілік байланыстарды басқару үшін <xliff:g id="NEW_APP">%s</xliff:g> қолданбасын пайдалану керек пе?"</string>
     <string name="mobile_unknown_sim_operator" msgid="872589370085135817">"Белгісіз SIM операторы"</string>
@@ -1840,8 +1842,8 @@
     <string name="show_running_services" msgid="1895994322704667543">"Қосылған қызметтерді көрсету"</string>
     <string name="show_background_processes" msgid="88012264528093617">"Кэштелген үрдістерді көрсету"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"Төтенше жағдай қолданбасы"</string>
-    <string name="reset_app_preferences" msgid="1426500030595212077">"Қолданба реттеуін бастапқы күйге қайтару"</string>
-    <string name="reset_app_preferences_title" msgid="792909865493673598">"Қолданба реттеулері бастапқы күйге қайтарылсын ба?"</string>
+    <string name="reset_app_preferences" msgid="1426500030595212077">"Қолданба параметрлерін бастапқы күйге қайтару"</string>
+    <string name="reset_app_preferences_title" msgid="792909865493673598">"Қолданба параметрлері бастапқы күйге қайтарылсын ба?"</string>
     <string name="reset_app_preferences_desc" msgid="7935273005301096031">"Төмендегі реттеулер бастапқы күйге қайтарылады: \n\n "<li>"Өшірілген қолданбалар"</li>\n" "<li>"Өшірілген қолданба хабарландырулары"</li>\n" "<li>"Әрекеттерге арналған әдепкі қолданбалар"</li>\n" "<li>"Фондық режимдегі дерек тасымалын шектеу"</li>\n" "<li>"Қандай да бір рұқсат шектеулері"</li>\n\n" Қолданба деректері жоғалмайды."</string>
     <string name="reset_app_preferences_button" msgid="2041894727477934656">"Бастапқы күйге қайтару"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"Кеңістікті басқару"</string>
@@ -2039,9 +2041,9 @@
     <string name="vision_settings_description" msgid="3476589459009287332">"Бұл құрылғыны қажеттіліктерге сай реттей аласыз. Бұл арнайы мүмкіндіктерді кейінірек \"Параметрлер\" тармағында өзгертуге болады."</string>
     <string name="vision_settings_suggestion_title" msgid="7268661419110951128">"Қаріп өлшемін өзгерту"</string>
     <string name="screen_reader_category_title" msgid="6300714148519645544">"Экранды оқу құралдары"</string>
-    <string name="audio_and_captions_category_title" msgid="6140472938769619212">"Аудиомазмұн және экранға шығатын мәтін"</string>
+    <string name="audio_and_captions_category_title" msgid="6140472938769619212">"Аудио және экранға шығатын мәтін"</string>
     <string name="display_category_title" msgid="545168481672250195">"Дисплей"</string>
-    <string name="interaction_control_category_title" msgid="8775039211811947683">"Өзара әрекеттестікті басқару элементтері"</string>
+    <string name="interaction_control_category_title" msgid="8775039211811947683">"Басқару элементтері"</string>
     <string name="user_installed_services_category_title" msgid="4288689493753221319">"Жүктеп алынған қызметтер"</string>
     <string name="experimental_category_title" msgid="3797000069740110717">"Эксперименттік"</string>
     <string name="feature_flags_dashboard_title" msgid="3153034144122754381">"Функция жалаушалары"</string>
@@ -2604,7 +2606,7 @@
     <string name="background_data_summary" msgid="799640633948841990">"Қолданбалар деректерді синхрондау, жіберу жұмыстарын орындайды және кез келген уақытта қабылдай алады."</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"Жалпы мағлұматтар дерекқоры істен шығарылсын ба?"</string>
     <string name="background_data_dialog_message" msgid="8126774244911656527">"Артқы шеп деректерін өшіру батарея жұмысын ұзартады және дерек қолданысын азайтады. Кейбір қолданбалар сонда да артқы шеп байланысын қолдануы мүмкін."</string>
-    <string name="sync_automatically" msgid="5746117156896468099">"Қолданба дерекқорын авто синхрондау"</string>
+    <string name="sync_automatically" msgid="5746117156896468099">"Қолданба дерегін автосинхрондау"</string>
     <string name="sync_enabled" msgid="535172627223336983">"Синхронизация ҚОСУЛЫ"</string>
     <string name="sync_disabled" msgid="713721807204805062">"Синх ӨШІРУЛІ"</string>
     <string name="sync_error" msgid="988155155932442765">"Синх қателігі"</string>
@@ -2664,12 +2666,12 @@
     <string name="data_usage_menu_show_ethernet" msgid="2130574690318410238">"Этернет қолданысын көрсету"</string>
     <string name="data_usage_menu_hide_ethernet" msgid="1191233197312414533">"Ethernet пайдал-ды жасыру"</string>
     <string name="data_usage_menu_metered" msgid="3087525150259956831">"Желілік шектеулер"</string>
-    <string name="data_usage_menu_auto_sync" msgid="3350154877737572146">"Дерекқорды авто-синхрондау"</string>
+    <string name="data_usage_menu_auto_sync" msgid="3350154877737572146">"Деректі автосинхрондау"</string>
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"SIM карталары"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"Шектеуде кідіртілген"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"Деректерді автосинхрондау"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Жеке деректерді авто-синхрондау"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Жұмыс деректерін авто-синхрондау"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Жеке деректі автосинхрондау"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Жұмыс дерегін автосинхрондау"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"Айналымды өзгерту…"</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"Дерекқор қолдану айналымын қайта реттеу күні:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"Бұл уақыт аралығында ешқандай қолданба дерек пайдаланған жоқ."</string>
@@ -2848,7 +2850,7 @@
     <string name="user_settings_title" msgid="7917598650933179545">"Бірнеше пайдаланушы"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"Жаңа пайдаланушыларды енгізу арқылы құрылғыны ортақ пайдаланыңыз. Әр пайдаланушының құрылғыда арнаулы негізгі экрандар, есептік жазбалар, қолданбалар, параметрлер, т.б. үшін жеке профилі болады."</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"Жаңа пайдаланушыларды енгізу арқылы планшетті ортақ пайдаланыңыз. Әр пайдаланушының планшетте арнаулы негізгі экрандар, есептік жазбалар, қолданбалар, параметрлер, т.б. үшін жеке профилі болады."</string>
-    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"Жаңа пайдаланушыларды енгізу арқылы телефонды ортақ пайдаланыңыз. Әр пайдаланушының телефонда арнаулы негізгі экрандар, есептік жазбалар, қолданбалар, параметрлер, т.б. үшін жеке профилі болады."</string>
+    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"Басқа пайдаланушыларды қосу арқылы телефонды бөлісіп пайдалануға болады. Әр пайдаланушының өз негізгі экраны, есептік жазбалары, қолданбалары, параметрлері, т.б. үшін жеке профилі болады."</string>
     <string name="user_list_title" msgid="6670258645246192324">"Пайдаланушылар мен профайлдар"</string>
     <string name="user_add_user_or_profile_menu" msgid="4220679989900149336">"Пайдаланушы немесе профиль қосу"</string>
     <string name="user_add_user_menu" msgid="9006572936456324794">"Пайдаланушы қосу"</string>
@@ -2871,7 +2873,7 @@
     <string name="user_add_user_message_long" msgid="686637203224195465">"Қосымша профильдер жасай отырып, бұл құрылғыны басқалармен ортақ пайдалануға болады. Әр пайдаланушы қолданбаларды, тұсқағаздарды орнатып, профилін өз қалауынша реттей алады. Сондай-ақ барлығы ортақ қолданатын Wi‑Fi сияқты параметрлерді де реттеуге болады.\n\nЖаңа пайдаланушы енгізілгенде, ол өз профилін реттеуі керек болады.\n\nКез келген пайдаланушы барлық басқа пайдаланушылар үшін қолданбаларды жаңарта алады. Арнайы мүмкіндіктерге қатысты параметрлер мен қызметтер жаңа пайдаланушыға өтпейді."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Жаңа пайдаланушыны қосқанда сол адам өз кеңістігін реттеуі керек.\n\nКез келген пайдаланушы барлық басқа пайдаланушылар үшін қолданбаларды жаңарта алады."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Профиль құру керек пе?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Пайдаланушы құрылығыны алып, өз профилін реттеуі керек."</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Пайдаланушы құрылғыны алып, өз профилін реттеуі керек."</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"Профайл қазір жасақталсын ба?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"Қазір құру"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"Қазір емес"</string>
@@ -2880,7 +2882,7 @@
     <string name="user_cannot_add_accounts_message" msgid="5993561303748749097">"Шектелген профайлдардың есептік жазба қосу мүмкіндігі жоқ"</string>
     <string name="user_remove_user_menu" msgid="3505139157217459864">"<xliff:g id="USER_NAME">%1$s</xliff:g> осы құралдан жою"</string>
     <string name="user_lockscreen_settings" msgid="3820813814848394568">"Құлып экранының параметрлері"</string>
-    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"Пайдаланушыларды құлып экранынан енгізу"</string>
+    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"Құлыптаулы экраннан пайдаланушыларды енгізу"</string>
     <string name="user_new_user_name" msgid="3880395219777884838">"Жаңа пайдаланушы"</string>
     <string name="user_new_profile_name" msgid="3074939718101489937">"Жаңа профайл"</string>
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"Өзіңізді жоясыз ба?"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Басқа төлем қолданбасы ашық кезді қоспағанда"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"\"Tap &amp; pay\" терминалында төлеу жолы:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Терминалда төлеу"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Төлем қолданбасын орнатыңыз. Содан кейін жай телефонның артқы жағын тигізбейтін таңбасы бар кез келген терминал жанында ұстап тұрыңыз."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Төлем қолданбасын реттеңіз. Содан кейін телефонның артқы жағын контактісіз төлем таңбасы бар терминалға жақындатыңыз."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Түсінікті"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Қосымша…"</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Қалаулы ретінде реттеу қажет пе?"</string>
@@ -3005,8 +3007,8 @@
     <string name="sim_editor_number" msgid="1757338150165234970">"Нөмір"</string>
     <string name="sim_editor_color" msgid="373059962306191123">"SIM түсі"</string>
     <string name="sim_card_select_title" msgid="4925862525985187946">"SIM картасын таңдау"</string>
-    <string name="color_orange" msgid="3159707916066563431">"Сарғылт"</string>
-    <string name="color_purple" msgid="4391440966734810713">"Қызылкүрең"</string>
+    <string name="color_orange" msgid="3159707916066563431">"Қызғылт сары"</string>
+    <string name="color_purple" msgid="4391440966734810713">"Күлгін"</string>
     <string name="sim_no_inserted_msg" msgid="1197884607569714609">"SIM карталары салынбаған"</string>
     <string name="sim_status_title" msgid="4483653750844520871">"SIM күйі"</string>
     <string name="sim_status_title_sim_slot" msgid="416005570947546124">"SIM картасының күйі (sim ұясы: %1$d)"</string>
@@ -3034,8 +3036,8 @@
     <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"дерек шығыны"</string>
     <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"хотспот"</string>
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"Жалғанған құрылғылар"</string>
-    <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, көлік жүргізу режимі, NFC"</string>
-    <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"Bluetooth, көлік жүргізу режимі"</string>
+    <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, автокөлік режимі, NFC"</string>
+    <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"Bluetooth, автокөлік режимі"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"Қолданбалар мен хабарландырулар"</string>
@@ -3135,7 +3137,7 @@
     <string name="media_volume_option_title" msgid="3553411883305505682">"Mультимeдиа дыбыс деңгейі"</string>
     <string name="remote_media_volume_option_title" msgid="6355710054191873836">"Трансляцияның дыбыс деңгейі"</string>
     <string name="call_volume_option_title" msgid="5028003296631037334">"Сөйлескендегі дыбыс деңгейі"</string>
-    <string name="alarm_volume_option_title" msgid="3184076022438477047">"Дабылдың дыбыс деңгейі"</string>
+    <string name="alarm_volume_option_title" msgid="3184076022438477047">"Оятқыштың дыбыс деңгейі"</string>
     <string name="ring_volume_option_title" msgid="2038924918468372264">"Қоңыраудың дыбыс деңгейі"</string>
     <string name="notification_volume_option_title" msgid="1358512611511348260">"Хабарландырудың дыбыс деңгейі"</string>
     <string name="ringtone_title" msgid="1409086028485922583">"Телефон әуені"</string>
@@ -3160,7 +3162,7 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Діріл"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Дыбыстарды қосу"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"Live Caption"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"Автоматты субтитр мультимедиасы"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"Автоматты субтитр қосу"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Ешқашан"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> іске қосылды</item>
@@ -3319,12 +3321,12 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"Жыпылықтаған жарық"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Құлып экранында"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Жұмыс профилі өшірулі болғанда"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Бүкіл хабарландыру мазмұнын көрсету"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Хабарландыруды толық көрсету"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Құпия мәліметті жасыру"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Хабарландыруларды мүлде көрсетпеу"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Құрылғы құлыптаулы кезде, хабарландырулар қалай көрсетілуі керек?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"Хабарландырулар"</string>
-    <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Жұмыс хабарландыруының бүкіл мазмұнын көрсету"</string>
+    <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Жұмыс хабарландыруын толық көрсету"</string>
     <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Маңызды жұмыс мазмұнын жасыру"</string>
     <string name="lock_screen_notifications_interstitial_message_profile" msgid="3324187664458600354">"Құрылғы бекітілген болса, профиль хабарландырулары қалай көрсетілуі керек?"</string>
     <string name="lock_screen_notifications_interstitial_title_profile" msgid="4043621508889929254">"Профиль хабарландырулары"</string>
@@ -3675,7 +3677,7 @@
     <string name="default_app" msgid="8861276008866619872">"(Әдепкі)"</string>
     <string name="system_app" msgid="4111402206594443265">"(Жүйе)"</string>
     <string name="system_default_app" msgid="1454719098589351197">"(Жүйенің әдепкі мәні)"</string>
-    <string name="apps_storage" msgid="5658466038269046038">"Қолданбалар қоймасы"</string>
+    <string name="apps_storage" msgid="5658466038269046038">"Қолданбалар жады"</string>
     <string name="usage_access" msgid="2023443456361489516">"Пайдалану тарихын көру"</string>
     <string name="permit_usage_access" msgid="3321727608629752758">"Пайдалануға рұқсат беру"</string>
     <string name="app_usage_preference" msgid="5691545073101551727">"Қолданба пайдалану параметрлері"</string>
@@ -3762,7 +3764,7 @@
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Қолданбаға экран кескінін пайдалануға рұқсат ету"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Экранды жарықтандыру"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"Көмекші қолданба экрандағы не скриншоттағы мәтінге кірген кезде, экранның шеттері жанады"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"Көмекші қолданбалар көріп жатқан экран ақпаратының негізінде сізге көмектесе алады. Кейбір қолданбалар көмекті арттыру үшін іске қосу құралын да, дауыспен енгізу қызметтерін де пайдаланады."</string>
+    <string name="assist_footer" msgid="7030121180457472165">"Көмекші қолданбалар ашық тұрған экрандағы ақпарат бойынша көмек бере алады. Кейбір қолданбалар қосымша көмек ретінде іске қосу құралын да, дауыспен енгізу қызметтерін де пайдаланады."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Жадты орташа пайдалануы"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Жадты ең көп пайдалануы"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Жадтың пайдаланылуы"</string>
@@ -4069,7 +4071,7 @@
     <string name="premium_sms_warning" msgid="7604011651486294515">"Ақылы SMS жіберу үшін оператор тарифтеріне сәйкес ақы алынады. Егер қолданбаға рұқсат берсеңіз, сол қолданба арқылы ақылы SMS жібере аласыз."</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"Ақылы SMS жіберу"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"Өшірулі"</string>
-    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g> құрылғысына қосылған"</string>
+    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g> құрылғысына жалғанған"</string>
     <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"Түрлі құрылғыларға қосылған"</string>
     <string name="demo_mode" msgid="3831081808592541104">"Жүйе интерфейсінің демо режимі"</string>
     <string name="dark_ui_mode" msgid="703844190192599217">"Тақырып"</string>
@@ -4129,7 +4131,7 @@
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін телефонды қолыңызға алыңыз."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін планшетіңізді таңдаңыз."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін құрылғыңызды таңдаңыз."</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Телефонды тексеру үшін түртіңіз"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Телефонды тексеру үшін түрту"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Планшетті тексеру үшін түртіңіз"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Құрылғыны тексеру үшін түртіңіз"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Уақытты, хабарландыруларды және басқа ақпаратты көру үшін экранды түртіңіз."</string>
@@ -4234,7 +4236,7 @@
     <string name="app_names_concatenation_template_2" msgid="8267577900046506189">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
     <string name="app_names_concatenation_template_3" msgid="5129064036161862327">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>, <xliff:g id="THIRD_APP_NAME">%3$s</xliff:g>"</string>
     <string name="storage_photos_videos" msgid="1890829312367477559">"Суреттер және бейнелер"</string>
-    <string name="storage_music_audio" msgid="3661289086715297149">"Музыка және аудиомазмұн"</string>
+    <string name="storage_music_audio" msgid="3661289086715297149">"Музыка және аудио"</string>
     <string name="storage_games" msgid="7740038143749092373">"Ойындар"</string>
     <string name="storage_other_apps" msgid="3202407095387420842">"Басқа қолданбалар"</string>
     <string name="storage_files" msgid="2087824267937487880">"Файлдар"</string>
diff --git a/tests/CarDeveloperOptions/res/values-km/arrays.xml b/tests/CarDeveloperOptions/res/values-km/arrays.xml
index 5951f65..299a516 100644
--- a/tests/CarDeveloperOptions/res/values-km/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-km/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"រត់នៅក្នុងផ្ទៃខាងក្រោយ"</item>
     <item msgid="6423861043647911030">"កម្រិតសំឡេងភាពងាយស្រួល"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ទី​តាំង​"</item>
+    <item msgid="6656077694190491067">"ទី​តាំង​"</item>
+    <item msgid="8790228218278477369">"ទី​តាំង​"</item>
+    <item msgid="7836406246005211990">"ញ័រ"</item>
+    <item msgid="3951439024549922598">"អាន​ទំនាក់ទំនង"</item>
+    <item msgid="8802152411647068">"កែ​ទំនាក់ទំនង"</item>
+    <item msgid="229544934599698735">"អាន​កំណត់ហេតុ​ហៅ"</item>
+    <item msgid="7396102294405899613">"កែ​បញ្ជី​ហៅ"</item>
+    <item msgid="3597797992398484655">"អាន​ប្រតិទិន"</item>
+    <item msgid="2705975774250907343">"កែ​ប្រតិទិន"</item>
+    <item msgid="4668747371441932697">"ទី​តាំង​"</item>
+    <item msgid="1487578921720243646">"ប្រកាស​ការ​ជូន​ដំណឹង"</item>
+    <item msgid="4636080349724146638">"ទី​តាំង​"</item>
+    <item msgid="673510900286463926">"ហៅ​ទូរស័ព្ទ"</item>
+    <item msgid="542083422784609790">"អាន​សារ SMS/MMS"</item>
+    <item msgid="1033780373029588436">"សរសេរ​សារ SMS/MMS"</item>
+    <item msgid="5647111115517787488">"ទទួល SMS/MMS"</item>
+    <item msgid="8591105601108455893">"ទទួល SMS/MMS​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​"</item>
+    <item msgid="7730995008517841903">"ទទួល SMS/MMS"</item>
+    <item msgid="2613033109026626086">"ទទួល SMS/MMS"</item>
+    <item msgid="3037159047591081136">"ផ្ញើ SMS/MMS"</item>
+    <item msgid="4726682243833913568">"អាន​សារ SMS/MMS"</item>
+    <item msgid="6555678522277865572">"សរសេរ​សារ SMS/MMS"</item>
+    <item msgid="6981734935578130884">"កែ​ការ​កំណត់"</item>
+    <item msgid="8705854389991425629">"គូរ​​​ខាង​លើ"</item>
+    <item msgid="5861356020344153651">"​ជូន​ដំណឹង​ចូល​ដំណើរការ"</item>
+    <item msgid="78432174621628659">"កាមេរ៉ា"</item>
+    <item msgid="3986116419882154794">"ថត​សំឡេង"</item>
+    <item msgid="4516840825756409490">"ចាក់អូឌីយ៉ូ"</item>
+    <item msgid="6811712502798183957">"អាន​ក្ដារតម្បៀតខ្ទាស់"</item>
+    <item msgid="2780369012602289114">"កែ​ក្ដារតម្បៀតខ្ទាស់"</item>
+    <item msgid="2331359440170850868">"ប៊ូតុង​មេឌៀ"</item>
+    <item msgid="6133599737122751231">"ការ​ផ្ដោត​សំឡេង"</item>
+    <item msgid="6844485713404805301">"កម្រិត​សំឡេង​មេ"</item>
+    <item msgid="1600379420669104929">"កម្រិត​សំឡេង"</item>
+    <item msgid="6296768210470214866">"កម្រិត​សំឡេង​រោទ៍"</item>
+    <item msgid="510690696071629241">"កម្រិត​សំឡេង​មេឌៀ"</item>
+    <item msgid="406861638631430109">"កម្រិត​សំឡេងម៉ោង​រោទ៍"</item>
+    <item msgid="4715864795872233884">"កម្រិត​សំឡេង​ការ​ជូន​ដំណឹង"</item>
+    <item msgid="2311478519251301183">"កម្រិត​សំឡេង​ប៊្លូធូស"</item>
+    <item msgid="5133991377896747027">"មិន​ដេក"</item>
+    <item msgid="2464189519136248621">"ទីតាំង"</item>
+    <item msgid="2062677934050803037">"ទី​តាំង​"</item>
+    <item msgid="1735171933192715957">"ទទួល​​ស្ថិតិ​​ប្រើប្រាស់"</item>
+    <item msgid="1014093788778383554">"បិទ/បើក​សំឡេង​មីក្រូហ្វូន"</item>
+    <item msgid="4199297950608622850">"បង្ហាញថូស"</item>
+    <item msgid="2527962435313398821">"មេឌៀគម្រោង"</item>
+    <item msgid="5117506254221861929">"ធ្វើឲ្យ VPN សកម្ម"</item>
+    <item msgid="8291198322681891160">"ការបង្កើតផ្ទាំងរូបភាព"</item>
+    <item msgid="7106921284621230961">"រចនាសម្ព័ន្ធជំនួយ"</item>
+    <item msgid="4496533640894624799">"រូបថតអេក្រង់ជំនួយ"</item>
+    <item msgid="2598847264853993611">"អានស្ថានភាពទូរស័ព្ទ"</item>
+    <item msgid="9215610846802973353">"បន្ថែមសារជាសំឡេង"</item>
+    <item msgid="9186411956086478261">"ប្រើ sip"</item>
+    <item msgid="6884763100104539558">"កំពុងដំណើរការហៅចេញ"</item>
+    <item msgid="125513972170580692">"ស្នាមម្រាមដៃ"</item>
+    <item msgid="2556071024281275619">"ឧបករណ៍ចាប់សញ្ញារាងកាយ"</item>
+    <item msgid="617168514928339387">"អានការផ្សព្វផ្សាយសារចល័ត"</item>
+    <item msgid="7134693570516523585">"ទីតាំងបញ្ឆោត"</item>
+    <item msgid="7224489175375229399">"អានទំហំផ្ទុក"</item>
+    <item msgid="8472735063903258202">"សរសេរទំហំផ្ទុក"</item>
+    <item msgid="4069276819909595110">"បើកអេក្រង់"</item>
+    <item msgid="1228338896751121025">"ទទួលគណនី"</item>
+    <item msgid="3181581793459233672">"រត់នៅក្នុងផ្ទៃខាងក្រោយ"</item>
+    <item msgid="2340936043025374076">"កម្រិតសំឡេងភាពងាយស្រួល"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"ខ្លី"</item>
     <item msgid="4816511817309094890">"មធ្យម"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"កុំ​អនុញ្ញាត"</item>
     <item msgid="8184570120217958741">"អនុញ្ញាត​ជា​និច្ច"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ធម្មតា"</item>
+    <item msgid="5101233285497327432">"មធ្យម"</item>
+    <item msgid="1555861583162930714">"ទាប"</item>
+    <item msgid="1719683776264798117">"ខ្លាំង​មែនទែន"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ធម្មតា"</item>
+    <item msgid="6107138933849816768">"មធ្យម"</item>
+    <item msgid="182695359839047859">"ទាប"</item>
+    <item msgid="8577246509202964244">"សំខាន់ខ្លាំង"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ជាប់​លាប់"</item>
     <item msgid="167418068739176448">"សកម្មភាព​​លើ​គេ"</item>
@@ -379,7 +455,7 @@
   <string-array name="color_picker">
     <item msgid="3151827842194201728">"បៃតង​​ចាស់"</item>
     <item msgid="3228505970082457852">"ពណ៌ខៀវ"</item>
-    <item msgid="6590260735734795647">"ពណ៌​ឆ្លុះ"</item>
+    <item msgid="6590260735734795647">"ទឹកប៊ិក"</item>
     <item msgid="3521763377357218577">"ស្វាយ"</item>
     <item msgid="5932337981182999919">"ផ្កាឈូក"</item>
     <item msgid="5642914536624000094">"ពណ៌ក្រហម"</item>
diff --git a/tests/CarDeveloperOptions/res/values-km/strings.xml b/tests/CarDeveloperOptions/res/values-km/strings.xml
index af6f4bd..e5652ec 100644
--- a/tests/CarDeveloperOptions/res/values-km/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-km/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"ធ្វើឲ្យអត្ថបទនៅលើអេក្រង់តូចជាងមុន ឬធំជាងមុន។"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"កំណត់ឲ្យតូចជាងមុន"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"កំណត់ឲ្យធំជាងមុន"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"អត្ថបទគំរូ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"មេធ្មប់ដ៏អស្ចារ្យនៃទឹកដីពិសិដ្ឋ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"ជំពូកទី 11៖ ទីក្រុងមរកតដ៏អស្ចារ្យនៃទឹកដីពិសិដ្ឋ"</string>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"បញ្ចូល SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"សុវត្ថិភាព"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"បណ្តាញ​ដែល​បាន​លាក់"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"ប្រសិនបើ​រូតទ័រ​របស់អ្នក​មិន​បង្ហាញ​លេខសម្គាល់​បណ្តាញ ប៉ុន្តែ​អ្នក​ចង់​ភ្ជាប់វា​នៅ​ពេល​អនាគត អ្នក​អាច​កំណត់​បណ្តាញ​ដូច​ដែល​បានលាក់។\n\nសកម្មភាព​នេះ​អាច​បង្កើតឱ្យមាន​ហានិភ័យ​ផ្នែក​សុវត្ថិភាព ដោយសារ​ទូរសព្ទ​របស់អ្នក​នឹងបង្ហាញ​រលកសញ្ញា​របស់វា​ជាប្រចាំ ដើម្បី​ស្វែងរក​បណ្តាញ។\n\nការកំណត់​បណ្តាញ​ដូច​ដែល​បាន​លាក់​នឹង​មិន​ប្តូរ​ការកំណត់​រូតទ័រ​របស់អ្នក​នោះទេ។"</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"ប្រសិនបើ​រូតទ័រ​របស់អ្នក​មិន​ផ្សាយ​លេខសម្គាល់​បណ្តាញ ប៉ុន្តែ​អ្នក​ចង់​ភ្ជាប់វា​នៅ​ពេល​អនាគត អ្នក​អាច​កំណត់​បណ្តាញ​ថា​បានលាក់។\n\nសកម្មភាព​នេះ​អាច​បង្កើតឱ្យមាន​ហានិភ័យ​ផ្នែក​សុវត្ថិភាព ដោយសារ​ទូរសព្ទ​របស់អ្នក​នឹងផ្សាយ​រលកសញ្ញា​របស់វា​ជាប្រចាំ ដើម្បី​ស្វែងរក​បណ្តាញ។\n\nការកំណត់​បណ្តាញ​ថា​បាន​លាក់​នឹង​មិន​ប្តូរ​ការកំណត់​រូតទ័រ​របស់អ្នក​នោះទេ។"</string>
     <string name="wifi_signal" msgid="696548364467704808">"កម្លាំង​សញ្ញា"</string>
     <string name="wifi_status" msgid="3439931558930689940">"ស្ថានភាព"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"ល្បឿនតភ្ជាប់​សម្រាប់​ការផ្ទេរ"</string>
@@ -916,7 +915,7 @@
     <string name="passpoint_label" msgid="7429247462404128615">"បានរក្សាទុកតាមរយៈ"</string>
     <string name="passpoint_content" msgid="340527524510304327">"អត្តសញ្ញាណ <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"វិធីសាស្ត្រ EAP"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"ជំហាន​ ២ ផ្ទៀងផ្ទាត់"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"ការផ្ទៀងផ្ទាត់ជំហាន​ទី 2"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"វិញ្ញាបនបត្រ CA"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Domain"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"វិញ្ញាបនបត្រ​អ្នក​ប្រើ"</string>
@@ -946,7 +945,7 @@
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"មិនអាច​អាន​កូដ QR បានទេ។ ដាក់កូដ​ឱ្យនៅចំកណ្ដាលវិញ រួច​ព្យាយាម​ម្ដងទៀត"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"សូមព្យាយាមម្ដងទៀត។ ប្រសិនបើ​បញ្ហា​នៅតែបន្តកើតឡើង សូមទាក់ទង​ក្រុមហ៊ុនផលិត​ឧបករណ៍"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"មានអ្វីមួយ​ខុសប្រក្រតី"</string>
-    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"សូមប្រាកដថា​ឧបករណ៍​ត្រូវបានបើក និងសាកថ្ម​ចូលហើយ"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"សូមប្រាកដថា​ឧបករណ៍​ត្រូវបានដោត សាកថ្ម និងបើក"</string>
     <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"សូមប្រាកដថា​ឧបករណ៍​ត្រូវបានបើក និងសាកថ្ម​ចូលហើយ។ ប្រសិនបើ​បញ្ហា​នៅតែបន្តកើតឡើង សូមទាក់ទង​ក្រុមហ៊ុនផលិត​ឧបករណ៍"</string>
     <string name="wifi_dpp_failure_not_supported" msgid="111779621766171626">"មិន​អាច​បញ្ចូល “<xliff:g id="SSID">%1$s</xliff:g>” ទៅក្នុងឧបករណ៍​នេះ​បាន​ទេ"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"សូម​ពិនិត្យមើល​ការតភ្ជាប់ រួចព្យាយាម​ម្ដងទៀត"</string>
@@ -1025,7 +1024,7 @@
     <string name="wifi_details_subnet_mask" msgid="53396707004763012">"របាំងបណ្តាញរង"</string>
     <string name="wifi_details_dns" msgid="1118251455740116559">"DNS"</string>
     <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"អាសយដ្ឋាន IPv6"</string>
-    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"បណ្ដាញ​បាន​រក្សាទុក"</string>
+    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"បណ្ដាញ​ដែលបាន​រក្សាទុក"</string>
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"ការ​ជាវ"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"ទូរសព្ទ​ចល័ត"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ប្រសិនបើ​មិនអាច​ប្រើ Wi‑Fi សូមប្រើ​បណ្ដាញ​ទូរសព្ទ​ចល័ត"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ប្រសិនបើ​មិន​អាច​ប្រើបណ្ដាញ​ទូរសព្ទ​ចល័ត សូម​ប្រើ Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ហៅទូរសព្ទតាមរយៈ Wi‑Fi ។ ប្រសិនបើ​ដាច់ Wi‑Fi ការហៅទូរសព្ទនឹងបញ្ចប់។"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"សូម​បញ្ចូល​ស៊ីមកាត និង​ចាប់ផ្ដើម​ឡើង​វិញ"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"សូម​ភ្ជាប់​អ៊ីនធឺណិត"</string>
     <string name="location_title" msgid="8664674161765477168">"ទីតាំង​ខ្ញុំ"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ទីតាំងសម្រាប់ប្រវត្តិរូបការងាររបស់អ្នក"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ទីតាំងសម្រាប់កម្រងព័ត៌មានការងារ"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"ការអនុញ្ញាតកម្មវិធី"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"ទីតាំង​បាន​បិទ"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -2278,7 +2280,7 @@
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"បើក​កម្មវិធី​សន្សំ​ថ្ម​"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"អាចនឹងឆាប់​អស់​ថ្ម​​ជាងធម្មតា"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"កម្មវិធីសន្សំថ្មបានបើក"</string>
-    <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"មុខងារ​មួយចំនួន​អាច​ត្រូវ​បាន​កម្រិត"</string>
+    <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"មុខងារ​មួយចំនួន​អាច​ត្រូវ​បាន​ដាក់កំហិត"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"ទូរសព្ទ​ត្រូវបានប្រើ​ប្រាស់ច្រើន​ជាង​ធម្មតា"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"ថេប្លេត​ត្រូវបានប្រើប្រាស់ច្រើន​ជាង​ធម្មតា"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"ឧបករណ៍​ត្រូវបានប្រើប្រាស់​ច្រើន​ជាង​ធម្មតា"</string>
@@ -2599,7 +2601,7 @@
     <string name="work_mode_label" msgid="6845849194740195757">"កម្រងព័ត៌មានការងារ"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"គ្រប់គ្រងដោយ​ស្ថាប័ន​របស់អ្នក"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"កម្មវិធី និង​ការ​ជូនដំណឹង​បាន​បិទ"</string>
-    <string name="remove_managed_profile_label" msgid="4625542553784793536">"លុប​ប្រវត្តិរូប​ការងារ"</string>
+    <string name="remove_managed_profile_label" msgid="4625542553784793536">"លុបកម្រងព័ត៌មានការងារ"</string>
     <string name="background_data" msgid="8275750862371471171">"ទិន្នន័យ​ផ្ទៃ​ខាង​ក្រោយ"</string>
     <string name="background_data_summary" msgid="799640633948841990">"កម្មវិធី​អាច​ធ្វើ​សម​កាល​កម្ម​ ផ្ញើ និង​ទទួល​ទិន្នន័យ​នៅ​ពេល​ណា​មួយ"</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"បិទ​ទិន្នន័យ​ផ្ទៃ​ខាង​ក្រោយ?"</string>
@@ -2886,7 +2888,7 @@
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"លុប​ខ្លួន​ឯង​ផ្ទាល់?"</string>
     <string name="user_confirm_remove_title" msgid="1034498514019462084">"លុបអ្នកប្រើប្រាស់​នេះ?"</string>
     <string name="user_profile_confirm_remove_title" msgid="6138684743385947063">"លុប​ប្រវត្តិ​រូប​នេះ?"</string>
-    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"លុប​ប្រវត្តិរូប​ការងារ?"</string>
+    <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"លុបកម្រងព័ត៌មានការងារឬ?"</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="2889456786320157545">"អ្នក​នឹង​បាត់បង់​ទំហំ​ ព្រម​ទាំង​ទិន្នន័យ​របស់​អ្នក​លើ​កុំព្យូទ័រ​បន្ទះ​នេះ​។ អ្នក​មិន​អាច​ធ្វើ​សកម្មភាព​នេះ​វិញ​បាន​ទេ។"</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="8441729423565705183">"អ្នក​នឹង​បាត់បង់​ទំហំ និង​ទិន្នន័យ​របស់​អ្នក​លើ​ទូរស័ព្ទ​នេះ។ អ្នក​មិន​អាច​ធ្វើ​សកម្មភាព​នេះ​វិញ​បាន​ទេ។"</string>
     <string name="user_confirm_remove_message" msgid="5202150470271756013">"កម្មវិធី និង​ទិន្នន័យ​ទាំងអស់​នឹង​ត្រូវ​បាន​លុប។"</string>
@@ -3628,7 +3630,7 @@
       <item quantity="one">សិទ្ធិអនុញ្ញាតបន្ថែម <xliff:g id="COUNT_0">%d</xliff:g></item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"គ្មានការផ្តល់សិទ្ធិអនុញ្ញាតទេ"</string>
-    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"គ្មានការស្នើសិទ្ធិអនុញ្ញាតទេ"</string>
+    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"គ្មានការអនុញ្ញាត​ដែលបានស្នើសុំទេ"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"កម្មវិធីទាំងអស់"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"កម្មវិធី​ដែល​បាន​ដំឡើង"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"កម្មវិធី​ប្រើ​ភ្លាមៗ"</string>
@@ -4079,7 +4081,7 @@
     <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"ប្រអប់​ការ​កំណត់​រហ័ស​សម្រាប់​អ្នកអភិវឌ្ឍន៍"</string>
     <string name="winscope_trace_quick_settings_title" msgid="940971040388411374">"ដាន Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="3655699045300438902">"ឧបករណ៍​ចាប់សញ្ញាបានបិទ"</string>
-    <string name="managed_profile_settings_title" msgid="4340409321523532402">"ការកំណត់ប្រវត្តិរូបការងារ"</string>
+    <string name="managed_profile_settings_title" msgid="4340409321523532402">"ការកំណត់កម្រងព័ត៌មានការងារ"</string>
     <string name="managed_profile_contact_search_title" msgid="7337225196804457095">"ការស្វែងរកទំនាក់ទំនង"</string>
     <string name="managed_profile_contact_search_summary" msgid="7278267480246726951">"អនុញ្ញាតការស្វែងរកទំនាក់ទំនងដោយស្ថាប័នរបស់អ្នកដើម្បីកំណត់អត្តសញ្ញាណអ្នកហៅ និងលេខទំនាក់ទំនង"</string>
     <string name="cross_profile_calendar_title" msgid="2351605904015067145">"ប្រតិទិនអន្តរ​កម្រងព័ត៌មាន"</string>
diff --git a/tests/CarDeveloperOptions/res/values-kn/arrays.xml b/tests/CarDeveloperOptions/res/values-kn/arrays.xml
index 073f9a3..63d5f6a 100644
--- a/tests/CarDeveloperOptions/res/values-kn/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-kn/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 ನಿಮಿಷಗಳು"</item>
     <item msgid="6677424950124253938">"30 ನಿಮಿಷಗಳು"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ಎಂದಿಗೂ ಇಲ್ಲ"</item>
+    <item msgid="2517785806387977252">"15 ಸೆಕೆಂಡುಗಳು"</item>
+    <item msgid="6347954399441173672">"30 ಸೆಕೆಂಡುಗಳು"</item>
+    <item msgid="4858305253279921789">"1 ನಿಮಿಷ"</item>
+    <item msgid="8109273437140044073">"2 ನಿಮಿಷಗಳು"</item>
+    <item msgid="2788593551142462622">"5 ನಿಮಿಷಗಳು"</item>
+    <item msgid="8012672183888404961">"10 ನಿಮಿಷಗಳು"</item>
+    <item msgid="8271452751594598661">"30 ನಿಮಿಷಗಳು"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"ತಕ್ಷಣವೇ"</item>
     <item msgid="2038544972632026612">"5 ಸೆಕೆಂಡುಗಳು"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 ನಿಮಿಷಗಳು"</item>
     <item msgid="7258394417241706272">"30 ನಿಮಿಷಗಳು"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"ಸಣ್ಣ"</item>
+    <item msgid="591935967183159581">"ಡೀಫಾಲ್ಟ್"</item>
+    <item msgid="1714184661981538355">"ದೊಡ್ಡದು"</item>
+    <item msgid="6195563047686707484">"ದೊಡ್ಡ"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="5597394826455877834">"ಸಂಪರ್ಕಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."</item>
+    <item msgid="5848277343965362748">"ದೃಢೀಕರಿಸಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="3391238031431440676">"IP ವಿಳಾಸವನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="5257597310494000224">"ಸಂಪರ್ಕಗೊಂಡಿದೆ"</item>
+    <item msgid="8472497592913050396">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</item>
+    <item msgid="1228072488815999109">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."</item>
+    <item msgid="7253087004422991731">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</item>
+    <item msgid="4169850917304751227">"ವಿಫಲವಾಗಿದೆ"</item>
+    <item msgid="6266658166690831131">"ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</item>
+    <item msgid="4517230805854909775">"ಕಳಪೆ ಸಂಪರ್ಕವನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ತಡೆಗಟ್ಟಲಾಗುತ್ತಿದೆ"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಜೊತೆ ಪ್ರಮಾಣೀಕರಿಸಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ನಿಂದ IP ವಿಳಾಸವನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ಗೆ ಸಂಪರ್ಕಪಡಿಸಲಾಗಿದೆ"</item>
+    <item msgid="6600156231416890902">"ತಡೆಹಿಡಿಯಲಾಗಿದೆ"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ನಿಂದ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ…"</item>
+    <item msgid="3980154971187953257">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</item>
+    <item msgid="2847316776634969068">"ವಿಫಲವಾಗಿದೆ"</item>
+    <item msgid="4390990424746035383">"ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ"</item>
+    <item msgid="3618248791367063949">"ಕಳಪೆ ಸಂಪರ್ಕವನ್ನು ತಾತ್ಕಾಲಿಕವಾಗಿ ತಡೆಗಟ್ಟಲಾಗುತ್ತಿದೆ"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"ಒತ್ತುವ ಬಟನ್"</item>
+    <item msgid="7401896200768713930">"ಪೀರ್ ಸಾಧನದಿಂದ ಪಿನ್‌"</item>
+    <item msgid="4526848028011846710">"ಈ ಸಾಧನದಿಂದ ಪಿನ್‌"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"ಸಂಪರ್ಕಗೊಂಡಿದೆ"</item>
     <item msgid="983792611851499732">"ಆಹ್ವಾನಿಸಲಾಗಿದೆ"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"ಕಳಪೆ"</item>
+    <item msgid="7882129634982603782">"ಕಳಪೆ"</item>
+    <item msgid="6457357501905996224">"ಸಾಮಾನ್ಯ"</item>
+    <item msgid="405271628162918841">"ಉತ್ತಮ"</item>
+    <item msgid="999948812884919584">"ಅತ್ಯುತ್ತಮ"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"ಕಳೆದ 30 ದಿನಗಳು"</item>
     <item msgid="3211287705232736964">"ಬಳಕೆಯ ಆವರ್ತನೆಯನ್ನು ಹೊಂದಿಸಿ..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"ಸ್ಥಿರ"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"ಯಾವುದೂ ಇಲ್ಲ"</item>
     <item msgid="1464741437353223198">"ಹಸ್ತಚಾಲಿತ"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಮಾಡಿ"</item>
     <item msgid="6423861043647911030">"ಪ್ರವೇಶಿಸುವಿಕೆ ವಾಲ್ಯೂಮ್‌"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ಸ್ಥಳ"</item>
+    <item msgid="6656077694190491067">"ಸ್ಥಳ"</item>
+    <item msgid="8790228218278477369">"ಸ್ಥಳ"</item>
+    <item msgid="7836406246005211990">"ವೈಬ್ರೇಟ್‌"</item>
+    <item msgid="3951439024549922598">"ಓದುವ ಸಂಪರ್ಕಗಳು"</item>
+    <item msgid="8802152411647068">"ಸಂಪರ್ಕಗಳನ್ನು ಮಾರ್ಪಡಿಸಿ"</item>
+    <item msgid="229544934599698735">"ಕರೆಯ ಲಾಗ್‌ ಓದಿ"</item>
+    <item msgid="7396102294405899613">"ಕರೆಯ ಲಾಗ್‌ ಮಾರ್ಪಡಿಸಿ"</item>
+    <item msgid="3597797992398484655">"ಕ್ಯಾಲೆಂಡರ್ ಓದಿ"</item>
+    <item msgid="2705975774250907343">"ಕ್ಯಾಲೆಂಡರ್ ಮಾರ್ಪಡಿಸಿ"</item>
+    <item msgid="4668747371441932697">"ಸ್ಥಳ"</item>
+    <item msgid="1487578921720243646">"ಪೋಸ್ಟ್‌ ಅಧಿಸೂಚನೆ"</item>
+    <item msgid="4636080349724146638">"ಸ್ಥಳ"</item>
+    <item msgid="673510900286463926">"ಫೋನ್‌ ಕರೆ"</item>
+    <item msgid="542083422784609790">"SMS/MMS ಓದಿ"</item>
+    <item msgid="1033780373029588436">"SMS/MMS ಬರೆಯಿರಿ"</item>
+    <item msgid="5647111115517787488">"SMS/MMS ಸ್ವೀಕರಿಸಿ"</item>
+    <item msgid="8591105601108455893">"SMS/MMS ಸ್ವೀಕರಿಸಿ"</item>
+    <item msgid="7730995008517841903">"SMS/MMS ಸ್ವೀಕರಿಸಿ"</item>
+    <item msgid="2613033109026626086">"SMS/MMS ಸ್ವೀಕರಿಸಿ"</item>
+    <item msgid="3037159047591081136">"SMS/MMS ಕಳುಹಿಸಿ"</item>
+    <item msgid="4726682243833913568">"SMS/MMS ಓದಿ"</item>
+    <item msgid="6555678522277865572">"SMS/MMS ಬರೆಯಿರಿ"</item>
+    <item msgid="6981734935578130884">"ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮಾರ್ಪಡಿಸಿ"</item>
+    <item msgid="8705854389991425629">"ಮೇಲಕ್ಕೆ ಎಳೆಯಿರಿ"</item>
+    <item msgid="5861356020344153651">"ಅಧಿಸೂಚನೆಗಳನ್ನು ಪ್ರವೇಶಿಸಿ"</item>
+    <item msgid="78432174621628659">"ಕ್ಯಾಮರಾ"</item>
+    <item msgid="3986116419882154794">"ಆಡಿಯೋ ರೆಕಾರ್ಡ್‌ ಮಾಡಲು"</item>
+    <item msgid="4516840825756409490">"ಆಡಿಯೋ ಪ್ಲೇ ಮಾಡಿ"</item>
+    <item msgid="6811712502798183957">"ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ ಓದಿ"</item>
+    <item msgid="2780369012602289114">"ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಮಾರ್ಪಡಿಸಿ"</item>
+    <item msgid="2331359440170850868">"ಮಾಧ್ಯಮ ಬಟನ್‌ಗಳು"</item>
+    <item msgid="6133599737122751231">"ಆಡಿಯೊ ಫೋಕಸ್"</item>
+    <item msgid="6844485713404805301">"ಮಾಸ್ಟರ್ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="1600379420669104929">"ಧ್ವನಿ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="6296768210470214866">"ರಿಂಗ್ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="510690696071629241">"ಮಾಧ್ಯಮ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="406861638631430109">"ಅಲಾರಮ್ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="4715864795872233884">"ಅಧಿಸೂಚನೆ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="2311478519251301183">"ಬ್ಲೂಟೂತ್‌‌ ವಾಲ್ಯೂಮ್"</item>
+    <item msgid="5133991377896747027">"ಎಚ್ಚರವಾಗಿಡಿ"</item>
+    <item msgid="2464189519136248621">"ಸ್ಥಳ"</item>
+    <item msgid="2062677934050803037">"ಸ್ಥಳ"</item>
+    <item msgid="1735171933192715957">"ಬಳಕೆ ಅಂಕಿಅಂಶಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</item>
+    <item msgid="1014093788778383554">"ಮೈಕ್ರೋಫೋನ್ ಮ್ಯೂಟ್/ಅನ್‌ಮ್ಯೂಟ್ ಮಾಡಿ"</item>
+    <item msgid="4199297950608622850">"ಟೋಸ್ಟ್ ತೋರಿಸಿ"</item>
+    <item msgid="2527962435313398821">"ಪ್ರಾಜೆಕ್ಟ್ ಮೀಡಿಯಾ"</item>
+    <item msgid="5117506254221861929">"VPN ಸಕ್ರಿಯಗೊಳಿಸಿ"</item>
+    <item msgid="8291198322681891160">"ವಾಲ್‌ಪೇಪರ್‌ ರೈಟ್‌ ಮಾಡಿ"</item>
+    <item msgid="7106921284621230961">"ವಿನ್ಯಾಸಕ್ಕೆ ಸಹಾಯ"</item>
+    <item msgid="4496533640894624799">"ಸ್ಕ್ರೀನ್‌ಶಾಟ್‌ಗೆ ಸಹಾಯ"</item>
+    <item msgid="2598847264853993611">"ಫೋನ್ ಸ್ಥಿತಿಯನ್ನು ರೀಡ್‌ ಮಾಡಿ"</item>
+    <item msgid="9215610846802973353">"ಧ್ವನಿಮೇಲ್ ಸೇರಿಸಿ"</item>
+    <item msgid="9186411956086478261">"sip ಬಳಸಿ"</item>
+    <item msgid="6884763100104539558">"ಹೊರಹೋಗುವ ಕರೆಯನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಿ"</item>
+    <item msgid="125513972170580692">"ಬೆರಳಚ್ಚು"</item>
+    <item msgid="2556071024281275619">"ದೇಹ ಸೆನ್ಸರ್‌ಗಳು"</item>
+    <item msgid="617168514928339387">"ಸೆಲ್ ಪ್ರಸಾರಗಳನ್ನು ರೀಡ್ ಮಾಡಿ"</item>
+    <item msgid="7134693570516523585">"ಸ್ಥಳ ನಕಲಿಸು"</item>
+    <item msgid="7224489175375229399">"ಸಂಗ್ರಹಣೆಯನ್ನು ರೀಡ್ ಮಾಡಿ"</item>
+    <item msgid="8472735063903258202">"ಸಂಗ್ರಹಣೆಯನ್ನು ರೈಟ್ ಮಾಡಿ"</item>
+    <item msgid="4069276819909595110">"ಸ್ಕ್ರೀನ್ ಆನ್ ಮಾಡಿ"</item>
+    <item msgid="1228338896751121025">"ಖಾತೆಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಿ"</item>
+    <item msgid="3181581793459233672">"ಹಿನ್ನೆಲೆಯಲ್ಲಿ ರನ್ ಮಾಡಿ"</item>
+    <item msgid="2340936043025374076">"ಪ್ರವೇಶಿಸುವಿಕೆ ವಾಲ್ಯೂಮ್‌"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"ಚಿಕ್ಕದು"</item>
     <item msgid="4816511817309094890">"ಮಧ್ಯಮ"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"ಹಸ್ತಾಕ್ಷರಲಿಪಿ"</item>
     <item msgid="6896773537705206194">"ಸ್ಮಾಲ್‌ ಕ್ಯಾಪಿಟಲ್ಸ್‌‌"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"ತುಂಬಾ ಸಣ್ಣ"</item>
+    <item msgid="5091603983404027034">"ಸಣ್ಣ"</item>
+    <item msgid="176844712416932112">"ಸಾಮಾನ್ಯ"</item>
+    <item msgid="2784236342175159295">"ದೊಡ್ಡದು"</item>
+    <item msgid="218913203203160606">"ತುಂಬಾ ದೊಡ್ಡದು"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"ಡೀಫಾಲ್ಟ್"</item>
     <item msgid="6488643537808152001">"ಯಾವುದೂ ಇಲ್ಲ"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"ಆಪ್‌‌ ಡಿಫಾಲ್ಟ್‌ ಬಳಸಿ"</item>
+    <item msgid="8611890312638868524">"ಕಪ್ಪು ಬಣ್ಣದಲ್ಲಿ ಬಿಳಿ"</item>
+    <item msgid="5891360837786277638">"ಬಿಳಿ ಬಣ್ಣದಲ್ಲಿ ಕಪ್ಪು"</item>
+    <item msgid="2798457065945456853">"ಕಪ್ಪು ಬಣ್ಣದಲ್ಲಿ ಹಳದಿ"</item>
+    <item msgid="5799049811524553967">"ನೀಲಿ ಬಣ್ಣದಲ್ಲಿ ಹಳದಿ"</item>
+    <item msgid="3673930830658169860">"ಕಸ್ಟಮ್"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"ಪೂರ್ವ-ಹಂಚಿಕೆಯಾದ ಕೀಗಳನ್ನು ಹೊಂದಿರುವ L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"ಯಾವುದೂ ಅಲ್ಲ"</item>
     <item msgid="1157046369795346308">"ಹಸ್ತಚಾಲಿತ"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ"</item>
+    <item msgid="8754480102834556765">"ಆರಂಭಿಸಲಾಗುತ್ತಿದೆ..."</item>
+    <item msgid="3351334355574270250">"ಸಂಪರ್ಕಗೊಳಿಸಲಾಗುತ್ತಿದೆ..."</item>
+    <item msgid="8303882153995748352">"ಸಂಪರ್ಕಗೊಂಡಿದೆ"</item>
+    <item msgid="9135049670787351881">"ಅವಧಿ ಮೀರಿದೆ"</item>
+    <item msgid="2124868417182583926">"ವಿಫಲವಾಗಿದೆ"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"ಕೇಳಿ"</item>
     <item msgid="7718817231348607934">"ಎಂದಿಗೂ ಅನುಮತಿಸಬೇಡಿ"</item>
     <item msgid="8184570120217958741">"ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ಸಾಮಾನ್ಯ"</item>
+    <item msgid="5101233285497327432">"ಮಧ್ಯಮ"</item>
+    <item msgid="1555861583162930714">"ಕಡಿಮೆ"</item>
+    <item msgid="1719683776264798117">"ಗಂಭೀರ"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ಸಾಮಾನ್ಯ"</item>
+    <item msgid="6107138933849816768">"ಮಧ್ಯಮ"</item>
+    <item msgid="182695359839047859">"ಕಡಿಮೆ"</item>
+    <item msgid="8577246509202964244">"ಗಂಭೀರ"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ನಿರಂತರ"</item>
     <item msgid="167418068739176448">"ಉನ್ನತ ಚಟುವಟಿಕೆ"</item>
diff --git a/tests/CarDeveloperOptions/res/values-kn/strings.xml b/tests/CarDeveloperOptions/res/values-kn/strings.xml
index 2974f74..353a8a4 100644
--- a/tests/CarDeveloperOptions/res/values-kn/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-kn/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"ಪರದೆಯ ಮೇಲೆ ಪಠ್ಯದ ಗಾತ್ರವನ್ನು ಹಿಗ್ಗಿಸಿ ಅಥವಾ ಕುಗ್ಗಿಸಿ."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"ಚಿಕ್ಕದಾಗಿಸು"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"ದೊಡ್ಡದಾಗಿಸು"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ಮಾದರಿ ಪಠ್ಯ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Oz ನ ಅದ್ಭುತವಾದ ಮಾಂತ್ರಿಕ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"ಅಧ್ಯಾಯ 11: Oz ನ ಅದ್ಭುತವಾದ ಎಮೆರಾಲ್ಡ್ ಸಿಟಿ"</string>
@@ -180,7 +179,7 @@
     <string name="connected_device_connected_title" msgid="6255107326608785482">"ಪ್ರಸ್ತುತ ಸಂಪರ್ಕಿಸಲಾಗಿದೆ"</string>
     <string name="connected_device_saved_title" msgid="8270136893488475163">"ಉಳಿಸಿರುವ ಸಾಧನಗಳು"</string>
     <string name="connected_device_add_device_summary" msgid="7960491471270158891">"ಜೋಡಿಸಲು ಬ್ಲೂಟೂತ್ ಆನ್ ಆಗುತ್ತದೆ"</string>
-    <string name="connected_device_connections_title" msgid="9205000271382018428">"ಸಂಪರ್ಕ ಆದ್ಯತೆಗಳು"</string>
+    <string name="connected_device_connections_title" msgid="9205000271382018428">"ಕನೆಕ್ಷನ್ ಆದ್ಯತೆಗಳು"</string>
     <string name="connected_device_previously_connected_title" msgid="225918223397410428">"ಹಿಂದೆ ಸಂಪರ್ಕಗೊಂಡಿದ್ದ ಸಾಧನಗಳು"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="2018789662358162716">"ಹಿಂದೆ ಸಂಪರ್ಕಗೊಂಡಿದ್ದ"</string>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="4652326177920814476">"ಬ್ಲೂಟೂತ್ ಆನ್ ಮಾಡಲಾಗಿದೆ"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"ನೀವು ಪೋರ್ಟ್‌ ಕ್ಷೇತ್ರವನ್ನು ಪೂರ್ಣಗೊಳಿಸುವ ಅಗತ್ಯವಿದೆ."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"ಹೋಸ್ಟ್ ಕ್ಷೇತ್ರವು ಖಾಲಿ ಇದ್ದಲ್ಲಿ, ಪೋರ್ಟ್‌ ಕ್ಷೇತ್ರವು ಕೂಡ ಖಾಲಿ ಇರಬೇಕು."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"ನೀವು ಟೈಪ್‌ ಮಾಡಿದ ಪೋರ್ಟ್ ಮಾನ್ಯವಾಗಿಲ್ಲ."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"ಬ್ರೌಸರ್ HTTP ಪ್ರಾಕ್ಸಿ ಬಳಸಿಕೊಂಡಿದೆ. ಇತರೆ ಆಪ್‌ಗಳು ಬಳಸಿಕೊಳ್ಳದೆ ಇರಬಹುದು."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"ಬ್ರೌಸರ್ HTTP ಪ್ರಾಕ್ಸಿ ಬಳಸಿಕೊಂಡಿದೆ. ಇತರೆ ಆ್ಯಪ್‌ಗಳು ಬಳಸಿಕೊಳ್ಳದೆ ಇರಬಹುದು."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL ಬ್ಯಾಂಡ್‌ವಿಡ್ತ್ (kbps):"</string>
@@ -909,8 +908,8 @@
     <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ID ಯನ್ನು ರೂಟರ್ ಪ್ರಸಾರ ಮಾಡದಿದ್ದಲ್ಲಿ ಆದರೆ ಭವಿಷ್ಯದಲ್ಲಿ ನೀವು ಅದಕ್ಕೆ ಸಂಪರ್ಕಿಸಲು ಬಯಸಿದರೆ, ನೀವು ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಮರೆಮಾಡಲಾಗಿರುವುದು ಎಂದು ಹೊಂದಿಸಬಹುದು.\n\nನಿಮ್ಮ ಫೋನ್ ನಿಯಮಿತವಾಗಿ ನೆಟ್ವರ್ಕ್ ಅನ್ನು ಹುಡುಕಲು ಸಿಗ್ನಲ್ ಅನ್ನು ಪ್ರಸಾರ ಮಾಡುವುದರಿಂದ ಭದ್ರತಾ ಅಪಾಯ ಎದುರಾಗಬಹುದು.\n\nನೆಟ್‌ವರ್ಕ್‌ ಅನ್ನು ಮರೆಮಾಡಿದ ಕೂಡಲೇ ರೂಟರ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು ಬದಲಾಗುವುದಿಲ್ಲ."</string>
     <string name="wifi_signal" msgid="696548364467704808">"ಸಿಗ್ನಲ್ ಸಾಮರ್ಥ್ಯ"</string>
     <string name="wifi_status" msgid="3439931558930689940">"ಸ್ಥಿತಿ"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"ಲಿಂಕ್ ವೇಗವನ್ನು ಪ್ರಸಾರ ಮಾಡಿ"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"ಲಿಂಕ್ ವೇಗವನ್ನು ಸ್ವೀಕರಿಸಿ"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"ಟ್ರಾನ್ಸ್‌ಮಿಟ್ ಲಿಂಕ್ ವೇಗ"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"ಸ್ವೀಕರಿಸುವ ಲಿಂಕ್ ವೇಗ"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"ಫ್ರೀಕ್ವೆನ್ಸಿ"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP ವಿಳಾಸ"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"ಇದರ ಮೂಲಕ ಉಳಿಸಲಾಗಿದೆ"</string>
@@ -941,7 +940,7 @@
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"“<xliff:g id="SSID">%1$s</xliff:g>” ಗೆ ಸಂಪರ್ಕಿಸಲು QR ಕೋಡ್ ಅನ್ನು ಕೆಳಗೆ ಕೇಂದ್ರೀಕರಿಸಿ"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR ಕೋಡ್ ಸ್ಕ್ಯಾನ್ ಮಾಡುವ ಮೂಲಕ ವೈ-ಫೈ ಗೆ ಸೇರಿ"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"ವೈ-ಫೈ ಹಂಚಿಕೊಳ್ಳಿ"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"“<xliff:g id="SSID">%1$s</xliff:g>” ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಹಂಚಿಕೊಳ್ಳಲು ಈ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"“<xliff:g id="SSID">%1$s</xliff:g>” ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಮತ್ತು ಪಾಸ್‌ವರ್ಡ್ ಹಂಚಿಕೊಳ್ಳಲು ಈ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"“<xliff:g id="SSID">%1$s</xliff:g>” ಗೆ ಸಂಪರ್ಕಪಡಿಸಲು ಈ QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR ಕೋಡ್ ಅನ್ನು ಓದಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ. ಕೋಡ್ ಮರುನಮೂದಿಸಿ ಅಥವಾ ಪುನಃ ಪ್ರಯತ್ನಿಸಿ"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"ಪುನಃ ಪ್ರಯತ್ನಿಸಿ. ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ಸಾಧನ ತಯಾರಕರನ್ನು ಸಂಪರ್ಕಿಸಿ"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"ವೈ-ಫೈ"</item>
+    <item msgid="2271962426654621656">"ಮೊಬೈಲ್"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ವೈ-ಫೈ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್ ಬಳಸಿ"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ಮೊಬೈಲ್ ನೆಟ್‌ವರ್ಕ್ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ವೈ-ಫೈ ಬಳಸಿ"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ವೈ-ಫೈ ಬಳಸಿ ಕರೆ ಮಾಡಿ. ವೈ-ಫೈ ಸಂಪರ್ಕ ಕಡಿತಗೊಂಡರೆ, ಕರೆ ಕೊನೆಗೊಳ್ಳುತ್ತದೆ."</string>
@@ -1335,7 +1337,7 @@
     <string name="status_number_sim_slot" product="tablet" msgid="4518232285651165459">"MDN (ಸಿಮ್ ಸ್ಲಾಟ್ %1$d)"</string>
     <string name="status_number_sim_slot" product="default" msgid="3660851494421332328">"ಫೋನ್ ಸಂಖ್ಯೆ (ಸಿಮ್ ಸ್ಲಾಟ್ %1$d)"</string>
     <string name="status_number_sim_status" product="tablet" msgid="8069693515860290952">"ಸಿಮ್‌ ನಲ್ಲಿ MDN"</string>
-    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"ಸಿಮ್‌ನಲ್ಲಿ ಫೋನ್ ಸಂಖ್ಯೆ"</string>
+    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"ಸಿಮ್‌ನ ಫೋನ್ ಸಂಖ್ಯೆ"</string>
     <string name="status_min_number" msgid="8346889546673707777">"ನಿಮಿ"</string>
     <string name="status_msid_number" msgid="7808175928664357661">"MSID"</string>
     <string name="status_prl_version" msgid="5634561205739199042">"PRL ಆವೃತ್ತಿ"</string>
@@ -1612,7 +1614,7 @@
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"ಪೋರ್ಟಬಲ್ ಹಾಟ್‌ಸ್ಪಾಟ್"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"ಬ್ಲೂಟೂತ್‌‌ ಟೆಥರಿಂಗ್‌"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"ಟೆಥರಿಂಗ್‌"</string>
-    <string name="tether_settings_title_all" msgid="6935843543433954181">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಮತ್ತು ಟೆಥರಿಂಗ್"</string>
+    <string name="tether_settings_title_all" msgid="6935843543433954181">"ಹಾಟ್‌ಸ್ಪಾಟ್ &amp; ಟೆಥರಿಂಗ್"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಆನ್ ಆಗಿದೆ, ಟೆಥರಿಂಗ್‌"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"ಹಾಟ್‌ಸ್ಪಾಟ್ ಆನ್ ಆಗಿದೆ"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"ಟೆಥರಿಂಗ್‌"</string>
@@ -1744,14 +1746,14 @@
     <string name="lockpassword_confirm_your_password_header_frp" msgid="7326670978891793470">"ಪಾಸ್‌ವರ್ಡ್‌ ಪರಿಶೀಲಿಸಿ"</string>
     <string name="lockpassword_invalid_pin" msgid="3059022215815900137">"ತಪ್ಪಾದ ಪಿನ್‌"</string>
     <string name="lockpassword_invalid_password" msgid="8374331995318204099">"ತಪ್ಪು ಪಾಸ್‌ವರ್ಡ್‌"</string>
-    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"ತಪ್ಪು ಪ್ಯಾಟರ್ನ್"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"ಪ್ಯಾಟರ್ನ್ ತಪ್ಪಾಗಿದೆ"</string>
     <string name="lock_settings_title" msgid="233657584969886812">"ಸಾಧನ ಭದ್ರತೆ"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="333149762562581510">"ಅನ್‌ಲಾಕ್ ನಮೂನೆಯನ್ನು ಬದಲಾಯಿಸಿ"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"ಅನ್‌ಲಾಕ್ ಪಿನ್‌ ಬದಲಾಯಿಸಿ"</string>
     <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"ಅನ್‌ಲಾಕ್‌ ಪ್ಯಾಟರ್ನ್ ಚಿತ್ರಿಸಿ"</string>
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"ಸಹಾಯಕ್ಕಾಗಿ ಮೆನು ಒತ್ತಿರಿ."</string>
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"ಬಳಿಕ ಬೆರಳು ತೆಗೆಯಿರಿ"</string>
-    <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"ಕನಿಷ್ಠ <xliff:g id="NUMBER">%d</xliff:g> ಡಾಟ್‌ಗಳನ್ನು ಸಂಪರ್ಕಿಸಿ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
+    <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"ಕನಿಷ್ಠ <xliff:g id="NUMBER">%d</xliff:g> ಡಾಟ್‌ಗಳನ್ನು ಕನೆಕ್ಟ್ ಮಾಡಿ. ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ."</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"ಪ್ಯಾಟರ್ನ್ ರೆಕಾರ್ಡ್ ಆಗಿದೆ"</string>
     <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"ಖಚಿತಪಡಿಸಲು ಪ್ಯಾಟರ್ನ್ ಚಿತ್ರಿಸಿ"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"ನಿಮ್ಮ ಹೊಸ ಅನ್‌ಲಾಕ್‌ ಪ್ಯಾಟರ್ನ್"</string>
@@ -2276,10 +2278,10 @@
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"ನಿಮ್ಮ ಸಾಧನದ ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ಸುಧಾರಿಸಿ"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"ಬ್ಯಾಟರಿ ನಿರ್ವಾಹಕರನ್ನು ಆನ್‌ ಮಾಡಿ"</string>
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"ಬ್ಯಾಟರಿ ಸೇವರ್‌ ಆನ್‌ ಮಾಡಿ"</string>
-    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"ಬ್ಯಾಟರಿ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಮೊದಲೇ ರನ್ ಆಗಬಹುದು"</string>
+    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"ಬ್ಯಾಟರಿ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಮೊದಲೇ ಖಾಲಿಯಾಗಬಹುದು"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"ಬ್ಯಾಟರಿ ಸೇವರ್ ಆನ್ ಆಗಿದೆ"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"ಕೆಲವು ವೈಶಿಷ್ಟ್ಯಗಳು ಸೀಮಿತವಾಗಿರಬಹುದು"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"ಫೋನ್ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಬಳಸಿದೆ"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"ಫೋನ್ ಅನ್ನು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚು ಬಳಸಲಾಗಿದೆ"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"ಟ್ಯಾಬ್ಲೆಟ್ ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಬಳಸಿದೆ"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"ಸಾಧನವು ಸಾಮಾನ್ಯಕ್ಕಿಂತ ಹೆಚ್ಚಿನದನ್ನು ಬಳಸಿದೆ"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"ಬ್ಯಾಟರಿ ಸಾಮಾನ್ಯ ಅವಧಿಗಿಂತ ಮೊದಲೇ ಖಾಲಿಯಾಗಬಹುದು"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"ಈಗ ಸಿಂಕ್ ಮಾಡಲು ಟ್ಯಾಪ್ ಮಾಡಿ<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"ಕ್ಯಾಲೆಂಡರ್"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"ಸಂಪರ್ಕಗಳು"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google ಸಿಂಕ್‌ಗೆ ಸ್ವಾಗತ!"</font>" \nನಿಮ್ಮ ಸಂಪರ್ಕಗಳು, ಪೂರ್ವನಿಗದಿಗಳು, ಮತ್ತು ನೀವು ಎಲ್ಲಿದ್ದೀರೋ ಅಲ್ಲಿಂದಲೇ ಇನ್ನಷ್ಟನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಲು ಡೇಟಾವನ್ನು ಸಿಂಕ್‌ ಮಾಡಲು Google ನ ಒಂದು ತೊಡಗುವಿಕೆಯಾಗಿದೆ."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"ಅಪ್ಲಿಕೇಶನ್ ಸಿಂಕ್ ಸೆಟ್ಟಿಂಗ್‌ಗಳು"</string>
@@ -3321,7 +3323,7 @@
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"ಕೆಲಸದ ಪ್ರೊಫೈಲ್ ಅನ್ನು ಲಾಕ್ ಮಾಡಿದಾಗ"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"ಅಧಿಸೂಚನೆ ವಿಷಯವನ್ನು ಪೂರ್ತಿ ತೋರಿಸು"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"ಸೂಕ್ಷ್ಮ ವಿಷಯವನ್ನು ಮರೆಮಾಡು"</string>
-    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಲೇ ಬೇಡ"</string>
+    <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"ಅಧಿಸೂಚನೆಗಳನ್ನು ತೋರಿಸಬೇಡಿ"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"ಸಾಧನ ಲಾಕ್‌ ಆದಾಗ, ಅಧಿಸೂಚನೆಗಳು ಹೇಗೆ ಕಾಣಿಸಿಕೊಳ್ಳಬೇಕು?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"ಅಧಿಸೂಚನೆಗಳು"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"ಉದ್ಯೋಗದ ಅಧಿಸೂಚನೆ ವಿಷಯವನ್ನು ಪೂರ್ತಿ ತೋರಿಸು"</string>
@@ -4267,7 +4269,7 @@
     <string name="storage_manager_indicator_on" msgid="5295306384982062320">"ಆನ್"</string>
     <string name="install_type_instant" msgid="6248487669862821874">"ತತ್‌ಕ್ಷಣದ ಅಪ್ಲಿಕೇಶನ್"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"ಸಂಗ್ರಹಣೆ ನಿರ್ವಾಹಕವನ್ನು ಆಫ್ ಮಾಡುವುದೇ?"</string>
-    <string name="storage_movies_tv" msgid="7282484273991655296">"ಚಲನಚಿತ್ರ ಮತ್ತು ಟಿವಿ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು"</string>
+    <string name="storage_movies_tv" msgid="7282484273991655296">"ಚಲನಚಿತ್ರ ಮತ್ತು ಟಿವಿ ಆ್ಯಪ್‍‍ಗಳು"</string>
     <string name="carrier_provisioning" msgid="3309125279191534469">"ವಾಹಕ ಪೂರೈಕೆಯ ಮಾಹಿತಿ"</string>
     <string name="trigger_carrier_provisioning" msgid="6284005970057901477">"ಟ್ರಿಗ್ಗರ್ ವಾಹಕ ಪೂರೈಕೆ"</string>
     <string name="zen_suggestion_title" msgid="2134699720214231950">"ಅಡಚಣೆ ಮಾಡಬೇಡಿ ಅನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ"</string>
@@ -4471,7 +4473,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"ಗೌಪ್ಯತೆ"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"ಅನುಮತಿಗಳು, ಖಾತೆ ಚಟುವಟಿಕೆ, ವೈಯಕ್ತಿಕ ಡೇಟಾ"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"ತೆಗೆದುಹಾಕಿ"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"ಇರಿಸಿಕೊಳ್ಳಿ"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"ಈ ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆ"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"ರದ್ದುಗೊಳಿಸಿ"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ko/arrays.xml b/tests/CarDeveloperOptions/res/values-ko/arrays.xml
index a7a5ba5..75a36b3 100644
--- a/tests/CarDeveloperOptions/res/values-ko/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ko/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"허용 안함"</item>
     <item msgid="8184570120217958741">"항상 허용"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"보통"</item>
+    <item msgid="5101233285497327432">"일반"</item>
+    <item msgid="1555861583162930714">"낮음"</item>
+    <item msgid="1719683776264798117">"중요"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"보통"</item>
+    <item msgid="6107138933849816768">"중간"</item>
+    <item msgid="182695359839047859">"낮음"</item>
+    <item msgid="8577246509202964244">"심각"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"영구"</item>
     <item msgid="167418068739176448">"메모리 사용이 가장 많은 활동"</item>
@@ -467,7 +477,7 @@
     <item msgid="1008268820118852416">"무제한 Wi-Fi로 취급"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"임의의 MAC 사용(기본값)"</item>
+    <item msgid="6545683814310036454">"무작위 MAC 사용(기본값)"</item>
     <item msgid="214234417308375326">"기기 MAC 사용"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-ko/strings.xml b/tests/CarDeveloperOptions/res/values-ko/strings.xml
index f8f93ce..6c3be8f 100644
--- a/tests/CarDeveloperOptions/res/values-ko/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ko/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"화면 텍스트를 축소 또는 확대합니다."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"축소"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"확대"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"샘플 텍스트"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"오즈의 마법사"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11장: 오즈의 멋진 에메랄드 도시"</string>
@@ -767,7 +766,7 @@
     <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"고급"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"고급 블루투스"</string>
     <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"기기에서 블루투스가 켜져 있으면 주변의 다른 블루투스 기기와 통신할 수 있습니다."</string>
-    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"기기에서 블루투스가 켜져 있으면 주변의 다른 블루투스 기기와 통신할 수 있습니다.\n\n기기 환경을 개선하려면 블루투스가 꺼져 있을 때도 항상 앱 및 서비스에서 주변 기기를 검색할 수 있어야 합니다. 예를 들면 위치 기반 기능 및 서비스를 개선하는 데 이 설정이 사용될 수 있습니다. "<annotation id="link">"검색 설정"</annotation>"에서 관련 설정을 변경할 수 있습니다."</string>
+    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"기기에서 블루투스가 켜져 있으면 주변의 다른 블루투스 기기와 통신할 수 있습니다.\n\n기기 환경을 개선하기 위해 블루투스가 꺼져 있을 때도 항상 앱 및 서비스에서 주변 기기를 검색할 수 있습니다. 예를 들면 위치 기반 기능 및 서비스를 개선하는 데 이 설정이 사용될 수 있습니다. "<annotation id="link">"검색 설정"</annotation>"에서 관련 설정을 변경할 수 있습니다."</string>
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"위치 정확도 개선을 위해 시스템 앱과 서비스에서 블루투스 기기를 계속 감지할 수 있습니다. <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>검색 설정<xliff:g id="LINK_END_1">LINK_END</xliff:g>에서 설정을 변경할 수 있습니다."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"연결할 수 없습니다. 다시 시도해 주세요."</string>
     <string name="device_details_title" msgid="726517818032923222">"기기 세부정보"</string>
@@ -939,7 +938,7 @@
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"\'<xliff:g id="SSID">%1$s</xliff:g>\'에 기기를 추가하려면 아래 창의 가운데 부분에 QR 코드를 맞추세요."</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR 코드 스캔"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"\'<xliff:g id="SSID">%1$s</xliff:g>\'에 연결하려면 아래 창의 가운데 부분에 QR 코드를 맞추세요."</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR 코드를 스캔하여 Wi‑Fi에 연결"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR 코드를 스캔하여 Wi‑Fi에 연결하세요."</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi 공유"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"이 QR 코드를 스캔하여 \'<xliff:g id="SSID">%1$s</xliff:g>\'에 연결하고 비밀번호를 공유하세요."</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"이 QR 코드를 스캔하여 \'<xliff:g id="SSID">%1$s</xliff:g>\'에 연결"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"모바일"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi를 사용할 수 없는 경우 모바일 네트워크를 사용하세요."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"모바일 네트워크를 사용할 수 없는 경우 Wi‑Fi를 사용합니다."</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi를 통해 통화합니다. Wi‑Fi 연결이 끊기면 통화가 종료됩니다."</string>
@@ -1525,7 +1527,7 @@
     <string name="battery_status_title" msgid="8731200319740671905">"배터리 상태"</string>
     <string name="battery_level_title" msgid="5207775387973771646">"배터리 수준"</string>
     <string name="apn_settings" msgid="8130776653826271664">"APN"</string>
-    <string name="apn_edit" msgid="4350571070853305357">"액세스 포인트(APN) 편집"</string>
+    <string name="apn_edit" msgid="4350571070853305357">"액세스 포인트 수정"</string>
     <string name="apn_not_set" msgid="5344235604466825691">"설정되지 않음"</string>
     <string name="apn_name" msgid="8431432886706852226">"이름"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
@@ -2265,7 +2267,7 @@
     <string name="details_subtitle" msgid="7279638828004951382">"사용 세부정보"</string>
     <string name="controls_subtitle" msgid="6920199888882834620">"전원 사용 조절"</string>
     <string name="packages_subtitle" msgid="6506269487892204413">"포함된 패키지"</string>
-    <string name="battery_tip_summary_title" msgid="2750922152518825526">"앱이 정상적으로 작동 중입니다."</string>
+    <string name="battery_tip_summary_title" msgid="2750922152518825526">"앱이 정상적으로 작동 중"</string>
     <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"배터리 사용량이 평소와 같습니다."</string>
     <string name="battery_tip_summary_summary" product="tablet" msgid="5280099016800644130">"태블릿의 배터리 사용량이 평소와 같습니다."</string>
     <string name="battery_tip_summary_summary" product="device" msgid="4459840492610842705">"기기의 배터리 사용량이 평소와 같습니다."</string>
@@ -3760,8 +3762,8 @@
     <string name="assist_access_context_summary" msgid="5867997494395842785">"지원 앱이 화면의 텍스트 콘텐츠에 액세스하도록 허용합니다."</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"스크린샷 사용"</string>
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"지원 앱이 화면의 이미지에 액세스하도록 허용합니다."</string>
-    <string name="assist_flash_title" msgid="8852484250748551092">"플래시 화면"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"지원 앱이 화면이나 스크린샷에서 텍스트에 액세스할 때 화면 가장자리에 플래시를 표시합니다."</string>
+    <string name="assist_flash_title" msgid="8852484250748551092">"화면 깜빡이기"</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"지원 앱이 화면이나 스크린샷에서 텍스트에 액세스할 때 화면 가장자리가 깜빡입니다."</string>
     <string name="assist_footer" msgid="7030121180457472165">"지원 앱은 화면에 표시된 정보에 맞게 도움을 줄 수 있습니다. 일부 앱은 통합된 지원을 제공하기 위해 런처와 음성 입력 서비스를 모두 지원합니다."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"평균 메모리 사용"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"최대 메모리 사용"</string>
@@ -4477,7 +4479,7 @@
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"실행취소"</string>
     <string name="low_storage_summary" msgid="4562224870189133400">"저장용량이 얼마 남지 않았습니다. <xliff:g id="PERCENTAGE">%1$s</xliff:g> 사용 중 - <xliff:g id="FREE_SPACE">%2$s</xliff:g> 사용 가능"</string>
     <string name="contextual_card_feedback_send" msgid="8698649023854350623">"의견 보내기"</string>
-    <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"이 제안에 관한 의견을 보내주세요."</string>
+    <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"이 추천 항목에 관한 의견을 보내주세요."</string>
     <string name="copyable_slice_toast" msgid="1357518174923789947">"<xliff:g id="COPY_CONTENT">%1$s</xliff:g>이(가) 클립보드에 복사되었습니다."</string>
     <string name="search_bar_account_avatar_content_description" msgid="947628881535053409"></string>
     <string name="permission_bar_chart_empty_text" msgid="5893326513700540130">"권한을 사용한 앱 0개"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ky/arrays.xml b/tests/CarDeveloperOptions/res/values-ky/arrays.xml
index 46dc219..248e0a2 100644
--- a/tests/CarDeveloperOptions/res/values-ky/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ky/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"Тынч океан"</item>
     <item msgid="7044520255415007865">"Бардыгы"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 секунд"</item>
+    <item msgid="772029947136115322">"30 секунд"</item>
+    <item msgid="8743663928349474087">"1 мүнөт"</item>
+    <item msgid="1506508631223164814">"2 мүнөт"</item>
+    <item msgid="8664703938127907662">"5 мүнөт"</item>
+    <item msgid="5827960506924849753">"10 мүнөт"</item>
+    <item msgid="6677424950124253938">"30 мүнөт"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Эч качан"</item>
+    <item msgid="2517785806387977252">"15 секунд"</item>
+    <item msgid="6347954399441173672">"30 секунд"</item>
+    <item msgid="4858305253279921789">"1 мүнөт"</item>
+    <item msgid="8109273437140044073">"2 мүнөт"</item>
+    <item msgid="2788593551142462622">"5 мүнөт"</item>
+    <item msgid="8012672183888404961">"10 мүнөт"</item>
+    <item msgid="8271452751594598661">"30 мүнөт"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Дароо"</item>
     <item msgid="2038544972632026612">"5 секунд"</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"10 мүнөт"</item>
     <item msgid="7258394417241706272">"30 мүнөт"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Кичине"</item>
+    <item msgid="591935967183159581">"Демейки"</item>
+    <item msgid="1714184661981538355">"Чоң"</item>
+    <item msgid="6195563047686707484">"Эң чоң"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Скандалууда…"</item>
+    <item msgid="5597394826455877834">"Туташууда…"</item>
+    <item msgid="5848277343965362748">"Аныктыгы текшерилүүдө…"</item>
+    <item msgid="3391238031431440676">"IP дареги алынууда…"</item>
+    <item msgid="5257597310494000224">"Туташты"</item>
+    <item msgid="8472497592913050396">"Убактылуу токтотулду"</item>
+    <item msgid="1228072488815999109">"Ажыратылууда…"</item>
+    <item msgid="7253087004422991731">"Ажыратылган"</item>
+    <item msgid="4169850917304751227">"Ийгиликсиз"</item>
+    <item msgid="6266658166690831131">"Бөгөттөлгөн"</item>
+    <item msgid="4517230805854909775">"Начар байланыштан убактылуу баш тартууда"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Изделүүдө…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> тармагына туташууда…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> менен аныктыгы текшерилүүдө…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> тармагынан IP дареги алынууда…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> тармагына туташты"</item>
+    <item msgid="6600156231416890902">"Убактылуу токтотулду"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> тармагынан ажыратылууда…"</item>
+    <item msgid="3980154971187953257">"Ажыратылган"</item>
+    <item msgid="2847316776634969068">"Ийгиликсиз"</item>
+    <item msgid="4390990424746035383">"Бөгөттөлгөн"</item>
+    <item msgid="3618248791367063949">"Начар байланыштан убактылуу баш тартууда"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Баскычты басыңыз"</item>
+    <item msgid="7401896200768713930">"Туташуучу түзмөктүн PIN\'и"</item>
+    <item msgid="4526848028011846710">"Ушул түзмөктүн PIN\'и"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Туташты"</item>
     <item msgid="983792611851499732">"Чакырылды"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"Жеткиликтүү"</item>
     <item msgid="3230556734162006146">"Аракет чегинен тышкары"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 мүнөт"</item>
+    <item msgid="2759776603549270587">"5 мүнөт"</item>
+    <item msgid="167772676068860015">"1 саат"</item>
+    <item msgid="5985477119043628504">"Токтотпоо"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"Демейки маани колдонулат: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Начар"</item>
+    <item msgid="7882129634982603782">"Начар"</item>
+    <item msgid="6457357501905996224">"Орто"</item>
+    <item msgid="405271628162918841">"Жакшы"</item>
+    <item msgid="999948812884919584">"Эң жакшы"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"Акыркы 30 күн"</item>
     <item msgid="3211287705232736964">"Колдонуу мерчимин коюу…"</item>
@@ -106,10 +163,13 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Туруктуу"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Эчтеке жок"</item>
-    <item msgid="1464741437353223198">"Нускама"</item>
+    <item msgid="1464741437353223198">"Кол менен"</item>
     <item msgid="5793600062487886090">"Прокси авто-конфигурац."</item>
   </string-array>
   <string-array name="apn_auth_entries">
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"фондо ойнотуу"</item>
     <item msgid="6423861043647911030">"атайын мүмкүнчүлүктөрдүн үнүнүн катуулугу"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Жайгашкан жер"</item>
+    <item msgid="6656077694190491067">"Жайгашкан жер"</item>
+    <item msgid="8790228218278477369">"Жайгашкан жер"</item>
+    <item msgid="7836406246005211990">"Дирилдөө"</item>
+    <item msgid="3951439024549922598">"Байланыштарды окуу"</item>
+    <item msgid="8802152411647068">"Байланыштарды өзгөртүү"</item>
+    <item msgid="229544934599698735">"Чалуулар тизмесин окуу"</item>
+    <item msgid="7396102294405899613">"Чалуулар тизмесин өзгөртүү"</item>
+    <item msgid="3597797992398484655">"Жылнааманы окуу"</item>
+    <item msgid="2705975774250907343">"Күнбаракты өзгөртүү"</item>
+    <item msgid="4668747371441932697">"Жайгашкан жер"</item>
+    <item msgid="1487578921720243646">"Эскертүү жайгаштыруу"</item>
+    <item msgid="4636080349724146638">"Орду"</item>
+    <item msgid="673510900286463926">"Телефон чалуу"</item>
+    <item msgid="542083422784609790">"SMS/MMS окуу"</item>
+    <item msgid="1033780373029588436">"SMS/MMS жазуу"</item>
+    <item msgid="5647111115517787488">"SMS/MMS алуу"</item>
+    <item msgid="8591105601108455893">"SMS/MMS алуу"</item>
+    <item msgid="7730995008517841903">"SMS/MMS алуу"</item>
+    <item msgid="2613033109026626086">"SMS/MMS алуу"</item>
+    <item msgid="3037159047591081136">"SMS/MMS жөнөтүү"</item>
+    <item msgid="4726682243833913568">"SMS/MMS окуу"</item>
+    <item msgid="6555678522277865572">"SMS/MMS жазуу"</item>
+    <item msgid="6981734935578130884">"Тууралоолорду өзгөртүү"</item>
+    <item msgid="8705854389991425629">"Үстүнө тартуу"</item>
+    <item msgid="5861356020344153651">"Жетки билдирмелери"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Аудио жаздыруу"</item>
+    <item msgid="4516840825756409490">"Аудио ойнотуу"</item>
+    <item msgid="6811712502798183957">"Алмашуу буферин окуу"</item>
+    <item msgid="2780369012602289114">"Алмашуу буферин өзгөртүү"</item>
+    <item msgid="2331359440170850868">"Медиа баскычтар"</item>
+    <item msgid="6133599737122751231">"Аудио фокус"</item>
+    <item msgid="6844485713404805301">"Үн башкаргыч"</item>
+    <item msgid="1600379420669104929">"Үндүн деңгээли"</item>
+    <item msgid="6296768210470214866">"Шыңгырдын үнү"</item>
+    <item msgid="510690696071629241">"Мультимедианын катуулугу"</item>
+    <item msgid="406861638631430109">"Ойготкучтун катуулугу"</item>
+    <item msgid="4715864795872233884">"Эскертме үнүнүн катуулугу"</item>
+    <item msgid="2311478519251301183">"Bluetooth үнү"</item>
+    <item msgid="5133991377896747027">"Ойгоо кармоо"</item>
+    <item msgid="2464189519136248621">"Жайгашкан жер"</item>
+    <item msgid="2062677934050803037">"Орду"</item>
+    <item msgid="1735171933192715957">"Колдонуу статистикасын алуу"</item>
+    <item msgid="1014093788778383554">"Микрофондун үнүн басуу/чыгаруу"</item>
+    <item msgid="4199297950608622850">"Эскертмени көрсөтүү"</item>
+    <item msgid="2527962435313398821">"Долбоор медиясы"</item>
+    <item msgid="5117506254221861929">"VPN\'ди жандыруу"</item>
+    <item msgid="8291198322681891160">"Тушкагаз жазуу"</item>
+    <item msgid="7106921284621230961">"Көмөкчү түзүм"</item>
+    <item msgid="4496533640894624799">"Көмөкчү скриншот"</item>
+    <item msgid="2598847264853993611">"Телефон абалын окуу"</item>
+    <item msgid="9215610846802973353">"Үн почтасын кошуу"</item>
+    <item msgid="9186411956086478261">"Sip пайдалануу"</item>
+    <item msgid="6884763100104539558">"Чыгуучу чалууну иштетүү"</item>
+    <item msgid="125513972170580692">"Манжа изи"</item>
+    <item msgid="2556071024281275619">"Дене сенсорлору"</item>
+    <item msgid="617168514928339387">"Калкка кабар берүү тутумунун билдирүүлөрүн окуу"</item>
+    <item msgid="7134693570516523585">"Жайгашкан жер дайындарын бурмалоо"</item>
+    <item msgid="7224489175375229399">"Сактагычтагы дайындарды окуу"</item>
+    <item msgid="8472735063903258202">"Сактагычка дайындарды жазуу"</item>
+    <item msgid="4069276819909595110">"Экранды күйгүзүү"</item>
+    <item msgid="1228338896751121025">"Аккаунттарды алуу"</item>
+    <item msgid="3181581793459233672">"Фондо ойнотуу"</item>
+    <item msgid="2340936043025374076">"Атайын мүмкүнчүлүктөрдүн үнүнүн катуулугу"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Кыска"</item>
     <item msgid="4816511817309094890">"Орто"</item>
@@ -247,7 +369,13 @@
     <item msgid="4627069151979553527">"Жантык"</item>
     <item msgid="6896773537705206194">"Кичине баш тамгалар"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Өтө кичине"</item>
+    <item msgid="5091603983404027034">"Кичине"</item>
+    <item msgid="176844712416932112">"Кадимки"</item>
+    <item msgid="2784236342175159295">"Чоң"</item>
+    <item msgid="218913203203160606">"Өтө чоң"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Демейки"</item>
     <item msgid="6488643537808152001">"Эчтеке жок"</item>
@@ -262,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Колдонмонун демейкилерин колдонуу"</item>
+    <item msgid="8611890312638868524">"Ак карада"</item>
+    <item msgid="5891360837786277638">"Кара акта"</item>
+    <item msgid="2798457065945456853">"Сары карада"</item>
+    <item msgid="5799049811524553967">"Сары көктө"</item>
+    <item msgid="3673930830658169860">"Ыңгайлаштырылган"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"Алдын ала бөлүшүлгөн ачкычтары бар L2TP/IPSec VPN"</item>
@@ -273,17 +408,34 @@
   </string-array>
   <string-array name="vpn_proxy_settings">
     <item msgid="2958623927055120839">"Эч нерсе жок"</item>
-    <item msgid="1157046369795346308">"Нускама"</item>
+    <item msgid="1157046369795346308">"Кол менен"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Ажыратылган"</item>
+    <item msgid="8754480102834556765">"Демилгеленүүдө…"</item>
+    <item msgid="3351334355574270250">"Туташууда…"</item>
+    <item msgid="8303882153995748352">"Туташты"</item>
+    <item msgid="9135049670787351881">"Таймаут"</item>
+    <item msgid="2124868417182583926">"Ийгиликсиз"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Суроо"</item>
     <item msgid="7718817231348607934">"Эч качан уруксат жок"</item>
     <item msgid="8184570120217958741">"Дайым уруксат"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Орточо"</item>
+    <item msgid="5101233285497327432">"Орточо"</item>
+    <item msgid="1555861583162930714">"Төмөн"</item>
+    <item msgid="1719683776264798117">"Кескин"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Кадимки"</item>
+    <item msgid="6107138933849816768">"Орточо"</item>
+    <item msgid="182695359839047859">"Төмөн"</item>
+    <item msgid="8577246509202964244">"Кескин"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Туруктуу"</item>
     <item msgid="167418068739176448">"Көп аткарылган иш"</item>
@@ -325,7 +477,7 @@
     <item msgid="1008268820118852416">"Ченелбейт"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Демейки (туш келди MAC дарегин колдонуу)"</item>
+    <item msgid="6545683814310036454">"Туш келди MAC дарек колдонулат (демейки)"</item>
     <item msgid="214234417308375326">"MAC түзмөгүн колдонуу"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
@@ -338,7 +490,7 @@
   </string-array>
   <string-array name="autofill_logging_level_entries">
     <item msgid="6882729786516723474">"Өчүк"</item>
-    <item msgid="4072198137051566919">"Мүчүлүштүктөрдү оңдоо"</item>
+    <item msgid="4072198137051566919">"Мүчүлүштүктөрдү аныктоо"</item>
     <item msgid="2473005316958868509">"Оозеки кирүү"</item>
   </string-array>
   <string-array name="cdma_system_select_choices">
diff --git a/tests/CarDeveloperOptions/res/values-ky/strings.xml b/tests/CarDeveloperOptions/res/values-ky/strings.xml
index 9cd2014..c0928e5 100644
--- a/tests/CarDeveloperOptions/res/values-ky/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ky/strings.xml
@@ -27,7 +27,7 @@
       <item quantity="one">Сиздин иштеп чыгуучу болушуңузга <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> кадам калды.</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"Сиз өндүрүүчү болдуңуз!"</string>
-    <string name="show_dev_already" msgid="7665948832405148689">"Кереги жок, сиз өндүрүүчү болгонсуз."</string>
+    <string name="show_dev_already" msgid="7665948832405148689">"Кереги жок, сиз иштеп чыгуучусуз."</string>
     <string name="dev_settings_disabled_warning" msgid="3198732189395396721">"Алгач иштеп чыгуучунун параметрлерин иштетиңиз"</string>
     <string name="header_category_wireless_networks" msgid="8968405993937795898">"Зымсыз тармактар"</string>
     <string name="header_category_system" msgid="4045988717359334410">"Тутум"</string>
@@ -127,7 +127,7 @@
     <string name="bluetooth_notif_title" msgid="5090288898529286011">"Жупташтыруу өтүнүчү"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен жупташуу үчүн таптап коюңуз."</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"Алынган файлдар"</string>
-    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"Bluetooth аркылуу кабыл алынган файлдар"</string>
+    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"Bluetooth аркылуу алынган файлдар"</string>
     <string name="device_picker" msgid="8345264486071697705">"Bluetooth түзмөгүн тандоо"</string>
     <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосу Bluetooth\'ду күйгүзгөнү жатат"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> бул түзмөктө Bluetooth\'ду өчүргөнү жатат"</string>
@@ -172,7 +172,7 @@
     <string name="bluetooth_disable_a2dp_hw_offload" msgid="293429878480958234">"Bluetooth A2DP программасын кайра баштоону өчүрүү"</string>
     <string name="bluetooth_disable_a2dp_hw_offload_dialog_title" msgid="7362106962085861626">"Түзмөк өчүп күйсүнбү?"</string>
     <string name="bluetooth_disable_a2dp_hw_offload_dialog_message" msgid="4837282201316413412">"Бул жөндөөнү өзгөртүү үчүн түзмөгүңүздү өчүрүп күйгүзүңүз."</string>
-    <string name="bluetooth_disable_a2dp_hw_offload_dialog_confirm" msgid="9066883770039735632">"Кайра баштоо"</string>
+    <string name="bluetooth_disable_a2dp_hw_offload_dialog_confirm" msgid="9066883770039735632">"Өчүрүп күйгүзүү"</string>
     <string name="bluetooth_disable_a2dp_hw_offload_dialog_cancel" msgid="116355977067301404">"Жок"</string>
     <string name="connected_device_available_media_title" msgid="9126345752002774342">"Жеткиликтүү медиа түзмөктөрү"</string>
     <string name="connected_device_available_call_title" msgid="6774859446815858428">"Жеткиликтүү чалуу түзмөктөрү"</string>
@@ -207,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Сиз порттун талаасын толтурушуңуз керек."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Эгер хост талаасы бош болсо, оюкча талаасы да бош болуусу зарыл."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Сиз терген порт жараксыз."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP прокси серепчи тарабынан колдонулат, бирок башка колдонмолор пайдалана алышпайт."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP прокси серверин серепчи гана колдонот."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL өткөрүү жөндөмдүүлүгү (кб/сек.):"</string>
@@ -309,8 +309,8 @@
     <string name="cellular_data_summary" msgid="8817717603450318646">"Дайындар моб. тармак аркылуу өткөрүлсүн"</string>
     <string name="allow_data_usage_title" msgid="5381624105803294315">"Роуминг учурунда дайындарды пайдаланууга уруксат берүү"</string>
     <string name="roaming" msgid="8860308342135146004">"Роуминг"</string>
-    <string name="roaming_enable" msgid="2108142024297441116">"Роуминг учурунда мобилдик Интернетке туташат"</string>
-    <string name="roaming_disable" msgid="1915440242079953809">"Роуминг учурунда мобилдик Интернетке туташат"</string>
+    <string name="roaming_enable" msgid="2108142024297441116">"Роуминг учурунда дайын-даректерди өткөрүүчү кызматтарга туташуу"</string>
+    <string name="roaming_disable" msgid="1915440242079953809">"Роуминг учурунда дайын-даректерди өткөрүүчү кызматтарга туташуу"</string>
     <string name="roaming_reenable_message" msgid="8388505868655113258">"Жергиликтүү тармагыңыздан интернет-роуминг өчүрүлгөн абалда кеткендиктен Интернет туташуусун жоготтуңуз."</string>
     <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"Аны күйгүзүү"</string>
     <string name="roaming_warning" msgid="5488050911277592868">"Бир топ чыгымдарга дуушар болуп калышыңыз мүмкүн."</string>
@@ -324,7 +324,7 @@
     <string name="date_and_time_settings_summary" msgid="4617979434474713417">"Датаны, убакытты, саат алкагын, жана форматтарды тууралоо"</string>
     <string name="date_time_auto" msgid="2679132152303750218">"Тармактын убакыты колдонулсун"</string>
     <string name="zone_auto_title" msgid="5500880975376882488">"Тармактын убакыт алкагы колдонулсун"</string>
-    <string name="date_time_24hour_auto" msgid="7499659679134962547">"Демейки жергиликтүү формат колдонулат"</string>
+    <string name="date_time_24hour_auto" msgid="7499659679134962547">"Демейки жергиликтүү форматты колдонуу"</string>
     <string name="date_time_24hour_title" msgid="6209923858891621283">"24 сааттык формат"</string>
     <string name="date_time_24hour" msgid="1265706705061608742">"24 сааттык форматты колдонуу"</string>
     <string name="date_time_set_time_title" msgid="7116850506333406367">"Убакыт"</string>
@@ -368,7 +368,7 @@
     <string name="profile_info_settings_title" msgid="4855892878512562551">"Профилдин чоо-жайы"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"Аккаунттар"</string>
     <string name="location_settings_title" msgid="2707201457572301030">"Жайгашкан жер"</string>
-    <string name="location_settings_master_switch_title" msgid="3108016866082816733">"Кайда жүргөнүм аныкталып турсун"</string>
+    <string name="location_settings_master_switch_title" msgid="3108016866082816733">"Кайда жүргөнүм көрүнүп турсун"</string>
     <string name="location_settings_summary_location_off" msgid="5563530256978372978">"Өчүк"</string>
     <plurals name="location_settings_summary_location_on" formatted="false" msgid="7893342914540884818">
       <item quantity="other">Күйүк - <xliff:g id="COUNT_1">%1$d</xliff:g> жайгашкан жерди көрө алат</item>
@@ -425,7 +425,7 @@
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"Колдонмодо аутентификациядан өткөндө, ар дайым ырастоо талап кылынсын"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Жүздү өчүрүү"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Түзмөгүңүздүн кулпусун жүзүңүздү көрсөтүп ачып, колдонмолорго киресиз. "<annotation id="url">"Кеңири маалымат"</annotation></string>
-    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Жүзүңүздү таануу дайындарын өчүрөсүзбү?"</string>
+    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Бул функциянын дайындарын өчүрөсүзбү?"</string>
     <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Жүзүнөн таануу функциясын колдонууда топтолгон дайын-даректер биротоло өчүрүлөт. Өчүрүлгөндөн кийин, телефонуңуздун кулпусун ачып, колдонмолорго кирип жана төлөмдөрдү ырастоо үчүн, PIN кодуңуз, графикалык ачкычыңыз же сырсөзүңүз суралат."</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"Манжа изи"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"Манжа издерин башкаруу"</string>
@@ -468,7 +468,7 @@
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Сенсорго тийиңиз"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Манжаңызды сенсорго коюп, дирилдегенин сезгенден кийин көтөрүңүз"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Көтөрүп, кайра тийип коюңуз"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Манжа изиңиздин ар кайсы бөлүгүн кошуу үчүн манжаңызды кичинеден өйдө жылдырыңыз"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Манжаңызды толугу менен скандоо үчүн, акырындык менен жылдырыңыз."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Манжа изи кошулду"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Бул сүрөтчө көрүнгөндө, манжаңыздын изи менен өздүгүңүздү же кандайдыр бир нерсени сатып алууну ырастайсыз"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Азыр эмес"</string>
@@ -494,14 +494,14 @@
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Кийинки"</string>
     <string name="security_settings_fingerprint_enroll_disclaimer" msgid="5831834311961551423">"Телефонуңуздун кулпусун ачуу, ар кандай нерселерди сатып алуу жана колдонмолорду ачуу үчүн, манжа изиңизди кошуп коюңуз. "<annotation id="url">"Көбүрөөк билүү"</annotation></string>
     <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7954742554236652690">" Экранды кулпулоо параметри өчүрүлгөн. Көбүрөөк маалымат үчүн ишканаңыздын администраторуна кайрылыңыз. "<annotation id="admin_details">"Кошумча маалымат"</annotation>\n\n"Манжа изиңиз аркылуу сатып алууларга уруксат берип жана колдонмолорго кире берсеңиз болот. "<annotation id="url">"Көбүрөөк маалымат"</annotation></string>
-    <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"Манжаңызды көтөрүп, сенсорго кайра тийип коюңуз"</string>
+    <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"Манжаңызды көтөрүп, кайра сенсорго тийгизиңиз"</string>
     <string name="fingerprint_add_max" msgid="2939393314646115661">"<xliff:g id="COUNT">%d</xliff:g> чейин манжа изин кошсоңуз болот"</string>
     <string name="fingerprint_intro_error_max" msgid="3247720976621039437">"Кошулган манжа издеринин саны жогорку чегине жетти"</string>
     <string name="fingerprint_intro_error_unknown" msgid="3975674268256524015">"Дагы манжа издерин кошуу мүмкүн эмес"</string>
     <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"Манжа издерин өчүрөсүзбү?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"\"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\" манжа изин алып салуу"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Бул манжа изин өчүрөсүзбү?"</string>
-    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Телефонуңуздун кулпусун ачып, сатып алууга уруксат берип же колдонмолорго кирүү үчүн манжа издерин башка колдоно албай каласыз"</string>
+    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Манжаңыздын изи менен экранды ачып, кандайдыр бир нерсе сатып алып же колдонмолорго уруксат бере албай каласыз"</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Жумуш профилиңиздин кулпусун ачып, сатып алууга уруксат берип же жумуштагы колдонмолорго кирүү үчүн манжа издерин башка колдоно албай каласыз"</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Ооба, өчүрөм"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Шифрлөө"</string>
@@ -548,7 +548,7 @@
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Планшетиңизди коргоңуз"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Түзмөгүңүздү коргоңуз"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Телефонуңузду коргоңуз"</string>
-    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Кошумча коопсуздук үчүн көмөкчү экран кулпусун коюп алыңыз"</string>
+    <string name="lock_settings_picker_biometrics_added_security_message" msgid="799453282539387294">"Бекемирээк коргоо үчүн, экранды дагы бир ыкма менен кулпулаңыз"</string>
     <string name="setup_lock_settings_picker_message" product="tablet" msgid="7230799135599877804">"Түзмөктү коргоо функциялары жандырылганда, башкалар бул планшетти сиздин уруксатыңызсыз пайдалана албай калышат. Колдонгуңуз келген экран кулпусун тандаңыз."</string>
     <string name="setup_lock_settings_picker_message" product="device" msgid="2098404520816295371">"Түзмөктү коргоо функциялары жандырылганда, башкалар бул түзмөктү сиздин уруксатыңызсыз пайдалана албай калышат. Колдонгуңуз келген экран кулпусун тандаңыз."</string>
     <string name="setup_lock_settings_picker_message" product="default" msgid="2003984443953672040">"Түзмөктү коргоо функциялары жандырылганда, башкалар бул телефонду сиздин уруксатыңызсыз пайдалана албай калышат. Колдонгуңуз келген экран кулпусун тандаңыз."</string>
@@ -646,9 +646,9 @@
     <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Эгер графикалык ачкычты кийинки жолу туура эмес киргизсеңиз, жумуш профилиңиз жана анын дайындары өчүрүлөт"</string>
     <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Эгер PIN кодду кийинки жолу туура эмес киргизсеңиз, жумуш профилиңиз жана анын дайындары өчүрүлөт"</string>
     <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Эгер сырсөздү кийинки жолу туура эмес киргизсеңиз, жумуш профилиңиз жана анын дайындары өчүрүлөт"</string>
-    <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Өтө көп жолу туура эмес аракет кылынды. Бул түзмөктүн дайындары өчүрүлөт."</string>
-    <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"Өтө көп жолу туура эмес аракет кылынды. Бул колдонуучу өчүрүлөт."</string>
-    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Өтө көп жолу туура эмес аракет кылынды. Бул жумуш профили жана анын дайындары өчүрүлөт."</string>
+    <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Өтө көп жолу жаңылдыңыз. Бул түзмөктүн дайындары өчүрүлөт."</string>
+    <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"Өтө көп жолу жаңылдыңыз. Бул колдонуучу өчүрүлөт."</string>
+    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Өтө көп жолу жаңылдыңыз. Бул жумуш профили жана андагы нерселер өчүрүлөт."</string>
     <string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="3950582268749037318">"Этибарга албоо"</string>
     <plurals name="lockpassword_password_too_short" formatted="false" msgid="694091983183310827">
       <item quantity="other">Кеминде <xliff:g id="COUNT_1">%d</xliff:g> символ болушу керек</item>
@@ -740,7 +740,7 @@
     <string name="bluetooth_confirm_passkey_msg" msgid="7094455604290076371">"Муну менен туташыш үчүн:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt;Ал бул кодду көрсөтүп жатканын текшериңиз:&lt;br&gt;&lt;b&gt;<xliff:g id="PASSKEY">%2$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_incoming_pairing_msg" msgid="940451919337185024">"Жөнөтүүчү:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt;Бул түзмөк менен туташсынбы?"</string>
     <string name="bluetooth_display_passkey_pin_msg" msgid="5909423849232791647">"Кийинки менен туташуу үчүн:<xliff:g id="BOLD1_0">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1">&lt;/b&gt;&lt;br&gt;&lt;br&gt;</xliff:g>Андан муну терип:<xliff:g id="BOLD2_1">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2">&lt;/b&gt;</xliff:g>, Return же Enter\'ди басыңыз."</string>
-    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"Байланыштар менен чалуулар таржымалын пайдалануу мүмкүнчүлүгү берилсин"</string>
+    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"Байланыштар менен чалуулар таржымалына мүмкүнчүлүк берүү"</string>
     <string name="bluetooth_error_title" msgid="5718761586633101960"></string>
     <string name="bluetooth_connecting_error_message" msgid="8473359363469518478">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен байланыша албай жатат."</string>
     <string name="bluetooth_preference_scan_title" msgid="457781003962324807">"Түзмөктөрдү издөө"</string>
@@ -849,7 +849,7 @@
     <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Ачык тармактар тууралуу билдирмелер"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Байланыш сигналы күчтүү жалпыга ачык тармактар жеткиликтүү болгондо эскертет"</string>
     <string name="wifi_wakeup" msgid="4963732992164721548">"Wi‑Fi автоматтык түрдө күйсүн"</string>
-    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Байланыш сигналы күчтүү сакталган тармактарга (мисалы, үйүңүздөгү) жакындаганда, Wi‑Fi автоматтык түрдө күйөт"</string>
+    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Сигналы күчтүү, сакталган тармактарга жакындаганда (мисалы, үйүңүздөгү), Wi‑Fi автоматтык түрдө күйөт"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="3007457288587966962">"Жайгашкан жерди аныктоо мүмкүнчүлүгү өчүрүлгөндүктөн, жеткиликтүү эмес. "<annotation id="link">"Жайгашкан жерди"</annotation>" күйгүзүңүз."</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="6820040651529910914">"Wi‑Fi издөө функциясы өчүрүлгөндүктөн, бул опция иштебейт"</string>
     <string name="wifi_wakeup_summary_scoring_disabled" msgid="7067018832237903151">"Пайдалануу үчүн тармактын рейтингин камсыздоочуну тандаңыз"</string>
@@ -862,7 +862,7 @@
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"Пайдалануу үчүн шайкеш келген тармактын рейтингин камсыздоочуну тандаңыз"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"Тастыктамаларды орнотуу"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"Кайда жүргөнүңүздү тагыраак аныктоо үчүн, Wi‑Fi өчүп турса да, колдонмолор менен кызматтар зымсыз тармактарды издей беришет. Бул режим жайгашкан жерди аныктоо функцияларын жакшыртууга мүмкүнчүлүк берет. Аны <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>Wi-Fi тармактарын издөө жөндөөлөрүнөн<xliff:g id="LINK_END_1">LINK_END</xliff:g> өчүрүп койсоңуз болот."</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Кандайдыр бир жерди тагыраак аныктоо үчүн <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>издөө жөндөөлөрүнөн<xliff:g id="LINK_END_1">LINK_END</xliff:g> Wi-Fi издөө дегенди күйгүзүңүз."</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Кандайдыр бир жерди тагыраак аныктоо үчүн, <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>издөө жөндөөлөрүнөн<xliff:g id="LINK_END_1">LINK_END</xliff:g> Wi-Fi издөө дегенди күйгүзүңүз."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"Экинчи көргөзбө"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"Уктап жатканда Wi‑Fi иштей берсин"</string>
     <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"Уктап жатканда Wi‑Fi күйүк"</string>
@@ -875,7 +875,7 @@
     <string name="wifi_cellular_data_fallback_title" msgid="5067241930716252665">"Мобилдик дайындарга автоматтык түрдө которулсун"</string>
     <string name="wifi_cellular_data_fallback_summary" msgid="2721467405851519769">"Wi-Fi аркылуу Интернетке туташуу мүмкүнчүлүгү жок болгондо, мобилдик дайындар колдонулсун. Дайындардын колдонулгандыгы үчүн акы алынышы мүмкүн."</string>
     <string name="wifi_add_network" msgid="4094957940791876640">"Тармак кошуу"</string>
-    <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"Wi‑Fi жеке жөндөөлөрү"</string>
+    <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"Wi‑Fi жөндөөлөрү"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"Wi‑Fi тармагы автоматтык түрдө өзү күйөт"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Wi‑Fi тармагы автоматтык түрдө күйбөйт"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"Wi‑Fi түйүндөрү"</string>
@@ -888,7 +888,7 @@
     <string name="wifi_menu_remember" msgid="717257200269700641">"Тармакты эстеп калуу"</string>
     <string name="wifi_menu_forget" msgid="7561140554450163075">"Тармак унутулсун"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"Тармакты өзгөртүү"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"Жеткиликтүү тармактарды көрүү үчүн Wi‑Fi\'ды иштетиңиз."</string>
+    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"Жеткиликтүү тармактарды көрүү үчүн, Wi‑Fi\'ды иштетиңиз."</string>
     <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wi‑Fi түйүндөрү изделүүдө…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Wi‑Fi түйүнүн алмаштырууга урукатыңыз жок."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Дагы"</string>
@@ -905,17 +905,17 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID киргизиңиз"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Коопсуздук"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Жашырылган тармак"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Эгер роутериңиз тармактын ID\'син таратпай жатса, бирок ага келечекте туташууну кааласаңыз, ал тармакты жашыруун кылып койсоңуз болот.\n\nТелефонуңуз тармакты табуу үчүн сигналын такай таратканына байланыштуу бул коопсуздукка зыян келтириши мүмкүн.\n\nТармакты жашыруун кылып жөндөсөңүз, роутериңиздин жөндөөлөрү өзгөрбөйт."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Эгер роутериңиз тармактын идентификаторун таратпай жатса, бирок ага кийинчерээк туташа турган болсоңуз, аны жашыруун кылып койсоңуз болот.\n\nБирок телефонуңуз сигнал берип, тармакты издей берет. Ушундан улам, түзмөгүңүздүн коопсуздугуна коркунуч келтирилиши мүмкүн.\n\nЖашыруун тармактын сакталышы роутердин параметрлерин өзгөртпөйт."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Сигналдын күчү"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Абалы"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"Байланыш ылдамдыгын берүү"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Байланыш ылдамдыгын алуу"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"Маалымат берүү ылдамдыгы"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Маалымат алуу ылдамдыгы"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Жыштык"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP дарек"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Төмөнкү аркылуу сакталган"</string>
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g> эсептик дайындары"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"EAP ыкмасы"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"Аныктыктын текшерүүнүн 2-этабы"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"Аутентификациянын 2-этабы"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA тастыктамасы"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Домен"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Колдонуучунун тастыктамасы"</string>
@@ -930,15 +930,15 @@
     <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5.0 ГГц жыштыгы сунушталат"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2.4 ГГц"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5.0 ГГц"</string>
-    <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Wi‑Fi туташуу түйүнүн иштетүү үчүн кеминде бир жыштыкты тандаңыз:"</string>
+    <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Wi‑Fi байланыш түйүнүн иштетүү үчүн кеминде бир жыштыкты тандаңыз:"</string>
     <string name="wifi_ip_settings" msgid="4636102290236116946">"IP жөндөөлөрү"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Купуялык"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Кокустан тандалган MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Түзмөк кошуу"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"QR кодду борборго жайгаштырып, түзмөктү \"<xliff:g id="SSID">%1$s</xliff:g>\" тармагына кошуңуз"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"\"<xliff:g id="SSID">%1$s</xliff:g>\" тармагына кошулуу үчүн, камераны төмөнкү QR кодго алып келиңиз"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR кодун скандоо"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"QR кодду борборго жайгаштырып, түзмөктү \"<xliff:g id="SSID">%1$s</xliff:g>\" тармагына туташтырыңыз"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR кодун скандоо менен Wi‑Fi\'га кошулуңуз"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"\"<xliff:g id="SSID">%1$s</xliff:g>\" тармагына туташуу үчүн, камераңызды төмөнкү QR кодго алып келиңиз"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Wi‑Fi\'га кошулуу үчүн, QR кодун скандаңыз"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi\'ды бөлүшүү"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"\"<xliff:g id="SSID">%1$s</xliff:g>\" тармагына туташып, сырсөз менен бөлүшүү үчүн, бул QR кодун скандаңыз"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"\"<xliff:g id="SSID">%1$s</xliff:g>\" тармагына туташуу үчүн, бул QR кодун скандаңыз"</string>
@@ -967,12 +967,12 @@
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Бул тармакка туташуу үчүн, QR кодун колдонуңуз"</string>
     <string name="retry" msgid="8500839563577344702">"Кайталоо"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"Түзмөктүн башка колдонуучулары менен бөлүшүлсүн"</string>
-    <string name="wifi_unchanged" msgid="6804964646942333992">"(өзгөрбөгөн)"</string>
+    <string name="wifi_unchanged" msgid="6804964646942333992">"(өзгөрүүсүз)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"Тандаңыз"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(Бир нече тастыктама кошулду)"</string>
     <string name="wifi_use_system_certs" msgid="4794489370929885022">"Тутумдун тастыктамаларын көрсөтүү"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"Берилбесин"</string>
-    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Күчүнө киргизилбесин"</string>
+    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Текшерилбесин"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Эч тастыктама көрсөтүлгөн жок. Туташууңуз купуя болбойт."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Тармактын аталышы өтө узун."</string>
     <string name="wifi_no_domain_warning" msgid="735859919311067606">"Домен көрсөтүлүшү керек."</string>
@@ -1060,7 +1060,7 @@
     <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"Интернет же мазмун башка түзмөктөр менен бөлүшүлгөн жок"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"Бул планшеттин Интернети байланыш түйүнү аркылуу бөлүшүлүүдө"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Бул телефондун Интернети байланыш түйүнү аркылуу бөлүшүлүүдө"</string>
-    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Колдонмо мазмунду бөлүшүүдө. Интернет байланышын бөлүшүү үчүн туташуу түйүнүн өчүрүп, кайра күйгүзүңүз"</string>
+    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Колдонмо мазмунду бөлүшүүдө. Интернет байланышын бөлүшүү үчүн байланыш түйүнүн өчүрүп, кайра күйгүзүңүз"</string>
     <string name="wifi_hotspot_no_password_subtext" msgid="5400500962974373706">"Бир да сырсөз коюлган жок"</string>
     <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"Байланыш түйүнүнүн аталышы"</string>
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> күйгүзүлүүдө…"</string>
@@ -1082,7 +1082,7 @@
     <string name="wifi_calling_settings_title" msgid="626821542308601806">"Wi-Fi чалуу"</string>
     <string name="wifi_calling_suggestion_title" msgid="1402265373543523970">"Байланыш аймагын кеңейтүү үчүн Wi-Fi аркылуу чалуу"</string>
     <string name="wifi_calling_suggestion_summary" msgid="198402175473169630">"Байланыш аймагын кеңейтүү үчүн Wi-Fi аркылуу чалууну күйгүзүңүз"</string>
-    <string name="wifi_calling_mode_title" msgid="3350624859819920176">"Чалуунун жеке жөндөөлөрү"</string>
+    <string name="wifi_calling_mode_title" msgid="3350624859819920176">"Чалуунун жөндөөлөрү"</string>
     <string name="wifi_calling_mode_dialog_title" msgid="652534533091724333">"Чалуу параметрлери"</string>
     <string name="wifi_calling_roaming_mode_title" msgid="2059151080231602753">"Роуминг жөндөөлөрү"</string>
     <!-- no translation found for wifi_calling_roaming_mode_summary (620031651074963360) -->
@@ -1102,13 +1102,16 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi‑Fi"</item>
+    <item msgid="2271962426654621656">"Мобилдик түзмөк"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi жеткиликсиз болсо, мобилдик тармакты колдонуу"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Мобилдик тармак жеткиликсиз болсо, Wi‑Fi’ды колдонуңуз"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi-Fi аркылуу чалуу. Wi‑Fi жоголуп кетсе, чалуу үзүлөт."</string>
     <string name="wifi_calling_off_explanation" msgid="1653424723742898015">"Wi-Fi аркылуу чалуу күйгүзүлгөндө, телефонуңуз, жеке жөндөөлөрүңүзгө жана сигналдын күчтүүлүгүнө жараша, чалууларды Wi-Fi тармактары же операторуңуздун тармагы аркылуу багыттай алат. Бул функцияны күйгүзүүдөн мурда, төлөмдөрү жана башка маалымат боюнча операторуңузга кайрылыңыз.<xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="8648609693875720408"></string>
-    <string name="emergency_address_title" msgid="5779915349686787024">"Өзгөчө кырдаалда кайрыла турган дарек"</string>
+    <string name="emergency_address_title" msgid="5779915349686787024">"Кырсыктаганда кайрыла турган дарек"</string>
     <string name="emergency_address_summary" msgid="478668478569851714">"WiFi аркылуу өзгөчө кырдаалдар кызматынын номерине чалганыңызда куткаруучуларга жайгашкан жериңиз катары көрсөтүлөт"</string>
     <string name="private_dns_help_message" msgid="7633526525131196650">"Жеке DNS функциялары жөнүндө "<annotation id="url">"кененирээк маалымат"</annotation>" алыңыз"</string>
     <string name="wifi_calling_pref_managed_by_carrier" msgid="5458050015417972072">"Жөндөө байланыш оператору тарабынан башкарылат"</string>
@@ -1167,7 +1170,7 @@
     <string name="accessibility_personal_account_title" msgid="7251761883688839354">"Жеке аккаунт - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="5809250790214921377">"Издөө"</string>
     <string name="display_settings" msgid="1045535829232307190">"Экран"</string>
-    <string name="accelerometer_title" msgid="2427487734964971453">"Экранды авто-буруу"</string>
+    <string name="accelerometer_title" msgid="2427487734964971453">"Экранды авто буруу"</string>
     <string name="color_mode_title" msgid="8164858320869449142">"Түстөр"</string>
     <string name="color_mode_option_natural" msgid="1292837781836645320">"Табигый"</string>
     <string name="color_mode_option_boosted" msgid="453557938434778933">"Күчөтүлгөн"</string>
@@ -1200,13 +1203,13 @@
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"Учурдагы жарыкка ыңгайлаштырылбасын"</string>
     <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"Батарея тез отуруп калат"</string>
     <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"Жарык деңгээли учурдагы жарыкка карап өзгөрөт. Зарылчылыкка жараша аны убактылуу өзгөртсөңүз болот."</string>
-    <string name="auto_brightness_description" msgid="8209140379089535411">"Экрандын жарыктыгы жүргөн жериңизге жана аткарган ишиңизге жараша автоматтык түрдө өзгөрөт. Сыдырманы колуңуз менен сыдырып, ыңгайлаштырылуучу жарыкты өзүңүз каалагандай жөндөп алыңыз."</string>
+    <string name="auto_brightness_description" msgid="8209140379089535411">"Экрандын жарыктыгы жүргөн жериңизге жана аткарган ишиңизге жараша автоматтык түрдө өзгөрөт. Сыдырманы колуңуз менен сыдырып, жарыкты өзүңүз каалагандай ыңгайлаштырып алыңыз."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"Экрандын ак балансы"</string>
     <string name="adaptive_sleep_title" msgid="3237620948260957018">"Screen aware"</string>
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"Күйүк / Экранды карап турганда, ал өчүп калбайт"</string>
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"Өчүк"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"Экранды карап турганда, ал өчүп калбайт."</string>
-    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Screen aware экранды кимдир-бирөө карап жатканын текшерүү үчүн маңдайкы камераны колдонот. Ал түзмөктө иштеп, сүрөттөрдү эч качан сактап калбайт жана Google\'га жөнөтпөйт."</string>
+    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Screen aware экранды кимдир-бирөө карап жатканын текшерүү үчүн, маңдайкы камераны колдонот. Ал түзмөктө иштеп, сүрөттөрдү эч качан сактап калбайт жана Google\'га жөнөтпөйт."</string>
     <string name="night_display_title" msgid="1305002424893349814">"Түнкү режим"</string>
     <string name="night_display_text" msgid="5330502493684652527">"Түнкү режимде экран сары түскө боёлот. Ушуну менен күңүрт жерде көзүңүзгө күч келбей, тезирээк уктап каласыз."</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Ырааттама"</string>
@@ -1226,7 +1229,7 @@
     <string name="night_display_summary_on_auto_mode_custom" msgid="2200631112239399233">"<xliff:g id="ID_1">%1$s</xliff:g> болгондо автоматтык түрдө өчөт"</string>
     <string name="night_display_summary_on_auto_mode_twilight" msgid="8386769601369289561">"Күн чыкканда автоматтык түрдө өчөт"</string>
     <string name="night_display_activation_on_manual" msgid="8379477527072027346">"Күйгүзүү"</string>
-    <string name="night_display_activation_off_manual" msgid="7776082151269794201">"Азыр өчүрүлсүн"</string>
+    <string name="night_display_activation_off_manual" msgid="7776082151269794201">"Өчүрүү"</string>
     <string name="night_display_activation_on_twilight" msgid="5610294051700287249">"Күн чыкканга чейин күйгүзүлсүн"</string>
     <string name="night_display_activation_off_twilight" msgid="6846727701281556110">"Күн батканга чейин өчүрүлсүн"</string>
     <string name="night_display_activation_on_custom" msgid="4761140206778957611">"<xliff:g id="ID_1">%1$s</xliff:g> чейин күйгүзүлсүн"</string>
@@ -1286,7 +1289,7 @@
     <string name="sim_pins_dont_match" msgid="1076283313667637902">"PINдер туура келген жок"</string>
     <string name="sim_change_failed" msgid="8874765697694275459">"PIN\'ди алмаштыруу мүмкүн эмес.\nPIN туура эмес өңдөнөт."</string>
     <string name="sim_change_succeeded" msgid="8802418023120614533">"SIM картанын PIN коду алмаштырылды"</string>
-    <string name="sim_lock_failed" msgid="7949781515066772755">"SIM-картаны бөгөттөн чыгаруу мүмкүн эмес.\nPIN туура эмес өңдөнөт."</string>
+    <string name="sim_lock_failed" msgid="7949781515066772755">"SIM картаны бөгөттөн чыгаруу мүмкүн эмес.\nPIN туура эмес өңдөнөт."</string>
     <string name="sim_pin_disable_failed" msgid="6780973900290546751">"PIN код өчүрүлбөй жатат."</string>
     <string name="sim_pin_enable_failed" msgid="804897359922298792">"PIN код иштетилбей жатат."</string>
     <string name="sim_enter_ok" msgid="5103626479976731229">"Жарайт"</string>
@@ -1307,7 +1310,7 @@
     <string name="system_update_settings_list_item_title" msgid="1907497454722790033">"Тутум жаңыртуулары"</string>
     <string name="system_update_settings_list_item_summary" msgid="3497456690691907873"></string>
     <string name="firmware_version" msgid="547095584029938749">"Android версиясы"</string>
-    <string name="security_patch" msgid="483709031051932208">"Коопсуздук тутуму качан жаңырды"</string>
+    <string name="security_patch" msgid="483709031051932208">"Коопсуздук тутуму качан жаңырган"</string>
     <string name="model_info" msgid="1729765474260797594">"Үлгүсү"</string>
     <string name="model_summary" msgid="8781425868254352168">"Үлгүсү: %1$s"</string>
     <string name="hardware_info" msgid="174270144950621815">"Түзмөктүн үлгүсү/аппараттык камсыздалышы"</string>
@@ -1333,8 +1336,8 @@
     <string name="status_number" product="default" msgid="6404365757066475145">"Телефон номери"</string>
     <string name="status_number_sim_slot" product="tablet" msgid="4518232285651165459">"MDN (SIM-карта оюкчасы %1$d)"</string>
     <string name="status_number_sim_slot" product="default" msgid="3660851494421332328">"Телефон номери (SIM-карта оюкчасы %1$d)"</string>
-    <string name="status_number_sim_status" product="tablet" msgid="8069693515860290952">"SIM-картадагы MDN"</string>
-    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"SIM-картадагы телефон номери"</string>
+    <string name="status_number_sim_status" product="tablet" msgid="8069693515860290952">"SIM картадагы MDN"</string>
+    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"SIM картадагы телефон номери"</string>
     <string name="status_min_number" msgid="8346889546673707777">"MIN"</string>
     <string name="status_msid_number" msgid="7808175928664357661">"MSID"</string>
     <string name="status_prl_version" msgid="5634561205739199042">"PRL версиясы"</string>
@@ -1525,7 +1528,7 @@
     <string name="battery_level_title" msgid="5207775387973771646">"Батарея деңгээли"</string>
     <string name="apn_settings" msgid="8130776653826271664">"APN\'дер"</string>
     <string name="apn_edit" msgid="4350571070853305357">"Байланыш түйүнүн өзгөртүү"</string>
-    <string name="apn_not_set" msgid="5344235604466825691">"Аныкталган эмес"</string>
+    <string name="apn_not_set" msgid="5344235604466825691">"Коюлган эмес"</string>
     <string name="apn_name" msgid="8431432886706852226">"Аталышы"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
     <string name="apn_http_proxy" msgid="8816906767987944465">"Прокси"</string>
@@ -1562,26 +1565,26 @@
     <string name="error_mcc_not3" msgid="1333037488064427164">"MCC талаасы 3 орундуу болууга тийиш."</string>
     <string name="error_mnc_not23" msgid="6738398924368729180">"MNC талаасы 2 же 3 орундуу болууга тийиш."</string>
     <string name="error_adding_apn_type" msgid="671634520340569678">"Байланыш оператору %s түрүндөгү APN\'дерди кошууга уруксат бербейт."</string>
-    <string name="restore_default_apn" msgid="7195266404077471007">"Абалкы APN тууралоолорун кайтарууда."</string>
+    <string name="restore_default_apn" msgid="7195266404077471007">"Демейки APN тууралоолорун кайтарууда."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Баштапкы абалга келтирүү"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Абалкы APN тууралоолорун кайтаруу аяктады."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Демейки APN жөндөөлөрү калыбына келди."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Кайра коюу опциялары"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Тармактын, колдонмолордун же түзмөктүн жөндөөлөрүн баштапкы абалга келтирсеңиз болот"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Wi-Fi\'ды, мобилдик түзмөктү жана Bluetooth\'ду баштапкы абалга келтирүү"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"Ушуну менен тармактын бардык жөндөөлөрү баштапкы абалга келет. Тактап айтканда: \n\n"<li>"Wi‑Fi"</li>\n<li>"Мобилдик Интернет"</li>\n<li>"Bluetooth"</li></string>
-    <string name="reset_esim_title" msgid="7630781767040831893">"Жүктөп алган SIM’дерди тазалоо"</string>
-    <string name="reset_esim_desc" msgid="433226911566802">"Ордуна башка SIM карта жүктөп алуу үчүн, операторуңуз менен байланышыңыз. Ушуну менен байланыш операторунун тарифтик пландары жокко чыгарылбайт."</string>
+    <string name="reset_esim_title" msgid="7630781767040831893">"Жүктөп алган SIM’дерди өчүрүү"</string>
+    <string name="reset_esim_desc" msgid="433226911566802">"Ордуна башка SIM карта жүктөп алуу үчүн, операторуңуз менен байланышыңыз. Тарифтик пландарыңыз өзгөрбөйт."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Жөндөөлөрдү кайра коюу"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"Тармак жөндөөлөрүнүн баары баштапкы абалга келтирилсинби? Бул аракетти кайра кайтара албайсыз."</string>
-    <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"Тармак жөндөөлөрүнүн баары баштапкы абалга келтирилип, жүктөлүп алынган SIM карталар тазалансынбы? Бул аракетти артка кайтара албайсыз."</string>
+    <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"Тармак жөндөөлөрүнүн баарын баштапкы абалга келтирип, жүктөлүп алынган SIM карталарды өчүрөсүзбү? Бул аракетти артка кайтара албайсыз."</string>
     <string name="reset_network_final_button_text" msgid="345255333127794393">"Жөндөөлөрдү кайра коюу"</string>
     <string name="reset_network_confirm_title" msgid="2432145031070536008">"Кайра коесузбу?"</string>
     <string name="network_reset_not_available" msgid="6146655531868016281">"Бул колдонуучу тармакты баштапкы абалына келтире албайт"</string>
     <string name="reset_network_complete_toast" msgid="128225929536005495">"Тармак жөндөөлөрү баштапкы абалга келди"</string>
     <string name="reset_esim_error_title" msgid="4728931209471875632">"SIM карталар тазаланбай жатат"</string>
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"Жүктөлүп алынган SIM карталарды катадан улам тазалоого болбойт.\n\nТүзмөгүңүздү өчүрүп күйгүзүп, кайталап көрүңүз."</string>
-    <string name="master_clear_title" msgid="1560712943955904673">"Бардык дайындарды тазалоо (баштапкы абалга келтирүү)"</string>
-    <string name="master_clear_short_title" msgid="919098101581335101">"Бардык дайындарды тазалоо"</string>
+    <string name="master_clear_title" msgid="1560712943955904673">"Бардык дайын-даректерди өчүрүү (баштапкы абалга келтирүү)"</string>
+    <string name="master_clear_short_title" msgid="919098101581335101">"Бардык дайын-даректерди өчүрүү"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Планшетиңиздин "<b>"ички сактагычындагы"</b>" бардык маалымат өчүрүлөт, тактап айтканда:\n\n"<li>"Google аккаунтуңуз"</li>\n<li>"Тутумдун жана колдонмолордун жөндөөлөрү жана дайындары"</li>\n<li>"Жүктөлүп алынган колдонмолор"</li></string>
     <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Телефонуңуздун "<b>"ички сактагычындагы"</b>" бардык маалымат өчүрүлөт, тактап айтканда:\n\n"<li>"Google аккаунтуңуз"</li>\n<li>"Тутумдун жана колдонмолордун жөндөөлөрү жана дайындары"</li>\n<li>"Жүктөлүп алынган колдонмолор"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"Ушул түзмөктөгү аккаунттар:\n"</string>
@@ -1610,16 +1613,16 @@
     <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB модем"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Wi-Fi байланыш түйүнү"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Bluetooth модем"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Жалгаштыруу"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Модем режими"</string>
     <string name="tether_settings_title_all" msgid="6935843543433954181">"Байланыш түйүнү жана модем"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Байланыш түйүнү күйүк, модем режими"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Байланыш түйүнү күйүк"</string>
-    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Тетеринг"</string>
+    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Модем режими"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Трафикти үнөмдөө режиминде түзмөктү модем же байланыш түйүнү катары колдонууга болбойт"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB модем"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Телефондун Интернетин USB аркылуу бөлүшөсүз"</string>
-    <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Планшеттин Интернетин USB аркылуу бөлүшүү"</string>
+    <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Планшеттин Интернетин USB аркылуу бөлүшөсүз"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Bluetooth модем"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Планшеттин Интернетин Bluetooth аркылуу бөлүшүү"</string>
     <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Телефондун Интернетин Bluetooth аркылуу бөлүшөсүз"</string>
@@ -1634,17 +1637,17 @@
     <string name="sms_change_default_dialog_title" msgid="6301260161969667578">"SMS колдонмону алмаштырасызбы?"</string>
     <string name="sms_change_default_dialog_text" msgid="8275088077930942680">"SMS билдирүүлөрү менен жазышуу үчүн <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
     <string name="sms_change_default_no_previous_dialog_text" msgid="4680224695080527907">"<xliff:g id="NEW_APP">%s</xliff:g> SMS колдонмосу болсунбу?"</string>
-    <string name="network_scorer_picker_title" msgid="1691073966560952916">"Тармактар рейтингинин автору"</string>
+    <string name="network_scorer_picker_title" msgid="1691073966560952916">"Тармактар рейтингинин булагы"</string>
     <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Жок"</string>
-    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Wi‑Fi жардамчысы өзгөрүлсүнбү?"</string>
+    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Wi‑Fi жардамчысын өзгөртөсүзбү?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Тармактык туташууларыңызды башкаруу үчүн, <xliff:g id="CURRENT_APP">%2$s</xliff:g> ордуна <xliff:g id="NEW_APP">%1$s</xliff:g> колдоносузбу?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Тармактык туташууларыңызды башкаруу үчүн <xliff:g id="NEW_APP">%s</xliff:g> колдоносузбу?"</string>
     <string name="mobile_unknown_sim_operator" msgid="872589370085135817">"Белгисиз SIM оператору"</string>
     <string name="mobile_no_provisioning_url" msgid="3216517414902166131">"<xliff:g id="OPERATOR">%1$s</xliff:g> операторунда белгилүү камсыздоочу вебсайт жок"</string>
-    <string name="mobile_insert_sim_card" msgid="7594550403454243732">"SIM-картаны салып, кайра иштетиңиз"</string>
+    <string name="mobile_insert_sim_card" msgid="7594550403454243732">"SIM картаны салып, кайра иштетиңиз"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Интернетке кошулуңуз"</string>
     <string name="location_title" msgid="8664674161765477168">"Жайгашкан жерим"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Жумуш профилинин жайгашкн жери"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Жумуш профилинин жери"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Колдонмонун уруксаты"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Жайгашкан жерди аныктоо өчүрүлгөн"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1653,11 +1656,11 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Гео маалымат акыркы жолу качан колдонулду"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Кеңири маалымат"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Акыркы мезгилде жайгашууну сураган колдонмолор болгон жок"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Жакында жайгашкан жерди сураган колдонмолор болгон жок"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Жакында жайгашкан жерди аныктоо кызматына бир да колдонмо кирген жок"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Батарейди көп колдонуу"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Батареянын кубаты үнөмдөлүүдө"</string>
-    <string name="location_scanning_screen_title" msgid="7663329319689413454">"Wi‑Fi жана Bluetooth менен издөө"</string>
+    <string name="location_scanning_screen_title" msgid="7663329319689413454">"Wi‑Fi менен Bluetooth\'ду издөө"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Wi‑Fi издөө"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Wi-Fi өчүп турса да, колдонмолор менен кызматтарга Wi-Fi тармактарын издегенге уруксат бересиз. Бул параметр менен жайгашкан жерди тагыраак аныктоого болот."</string>
     <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Bluetooth түзмөктөрүн издөө"</string>
@@ -1684,7 +1687,7 @@
     <string name="about_settings_summary" msgid="4506081667462281647">"Юридикалык маалыматты, абалын, программа версиясын көрүү"</string>
     <string name="legal_information" msgid="2374267257615182139">"Юридикалык маалымат"</string>
     <string name="contributors_title" msgid="6800028420806884340">"Салым кошуучулар"</string>
-    <string name="manual" msgid="5431859421432581357">"Нускама"</string>
+    <string name="manual" msgid="5431859421432581357">"Кол менен"</string>
     <string name="regulatory_labels" msgid="380968489247381025">"Тастыктама энбелгилери"</string>
     <string name="safety_and_regulatory_info" msgid="7113766428000920132">"Коопсуздук жана стандарттарга жооп берүү"</string>
     <string name="copyright_title" msgid="3847703367689932190">"Автордук укук"</string>
@@ -1693,7 +1696,7 @@
     <string name="webview_license_title" msgid="8244960025549725051">"WebView тутум уруксаттамасы"</string>
     <string name="wallpaper_attributions" msgid="2941987966332943253">"Тушкагаздар"</string>
     <string name="wallpaper_attributions_values" msgid="4461979853894606323">"Спутник сүрөттөрү:\n©2014 CNES/Astrium, DigitalGlobe, Bluesky"</string>
-    <string name="settings_manual_activity_title" msgid="7599911755054286789">"Нускама"</string>
+    <string name="settings_manual_activity_title" msgid="7599911755054286789">"Кол менен"</string>
     <string name="settings_manual_activity_unavailable" msgid="4872502775018655343">"Нускаманы жүктөөдө көйгөй чыкты."</string>
     <string name="settings_license_activity_title" msgid="1099045216283677608">"Үчүнчү тараптын уруксаттамалары"</string>
     <string name="settings_license_activity_unavailable" msgid="1039356188263821287">"Уруксаттамалар жүктөлүп жатканда көйгөй келип чыкты."</string>
@@ -1705,17 +1708,17 @@
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Башка ыкманы колдонуу"</string>
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Экран кулпусун коюу"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Коопсуздук үчүн сырсөз коюп алыңыз"</string>
-    <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Манжа изин колдонуу үчүн сырсөздү коюңуз"</string>
-    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Манжа изин колдонуу үчүн графикалык ачкычты коюңуз"</string>
+    <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Сырсөздү коюңуз"</string>
+    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Графикалык ачкычты коюңуз"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Коопсуздук үчүн PIN код коюп алыңыз"</string>
-    <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"Манжа изин колдонуу үчүн PIN кодду коюңуз"</string>
+    <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"PIN код коюңуз"</string>
     <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"Коопсуздук үчүн графикалык ачкыч коюп алыңыз"</string>
     <string name="lockpassword_confirm_your_password_header" msgid="9055242184126838887">"Сырсөзүңүздү кайра киргизиңиз"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"Графикалык ачкычыңызды ырастаңыз"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"PIN кодуңузду кайра киргизиңиз"</string>
     <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"Сырсөздөр дал келген жок"</string>
     <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"PIN коддор дал келген жок"</string>
-    <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Графикалык ачкычты кайрадан тартыңыз"</string>
+    <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Графикалык ачкычты кайра тартыңыз"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"Кулпуну ачуу ыкмасын тандоо"</string>
     <string name="lockpassword_password_set_toast" msgid="601928982984489868">"Сырсөз коюлду"</string>
     <string name="lockpassword_pin_set_toast" msgid="172594825722240059">"PIN код коюлду"</string>
@@ -1812,7 +1815,7 @@
     <string name="controls_label" msgid="5609285071259457221">"Көзөмөлдөр"</string>
     <string name="force_stop" msgid="9213858124674772386">"Мажбурлап токтотуу"</string>
     <string name="total_size_label" msgid="3929917501176594692">"Жалпы"</string>
-    <string name="application_size_label" msgid="175357855490253032">"Колдонмонун өлчөмү"</string>
+    <string name="application_size_label" msgid="175357855490253032">"Колдонмонун көлөмү"</string>
     <string name="external_code_size_label" msgid="3434421216268309411">"USB сактагычтын колдонмосу"</string>
     <string name="data_size_label" msgid="7790201846922671662">"Колдонуучунун дайындары"</string>
     <string name="external_data_size_label" product="nosdcard" msgid="8004991551882573479">"USB сактагычтын дайындары"</string>
@@ -1840,7 +1843,7 @@
     <string name="show_background_processes" msgid="88012264528093617">"Кэштелген процсстрд көрст"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"Өзгөчө кырдаал колдонмосу"</string>
     <string name="reset_app_preferences" msgid="1426500030595212077">"Колдонмонун жөндөөлөрүн кайра коюу"</string>
-    <string name="reset_app_preferences_title" msgid="792909865493673598">"Колдонмо кайра баштан жөндөлсүнбү?"</string>
+    <string name="reset_app_preferences_title" msgid="792909865493673598">"Колдонмону кайра баштан жөндөйсүзбү?"</string>
     <string name="reset_app_preferences_desc" msgid="7935273005301096031">"Ушуну менен төмөнкү жөндөөлөр жоюлат:\n\n "<li>"Өчүрүлгөн колдонмолор"</li>\n" "<li>"Өчүрүлгөн колдонмолордун билдирмелери"</li>\n" "<li>"Демейки колдонмолор"</li>\n" "<li>"Фондук дайындарга коюлган чектөөлөр"</li>\n" "<li>"Бардык уруксат чектөөлөрү"</li>\n\n"Колдонмолордун дайындары жоголбойт."</string>
     <string name="reset_app_preferences_button" msgid="2041894727477934656">"Баштапкы абалга келтирүү"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"Бош орунду башкаруу"</string>
@@ -1999,7 +2002,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="6492621665762797309">"Сөздү түзөтүү"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="4577283176672181497">"Түзөтүү"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="670470172230144069">"Жок кылуу"</string>
-    <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"Колдонуучу сөздүгүңүздө бир дагы сөз жок. Сөз кошуу үчүн кошуу (+) баскычын таптап коюңуз."</string>
+    <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"Сөздүгүңүздө бир дагы сөз жок. Сөз кошуу үчүн кошуу (+) баскычын таптап коюңуз."</string>
     <string name="user_dict_settings_all_languages" msgid="8839702015353418176">"Бардык тилдер үчүн"</string>
     <string name="user_dict_settings_more_languages" msgid="8345984308635521364">"Дагы тилдер…"</string>
     <string name="testing" msgid="4255916838792186365">"Сыноо"</string>
@@ -2230,7 +2233,7 @@
     <string name="power_usage_level_and_status" msgid="8873534076894160727">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="3461915627093471868">"<xliff:g id="REMAIN">%1$s</xliff:g> калды"</string>
     <string name="power_charge_remaining" msgid="2730510256218879651">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> кубаттоо"</string>
-    <string name="background_activity_title" msgid="7207836362312111483">"Фондо колдонууну чектөө"</string>
+    <string name="background_activity_title" msgid="7207836362312111483">"Фондо керектелишин чектөө"</string>
     <string name="background_activity_summary" msgid="582372194738538145">"Колдонмо фондо аткарылсын"</string>
     <string name="background_activity_summary_disabled" msgid="457944930942085876">"Колдонмону фондо иштетүүгө уруксат жок"</string>
     <string name="background_activity_summary_whitelisted" msgid="4713321059375873828">"Фондо колдонуу чектелбейт"</string>
@@ -2260,7 +2263,7 @@
     <string name="bluetooth_on_time" msgid="6400569492287292639">"Өз убагындагы Wi‑Fi"</string>
     <string name="advanced_battery_title" msgid="5026866913848464170">"Батареянын колдонулушу"</string>
     <string name="history_details_title" msgid="8608193822257799936">"Таржымалдын чоо-жайы"</string>
-    <string name="battery_details_title" msgid="5358230551490703067">"Батарея колдонулушу"</string>
+    <string name="battery_details_title" msgid="5358230551490703067">"Батареянын керектелиши"</string>
     <string name="details_subtitle" msgid="7279638828004951382">"Чоо-жайын колдонуу"</string>
     <string name="controls_subtitle" msgid="6920199888882834620">"Кубат сарпталышын тууралоо"</string>
     <string name="packages_subtitle" msgid="6506269487892204413">"Камтылган топтомдор"</string>
@@ -2274,14 +2277,14 @@
     <string name="battery_tip_smart_battery_title" product="tablet" msgid="203494973250969040">"Планшетиңиздин батарея кубатынын мөөнөтүн узартыңыз"</string>
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Түзмөгүңүздүн батарея кубатынын мөөнөтүн узартыңыз"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Battery Manager\'ди күйгүзүңүз"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Батареяны үнөмдөгүч режимин күйгүзүү"</string>
-    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Батарея адаттагыдан эртерээк отуруп калышы мүмкүн"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Батареяны үнөмдөгүчтү күйгүзүү"</string>
+    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Батарея эртерээк отуруп калышы мүмкүн"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Батареяны үнөмдөгүч режими күйүк"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Айрым кызматтардын функциялары чектелиши мүмкүн"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Телефон адаттагыдан көбүрөөк колдонулду"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Планшет адаттагыдан көбүрөөк колдонулду"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Түзмөк адаттагыдан көбүрөөк колдонулду"</string>
-    <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Батарея адаттагыдан эртерээк отуруп калышы мүмкүн"</string>
+    <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Батарея эртерээк отуруп калышы мүмкүн"</string>
     <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"Телефонуңуз адаттагыдан көбүрөөк колдонулду. Батареяңыз күтүлгөндөн эртерээк отуруп калышы мүмкүн.\n\nАкыркы толук кубаттоодон бери эң көп батарея сарптаган колдонмолор:"</string>
     <string name="battery_tip_dialog_message" product="tablet" msgid="6489981050645444068">"Планшетиңиз адаттагыдан көбүрөөк колдонулду. Батареяңыз күтүлгөндөн эртерээк отуруп калышы мүмкүн.\n\nАкыркы толук кубаттоодон бери эң көп батарея сарптаган колдонмолор:"</string>
     <string name="battery_tip_dialog_message" product="device" msgid="6348123094674390337">"Түзмөгүңүз адаттагыдан көбүрөөк колдонулду. Батареяңыз күтүлгөндөн эртерээк отуруп калышы мүмкүн.\n\nАкыркы толук кубаттоодон бери эң көп батарея сарптаган колдонмолор:"</string>
@@ -2295,8 +2298,8 @@
       <item quantity="one">%1$s колдонмо жакында чектелди</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="other">%2$d колдонмо батареяны фондо сарптайт</item>
-      <item quantity="one">%1$s колдонмо батареяны фондо сарптайт</item>
+      <item quantity="other">%2$d батареяны бат отургузуп жатат</item>
+      <item quantity="one">%1$s батареяны бат отургузуп жатат</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Бул колдонмолор фондо иштебейт</item>
@@ -2311,12 +2314,12 @@
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Батареяны үнөмдөө максатында, бул колдонмолордун фондо иштөөсүн токтотуп койсоңуз болот. Чектелген колдонмолор талаптагыдай иштебей, билдирмелери кечигүү менен көрсөтүлүшү мүмкүн.\n\nКолдонмолор:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Чектөө"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Чектөөлөр өчүрүлсүнбү?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Бул колдонмо батареяны фондо колдоно берет. Батареяңыз күтүлгөндөн эртерээк отуруп калышы мүмкүн."</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Бул колдонмо батареяны фондо керектей берет. Батареяңыз күтүлгөндөн эртерээк отуруп калышы мүмкүн."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Алып салуу"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Жокко чыгаруу"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Колдонмолоруңуз батареяны орточо деңгээлде колдонуп жатышат. Эгер алар батареяны өтө көп колдонушса, телефонуңуз ал боюнча чара көрүүнү сунуштайт.\n\nЭгер батареяңыз азайып баратса, каалаган убакта Батареяны үнөмдөгүч режимин күйгүзүп койсоңуз болот."</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Колдонмолоруңуз батареяны орточо деңгээлде колдонуп жатышат. Эгер алар батареяны өтө көп колдонушса, планшетиңиз ал боюнча чара көрүүнү сунуштайт.\n\nЭгер батареяңыз азайып баратса, каалаган убакта Батареяны үнөмдөгүч режимин күйгүзүп койсоңуз болот."</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Колдонмолоруңуз батареяны орточо деңгээлде колдонуп жатышат. Эгер алар батареяны өтө көп колдонушса, түзмөгүңүз ал боюнча чара көрүүнү сунуштайт.\n\nЭгер батареяңыз азайып баратса, каалаган убакта Батареяны үнөмдөгүч режимин күйгүзүп койсоңуз болот."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Колдонмолоруңуз батареяны орточо деңгээлде керектеп жатышат. Эгер өтө көп керектеп жиберишсе, телефонуңуз ал боюнча чара көрүүнү сунуштайт.\n\nАл эми таптакыр калбай баратса, Батареяны үнөмдөгүчтү күйгүзүп койсоңуз болот."</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Колдонмолоруңуз батареяны орточо деңгээлде керектеп жатышат. Эгер өтө көп керектеп жиберишсе, планшетиңиз ал боюнча чара көрүүнү сунуштайт.\n\nАл эми таптакыр калбай баратса, Батареяны үнөмдөгүчтү күйгүзүп койсоңуз болот."</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Колдонмолоруңуз батареяны орточо деңгээлде керектеп жатышат. Эгер өтө көп керектеп жиберишсе, түзмөгүңүз ал боюнча чара көрүүнү сунуштайт.\n\nАл эми таптакыр калбай баратса, Батареяны үнөмдөгүчтү күйгүзүп койсоңуз болот."</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"Battery Manager"</string>
     <string name="smart_battery_title" msgid="4919670408532804351">"Колдонмолорду автоматтык түрдө башкаруу"</string>
     <string name="smart_battery_summary" msgid="640027046471198174">"Сейрек колдонулган колдонмолор чектелген режимде иштешет"</string>
@@ -2426,12 +2429,12 @@
     <string name="battery_detail_since_full_charge" msgid="3814176986148084378">"Толук кубатталгандан бери канчасы колдонулду:"</string>
     <string name="battery_last_full_charge" msgid="5624033030647170717">"Акыркы жолу толук кубатталды"</string>
     <string name="battery_full_charge_last" msgid="4614554109170251301">"Толук кубатталгандан кийинки иштөө убакыты"</string>
-    <string name="battery_footer_summary" msgid="4828444679643906943">"Батареяны пайдалануу убактысы болжол менен көрсөтүлүп, колдонулушуна жараша өзгөрүшү мүмкүн"</string>
-    <string name="battery_detail_foreground" msgid="6616408559186553085">"Колдонулуп жатканда"</string>
+    <string name="battery_footer_summary" msgid="4828444679643906943">"Батареяны керектөө убактысы болжол менен көрсөтүлүп, түзмөктүн колдонулушуна жараша өзгөрүшү мүмкүн"</string>
+    <string name="battery_detail_foreground" msgid="6616408559186553085">"Активдүү режимде"</string>
     <string name="battery_detail_background" msgid="7938146832943604280">"Фондук режимде"</string>
-    <string name="battery_detail_power_usage" msgid="3606930232257489212">"Батарея колдонулушу"</string>
+    <string name="battery_detail_power_usage" msgid="3606930232257489212">"Батареянын керектелиши"</string>
     <string name="battery_detail_info_title" msgid="4617514228447481336">"Толук кубатталгандан бери"</string>
-    <string name="battery_detail_manage_title" msgid="745194290572617507">"Батареянын колдонулушун башкаруу"</string>
+    <string name="battery_detail_manage_title" msgid="745194290572617507">"Батареянын керектелишин башкаруу"</string>
     <string name="advanced_battery_graph_subtext" msgid="3349760453669664057">"Калган убакыт түзмөктүн колдонулушуна жараша эсептелип, көрсөтүлүүдө."</string>
     <string name="estimated_time_left" msgid="8849913193475011250">"Болжолдуу калган убакыт"</string>
     <string name="estimated_charging_time_left" msgid="7597080379844486777">"Батарея толгонго чейин калган убакыт"</string>
@@ -2449,12 +2452,12 @@
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Кубаттоо таржымалынын негизинде"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Кубат деңгээлинин негизинде"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Кубат деңгээли кубаттала турган убакытка чейин жетпей кала турган болгондо иштетилет"</string>
-    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g> жеткенде, күйгүзүлөт"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Ырааттама түзүү"</string>
+    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g> жеткенде автоматтык түрдө күйөт"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Пландаштыруу"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Толук кубатталганда өчүрүү"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Телефон <xliff:g id="PERCENT">%1$s</xliff:g> болгондо, батареяны үнөмдөгүч өчүрүлөт"</string>
-    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Планшет <xliff:g id="PERCENT">%1$s</xliff:g> болгондо, батареяны үнөмдөгүч өчүрүлөт"</string>
-    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"Түзмөк <xliff:g id="PERCENT">%1$s</xliff:g> болгондо, батареяны үнөмдөгүч өчүрүлөт"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Телефон <xliff:g id="PERCENT">%1$s</xliff:g> жеткенде, батареяны үнөмдөгүч өчүп калат"</string>
+    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Планшет <xliff:g id="PERCENT">%1$s</xliff:g> жеткенде, батареяны үнөмдөгүч өчүп калат"</string>
+    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"Түзмөк <xliff:g id="PERCENT">%1$s</xliff:g> жеткенде, батареяны үнөмдөгүч өчүп калат"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="2321082163892561703">"Күйгүзүү"</string>
@@ -2537,7 +2540,7 @@
     <string name="credentials_settings_not_available" msgid="5490259681690183274">"Бул колдонуучу далдаштырма дайындарын колдоно албайт"</string>
     <string name="credential_for_vpn_and_apps" msgid="2462642486949593841">"VPN жана колдонмолор үчүн орнотулган"</string>
     <string name="credential_for_wifi" msgid="2903295786961726388">"Wi-Fi үчүн орнотулган"</string>
-    <string name="credentials_reset_hint" msgid="3484350477764088169">"Бардык мазмундар өчүрүлсүнбү?"</string>
+    <string name="credentials_reset_hint" msgid="3484350477764088169">"Баарын өчүрөсүзбү?"</string>
     <string name="credentials_erased" msgid="7287088033523869085">"Каттоо маалыматы сакталган жер тазаланды."</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"Сертификат сактагычты тазалоо мүмкүн эмес."</string>
     <string name="usage_access_title" msgid="7981321142726540574">"Пайдалануу уруксаты бар колдн."</string>
@@ -2577,7 +2580,7 @@
     <string name="add_device_admin" msgid="1621152410207260584">"Түзмөктү башкарган колдонмону иштетүү"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Түзмөктү башкаруу"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"Түзмөктү башкаруучу колдонмо иштетилгенде, <xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосу төмөнкү аракеттерди аткарат:"</string>
-    <string name="device_admin_status" msgid="5424944611789040723">"Администратордун колдонмосу иштетилген жана <xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосуна төмөнкү аракеттерди аткарууга уруксат берет:"</string>
+    <string name="device_admin_status" msgid="5424944611789040723">"Администратордун колдонмосу иштетилип, <xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосуна төмөнкү аракеттерди аткарууга уруксат берет:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Профиль башкаргычы жандырылсынбы?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Улантсаңыз, профилиңизди администратор башкарып, ал жеке дайын-даректериңиз менен кошо башка тийиштүү дайындарды да сактап турат.\n\nАдминистратор бул колдонуучунун жөндөөлөрүн, кирүү мүмкүнчүлүгүн, колдонмолорду жана дайындарды, ошондой эле тармактагы аракеттер менен түзмөгүңүздүн жайгашкан жери тууралуу маалыматты көзөмөлдөп, башкара алат."</string>
     <string name="admin_disabled_other_options" msgid="8097063307730025707">"Башка параметрлер администратор тарабынан өчүрүлгөн"</string>
@@ -2620,7 +2623,7 @@
     <string name="sync_contacts" msgid="5687434785723746534">"Байланыштар"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google sync\'ке кош келиңиз!"</font>" \nБайланыштарды, жолугушууларды жана башкаларды, сиз кайдан болбосун жеткидей кылуунун Google сунуштаган жолу."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"Колдонмонун синхрондошуу тууралоолору"</string>
-    <string name="header_data_and_synchronization" msgid="400831816068697286">"Дайындар жана шайкештирүү"</string>
+    <string name="header_data_and_synchronization" msgid="400831816068697286">"Дайын-даректер жана шайкештирүү"</string>
     <string name="preference_change_password_title" msgid="7243527448378789274">"Сызсөздү өзгөртүү"</string>
     <string name="header_account_settings" msgid="8586173964125512219">"Аккаунттун жөндөөлөрү"</string>
     <string name="remove_account_label" msgid="5885425720323823387">"Аккаунтту алып салуу"</string>
@@ -2791,7 +2794,7 @@
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"VPN кызматына ар дайым туташып турсун"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"Бул колдонмодо колдоого алынбайт"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"Иштеп турат"</string>
-    <string name="vpn_require_connection" msgid="5413746839457797350">"VPN кызматынан башка туташуу бөгөттөлсүн"</string>
+    <string name="vpn_require_connection" msgid="5413746839457797350">"VPN\'сиз туташууларга тыюу салуу"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"VPN туташуусу талап кылынсынбы?"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"Дайым туташып туруучу VPN профайл тандаңыз. Бул VPN\'ге кошулганда гана желе трафигине уруксат берилет."</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"Эч бир"</string>
@@ -2847,7 +2850,7 @@
     <string name="user_settings_title" msgid="7917598650933179545">"Бир нече колдонуучу"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"Жаңы колдонуучуларды кошуу аркылуу түзмөгүңүздү башкалар менен чогуу колдонуңуз. Ар бир колдонуучунун түзмөктө ыңгайлаштырылган Башкы экран, аккаунттар, колдонмолор, жөндөөлөр жана башкалар үчүн жеке мейкиндиги болот."</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"Жаңы колдонуучуларды кошуу аркылуу планшетиңизди башкалар менен чогуу колдонуңуз. Ар бир колдонуучунун планшетте ыңгайлаштырылган Башкы экран, аккаунттар, колдонмолор, жөндөөлөр жана башкалар үчүн жеке мейкиндиги болот."</string>
-    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"Жаңы колдонуучуларды кошуу аркылуу телефонуңузду башкалар менен чогуу колдонуңуз. Ар бир колдонуучунун телефондо ыңгайлаштырылган Башкы экран, аккаунттар, колдонмолор, жөндөөлөр жана башкалар үчүн жеке мейкиндиги болот."</string>
+    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"Телефонуңузду бир нече адам менен чогуу пайдалансаңыз болот. Ал үчүн алардын ар бирине профиль түзүп бериңиз. Ар бир колдонуучу өз профилин өзү каалагандай жөндөп алышат (башкы экранын өзгөртүп, аккаунттарын жана колдонмолорун кошуп)."</string>
     <string name="user_list_title" msgid="6670258645246192324">"Колдонуучулар жана профайлдар"</string>
     <string name="user_add_user_or_profile_menu" msgid="4220679989900149336">"Колдонуучу же профиль кошуу"</string>
     <string name="user_add_user_menu" msgid="9006572936456324794">"Колдонуучу кошуу"</string>
@@ -2870,7 +2873,7 @@
     <string name="user_add_user_message_long" msgid="686637203224195465">"Эгер түзмөгүңүздү дагы бир адам колдонуп жаткан болсо, кошумча профилдерди түзүп коюңуз. Профилдин ээси аны өзү каалагандай жөндөп, тушкагаздарды коюп, керектүү колдонмолорду орнотуп алат. Мындан тышкары, колдонуучулар түзмөктүн Wi‑Fi´ды өчүрүү/күйгүзүү сыяктуу жалпы жөндөөлөрүн өзгөртө алат.\n\nПрофиль түзүлгөндөн кийин, аны жөндөп алуу керек.\n\nЖалпы колдонмолорду баары жаңырта алат, бирок атайын мүмкүнчүлүктөр өз-өзүнчө жөндөлөт."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Жаңы колдонуучу кошулганда, ал өз мейкиндигин түзүп алышы керек.\n\nКолдонмолорду бир колдонуучу жаңыртканда, ал калган бардык колдонуучулар үчүн да жаңырат."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Профилди жөндөйсүзбү?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Өз мейкиндигин жөндөп алышы үчүн түзмөктү колдонуучуга беришиңиз керек."</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Өз мейкиндигин жөндөп алышы үчүн, түзмөктү колдонуучуга беришиңиз керек."</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"Профайл азыр түзүлсүнбү?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"Азыр түзүү"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"Азыр эмес"</string>
@@ -2906,7 +2909,7 @@
     <string name="user_enable_calling_confirm_message" msgid="2490126715153125970">"Чалуулар таржымалы бул колдонуучу менен бөлүшүлөт."</string>
     <string name="user_enable_calling_and_sms_confirm_title" msgid="4153856398523366976">"Чалуулар менен SMS иштетилсинби?"</string>
     <string name="user_enable_calling_and_sms_confirm_message" msgid="3278802798876095734">"Чалуулар жана SMS таржымалы бул колдонуучу менен бөлүшүлөт."</string>
-    <string name="emergency_info_title" msgid="1522609271881425375">"Өзгөчө кырдаал жөнүндө маалымат"</string>
+    <string name="emergency_info_title" msgid="1522609271881425375">"Кырсыктаганда керек болчу маалымат"</string>
     <string name="emergency_info_summary" msgid="7280464759837387342">"<xliff:g id="USER_NAME">%1$s</xliff:g> жөнүндө маалымат жана байланыштар"</string>
     <string name="application_restrictions" msgid="6871981013736536763">"Колдонмолорго жана мазмунга уруксат"</string>
     <string name="apps_with_restrictions_header" msgid="8656739605673756176">"Чектелген колдонмолор"</string>
@@ -2919,10 +2922,10 @@
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"Демейкини колдонуу"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Ар дайым"</string>
-    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Акы төлөнүүчү башка колдонмо ачылып турган учурларды эске албаганда"</string>
+    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Башка төлөм колдонмосу ачылып турбаса"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Аралыктан төлөө терминалында төмөнкүнү колдонуу:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Терминалдан акы төлөө"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Акы төлөнүүчү колдонмону жөндөп туруп, телефондун арткы бетин колду тийгизбей туруп төлөө белгиси түшүрүлгөн терминалга ыктап кармап туруңуз."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Төлөм колдонмосун жөндөп туруп, телефондун арткы бетин тийбей төлөө белгиси түшүрүлгөн терминалга жакындатыңыз."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Түшүндүм"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Дагы…"</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Сиздин тандооңуз катары орнотулсунбу?"</string>
@@ -2991,7 +2994,7 @@
     <string name="sim_cellular_data_unavailable_summary" msgid="3093797406601964131">"Мобилдик Интернет үчүн SIM картаны тандоо үчүн таптап коюңуз"</string>
     <string name="sim_calls_always_use" msgid="5322696995795851734">"Бул нерсе дайым чалуулр үчүн колдонулсн"</string>
     <string name="select_sim_for_data" msgid="2099705792885526394">"Дайындар үчүн SIM тандаңыз"</string>
-    <string name="select_sim_for_sms" msgid="2481682560233370731">"SMS жөнөтүү үчүн SIM-картаны тандаңыз"</string>
+    <string name="select_sim_for_sms" msgid="2481682560233370731">"SMS жөнөтүү үчүн SIM картаны тандаңыз"</string>
     <string name="data_switch_started" msgid="4517966162053949265">"Дайындар SIM\'и которулууда, бул бир мүнөткө чейин созулушу мүмкүн…"</string>
     <string name="select_sim_for_calls" msgid="131091573472832807">"Төмөнкү менен чалуу"</string>
     <string name="sim_select_card" msgid="5558215843972182767">"SIM карта тандаңыз"</string>
@@ -3022,7 +3025,7 @@
     <string name="sim_pref_divider" msgid="4967718397875240190">"Төмөнкү үчүн тандалган SIM"</string>
     <string name="sim_calls_ask_first_prefs_title" msgid="8209265235625420102">"Чалган сайын сурасын"</string>
     <string name="sim_selection_required_pref" msgid="8738591348923992419">"Тандоо керек"</string>
-    <string name="sim_selection_channel_title" msgid="5671915549529226023">"SIM-картаны тандоо"</string>
+    <string name="sim_selection_channel_title" msgid="5671915549529226023">"SIM картаны тандоо"</string>
     <string name="dashboard_title" msgid="3343056553551876215">"Жөндөөлөр"</string>
     <plurals name="settings_suggestion_header_summary_hidden_items" formatted="false" msgid="4475734332610696843">
       <item quantity="other">Жашырылган %d нерсе көрсөтүлсүн</item>
@@ -3030,7 +3033,7 @@
     </plurals>
     <string name="network_dashboard_title" msgid="8288134139584687806">"Тармак жана Интернет"</string>
     <string name="network_dashboard_summary_mobile" msgid="5560545061217580626">"мобилдик"</string>
-    <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"дайындардын колдонулушу"</string>
+    <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"дайын-даректердин өткөрүлүшү"</string>
     <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"байланыш түйүнү"</string>
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"Туташкан түзмөктөр"</string>
     <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, айдоо режими, NFC"</string>
@@ -3120,7 +3123,7 @@
     <string name="keywords_assist_input" msgid="8392362788794886564">"демейки, жардамчы"</string>
     <string name="keywords_default_payment_app" msgid="845369409578423996">"төлөм, демейки"</string>
     <string name="keywords_ambient_display" msgid="8835182491798487184">"кирүүчү эскертме"</string>
-    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"usb аркылуу туташуу, bluetooth аркылуу туташуу, wifi хотспоту"</string>
+    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"usb аркылуу туташуу, bluetooth аркылуу туташуу, wifi байланыш түйүнү"</string>
     <string name="keywords_touch_vibration" msgid="2081175517528255224">"сенсорлор, дирилдөө, экран, сезгичтик"</string>
     <string name="keywords_ring_vibration" msgid="4210509151866460210">"сенсорлор, дирилдөө, телефон, чалуу, сезгичтик, шыңгыратуу"</string>
     <string name="keywords_notification_vibration" msgid="1077515502086745166">"сенсорлор, дирилдөө, сезгичтик"</string>
@@ -3131,10 +3134,10 @@
     <string name="sound_settings_summary_vibrate" msgid="2194491116884798590">"Коңгуроо дирилдейт"</string>
     <string name="sound_settings_summary_silent" msgid="899823817462768876">"Коңгуроонун үнү өчүрүлгөн"</string>
     <string name="sound_settings_example_summary" msgid="2091822107298841827">"Шыңгырдын катуулугу 80%"</string>
-    <string name="media_volume_option_title" msgid="3553411883305505682">"Мультимедианын үнү"</string>
+    <string name="media_volume_option_title" msgid="3553411883305505682">"Мультимедианын катуулугу"</string>
     <string name="remote_media_volume_option_title" msgid="6355710054191873836">"Үндү алыстан башкаруу"</string>
-    <string name="call_volume_option_title" msgid="5028003296631037334">"Чалуунун үнү"</string>
-    <string name="alarm_volume_option_title" msgid="3184076022438477047">"Ойготкучтун үнү"</string>
+    <string name="call_volume_option_title" msgid="5028003296631037334">"Сүйлөшүү"</string>
+    <string name="alarm_volume_option_title" msgid="3184076022438477047">"Ойготкучтун катуулугу"</string>
     <string name="ring_volume_option_title" msgid="2038924918468372264">"Шыңгырдын үнү"</string>
     <string name="notification_volume_option_title" msgid="1358512611511348260">"Эскертме үнүнүн катуулугу"</string>
     <string name="ringtone_title" msgid="1409086028485922583">"Телефондун шыңгыры"</string>
@@ -3148,7 +3151,7 @@
     <string name="screen_locking_sounds_title" msgid="4407110895465866809">"Экран кулпуланганда үн чыксын"</string>
     <string name="charging_sounds_title" msgid="5070437987230894287">"Кубаттоо үндөрү жана дирилдөө"</string>
     <string name="docking_sounds_title" msgid="2573137471605541366">"Жалгаштыруу үндөрү"</string>
-    <string name="touch_sounds_title" msgid="165237488496165652">"Экранга тийгенде үн чыксын"</string>
+    <string name="touch_sounds_title" msgid="165237488496165652">"Экранга тийгенде чыккан үндөр"</string>
     <string name="vibrate_on_touch_title" msgid="6360155469279157684">"Тийгенде дирилдейт"</string>
     <string name="vibrate_on_touch_summary" msgid="5504424764028676043">"Баскычтарды басканда, баскычтопко тийгенде ж.б. учурларда дирилдейт"</string>
     <string name="dock_audio_media_title" msgid="1859521680502040781">"Док катуу сүйлөткүч ойнотот"</string>
@@ -3193,16 +3196,16 @@
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6608239691864638854">"Визуалдык сигнал иштетилсин"</string>
     <string name="zen_mode_settings_category" msgid="5601680733422424922">"\"Тынчымды алба\" режими күйүп турганда"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="7486753018073540477">"Билдирмелерди чектөө"</string>
-    <string name="zen_mode_restrict_notifications_mute" msgid="2673665450311184875">"Билдирмелердин добушу чыкпайт"</string>
+    <string name="zen_mode_restrict_notifications_mute" msgid="2673665450311184875">"Билдирмелердин үнү чыкпайт"</string>
     <string name="zen_mode_restrict_notifications_mute_summary" msgid="1696217042353376674">"Билдирмелерди экранда көрөсүз"</string>
     <string name="zen_mode_restrict_notifications_mute_footer" msgid="3049522809520549054">"Билдирмелер келгенде телефонуңуздун үнү чыкпайт же дирилдебейт."</string>
     <string name="zen_mode_restrict_notifications_hide" msgid="3296933643539682552">"Билдирмелерди көрбөйсүз да, укпайсыз"</string>
     <string name="zen_mode_restrict_notifications_hide_summary" msgid="1449301153755270168">"Билдирмелерди көрбөйсүз да, укпайсыз"</string>
-    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"Жаңы же учурдагы билдирмелер көрүнбөйт, телефондун үнү чыкпайт же дирилдебейт. Бирок телефондун негизги функцияларынын иштеши үчүн керектүү маанилүү билдирмелерди ала бересиңер.\n\n\"Тынчымды алба\" режими өчүрүлгөндөн кийин, жашырылган билдирмелерди көрүү үчүн экранды ылдый сүрүп коюңуз."</string>
+    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"Жаңы же учурдагы билдирмелер көрүнбөйт, телефондун үнү чыкпайт же дирилдебейт. Бирок телефондун негизги функцияларынын иштеши үчүн керектүү болгон билдирмелерди ала бересиңер.\n\n\"Тынчымды алба\" режими өчүрүлгөндөн кийин, жашырылган билдирмелерди көрүү үчүн экранды ылдый сүрүп коюңуз."</string>
     <string name="zen_mode_restrict_notifications_custom" msgid="3167252482570424133">"Ыңгайлаштырылган"</string>
     <string name="zen_mode_restrict_notifications_enable_custom" msgid="6376983315529894440">"Ыңгайлаштырылган жөндөөнү иштетүү"</string>
     <string name="zen_mode_restrict_notifications_disable_custom" msgid="8004212081465043044">"Ыңгайлаштырылган жөндөөнү алып салуу"</string>
-    <string name="zen_mode_restrict_notifications_summary_muted" msgid="1075196788469381282">"Билдирмелердин добушу чыкпайт"</string>
+    <string name="zen_mode_restrict_notifications_summary_muted" msgid="1075196788469381282">"Билдирмелердин үнү чыкпайт"</string>
     <string name="zen_mode_restrict_notifications_summary_custom" msgid="4982187708274505748">"Жарым-жартылай жашырылган"</string>
     <string name="zen_mode_restrict_notifications_summary_hidden" msgid="7637206880685474111">"Билдирмелерди көрбөйсүз да, укпайсыз"</string>
     <string name="zen_mode_what_to_block_title" msgid="2142809942549840800">"Ыңгайлаштырылган чектөөлөр"</string>
@@ -3228,7 +3231,7 @@
     <string name="zen_mode_add" msgid="2533484377786927366">"Кошуу"</string>
     <string name="zen_mode_enable_dialog_turn_on" msgid="6396050543542026184">"Күйгүзүү"</string>
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Күйгүзүү"</string>
-    <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Азыр өчүрүлсүн"</string>
+    <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Өчүрүү"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"<xliff:g id="FORMATTED_TIME">%s</xliff:g> чейин \"Тынчымды алба\" режими күйгүзүлгөн"</string>
     <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Өзүңүз өчүрмөйүнчө, \"Тынчымды алба\" режими күйүп турат"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"\"Тынчымды алба\" режими автоматтык түрдө <xliff:g id="RULE_NAME">%s</xliff:g> ырааттамасына ылайык күйгүзүлдү"</string>
@@ -3273,7 +3276,7 @@
     <string name="zen_onboarding_ok" msgid="6403635918125323678">"Бүттү"</string>
     <string name="zen_onboarding_settings" msgid="1416466597876383322">"Жөндөөлөр"</string>
     <string name="zen_onboarding_new_setting_title" msgid="3622673375041304362">"Билдирмелерди көрбөйсүз да, укпайсыз"</string>
-    <string name="zen_onboarding_current_setting_title" msgid="2560330551761407563">"Билдирмелердин добушу чыкпайт"</string>
+    <string name="zen_onboarding_current_setting_title" msgid="2560330551761407563">"Билдирмелердин үнү чыкпайт"</string>
     <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"Билдирмелерди көрбөйсүз да, укпайсыз. Жылдызчаланган байланыштарга жана кайталап чалгандарга уруксат берилди."</string>
     <string name="zen_onboarding_current_setting_summary" msgid="3569246708507270821">"(Учурдагы жөндөө)"</string>
     <string name="zen_onboarding_dnd_visual_disturbances_header" msgid="7584229011611927613">"\"Тынчымды алба\" режиминин билдирмелеринин жөндөөлөрү өзгөртүлсүнбү?"</string>
@@ -3574,7 +3577,7 @@
     <string name="encryption_interstitial_yes" msgid="1839339586101502601">"Ооба"</string>
     <string name="encryption_interstitial_no" msgid="6517277668879344227">"Жок"</string>
     <string name="restricted_true_label" msgid="1545180379083441282">"Чектелген"</string>
-    <string name="restricted_false_label" msgid="4512495920090068495">"Колдонмо батареяны фондо колдоно алат"</string>
+    <string name="restricted_false_label" msgid="4512495920090068495">"Колдонмо батареяны фондо керектей алат"</string>
     <string name="encrypt_talkback_dialog_require_pin" msgid="2781758476498571031">"PIN талап кылынсынбы?"</string>
     <string name="encrypt_talkback_dialog_require_pattern" msgid="8705104812047332411">"Үлгү талап кылынсынбы?"</string>
     <string name="encrypt_talkback_dialog_require_password" msgid="5070710417271353306">"Сырсөз талап кылынсынбы?"</string>
@@ -3677,7 +3680,7 @@
     <string name="apps_storage" msgid="5658466038269046038">"Колдонмолор кампасы"</string>
     <string name="usage_access" msgid="2023443456361489516">"Колдонуу таржымалын көрүү"</string>
     <string name="permit_usage_access" msgid="3321727608629752758">"Колдонуу мүмкүнчүлүгүнө уруксат берүү"</string>
-    <string name="app_usage_preference" msgid="5691545073101551727">"Колдонмону пайдалануунун жеке жөндөөлөрү"</string>
+    <string name="app_usage_preference" msgid="5691545073101551727">"Колдонмону пайдалануунун жөндөөлөрү"</string>
     <string name="time_spent_in_app_pref_title" msgid="2803186835902798451">"Түзмөктү колдонуу убакыты"</string>
     <string name="usage_access_description" msgid="2178083292760305207">"Колдонуу таржымалы аркылуу кайсы колдонмолор канчалык көп колдонула турганын, ошондой эле байланыш операторуңузду, тил жөндөөлөрүн жана башка параметрлерди көрө аласыз."</string>
     <string name="memory_settings_title" msgid="7867148522014070721">"Эстутум"</string>
@@ -3709,7 +3712,7 @@
     <string name="high_power_system" msgid="739584574711292753">"Кубатты үнөмдөөнү иштетүү мүмкүн эмес"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Батареянын кубаты үнөмдөлбөсүн. Батареяңыз тез эле отуруп калышы мүмкүн."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Колдонмо фондо тынымсыз иштей берсинби?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосу фондо тынымсыз иштей берсе, батареянын кубаты тез сарпталышы мүмкүн. \n\nАны кийинчерээк Жөндөөлөр, Колдонмолор жана билдирмелер бөлүмүнөн өзгөртсөңүз болот."</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосу фондо тынымсыз иштей берсе, батарея бат отуруп калышы мүмкүн. \n\nАны кийинчерээк Жөндөөлөр, Колдонмолор жана билдирмелер бөлүмүнөн өзгөртсөңүз болот."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Акыркы жолу толук кубатталгандан бери <xliff:g id="PERCENTAGE">%1$s</xliff:g> сарпталды"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Батареянын кубатын башкаруу"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Акыркы жолу толук кубатталгандан бери батарея керектеле элек"</string>
@@ -3737,7 +3740,7 @@
     <string name="usb_default_label" msgid="7471316635263936101">"USB\'нин демейки конфигурациясы"</string>
     <string name="usb_default_info" msgid="953775292571786528">"Телефонуңуз башка түзмөккө туташып, кулпуланбай турганда, ушул жөндөөлөр колдонулат. Телефонуңузду ишенимдүү түзмөктөргө гана туташтырыңыз."</string>
     <string name="usb_pref" msgid="6194821550693495068">"USB"</string>
-    <string name="usb_preference" msgid="7092987095048592826">"USB\'нин жеке жөндөөлөрү"</string>
+    <string name="usb_preference" msgid="7092987095048592826">"USB\'нин жөндөөлөрү"</string>
     <string name="usb_control_title" msgid="2379698856760894768">"USB\'ни көзөмөлдөгөн түзмөк:"</string>
     <string name="usb_control_host" msgid="193292043691034178">"Туташкан түзмөк"</string>
     <string name="usb_control_device" msgid="9154790265254725254">"Ушул түзмөк"</string>
@@ -3756,9 +3759,9 @@
     <string name="background_check_pref" msgid="664081406854758392">"Фондо текшерүү"</string>
     <string name="background_check_title" msgid="4136736684290307970">"Фондук режимде толук мүмкүнчүлүк"</string>
     <string name="assist_access_context_title" msgid="2274614501747710439">"Экрандагы текстти колдонуу"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"Көмөкчү колдонмого экрандагы текстти колдонууга уруксат бересиз"</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"Көмөкчү колдонмого экрандагы текстке мүмкүнчүлүк бересиз"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"Скриншот колдонуу"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Көмөкчү колдонмого экрандагы сүрөттү колдонууга уруксат бересиз"</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Көмөкчү колдонмого экрандагы сүрөткө мүмкүнчүлүк бересиз"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Экран жаркылдасын"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"Көмөкчү колдонмо скриншотту же текстти колдонуу мүмкүнчүлүгүн алганда, экрандын чети жаркылдайт"</string>
     <string name="assist_footer" msgid="7030121180457472165">"Көмөкчү колдонмолор экрандагы маалымат менен иштейт. Айрым колдонмолордо үн буйруктары жана жүргүзгүч тактасы колдоого алынат."</string>
@@ -3801,7 +3804,7 @@
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"Колдонмолор"</string>
     <string name="system_alert_window_access_title" msgid="5187343732185369675">"Башка терезелердин үстүнөн көрсөтүү"</string>
     <string name="permit_draw_overlay" msgid="9039092257052422344">"Башка терезелердин үстүнөн көрсөтүүгө уруксат"</string>
-    <string name="allow_overlay_description" msgid="6669524816705082807">"Бул колдонмону башка терезелердин үстүнөн көрсөтүүгө уруксат бериңиз. Бирок башка колдонмолорду пайдаланууга тоскоол болуп же алардын интерфейсин бузуп салышы мүмкүн."</string>
+    <string name="allow_overlay_description" msgid="6669524816705082807">"Интерфейстин элементтери башка терезелердин үстүнөн көрүнөт. Ушундан улам, колдонмолор менен иштей албай, алардын интерфейстери бузулушу мүмкүн."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr виртуалдык дүйнө режими көмөкчү кызмат"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"системдик шашылыш билдирүүлөр башка колдонмолордун үстүнөн көрүнөт"</string>
     <string name="overlay_settings" msgid="3325154759946433666">"Башка терезел-н үст-н көрсөтүү"</string>
@@ -3868,7 +3871,7 @@
     <string name="backup_disabled" msgid="6941165814784765643">"Камдык көчүрмө өчүрүлгөн"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"Android <xliff:g id="VERSION">%1$s</xliff:g> версиясына жаңырды"</string>
     <string name="android_version_pending_update_summary" msgid="3554543810520655076">"Жаңы версия бар"</string>
-    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Аракетке уруксат жок"</string>
+    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Аракетке тыюу салынган"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7094547090629203316">"Үнү өзгөртүлбөйт"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="3805836913095496278">"Чалууга тыюу салынган"</string>
     <string name="disabled_by_policy_title_sms" msgid="1453236584236681105">"SMS жөнөтүүгө тыюу салынган"</string>
@@ -3941,9 +3944,9 @@
     <string name="ethernet_data_template" msgid="6414118030827090119">"<xliff:g id="AMOUNT">^1</xliff:g> Ethernet дайындары"</string>
     <string name="billing_cycle" msgid="5740717948341713190">"Трафик жана чектөөлөр"</string>
     <string name="app_usage_cycle" msgid="213483325132959663">"Статистика цикли"</string>
-    <string name="cell_data_warning" msgid="8902740337286652689">"Трафик тууралуу эскертүү: <xliff:g id="ID_1">^1</xliff:g>"</string>
-    <string name="cell_data_limit" msgid="3175933829235314233">"Трафикти чектөө: <xliff:g id="ID_1">^1</xliff:g>"</string>
-    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Трафик тууралуу эскертүү: <xliff:g id="ID_1">^1</xliff:g> / Трафикти чектөө: <xliff:g id="ID_2">^2</xliff:g>"</string>
+    <string name="cell_data_warning" msgid="8902740337286652689">"Качан эскертүү берилет: <xliff:g id="ID_1">^1</xliff:g>"</string>
+    <string name="cell_data_limit" msgid="3175933829235314233">"Трафик чектелген: <xliff:g id="ID_1">^1</xliff:g>"</string>
+    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Качан эскертүү берилет: <xliff:g id="ID_1">^1</xliff:g> / Трафик чектелген: <xliff:g id="ID_2">^2</xliff:g>"</string>
     <string name="billing_cycle_fragment_summary" msgid="4926047002107855543">"Ай сайын <xliff:g id="ID_1">%1$s</xliff:g> күнү"</string>
     <string name="network_restrictions" msgid="196294262243618198">"Тармак чектөөлөрү"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="1664494781594839837">
@@ -3979,7 +3982,7 @@
     <string name="carrier_and_update_text" msgid="4100603877929297103">"<xliff:g id="ID_1">^1</xliff:g> тарабынан <xliff:g id="ID_2">^2</xliff:g> мурда жаңырды"</string>
     <string name="no_carrier_update_text" msgid="8797522203060970532">"<xliff:g id="ID_1">^2</xliff:g> мурда жаңырды"</string>
     <string name="carrier_and_update_now_text" msgid="7619705504438908034">"<xliff:g id="ID_1">^1</xliff:g> тарабынан жаңы эле жаңырды"</string>
-    <string name="no_carrier_update_now_text" msgid="4405472895804759042">"Азыр эле жаңырды"</string>
+    <string name="no_carrier_update_now_text" msgid="4405472895804759042">"Жаңы эле жаңырды"</string>
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"Планды көрүү"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"Кеңири маалымат"</string>
     <string name="data_saver_title" msgid="7903308134514179256">"Трафикти үнөмдөө"</string>
@@ -3999,10 +4002,10 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"Дагы бир манжа изин кошуңуз"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"Кулпуну башка манжа менен ачуу"</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"Күйүк"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> жеткенде, күйгүзүлөт"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> жеткенде автоматтык түрдө күйөт"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"Өчүк"</string>
     <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Күйгүзүү"</string>
-    <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Азыр өчүрүлсүн"</string>
+    <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Өчүрүү"</string>
     <string name="not_battery_optimizing" msgid="2616044774307734160">"Батареянын кубатын үнөмдөө функциясы колдонулбай эле"</string>
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Түзмөк кулпуланып турса, эскертмелерде жооптор жана башка тексттер жазылбасын"</string>
     <string name="default_spell_checker" msgid="8636661093243189533">"Демейки орфография текшергич"</string>
@@ -4102,36 +4105,36 @@
     <string name="automatic_storage_manager_preference_title" msgid="4668642150512639466">"Сактагычты көзөмөлдөгүч"</string>
     <string name="automatic_storage_manager_master_switch_title" msgid="1456978117739582562">"Сактагычты көзөмөлдөгүчтү колдонуу"</string>
     <string name="deletion_helper_automatic_title" msgid="4370975149425263205">"Автоматтык"</string>
-    <string name="deletion_helper_manual_title" msgid="1011785013431162078">"Нускама"</string>
+    <string name="deletion_helper_manual_title" msgid="1011785013431162078">"Кол менен"</string>
     <string name="deletion_helper_preference_title" msgid="797270307034242206">"Орун бошотуу"</string>
     <string name="gesture_preference_title" msgid="583646591518373785">"Жаңсоолор"</string>
     <string name="gesture_preference_summary" product="default" msgid="2990736567599191163">"Телефонуңузду көзөмөлдөй турган ыкчам жаңсоолор"</string>
     <string name="gesture_preference_summary" product="tablet" msgid="8303793594714075580">"Планшетиңизди көзөмөлдөй турган ыкчам жаңсоолор"</string>
     <string name="gesture_preference_summary" product="device" msgid="7792199669106960922">"Түзмөгүңүздү көзөмөлдөй турган ыкчам жаңсоолор"</string>
     <string name="double_tap_power_for_camera_title" msgid="5480829329052517484">"Камерага өтүү"</string>
-    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"Камераны тез ачуу үчүн каалаган экрандан кубат баскычын эки жолу басыңыз."</string>
+    <string name="double_tap_power_for_camera_summary" msgid="6591026425496323965">"Камераны тез ачуу үчүн, каалаган экрандан кубат баскычын эки жолу басыңыз."</string>
     <string name="double_tap_power_for_camera_suggestion_title" msgid="509078029429865036">"Камераны тез ачуу"</string>
     <string name="double_twist_for_camera_mode_title" msgid="2606032140297556018">"Камераны которуштуруу"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="8979914206876018137"></string>
     <string name="double_twist_for_camera_suggestion_title" msgid="5932411386316771246">"Селфилерди тез тартуу"</string>
-    <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"Колдонмолорду которуштуруу үчүн Башкы бет баскычын өйдө сүрүп коюңуз. Бардык колдонмолорду көрүү үчүн кайра өйдө сүрүп коюңуз. Бардык экрандарда иштейт. Мындан ары экраныңыздын төмөнкү оң жагында Сереп салуу баскычы болбойт."</string>
+    <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"Башка колдонмого которулуу үчүн, Башкы бет баскычын басып, өйдө сүрүңүз. Бардык колдонмолорду көрүү үчүн, дагы бир жолу өйдө сүрүп коюңуз. Бул жаңсоо бардык экрандарда иштейт. Мындан ары экраныңыздын төмөнкү оң жагында Сереп салуу баскычы болбойт."</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"Жаңы Башкы бет баскычын колдонуп көрүңүз"</string>
-    <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Колдонмолорду которуштуруу үчүн жаңы жаңсоону күйгүзүңүз"</string>
+    <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Башка колдонмого которулуу үчүн,, жаңы жаңсоону күйгүзүңүз"</string>
     <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Убакытты жана билдирмелерди текшерүү үчүн эки жолу басуу"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Планшетти текшерүү үчүн эки жолу таптаңыз"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Түзмөктү текшерүү үчүн эки жолу таптаңыз"</string>
-    <string name="ambient_display_summary" msgid="4882910328216411109">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн экраныңызды эки жолу таптаңыз."</string>
+    <string name="ambient_display_summary" msgid="4882910328216411109">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн, экраныңызды эки жолу таптаңыз."</string>
     <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Билдирмелерди текшерүү үчүн телефонду көтөрүү"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Планшетти текшерүү үчүн көтөрүңүз"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Түзмөктү текшерүү үчүн көтөрүңүз"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"Дисплейди ачуу"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн телефонуңузду колуңузга алыңыз."</string>
-    <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн планшетиңизди колуңузга алыңыз."</string>
-    <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн түзмөгүңүздү колуңузга алыңыз."</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн, телефонуңузду колуңузга алыңыз."</string>
+    <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн, планшетиңизди колуңузга алыңыз."</string>
+    <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн, түзмөгүңүздү колуңузга алыңыз."</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Телефонду текшерүү үчүн басып коюу"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Планшетти текшерүү үчүн басып коюу"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Түзмөктү текшерүү үчүн басып коюу"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн экранды таптап коюңуз."</string>
+    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Убакытты, билдирмелерди жана башка маалыматты көрүү үчүн, экранды таптап коюңуз."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Билдирмелерди манжа изинин сенсору менен көрүү"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Манжа изинин сканери"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Билдирмелериңизди текшерүү үчүн телефондун аркасындагы манжа изинин сенсорун ылдый сүртүп коюңуз"</string>
@@ -4154,7 +4157,7 @@
     <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"Учурда сактагычыңыз сактагычты көзөмөлдөгүч тарабынан башкарылууда"</string>
     <string name="account_for_section_header" msgid="5975241715840642563">"<xliff:g id="USER_NAME">%1$s</xliff:g> таандык аккаунттар"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"Конфигурациялоо"</string>
-    <string name="auto_sync_account_title" msgid="2394463123733529506">"Дайындарды автоматтык түрдө шайкештирүү"</string>
+    <string name="auto_sync_account_title" msgid="2394463123733529506">"Дайын-даректердин автоматтык түрдө шайкештирилиши"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"Жеке дайындарды автоматтык түрдө шайкештирүү"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"Жумушка байланыштуу дайындарды автоматтык түрдө шайкештирүү"</string>
     <string name="auto_sync_account_summary" msgid="6316230976974033772">"Колдонмолордун маалыматы автоматтык түрдө жаңырып турат"</string>
@@ -4173,7 +4176,7 @@
     <string name="enterprise_privacy_installed_packages" msgid="4376014821459811800">"Түзмөгүңүздөгү колдонмолордун тизмеси"</string>
     <string name="enterprise_privacy_usage_stats" msgid="445762931318731975">"Ар бир колдонмого сарпталган убакыт жана колдонулган дайындар"</string>
     <string name="enterprise_privacy_network_logs" msgid="5427398751599441159">"Эң акыркы тармак трафигинин таржымалы"</string>
-    <string name="enterprise_privacy_bug_reports" msgid="283443567328836380">"Эң акыркы мүчүлүштүк тууралуу кабар берүү"</string>
+    <string name="enterprise_privacy_bug_reports" msgid="283443567328836380">"Эң акыркы мүчүлүштүк тууралуу кабарлоо"</string>
     <string name="enterprise_privacy_security_logs" msgid="8936969480449604726">"Эң акыркы коопсуздук таржымалы"</string>
     <string name="enterprise_privacy_none" msgid="5990646476868794882">"Жок"</string>
     <string name="enterprise_privacy_enterprise_installed_packages" msgid="6575025134782391212">"Орнотулган колдонмолор"</string>
@@ -4285,7 +4288,7 @@
     <string name="angle_enabled_app" msgid="4359266182151708733">"ANGLE иштетилген колдонмону тандоо"</string>
     <string name="angle_enabled_app_not_set" msgid="7428910515748621910">"ANGLE иштетилген колдонмо жөндөлгөн жок"</string>
     <string name="angle_enabled_app_set" msgid="7313088703610569320">"ANGLE иштетилген колдонмо: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
-    <string name="game_driver_dashboard_title" msgid="219443350404091201">"Оюн драйверинин жеке жөндөөлөрү"</string>
+    <string name="game_driver_dashboard_title" msgid="219443350404091201">"Оюн драйверинин жөндөөлөрү"</string>
     <string name="game_driver_dashboard_summary" msgid="1500674075618790528">"Оюн драйверинин жөндөөлөрү өзгөрөт"</string>
     <string name="game_driver_footer_text" msgid="1540158284161797913">"Оюн драйвери күйүк болгондо, түзмөктө орнотулган колдонмолор үчүн жаңыртылган графикалык драйверди колдонууну тандасаңыз болот."</string>
     <string name="game_driver_all_apps_preference_title" msgid="2453795714218707495">"Бардык колдонмолор үчүн иштетүү"</string>
@@ -4306,7 +4309,7 @@
     <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"Түзмөктүн аталышы"</string>
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Wi-Fi\'ды көзөмөлдөө"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Колдонмого Wi-Fi\'ды көзөмөлдөөгө уруксат берүү"</string>
-    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Бул колдонмого Wi-Fi\'ды өчүрүп же күйгүзүүгө, Wi-Fi тармактарын издеп, аларга туташууга, тармактарды кошуп же алып салууга же жергиликтүү туташуу түйүнүн иштетүүгө уруксат берүү"</string>
+    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Бул колдонмого Wi-Fi\'ды өчүрүп же күйгүзүүгө, Wi-Fi тармактарын издеп, аларга туташууга, тармактарды кошуп же алып салууга же жергиликтүү байланыш түйүнүн иштетүүгө уруксат берүү"</string>
     <string name="media_output_title" msgid="8710632337456601848">"Медиа файл төмөнкүдө ойнотулсун:"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Ушул түзмөк"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Телефон"</string>
@@ -4330,7 +4333,7 @@
     <string name="prevent_ringing_option_mute_summary" msgid="3509459199090688328">"Күйүк (үнсүз)"</string>
     <string name="prevent_ringing_option_none_summary" msgid="5152618221093037451">"Өчүк"</string>
     <string name="pref_title_network_details" msgid="3971074015034595956">"Тармактын чоо-жайы"</string>
-    <string name="about_phone_device_name_warning" msgid="9088572775969880106">"Түзмөгүңүздүн аталышы телефонуңуздагы колдонмолорго көрүнүктүү. Bluetooth түзмөктөрүнө туташканыңызда же Wi‑Fi туташуу түйүнүн жөндөгөнүңүздө, аны башка адамдар да көрүшү мүмкүн."</string>
+    <string name="about_phone_device_name_warning" msgid="9088572775969880106">"Түзмөгүңүздүн аталышы телефонуңуздагы колдонмолорго көрүнүктүү. Bluetooth түзмөктөрүнө туташканыңызда же Wi‑Fi байланыш түйүнүн жөндөгөнүңүздө, аны башка адамдар да көрүшү мүмкүн."</string>
     <string name="devices_title" msgid="4768432575951993648">"Түзмөктөр"</string>
     <string name="homepage_all_settings" msgid="3201220879559136116">"Бардык жөндөөлөр"</string>
     <string name="homepage_personal_settings" msgid="7472638597249114564">"Сунуштар"</string>
@@ -4442,7 +4445,7 @@
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"Тармактын режими жараксыз: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Баш тартыңыз."</string>
     <string name="mobile_network_apn_title" msgid="5628635067747404382">"Байланыш түйүнүнүн аталыштары"</string>
     <string name="manual_mode_disallowed_summary" msgid="799800630000340665">"<xliff:g id="CARRIER">%1$s</xliff:g> операторуна туташып турганда жеткиликсиз"</string>
-    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"Медициналык маалымат, өзгөчө кырдаал байланыштары"</string>
+    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"Медициналык маалымат, кырсыктаганда байланышуучу адамдар"</string>
     <string name="see_more" msgid="7463940160389802632">"Дагы көрүү"</string>
     <string name="see_less" msgid="3718892257002813387">"Азыраак көрүү"</string>
     <string name="network_connection_request_dialog_title" msgid="3150489262902506588">"<xliff:g id="APPNAME">%1$s</xliff:g> менен колдонулуучу түзмөк"</string>
diff --git a/tests/CarDeveloperOptions/res/values-lo/arrays.xml b/tests/CarDeveloperOptions/res/values-lo/arrays.xml
index 0dabc66..ff9fc4a 100644
--- a/tests/CarDeveloperOptions/res/values-lo/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-lo/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"ນຳໃຊ້ໃນພື້ນຫຼັງ"</item>
     <item msgid="6423861043647911030">"accessibility volume"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ສະຖານທີ່"</item>
+    <item msgid="6656077694190491067">"ສະຖານທີ່"</item>
+    <item msgid="8790228218278477369">"ສະຖານທີ່"</item>
+    <item msgid="7836406246005211990">"ສັ່ນເຕືອນ"</item>
+    <item msgid="3951439024549922598">"ອ່ານລາຍຊື່ຜູ່ຕິດຕໍ່"</item>
+    <item msgid="8802152411647068">"ແກ້ໄຂລາຍຊື່ຜູ່ຕິດຕໍ່"</item>
+    <item msgid="229544934599698735">"ອ່ານບັນທຶກການໂທ"</item>
+    <item msgid="7396102294405899613">"ແກ້ໄຂບັນທຶກການໂຕ"</item>
+    <item msgid="3597797992398484655">"ອ່ານປະຕິທິນ"</item>
+    <item msgid="2705975774250907343">"ແກ້ໄຂປະຕິທິນ"</item>
+    <item msgid="4668747371441932697">"ສະຖານທີ່"</item>
+    <item msgid="1487578921720243646">"ການແຈ້ງເຕືອນໂພສ"</item>
+    <item msgid="4636080349724146638">"Location"</item>
+    <item msgid="673510900286463926">"ໂທຫາໂທລະສັບ"</item>
+    <item msgid="542083422784609790">"ອ່ານ SMS/MMS"</item>
+    <item msgid="1033780373029588436">"ຂຽນ SMS/MMS"</item>
+    <item msgid="5647111115517787488">"ຮັບ SMS/MMS"</item>
+    <item msgid="8591105601108455893">"ຮັບ SMS/MMS"</item>
+    <item msgid="7730995008517841903">"ຮັບ SMS/MMS"</item>
+    <item msgid="2613033109026626086">"ຮັບ SMS/MMS"</item>
+    <item msgid="3037159047591081136">"ສົ່ງ SMS/MMS"</item>
+    <item msgid="4726682243833913568">"ອ່ານ SMS/MMS"</item>
+    <item msgid="6555678522277865572">"ຂຽນ SMS/MMS"</item>
+    <item msgid="6981734935578130884">"ແກ້ໄຂການຕັ້ງຄ່າ"</item>
+    <item msgid="8705854389991425629">"ແຕ້ມທາງ​ເທິງ"</item>
+    <item msgid="5861356020344153651">"ເຂົ້າເຖິງການແຈ້ງເຕືອນ"</item>
+    <item msgid="78432174621628659">"ກ້ອງຖ່າຍຮູບ"</item>
+    <item msgid="3986116419882154794">"ບັນທຶກສຽງ"</item>
+    <item msgid="4516840825756409490">"ຫຼິ້ນສຽງ"</item>
+    <item msgid="6811712502798183957">"ອ່ານຄລິບບອດ"</item>
+    <item msgid="2780369012602289114">"ແກ້ໄຂຄລິບບອດ"</item>
+    <item msgid="2331359440170850868">"ປຸ່ມ​ມີເດຍ"</item>
+    <item msgid="6133599737122751231">"Audio focus"</item>
+    <item msgid="6844485713404805301">"ລະດັບສຽງຫຼັກ"</item>
+    <item msgid="1600379420669104929">"ລະດັບສຽງເວົ້າ"</item>
+    <item msgid="6296768210470214866">"​ລະ​ດັບ​ສຽງ​ໂທ​ລະ​ສັບ"</item>
+    <item msgid="510690696071629241">"​ລະ​ດັບ​ສຽງ​ມີ​ເດຍ"</item>
+    <item msgid="406861638631430109">"ລະ​ດັບ​ສຽງ​ໂມງ​ປຸກ"</item>
+    <item msgid="4715864795872233884">"ລະ​ດັບ​ສຽງ​ແຈ້ງ​ເຕືອນ"</item>
+    <item msgid="2311478519251301183">"ລະດັບສຽງ Bluetooth"</item>
+    <item msgid="5133991377896747027">"ເຮັດວຽກຕະຫຼອດເວລາ"</item>
+    <item msgid="2464189519136248621">"ສະຖານທີ່"</item>
+    <item msgid="2062677934050803037">"ສະຖານທີ່"</item>
+    <item msgid="1735171933192715957">"ໂຫຼດ​ສະ​ຖິ​ຕິ​ການ​ນຳ​ໃຊ້"</item>
+    <item msgid="1014093788778383554">"ປິດ/ເປີດ ​ໄມ​ໂຄຣ​ໂຟນ"</item>
+    <item msgid="4199297950608622850">"ສະແດງຂໍ້ຄວາມປາກົດຂຶ້ນຊົ່ວຄາວ"</item>
+    <item msgid="2527962435313398821">"ໂປຣເຈັກມີເດຍ"</item>
+    <item msgid="5117506254221861929">"ເປີດນຳໃຊ້ VPN"</item>
+    <item msgid="8291198322681891160">"ຂຽນ​ວອ​ລ​ເປ​ເປີ"</item>
+    <item msgid="7106921284621230961">"ໂຄງຮ່າງຊ່ວຍ"</item>
+    <item msgid="4496533640894624799">"ຮູບຖ່າຍໜ້າຈໍຊ່ວຍ"</item>
+    <item msgid="2598847264853993611">"ອ່ານສະຖານະໂທລະສັບ"</item>
+    <item msgid="9215610846802973353">"ເພີ່ມຂໍ້ຄວາມສຽງ"</item>
+    <item msgid="9186411956086478261">"ໃຊ້ sip"</item>
+    <item msgid="6884763100104539558">"ດຳເນີນການໂທອອກ"</item>
+    <item msgid="125513972170580692">"ລາຍນີ້ວມື"</item>
+    <item msgid="2556071024281275619">"ເຊັນເຊີຮ່າງກາຍ"</item>
+    <item msgid="617168514928339387">"ອ່ານການປະກາດຜ່ານເຄືອຂ່າຍ"</item>
+    <item msgid="7134693570516523585">"ສະຖານທີ່ຈຳລອງ"</item>
+    <item msgid="7224489175375229399">"ອ່ານພື້ນທີ່ຈັດເກັບ"</item>
+    <item msgid="8472735063903258202">"ຂຽນພື້ນທີ່ຈັດເກັບ"</item>
+    <item msgid="4069276819909595110">"ເປີດໜ້າຈໍ"</item>
+    <item msgid="1228338896751121025">"ຮັບບັນຊີ"</item>
+    <item msgid="3181581793459233672">"ນຳໃຊ້ໃນພື້ນຫຼັງ"</item>
+    <item msgid="2340936043025374076">"Accessibility volume"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"ສັ້ນ"</item>
     <item msgid="4816511817309094890">"ປານກາງ"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"ບໍ່ອະນຸຍາດ"</item>
     <item msgid="8184570120217958741">"ອະນຸຍາດສະເໝີ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ທົ່ວໄປ"</item>
+    <item msgid="5101233285497327432">"ປານກາງ"</item>
+    <item msgid="1555861583162930714">"ຕ່ຳ"</item>
+    <item msgid="1719683776264798117">"ອັນ​ຕະ​ລາຍ"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ປົກ​ກະ​ຕິ"</item>
+    <item msgid="6107138933849816768">"ປານກາງ"</item>
+    <item msgid="182695359839047859">"ຕ່ຳ"</item>
+    <item msgid="8577246509202964244">"ວິກິດ"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ໜຽວແໜ້ນ"</item>
     <item msgid="167418068739176448">"​ການເຄື່ອນ​ໄຫວ​ສູງ​ສຸດ"</item>
diff --git a/tests/CarDeveloperOptions/res/values-lo/strings.xml b/tests/CarDeveloperOptions/res/values-lo/strings.xml
index 4a8e1a2..53ca492 100644
--- a/tests/CarDeveloperOptions/res/values-lo/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-lo/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"ເຮັດໃຫ້ຂໍ້ຄວາມໃນໜ້າຈໍນ້ອຍລົງ ຫຼື ໃຫຍ່ຂຶ້ນ."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"ເຮັດໃຫ້ນ້ອຍລົງ"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"ເຮັດໃຫ້ໃຫຍ່ຂຶ້ນ"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ຂໍ້ຄວາມຕົວຢ່າງ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ພໍ່ມົດອັດສະຈັນແຫ່ງອອດຊ໌"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"ບົດທີ 11: ເມືອງມໍລະກົດອັນໜ້າອັດສະຈັນຂອງອອດຊ໌"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"ທ່ານຈຳເປັນຕ້ອງຕື່ມຂໍ້ມູນໃສ່ໃນຊ່ອງພອດ."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"ຊ່ອງຂໍ້ມູນພອດຈະຕ້ອງປ່ອຍຫວ່າງໄວ້ ຫາກວ່າຊ່ອງ host ຫວ່າງຢູ່."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"ພອດທີ່ທ່ານລະບຸນັ້ນບໍ່ຖືກຕ້ອງ."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP proxy ນີ້ຖືກໃຊ້ໂດຍໂປຣແກຣມທ່ອງເວັບແລ້ວ ແລະບໍ່ອາດໃຊ້ກັບແອັບຯອື່ນໄດ້."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP proxy ນີ້ຖືກໃຊ້ໂດຍໂປຣແກຣມທ່ອງເວັບແລ້ວ ແລະ ບໍ່ອາດໃຊ້ກັບແອັບອື່ນໄດ້."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"ແບນວິດ DL (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"ແບນວິດ UL (kbps):"</string>
@@ -489,7 +488,7 @@
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"ອຸ້ຍ, ນັ້ນ​ບໍ່​ແມ່ນ​ເຊັນ​ເຊີ"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"ແຕະທີ່ເຊັນເຊີຢູ່ຫຼັງຂອງໂທລະສັບຂອງທ່ານ. ໃຫ້ໃຊ້ນິ້ວຊີ້ທ່ານ."</string>
     <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"ການ​ລົງ​ທະ​ບຽນ​ບໍ່​ສຳ​ເລັດ"</string>
-    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"ຮອດ​ຂີດ​ຈຳ​ກັດ​ເວ​ລາ​ການ​ລົງ​ທະ​ບຽນ​ລາຍ​ນີ້ວ​ມື​ແລ້ວ. ລອງ​ໃໝ່​ອີກ."</string>
+    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"ຮອດ​ຂີດ​ຈຳ​ກັດ​ເວ​ລາ​ການ​ລົງ​ທະ​ບຽນ​ລາຍ​ນີ້ວ​ມື​ແລ້ວ. ກະລຸນາລອງ​ໃໝ່​ອີກຄັ້ງ."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"ການ​ລົງ​ທະ​ບຽນ​ລາຍ​ນີ້ວ​ມື​ບໍ່​ເຮັດ​ວຽກ. ລອງ​ໃໝ່​ອີກ ຫຼື ໃຊ້​ນີ້ວ​ມື​ນີ້ວ​ອື່ນ."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"ເພີ່ມ​ອັນ​ອື່ນ"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"ຕໍ່​ໄປ"</string>
@@ -971,7 +970,7 @@
     <string name="wifi_unchanged" msgid="6804964646942333992">"(ບໍ່ມີການປ່ຽນແປງ)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"ກະລຸນາເລືອກ"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(ເພີ່ມຫຼາຍໃບຢັ້ງຢືນແລ້ວ)"</string>
-    <string name="wifi_use_system_certs" msgid="4794489370929885022">"ໃຊ້ໃບຢັ້ງຢືນຂອງລະບົບ"</string>
+    <string name="wifi_use_system_certs" msgid="4794489370929885022">"ໃຊ້ໃບຮັບຮອງລະບົບ"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"ບໍ່ໃຫ້"</string>
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"ບໍ່ກວດຮັບຮອງ"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"ບໍ່ໄດ້ລະບຸໃບຢັ້ງຢືນໃດໆ. ການເຊື່ອມຕໍ່ຂອງທ່ານຈະບໍ່ເປັນສ່ວນຕົວ."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"ມືຖື"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ຫາກບໍ່ສາມາດໃຊ້ Wi‑Fi ໄດ້, ໃຫ້ໃຊ້ເຄືອຂ່າຍມືຖືແທນ"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ຫາກເຄືອຂ່າຍມືຖືບໍ່ສາມາດໃຊ້ໄດ້, ໃຫ້ໃຊ້ Wi‑Fi ແທນ"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ໂທຜ່ານ Wi‑Fi. ຫາກໃຊ້ Wi‑Fi ບໍ່ໄດ້, ການໂທຈະສິ້ນສຸດລົງ."</string>
@@ -1536,7 +1538,7 @@
     <string name="apn_server" msgid="625116221513279678">"ເຊີບເວີ"</string>
     <string name="apn_mmsc" msgid="4621771343217824216">"MMSC"</string>
     <string name="apn_mms_proxy" msgid="636948562860444714">"MMS proxy"</string>
-    <string name="apn_mms_port" msgid="6606572282014819299">"ພອດ MMS"</string>
+    <string name="apn_mms_port" msgid="6606572282014819299">"ຜອດ MMS"</string>
     <string name="apn_mcc" msgid="9138301167194779180">"MCC"</string>
     <string name="apn_mnc" msgid="1276161191283274976">"MNC"</string>
     <string name="apn_auth_type" msgid="4286147728662523362">"ປະເພດການພິສູດຢືນຢັນ"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"ກະ​ລຸ​ນາ​ໃສ່​ຊິມກາດ ​ແລະເປີດເຄື່ອງຄືນໃໝ່"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"ກະ​ລຸ​ນາ​ເຊື່ອມ​ຕໍ່​ກັບ​ອິນ​ເຕີ​ເນັດ"</string>
     <string name="location_title" msgid="8664674161765477168">"ທີ່ຢູ່ຂອງຂ້ອຍ"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ຈຸດ​ທີ່​ຕັ້ງ​ສຳ​ລັບ​ໂປ​ຣ​ໄຟ​ລ໌​ບ່ອນ​ເຮັດ​ວຽກ​"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ສະຖານທີ່ສຳລັບໂປຣໄຟລ໌ບ່ອນເຮັດວຽກ"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"ສິດອະນຸຍາດແອັບ"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"ປິດສະຖານທີ່ແລ້ວ"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"ສິດການເຂົ້າເຖິງຫຼ້າສຸດ"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"ເບິ່ງລາຍລະອຽດ"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"ຫຼ້າສຸດນີ້ບໍ່ມີແອັບຯໃດເອີ້ນໃຊ້ຂໍ້ມູນຕຳແໜ່ງ"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"ບໍ່ມີແອັບທີ່ຮ້ອງຂໍສະຖານທີ່ເມື່ອບໍ່ດົນມານີ້"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"ບໍ່ມີແອັບໃດເຂົ້າເຖິງສະຖານທີ່ຫຼ້າສຸດ"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"ໃຊ້ແບັດເຕີຣີ່ຫຼາຍ"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"ໃຊ້ແບັດເຕີຣີ່ໜ້ອຍ"</string>
@@ -1753,7 +1755,7 @@
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"ປ່ອຍນິ້ວມືຂອງທ່ານເມື່ອເຮັດແລ້ວ."</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"ໃຫ້ເຊື່ອມຕໍ່ຢ່າງໜ້ອຍ <xliff:g id="NUMBER">%d</xliff:g> ຈຸດເຂົ້າຫາກັນ. ແລ້ວລອງໃໝ່ອີກຄັ້ງ."</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"ຮູບແບບຖືກບັນທຶກແລ້ວ"</string>
-    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"ແຕ້ມຮູບແບບຄືນອີກຄັ້ງເພື່ອຢັ້ງຢືນ"</string>
+    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"ແຕ້ມຮູບແບບຄືນອີກຄັ້ງເພື່ອຢືນຢັນ"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"ຮູບ​ແບບ​ປົດ​ລັອກ​ໃໝ່​ຂອງ​ທ່ານ"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"ຢືນຢັນ"</string>
     <string name="lockpattern_restart_button_text" msgid="4322968353922529868">"ແຕ້ມໃໝ່"</string>
@@ -1796,7 +1798,7 @@
     <string name="install_all_warning" product="device" msgid="9141585291103603515">"ອຸປະກອນ ແລະ ຂໍ້ມູນສ່ວນຕົວຂອງທ່ານຈະສາມາດຖືກແອັບທີ່ບໍ່ຮູ້ຈັກໂຈມຕີໄດ້ງ່າຍຂຶ້ນ. ໂດຍການຕິດຕັ້ງແອັບຕ່າງໆຈາກແຫລ່ງທີ່ມາເຫຼົ່ານີ້, ແມ່ນທ່ານຍອມຮັບວ່າຈະຮັບຜິດຊອບຕໍ່ຄວາມເສຍຫາຍທີ່ເກີດຂຶ້ນກັບອຸປະກອນຂອງທ່ານ ຫຼື ການສູນເສຍຂໍ້ມູນທີ່ອາດເກີດຂຶ້ນຈາກການນຳໃຊ້ແອັບເຫຼົ່ານັ້ນ."</string>
     <string name="advanced_settings" msgid="6282069364060968122">"ການຕັ້ງຄ່າຂັ້ນສູງ"</string>
     <string name="advanced_settings_summary" msgid="5912237062506771716">"ເປີດໃຊ້ໂຕເລືອກການຕັ້ງຄ່າເພີ່ມເຕີມ."</string>
-    <string name="application_info_label" msgid="3886253474964599105">"ຂໍ້ມູນແອັບຯ"</string>
+    <string name="application_info_label" msgid="3886253474964599105">"ຂໍ້ມູນແອັບ"</string>
     <string name="storage_label" msgid="1109537840103290384">"ພື້ນທີ່ຈັດເກັບຂໍ້ມູນ"</string>
     <string name="auto_launch_label" msgid="47089737922907379">"ເປີດ​ຕາມຄ່າເລີ່ມຕົ້ນ"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"ຄ່າເລີ່ມຕົ້ນ"</string>
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"ສຽງພ້ອມການສັ່ນເຕືອນ"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"ການສັ່ນເມື່ອສຳຜັດ"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"ໃຊ້ບໍລິການ"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"ໃຊ້ການແກ້ໄຂສີ"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"ໃຊ້ການປັບແຕ່ງສີ"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"ໃຊ້ຄຳບັນຍາຍ"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"ສືບຕໍ່"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"ເຄື່ອງຊ່ວຍຟັງ"</string>
@@ -2391,7 +2393,7 @@
     <string name="usage_type_computed_power" msgid="2594890316149868151">"​ການ​ນຳ​ໃຊ້​ພະ​ລັງ​ງານ​ທີ່​ຄຳ​ນວນ​​ໄວ້"</string>
     <string name="usage_type_actual_power" msgid="8067253427718526111">"ການ​ນຳ​ໃຊ້​ພະ​ລັງ​ງານ​ທີ່​ຕິດ​ຕາມ"</string>
     <string name="battery_action_stop" msgid="1866624019460630143">"ບັງ​ຄັບ​ປິດ"</string>
-    <string name="battery_action_app_details" msgid="1077011181969550402">"ຂໍ້ມູນແອັບຯ"</string>
+    <string name="battery_action_app_details" msgid="1077011181969550402">"ຂໍ້ມູນແອັບ"</string>
     <string name="battery_action_app_settings" msgid="587998773852488539">"ການຕັ້ງຄ່າແອັບຯ"</string>
     <string name="battery_action_display" msgid="4887913003634317465">"ການຕັ້ງຄ່າໜ້າຈໍ"</string>
     <string name="battery_action_wifi" msgid="7123520587925323824">"ການຕັ້ງຄ່າ Wi-Fi"</string>
@@ -2538,7 +2540,7 @@
     <string name="credentials_settings_not_available" msgid="5490259681690183274">"ບໍ່​ມີຂໍ້​ມູນ​​ຮັບ​ຮອງ​ໂຕສຳ​ລັບ​ຜູ່​ໃຊ້​ນີ້"</string>
     <string name="credential_for_vpn_and_apps" msgid="2462642486949593841">"ຕິດຕັ້ງສຳລັບ VPN ແລະ ແອັບຕ່າງໆແລ້ວ"</string>
     <string name="credential_for_wifi" msgid="2903295786961726388">"ຕິດຕັ້ງສຳລັບ Wi-Fi ແລ້ວ"</string>
-    <string name="credentials_reset_hint" msgid="3484350477764088169">"ລຶບເນື້ອຫາທັງໝົດອອກ?"</string>
+    <string name="credentials_reset_hint" msgid="3484350477764088169">"ລຶບເນື້ອຫາທັງໝົດອອກບໍ?"</string>
     <string name="credentials_erased" msgid="7287088033523869085">"ພື້ນທີ່ຈັດເກັບຂໍ້ມູນຮັບຮອງຖືກລຶບແລ້ວ."</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"ບ່ອນຈັດເກັບຂໍ້ມູນຮັບຮອງບໍ່ສາມາດຖືກລຶບໄດ້."</string>
     <string name="usage_access_title" msgid="7981321142726540574">"ແອັບທີ່ມີສິດອະນຸຍາດເຂົ້າເຖິງ"</string>
@@ -3707,7 +3709,7 @@
     <string name="high_power_filter_on" msgid="5294209328473386403">"ບໍ່ໄດ້ປັບໃຫ້ເໝາະສົມ"</string>
     <string name="high_power_on" msgid="3573501822510580334">"ບໍ່ໄດ້ປັບໃຫ້ເໝາະສົມ"</string>
     <string name="high_power_off" msgid="5906679734326490426">"ກຳລັງປັບການໃຊ້ແບັດເຕີຣີໃຫ້ເໝາະສົມ"</string>
-    <string name="high_power_system" msgid="739584574711292753">"ການປັບແບັດເຕີຣີໃຫ້ເໝາະສົມບໍ່ມີໃຫ້ໃຊ້ງານ"</string>
+    <string name="high_power_system" msgid="739584574711292753">"ບໍ່ສາມາດໃຊ້ການປັບແບັດເຕີຣີໃຫ້ເໝາະສົມໄດ້"</string>
     <string name="high_power_desc" msgid="333756885680362741">"ບໍ່ນໍາໃຊ້ການປັບແບັດເຕີຣີໃຫ້ເໝາະສົມ. ອາດຈະເຮັດໃຫ້ແບັດເຕີຣີຂອງທ່ານໝົດໄວ."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"ໃຫ້ແອັບເຮັດວຽກໃນພື້ນຫຼັງໄດ້ຕະຫຼອດເວລາບໍ?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"ການອະນຸຍາດໃຫ້ <xliff:g id="APP_NAME">%1$s</xliff:g> ເຮັດວຽກໃນພື້ນຫຼັງໄດ້ຕະຫຼອດເວລາອາດຫຼຸດອາຍຸແບັດເຕີຣີລົງ. \n\nທ່ານສາມາດປ່ຽນແປງຄ່ານີ້ໃນພາຍຫຼັງໄດ້ຈາກການຕັ້ງຄ່າ &gt; ແອັບ &amp; ການແຈ້ງເຕືອນ."</string>
@@ -4135,9 +4137,9 @@
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"ເພື່ອກວດສອບເວລາ, ການແຈ້ງເຕືອນ ແລະ ຂໍ້ມູນອື່ນໆ, ໃຫ້ແຕະໃສ່ໜ້າຈໍຂອງທ່ານ."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"ປັດລາຍນິ້ວມືສຳລັບການແຈ້ງເຕືອນ"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"ປັດລາຍນິ້ວມື"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງໂທລະສັບຂອງທ່ານ"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງແທັບເລັດຂອງທ່ານ"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງອຸປະກອນຂອງທ່ານ"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງໂທລະສັບຂອງທ່ານ."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງແທັບເລັດຂອງທ່ານ."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"ເພື່ອກວດເບິ່ງການແຈ້ງເຕືອນຂອງທ່ານ, ໃຫ້ເລື່ອນລົງໃສ່ເຊັນເຊີນລາຍນິ້ວມືທີ່ຢູ່ຫຼັງອຸປະກອນຂອງທ່ານ."</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="948946491233738823">"ເບິ່ງການແຈ້ງເຕືອນແບບດ່ວນ"</string>
     <string name="gesture_setting_on" msgid="7573680730101327866">"ເປີດ"</string>
     <string name="gesture_setting_off" msgid="2540159841716890511">"ປິດ"</string>
diff --git a/tests/CarDeveloperOptions/res/values-lt/arrays.xml b/tests/CarDeveloperOptions/res/values-lt/arrays.xml
index 18c51ce..b7ef95c 100644
--- a/tests/CarDeveloperOptions/res/values-lt/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-lt/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"vykdyti fone"</item>
     <item msgid="6423861043647911030">"pritaikymo neįgaliesiems garsas"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Vietovė"</item>
+    <item msgid="6656077694190491067">"Vietovė"</item>
+    <item msgid="8790228218278477369">"Vietovė"</item>
+    <item msgid="7836406246005211990">"Vibruoti"</item>
+    <item msgid="3951439024549922598">"Skaityti kontaktus"</item>
+    <item msgid="8802152411647068">"Keisti kontaktus"</item>
+    <item msgid="229544934599698735">"Skaityti skambučių žurnalą"</item>
+    <item msgid="7396102294405899613">"Keisti skambučių žurnalą"</item>
+    <item msgid="3597797992398484655">"Nuskaityti kalendorių"</item>
+    <item msgid="2705975774250907343">"Keisti kalendorių"</item>
+    <item msgid="4668747371441932697">"Vietovė"</item>
+    <item msgid="1487578921720243646">"Paskelbti pranešimą"</item>
+    <item msgid="4636080349724146638">"Vietovė"</item>
+    <item msgid="673510900286463926">"Skambinti į telefoną"</item>
+    <item msgid="542083422784609790">"Skaityti SMS / MMS"</item>
+    <item msgid="1033780373029588436">"Rašyti SMS / MMS"</item>
+    <item msgid="5647111115517787488">"Gauti SMS / MMS"</item>
+    <item msgid="8591105601108455893">"Gauti SMS / MMS"</item>
+    <item msgid="7730995008517841903">"Gauti SMS / MMS"</item>
+    <item msgid="2613033109026626086">"Gauti SMS / MMS"</item>
+    <item msgid="3037159047591081136">"Siųsti SMS / MMS"</item>
+    <item msgid="4726682243833913568">"Skaityti SMS / MMS"</item>
+    <item msgid="6555678522277865572">"Rašyti SMS / MMS"</item>
+    <item msgid="6981734935578130884">"Keisti nustatymus"</item>
+    <item msgid="8705854389991425629">"Piešti viršuje"</item>
+    <item msgid="5861356020344153651">"Pasiekti pranešimus"</item>
+    <item msgid="78432174621628659">"Fotoaparatas"</item>
+    <item msgid="3986116419882154794">"Įrašyti garso įrašą"</item>
+    <item msgid="4516840825756409490">"Leisti garso įrašą"</item>
+    <item msgid="6811712502798183957">"Skaityti iškarpinę"</item>
+    <item msgid="2780369012602289114">"Keisti iškarpinę"</item>
+    <item msgid="2331359440170850868">"Medijos mygtukai"</item>
+    <item msgid="6133599737122751231">"Garso sutelktis"</item>
+    <item msgid="6844485713404805301">"Pagrindinis garsumas"</item>
+    <item msgid="1600379420669104929">"Balso garsumas"</item>
+    <item msgid="6296768210470214866">"Skambučio garsumas"</item>
+    <item msgid="510690696071629241">"Medijų garsumas"</item>
+    <item msgid="406861638631430109">"Signalo garsumas"</item>
+    <item msgid="4715864795872233884">"Pranešimo garsumas"</item>
+    <item msgid="2311478519251301183">"„Bluetooth“ garsumas"</item>
+    <item msgid="5133991377896747027">"Neužmigdyti"</item>
+    <item msgid="2464189519136248621">"Vietovė"</item>
+    <item msgid="2062677934050803037">"Vietovė"</item>
+    <item msgid="1735171933192715957">"Gauti naudojimo statistiką"</item>
+    <item msgid="1014093788778383554">"Nutildyti / įjungti mikrofono garsą"</item>
+    <item msgid="4199297950608622850">"Rodyti pranešimą"</item>
+    <item msgid="2527962435313398821">"Projektuoti mediją"</item>
+    <item msgid="5117506254221861929">"Suaktyvinti VPN"</item>
+    <item msgid="8291198322681891160">"Rašymo ekrano fonas"</item>
+    <item msgid="7106921284621230961">"Pagalbinė struktūra"</item>
+    <item msgid="4496533640894624799">"Pagalbinė ekrano kopija"</item>
+    <item msgid="2598847264853993611">"Skaityti telefono būseną"</item>
+    <item msgid="9215610846802973353">"Pridėti balso pašto pranešimą"</item>
+    <item msgid="9186411956086478261">"Naudoti SIP"</item>
+    <item msgid="6884763100104539558">"Apdoroti siunčiamąjį skambutį"</item>
+    <item msgid="125513972170580692">"Piršto antspaudas"</item>
+    <item msgid="2556071024281275619">"Kūno jutikliai"</item>
+    <item msgid="617168514928339387">"Skaityti transliacijas mobiliuoju"</item>
+    <item msgid="7134693570516523585">"Imituoti vietovę"</item>
+    <item msgid="7224489175375229399">"Skaityti saugyklą"</item>
+    <item msgid="8472735063903258202">"Rašyti į saugyklą"</item>
+    <item msgid="4069276819909595110">"Įjungti ekraną"</item>
+    <item msgid="1228338896751121025">"Gauti paskyras"</item>
+    <item msgid="3181581793459233672">"Vykdyti fone"</item>
+    <item msgid="2340936043025374076">"Pritaikymo neįgaliesiems garsas"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Trumpa"</item>
     <item msgid="4816511817309094890">"Vidutinis"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Niekada neleisti"</item>
     <item msgid="8184570120217958741">"Visada leisti"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Įprasta"</item>
+    <item msgid="5101233285497327432">"Vidutiniška"</item>
+    <item msgid="1555861583162930714">"Mažas"</item>
+    <item msgid="1719683776264798117">"Kritinė"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Įprasta"</item>
+    <item msgid="6107138933849816768">"Vidutinė"</item>
+    <item msgid="182695359839047859">"Mažas"</item>
+    <item msgid="8577246509202964244">"Kritinė"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Nuolatinė"</item>
     <item msgid="167418068739176448">"Populiariausia veikla"</item>
diff --git a/tests/CarDeveloperOptions/res/values-lt/strings.xml b/tests/CarDeveloperOptions/res/values-lt/strings.xml
index 7fbf042..1c9d019 100644
--- a/tests/CarDeveloperOptions/res/values-lt/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-lt/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Sumažinkite arba padidinkite ekrane rodomą tekstą."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Padaryti mažesnius"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Padaryti didesnius"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Pavyzdinis tekstas"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Nuostabusis Ozo šalies burtininkas"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11 skyrius. Nuostabusis Smaragdo miestas"</string>
@@ -384,7 +383,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="7818169326621327628">"Įkeliama…"</string>
     <string name="account_settings_title" msgid="7870321267198486578">"Paskyros"</string>
     <string name="security_settings_title" msgid="8228075165942416425">"Sauga"</string>
-    <string name="encryption_and_credential_settings_title" msgid="6911729638397745353">"Šifruotė ir prisijungimo duomenys"</string>
+    <string name="encryption_and_credential_settings_title" msgid="6911729638397745353">"Šifruotė ir prisi. duom."</string>
     <string name="encryption_and_credential_settings_summary" product="default" msgid="468749700109808546">"Telefonas užšifruotas"</string>
     <string name="decryption_settings_summary" product="default" msgid="7401802133199522441">"Telefonas nešifruotas"</string>
     <string name="encryption_and_credential_settings_summary" product="tablet" msgid="8170667308598998791">"Įrenginys šifruotas"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobiliojo ryšio tinklas"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Jei „Wi‑Fi“ nepasiekiamas, naudokite mobiliojo ryšio tinklą"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Jei mobiliojo ryšio tinklas nepasiekiamas, naudoti „Wi‑Fi“"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Skambinimas naudojant „Wi-Fi“. Nutrūkus „Wi‑Fi“ skambutis bus baigtas."</string>
@@ -2646,7 +2648,7 @@
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"Apriboti SMS ir skambučių žurnalo prieigą"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"Tik numatytosios telefono ir susirašinėjimo programos turi SMS ir skambučių žurnalo leidimus"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"Nėra jokių galimų „trust agents“"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"Suaktyvinti įrenginio administravimo programą?"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"Suaktyvinti įren. administravimo progr.?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"Suaktyvinti šio įrenginio administravimo programą"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Įrenginio administratorius"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"Suaktyvinus šią administravimo programą programai <xliff:g id="APP_NAME">%1$s</xliff:g> bus leidžiama vykdyti toliau nurodytas operacijas."</string>
diff --git a/tests/CarDeveloperOptions/res/values-lv/arrays.xml b/tests/CarDeveloperOptions/res/values-lv/arrays.xml
index 32d2fbc..69c113f 100644
--- a/tests/CarDeveloperOptions/res/values-lv/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-lv/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"darbināt fonā"</item>
     <item msgid="6423861043647911030">"pieejamības paziņojumu skaļums"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Atrašanās vieta"</item>
+    <item msgid="6656077694190491067">"Atrašanās vieta"</item>
+    <item msgid="8790228218278477369">"Atrašanās vieta"</item>
+    <item msgid="7836406246005211990">"Vibrācija"</item>
+    <item msgid="3951439024549922598">"Lasīt kontaktpersonas"</item>
+    <item msgid="8802152411647068">"Mainīt kontaktpersonu informāciju"</item>
+    <item msgid="229544934599698735">"Nolasīt zvanu žurnālu"</item>
+    <item msgid="7396102294405899613">"Modificēt zvanu žurnālu"</item>
+    <item msgid="3597797992398484655">"Lasīt kalendāru"</item>
+    <item msgid="2705975774250907343">"Modificēt kalendāru"</item>
+    <item msgid="4668747371441932697">"Atrašanās vieta"</item>
+    <item msgid="1487578921720243646">"Publicēt paziņojumu"</item>
+    <item msgid="4636080349724146638">"Atrašanās vieta"</item>
+    <item msgid="673510900286463926">"Zvanīt uz tālruņa numuru"</item>
+    <item msgid="542083422784609790">"Lasīt īsziņu vai multiziņu"</item>
+    <item msgid="1033780373029588436">"Rakstīt īsziņu vai multiziņu"</item>
+    <item msgid="5647111115517787488">"Saņemt īsziņu vai multiziņu"</item>
+    <item msgid="8591105601108455893">"Saņemt īsziņu vai multiziņu"</item>
+    <item msgid="7730995008517841903">"Saņemt īsziņu vai multiziņu"</item>
+    <item msgid="2613033109026626086">"Saņemt īsziņu vai multiziņu"</item>
+    <item msgid="3037159047591081136">"Sūtīt īsziņu vai multiziņu"</item>
+    <item msgid="4726682243833913568">"Lasīt īsziņu vai multiziņu"</item>
+    <item msgid="6555678522277865572">"Rakstīt īsziņu vai multiziņu"</item>
+    <item msgid="6981734935578130884">"Modificēt iestatījumus"</item>
+    <item msgid="8705854389991425629">"Zīmēt augšdaļā"</item>
+    <item msgid="5861356020344153651">"Piekļūt paziņojumiem"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Ierakstīt audio"</item>
+    <item msgid="4516840825756409490">"Atskaņot audio"</item>
+    <item msgid="6811712502798183957">"Lasīt starpliktuvi"</item>
+    <item msgid="2780369012602289114">"Modificēt starpliktuvi"</item>
+    <item msgid="2331359440170850868">"Multivides pogas"</item>
+    <item msgid="6133599737122751231">"Audio uzsvars"</item>
+    <item msgid="6844485713404805301">"Galvenais skaļums"</item>
+    <item msgid="1600379420669104929">"Balss skaļums"</item>
+    <item msgid="6296768210470214866">"Zvana skaļums"</item>
+    <item msgid="510690696071629241">"Multivides skaļums"</item>
+    <item msgid="406861638631430109">"Signāla skaļums"</item>
+    <item msgid="4715864795872233884">"Paziņojumu skaļums"</item>
+    <item msgid="2311478519251301183">"Bluetooth apjoms"</item>
+    <item msgid="5133991377896747027">"Neļaut pāriet miega rež."</item>
+    <item msgid="2464189519136248621">"Atrašanās vieta"</item>
+    <item msgid="2062677934050803037">"Atrašanās vieta"</item>
+    <item msgid="1735171933192715957">"Iegūt lietojuma statistiku"</item>
+    <item msgid="1014093788778383554">"Izslēgt/ieslēgt mikrofonu"</item>
+    <item msgid="4199297950608622850">"Rādīt paziņojumu"</item>
+    <item msgid="2527962435313398821">"Projicēt saturu"</item>
+    <item msgid="5117506254221861929">"Aktivizēt VPN"</item>
+    <item msgid="8291198322681891160">"Izveidot fona tapeti"</item>
+    <item msgid="7106921284621230961">"Palīdzīga struktūra"</item>
+    <item msgid="4496533640894624799">"Palīdzīgs ekrānuzņēmums"</item>
+    <item msgid="2598847264853993611">"Lasīt tālruņa stāvokļa datus"</item>
+    <item msgid="9215610846802973353">"Pievienot balss pastu"</item>
+    <item msgid="9186411956086478261">"Izmantot SIP"</item>
+    <item msgid="6884763100104539558">"Apstrādāt izejošo zvanu"</item>
+    <item msgid="125513972170580692">"Pirksta nospiedums"</item>
+    <item msgid="2556071024281275619">"Ķermeņa sensori"</item>
+    <item msgid="617168514928339387">"Lasīt šūnu apraides"</item>
+    <item msgid="7134693570516523585">"Neīsta atrašanās vieta"</item>
+    <item msgid="7224489175375229399">"Lasīt krātuves datus"</item>
+    <item msgid="8472735063903258202">"Rakstīt krātuves datus"</item>
+    <item msgid="4069276819909595110">"Ieslēgt ekrānu"</item>
+    <item msgid="1228338896751121025">"Iegūt kontus"</item>
+    <item msgid="3181581793459233672">"Darbināt fonā"</item>
+    <item msgid="2340936043025374076">"Pieejamības paziņojumu skaļums"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Īss"</item>
     <item msgid="4816511817309094890">"Vidēji svarīgs"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Neatļaut nekad"</item>
     <item msgid="8184570120217958741">"Vienmēr atļaut"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normāls"</item>
+    <item msgid="5101233285497327432">"Vidējs"</item>
+    <item msgid="1555861583162930714">"Zems"</item>
+    <item msgid="1719683776264798117">"Kritisks"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normāls"</item>
+    <item msgid="6107138933849816768">"Vidējs"</item>
+    <item msgid="182695359839047859">"Zems"</item>
+    <item msgid="8577246509202964244">"Kritisks"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Pastāvīgs"</item>
     <item msgid="167418068739176448">"Biežākā darbība"</item>
diff --git a/tests/CarDeveloperOptions/res/values-lv/strings.xml b/tests/CarDeveloperOptions/res/values-lv/strings.xml
index b429375..773b18c 100644
--- a/tests/CarDeveloperOptions/res/values-lv/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-lv/strings.xml
@@ -84,8 +84,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Palieliniet vai samaziniet tekstu ekrānā."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Samazināt"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Palielināt"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Teksta paraugs"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Brīnumainais burvis no Oza zemes"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. nodaļa: Oza zemes brīnumainā Smaragda pilsēta"</string>
@@ -472,7 +471,7 @@
     <string name="security_settings_fingerprint_enroll_dialog_delete" msgid="4312297515772004580">"Dzēst"</string>
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Pieskarieties sensoram"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Novietojiet pirkstu uz sensora un paceliet to pēc tam, kad sajūtat vibrāciju"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Paceliet un vēlreiz pieskar."</string>
+    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Pieskarieties vēlreiz"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Atkārtoti uzlieciet pirkstu, lai pievienotu dažādas pirksta nospieduma daļas."</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Pirksta nospiedums pievienots"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Kad tiek rādīta šī ikona, izmantojiet pirksta nospiedumu identifikācijai vai pirkuma autorizēšanai."</string>
@@ -1121,7 +1120,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobilie dati"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ja Wi-Fi savienojums nav pieejams, izmantot mobilo tīklu"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ja mobilais tīkls nav pieejams, izmantot Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Zvans Wi-Fi tīklā. Ja Wi-Fi savienojums tiks zaudēts, zvans beigsies."</string>
diff --git a/tests/CarDeveloperOptions/res/values-mk/arrays.xml b/tests/CarDeveloperOptions/res/values-mk/arrays.xml
index 872a655..000a585 100644
--- a/tests/CarDeveloperOptions/res/values-mk/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-mk/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"Пацифик"</item>
     <item msgid="7044520255415007865">"Сите"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 секунди"</item>
+    <item msgid="772029947136115322">"30 секунди"</item>
+    <item msgid="8743663928349474087">"1 минута"</item>
+    <item msgid="1506508631223164814">"2 минути"</item>
+    <item msgid="8664703938127907662">"5 минути"</item>
+    <item msgid="5827960506924849753">"10 минути"</item>
+    <item msgid="6677424950124253938">"30 минути"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Никогаш"</item>
+    <item msgid="2517785806387977252">"15 секунди"</item>
+    <item msgid="6347954399441173672">"30 секунди"</item>
+    <item msgid="4858305253279921789">"1 минута"</item>
+    <item msgid="8109273437140044073">"2 минути"</item>
+    <item msgid="2788593551142462622">"5 минути"</item>
+    <item msgid="8012672183888404961">"10 минути"</item>
+    <item msgid="8271452751594598661">"30 минути"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Веднаш"</item>
     <item msgid="2038544972632026612">"5 секунди"</item>
@@ -42,25 +59,60 @@
     <item msgid="811192536981678974">"10 минути"</item>
     <item msgid="7258394417241706272">"30 минути"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Мал"</item>
+    <item msgid="591935967183159581">"Стандардно"</item>
+    <item msgid="1714184661981538355">"Голем"</item>
+    <item msgid="6195563047686707484">"Најголем"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Скенирање..."</item>
+    <item msgid="5597394826455877834">"Се поврзува..."</item>
+    <item msgid="5848277343965362748">"Се проверува…"</item>
+    <item msgid="3391238031431440676">"Добивање ИП адреса..."</item>
+    <item msgid="5257597310494000224">"Поврзано"</item>
+    <item msgid="8472497592913050396">"Суспендирани"</item>
+    <item msgid="1228072488815999109">"Се исклучува..."</item>
+    <item msgid="7253087004422991731">"Исклучени"</item>
+    <item msgid="4169850917304751227">"Неуспешно"</item>
+    <item msgid="6266658166690831131">"Блокирана"</item>
+    <item msgid="4517230805854909775">"Привремено избегнува лоша врска"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Се скенира…"</item>
+    <item msgid="8058143476674427024">"Поврзување на <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item>
+    <item msgid="7547609081339573756">"Се проверува со <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="5145158315060185414">"Се добива IP-адресата од <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="3283243151651124831">"Поврзано на <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="6600156231416890902">"Суспендирани"</item>
+    <item msgid="4133290864821295785">"Исклучување од <xliff:g id="NETWORK_NAME">%1$s</xliff:g>..."</item>
+    <item msgid="3980154971187953257">"Исклучени"</item>
+    <item msgid="2847316776634969068">"Неуспешно"</item>
+    <item msgid="4390990424746035383">"Блокирана"</item>
+    <item msgid="3618248791367063949">"Привремено избегнува лоша врска"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Копче „Притисни“"</item>
+    <item msgid="7401896200768713930">"PIN од спарен уред"</item>
+    <item msgid="4526848028011846710">"PIN од овој уред"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
-    <item msgid="8741947238021758201">"Поврзана"</item>
+    <item msgid="8741947238021758201">"Поврзано"</item>
     <item msgid="983792611851499732">"Покането"</item>
     <item msgid="5438273405428201793">"Неуспешно"</item>
     <item msgid="4646663015449312554">"Достапна"</item>
     <item msgid="3230556734162006146">"Надвор од опсег"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 минути"</item>
+    <item msgid="2759776603549270587">"5 минути"</item>
+    <item msgid="167772676068860015">"1 час"</item>
+    <item msgid="5985477119043628504">"Времето никогаш да не истече"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"Користи ја стандардната поставка на системот: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Слаб"</item>
+    <item msgid="7882129634982603782">"Слаб"</item>
+    <item msgid="6457357501905996224">"Умерен"</item>
+    <item msgid="405271628162918841">"Добар"</item>
+    <item msgid="999948812884919584">"Одличен"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"Минатите 30 дена"</item>
     <item msgid="3211287705232736964">"Пост. цикл. на корист...."</item>
@@ -106,11 +163,14 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Статична"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Ниедна"</item>
     <item msgid="1464741437353223198">"Упатство"</item>
-    <item msgid="5793600062487886090">"Прокси автоконфигурација"</item>
+    <item msgid="5793600062487886090">"Прокси: автоконфигурација"</item>
   </string-array>
   <string-array name="apn_auth_entries">
     <item msgid="7099647881902405997">"Ниедна"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"извршувај во заднина"</item>
     <item msgid="6423861043647911030">"јачина на звук на пристапноста"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Локација"</item>
+    <item msgid="6656077694190491067">"Локација"</item>
+    <item msgid="8790228218278477369">"Локација"</item>
+    <item msgid="7836406246005211990">"Вибрации"</item>
+    <item msgid="3951439024549922598">"Прочитај ги контактите"</item>
+    <item msgid="8802152411647068">"Измени контакти"</item>
+    <item msgid="229544934599698735">"Прочитај евиденција на повици"</item>
+    <item msgid="7396102294405899613">"Измени евиденција на повици"</item>
+    <item msgid="3597797992398484655">"Прочитај го календарот"</item>
+    <item msgid="2705975774250907343">"Измени календар"</item>
+    <item msgid="4668747371441932697">"Локација"</item>
+    <item msgid="1487578921720243646">"Објави известување"</item>
+    <item msgid="4636080349724146638">"Локација"</item>
+    <item msgid="673510900286463926">"Повикај телефонски број"</item>
+    <item msgid="542083422784609790">"Прочитај SMS/MMS порака"</item>
+    <item msgid="1033780373029588436">"Напиши SMS/MMS порака"</item>
+    <item msgid="5647111115517787488">"Прими SMS/MMS порака"</item>
+    <item msgid="8591105601108455893">"Прими SMS/MMS порака"</item>
+    <item msgid="7730995008517841903">"Прими SMS/MMS порака"</item>
+    <item msgid="2613033109026626086">"Прими SMS/MMS порака"</item>
+    <item msgid="3037159047591081136">"Испрати SMS/MMS-порака"</item>
+    <item msgid="4726682243833913568">"Прочитај SMS/MMS порака"</item>
+    <item msgid="6555678522277865572">"Напиши SMS/MMS порака"</item>
+    <item msgid="6981734935578130884">"Измени поставки"</item>
+    <item msgid="8705854389991425629">"Цртај на врвот"</item>
+    <item msgid="5861356020344153651">"Пристапи кон известувања"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Снимај аудио"</item>
+    <item msgid="4516840825756409490">"Репродуцирај аудио"</item>
+    <item msgid="6811712502798183957">"Прочитај табла со исечоци"</item>
+    <item msgid="2780369012602289114">"Измени табла со исечоци"</item>
+    <item msgid="2331359440170850868">"Копчиња за медиуми"</item>
+    <item msgid="6133599737122751231">"Аудио фокус"</item>
+    <item msgid="6844485713404805301">"Основна јачина на звук"</item>
+    <item msgid="1600379420669104929">"Јачина на звук на глас"</item>
+    <item msgid="6296768210470214866">"Јачина на звук на ѕвонење"</item>
+    <item msgid="510690696071629241">"Јачина на аудио/видео звук"</item>
+    <item msgid="406861638631430109">"Јачина на звук на аларм"</item>
+    <item msgid="4715864795872233884">"Јачина на звук на известување"</item>
+    <item msgid="2311478519251301183">"Јачина на звук на Bluetooth"</item>
+    <item msgid="5133991377896747027">"Задржи активен"</item>
+    <item msgid="2464189519136248621">"Локација"</item>
+    <item msgid="2062677934050803037">"Локација"</item>
+    <item msgid="1735171933192715957">"Добиј статистики за користење"</item>
+    <item msgid="1014093788778383554">"Вклучи/исклучи звук на микрофон"</item>
+    <item msgid="4199297950608622850">"Прикажи известување"</item>
+    <item msgid="2527962435313398821">"Прикажувај содржини"</item>
+    <item msgid="5117506254221861929">"Активирај ВПН"</item>
+    <item msgid="8291198322681891160">"Напиши тапет"</item>
+    <item msgid="7106921284621230961">"Помошна структура"</item>
+    <item msgid="4496533640894624799">"Помошна слика од екранот"</item>
+    <item msgid="2598847264853993611">"Прочитај ја состојбата на телефонот"</item>
+    <item msgid="9215610846802973353">"Додај говорна пошта"</item>
+    <item msgid="9186411956086478261">"Користи SIP"</item>
+    <item msgid="6884763100104539558">"Обработи појдовен повик"</item>
+    <item msgid="125513972170580692">"Отпечаток"</item>
+    <item msgid="2556071024281275619">"Телесни сензори"</item>
+    <item msgid="617168514928339387">"Читај пораки Cell Broadcast"</item>
+    <item msgid="7134693570516523585">"Лажна локација"</item>
+    <item msgid="7224489175375229399">"Прочитај ја меморијата"</item>
+    <item msgid="8472735063903258202">"Напиши во меморијата"</item>
+    <item msgid="4069276819909595110">"Вклучи го екранот"</item>
+    <item msgid="1228338896751121025">"Земи сметки"</item>
+    <item msgid="3181581793459233672">"Извршувај во заднина"</item>
+    <item msgid="2340936043025374076">"Јачина на звук на пристапноста"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Кратко"</item>
     <item msgid="4816511817309094890">"Средно"</item>
@@ -247,7 +369,13 @@
     <item msgid="4627069151979553527">"Курзив"</item>
     <item msgid="6896773537705206194">"Мали големи букви"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Многу мали"</item>
+    <item msgid="5091603983404027034">"Мали"</item>
+    <item msgid="176844712416932112">"Нормално"</item>
+    <item msgid="2784236342175159295">"Голем"</item>
+    <item msgid="218913203203160606">"Многу големи"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Стандардно"</item>
     <item msgid="6488643537808152001">"Ниедна"</item>
@@ -262,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Користи стандарди на апликација"</item>
+    <item msgid="8611890312638868524">"Бели на црно"</item>
+    <item msgid="5891360837786277638">"Црни на бело"</item>
+    <item msgid="2798457065945456853">"Жолти на црно"</item>
+    <item msgid="5799049811524553967">"Жолти на сино"</item>
+    <item msgid="3673930830658169860">"Приспособен"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"L2TP/IPSec VPN со претходно споделени клучеви"</item>
@@ -275,15 +410,32 @@
     <item msgid="2958623927055120839">"Ништо"</item>
     <item msgid="1157046369795346308">"Упатство"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Исклучени"</item>
+    <item msgid="8754480102834556765">"Се иницијализира..."</item>
+    <item msgid="3351334355574270250">"Се поврзува..."</item>
+    <item msgid="8303882153995748352">"Поврзано"</item>
+    <item msgid="9135049670787351881">"Времето истече"</item>
+    <item msgid="2124868417182583926">"Неуспешно"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Прашај"</item>
     <item msgid="7718817231348607934">"Никогаш не дозволувај"</item>
     <item msgid="8184570120217958741">"Секогаш дозволувај"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Нормална"</item>
+    <item msgid="5101233285497327432">"Умерена"</item>
+    <item msgid="1555861583162930714">"Ниска"</item>
+    <item msgid="1719683776264798117">"Критично"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Нормално"</item>
+    <item msgid="6107138933849816768">"Умерено"</item>
+    <item msgid="182695359839047859">"Ниска"</item>
+    <item msgid="8577246509202964244">"Критична"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Постојано"</item>
     <item msgid="167418068739176448">"Врвна активност"</item>
@@ -320,7 +472,7 @@
     <item msgid="3118234477029486741">"0"</item>
   </string-array>
   <string-array name="wifi_metered_entries">
-    <item msgid="4329206416008519163">"Откриј автоматски"</item>
+    <item msgid="4329206416008519163">"Откривај автоматски"</item>
     <item msgid="773943026484148895">"Сметај како ограничена мрежа"</item>
     <item msgid="1008268820118852416">"Сметај како неограничена мрежа"</item>
   </string-array>
diff --git a/tests/CarDeveloperOptions/res/values-mk/strings.xml b/tests/CarDeveloperOptions/res/values-mk/strings.xml
index ad2ee07..b38ae50 100644
--- a/tests/CarDeveloperOptions/res/values-mk/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-mk/strings.xml
@@ -27,7 +27,7 @@
       <item quantity="other">Сега сте на <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> чекори поблиску да станете програмер.</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"Сега сте развивач"</string>
-    <string name="show_dev_already" msgid="7665948832405148689">"Нема потреба, веќе сте развивач"</string>
+    <string name="show_dev_already" msgid="7665948832405148689">"Нема потреба, веќе сте програмер"</string>
     <string name="dev_settings_disabled_warning" msgid="3198732189395396721">"Прво овозможете ги опциите за програмери."</string>
     <string name="header_category_wireless_networks" msgid="8968405993937795898">"Безжичен и мрежи"</string>
     <string name="header_category_system" msgid="4045988717359334410">"Систем"</string>
@@ -52,7 +52,7 @@
     <string name="radio_info_ims_reg_status_registered" msgid="2500942310925593662">"Регистриран"</string>
     <string name="radio_info_ims_reg_status_not_registered" msgid="1286050699734226077">"Не е регистриран"</string>
     <string name="radio_info_ims_feature_status_available" msgid="2040629393134756058">"Достапен"</string>
-    <string name="radio_info_ims_feature_status_unavailable" msgid="3348223769202693596">"Недостапен"</string>
+    <string name="radio_info_ims_feature_status_unavailable" msgid="3348223769202693596">"Недостапно"</string>
     <string name="radio_info_ims_reg_status" msgid="4771711884059371514">"IMS-регистрација: <xliff:g id="STATUS">%1$s</xliff:g>\nКомуникација преку LTE (VoLTE): <xliff:g id="AVAILABILITY_0">%2$s</xliff:g>\nКомуникација преку Wi-Fi: <xliff:g id="AVAILABILITY_1">%3$s</xliff:g>\nВидеоповици: <xliff:g id="AVAILABILITY_2">%4$s</xliff:g>\nUT-интерфејс: <xliff:g id="AVAILABILITY_3">%5$s</xliff:g>"</string>
     <string name="radioInfo_service_in" msgid="1297020186765943857">"Во употреба"</string>
     <string name="radioInfo_service_out" msgid="8460363463722476510">"Надвор од употреба"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Намалете го или зголемете го текстот на екранот."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Намали"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Зголеми"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Примерок на текст"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Чудесниот волшебник од Оз"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Поглавје 11: Чудесниот смарагден град Оз"</string>
@@ -101,7 +100,7 @@
     <string name="bluetooth_lock_voice_dialing" msgid="1600385868298081015">"Заклучи гласовно бирање"</string>
     <string name="bluetooth_lock_voice_dialing_summary" msgid="5005776616112427980">"Спречи употреба на бирач со Bluetooth кога екранот е заклучен"</string>
     <string name="bluetooth_devices" msgid="4143880830505625666">"Уреди со Bluetooth"</string>
-    <string name="bluetooth_device_name" msgid="3682016026866302981">"Име на уред"</string>
+    <string name="bluetooth_device_name" msgid="3682016026866302981">"Име на уредот"</string>
     <string name="bluetooth_device_details" msgid="2500840679106321361">"Поставки за уред"</string>
     <string name="bluetooth_profile_details" msgid="1785505059738682493">"Поставки на профил"</string>
     <string name="bluetooth_name_not_set" msgid="1886067683138385142">"Нема поставено име, се користи името на сметката"</string>
@@ -196,11 +195,11 @@
     <string name="intent_sender_account_label" msgid="7904284551281213567">"Сметка:"</string>
     <string name="proxy_settings_title" msgid="6014901859338211713">"Прокси"</string>
     <string name="proxy_clear_text" msgid="498317431076294101">"Исчисти"</string>
-    <string name="proxy_port_label" msgid="8285157632538848509">"Порт за прокси"</string>
+    <string name="proxy_port_label" msgid="8285157632538848509">"Порта за прокси"</string>
     <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Заобиколи прокси за"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"Врати стандардни вредности"</string>
     <string name="proxy_action_text" msgid="814511434843981413">"Готово"</string>
-    <string name="proxy_hostname_label" msgid="6798891831427287847">"Име на домаќин на прокси"</string>
+    <string name="proxy_hostname_label" msgid="6798891831427287847">"Име на хост за прокси"</string>
     <string name="proxy_error" msgid="5036164133669802299">"Внимание"</string>
     <string name="proxy_error_dismiss" msgid="883805570485635650">"Во ред"</string>
     <string name="proxy_error_invalid_host" msgid="5430640241353307223">"Името на домаќинот што го внесовте не е важечко."</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Порт полето треба да се пополни."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Полето на портот мора да биде празно ако полето на хостот е празно."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Внесениот порт не е исправен."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP проксито го користи прелистувачот, но не може да го користат другите апликации."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Прелистувачот користи HTTP-прокси, но не може да го користат и другите апликации."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Брзина на пренос при преземање (кбит/с):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Брзина на пренос при прикачување (кбит/с):"</string>
@@ -268,7 +267,7 @@
     <string name="next_label" msgid="4710056309804362410">"Следно"</string>
     <string name="language_picker_title" msgid="7807759931261107686">"Јазици"</string>
     <string name="locale_remove_menu" msgid="3395565699934985486">"Отстрани"</string>
-    <string name="add_a_language" msgid="4103889327406274800">"Додај јазик"</string>
+    <string name="add_a_language" msgid="4103889327406274800">"Додајте јазик"</string>
     <plurals name="dlg_remove_locales_title" formatted="false" msgid="7362450618787242592">
       <item quantity="one">Да се отстранат избраните јазици?</item>
       <item quantity="other">Да се отстранат избраните јазици?</item>
@@ -323,8 +322,8 @@
     <string name="date_and_time_settings_title" msgid="7827088656940910631">"Датум и време"</string>
     <string name="date_and_time_settings_title_setup_wizard" msgid="1573030770187844365">"Постави датум и време"</string>
     <string name="date_and_time_settings_summary" msgid="4617979434474713417">"Постави датум, време, временска зона и формати"</string>
-    <string name="date_time_auto" msgid="2679132152303750218">"Користи време дадено од мрежа"</string>
-    <string name="zone_auto_title" msgid="5500880975376882488">"Користи временска зона обезбедена од мрежа"</string>
+    <string name="date_time_auto" msgid="2679132152303750218">"Користи време од мрежата"</string>
+    <string name="zone_auto_title" msgid="5500880975376882488">"Користи часовна зона од мрежата"</string>
     <string name="date_time_24hour_auto" msgid="7499659679134962547">"Користи локален стандард"</string>
     <string name="date_time_24hour_title" msgid="6209923858891621283">"Формат од 24 часа"</string>
     <string name="date_time_24hour" msgid="1265706705061608742">"Користи 24-часовен формат"</string>
@@ -356,7 +355,7 @@
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Овозможи виџети"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Оневозможено од администраторот"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"Приказ на опцијата за заклучување"</string>
-    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Опција на копчето за вклучување на екранот што ги исклучува Smart Lock, отклучувањето со отпечаток и известувањата на заклучениот екран"</string>
+    <string name="lockdown_settings_summary" msgid="7270756909878256174">"Прикажувај опција на копчето за вклучување на екранот што ги исклучува Smart Lock, отклучувањето со отпечаток и известувањата на заклучениот екран"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Продолжено отклуч. за агенти од доверба"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"Ако се овозможени, агентите од доверба ќе го држат уредот отклучен подолго време, но веќе нема да може да отклучат заклучен уред."</string>
     <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"Заклучен екран кога довербата е загубена"</string>
@@ -411,7 +410,7 @@
     <string name="face_add_max" msgid="8870899421165189413">"Може да додадете до <xliff:g id="COUNT">%d</xliff:g> лица"</string>
     <string name="face_intro_error_max" msgid="4024147799079828937">"Додадовте максимален број лица"</string>
     <string name="face_intro_error_unknown" msgid="3241592604198351134">"Не може да додадете повеќе лица"</string>
-    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Запишувањето не е завршено"</string>
+    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Регистрацијата не е завршена"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"Во ред"</string>
     <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Се достигна временското ограничување на запишувањето со лице. Обидете се повторно."</string>
     <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Не успеа запишувањето со лице."</string>
@@ -488,7 +487,7 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Готово"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Упс, тоа не е сензорот"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Допрете го сензорот одзади со показалецот."</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Запишувањето не е завршено"</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Регистрацијата не е завршена"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Се достигна временското ограничување на запишувањето со отпечаток од прст. Обидете се повторно."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Запишувањето со отпечаток од прст не успеа. Обидете се повторно или користете друг прст."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Додај друг"</string>
@@ -504,7 +503,7 @@
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Дали сакате да го избришете отпечатоков?"</string>
     <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Нема да може да ги користите отпечатоците за да го отклучите телефонот, да одобрувате купувања или да се најавувате на апликации со нив"</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Нема да може да ги користите отпечатоците за да го отклучите работниот профил, да одобрувате купувања или да се најавувате на апликациите за работа"</string>
-    <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Отстрани го"</string>
+    <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Отстрани"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Шифрирање"</string>
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"Шифрирај таблет"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="3110852053238357832">"Шифрирање на телефонот"</string>
@@ -544,7 +543,7 @@
     <string name="suggested_fingerprint_lock_settings_summary" product="tablet" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="default" msgid="8114514312665251311"></string>
-    <string name="lock_settings_picker_title" msgid="1034741644461982205">"Избери заклучување на екранот"</string>
+    <string name="lock_settings_picker_title" msgid="1034741644461982205">"Заклучување на екранот"</string>
     <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Избери закл. раб. профил"</string>
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Заштитете го таблетот"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Заштитете го уредот"</string>
@@ -656,8 +655,8 @@
       <item quantity="other">Мора да содржи барем <xliff:g id="COUNT_1">%d</xliff:g> знаци</item>
     </plurals>
     <plurals name="lockpassword_pin_too_short" formatted="false" msgid="6805936168283187298">
-      <item quantity="one">PIN-от мора да има најмалку <xliff:g id="COUNT_1">%d</xliff:g> цифра</item>
-      <item quantity="other">PIN-от мора да има најмалку <xliff:g id="COUNT_1">%d</xliff:g> цифри</item>
+      <item quantity="one">PIN-кодот мора да содржи барем <xliff:g id="COUNT_1">%d</xliff:g> цифра</item>
+      <item quantity="other">PIN-кодот мора да содржи барем <xliff:g id="COUNT_1">%d</xliff:g> цифри</item>
     </plurals>
     <string name="lockpassword_continue_label" msgid="7279261861924400655">"Продолжи"</string>
     <plurals name="lockpassword_password_too_long" formatted="false" msgid="7994068708438608179">
@@ -719,7 +718,7 @@
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> активни апликации</item>
     </plurals>
     <string name="manage_trust_agents" msgid="8129970926213142261">"Агенти од доверба"</string>
-    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Прво поставете заклучување на екран"</string>
+    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"Прво поставете заклучување екран"</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"Ниеден"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> активен агент од доверба</item>
@@ -730,7 +729,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Управувај со конекции, постави име и откривливост на уредот"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Спарете со <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Да се спари со <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Код за спарување на Bluetooth"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Внесете го кодот за спарување, а потоа притиснете Врати или Внеси"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"PIN-от содржи букви или симболи"</string>
@@ -747,7 +746,7 @@
     <string name="bluetooth_preference_scan_title" msgid="457781003962324807">"Скенирај за уреди"</string>
     <string name="bluetooth_search_for_devices" msgid="6796307228261078451">"Освежи"</string>
     <string name="bluetooth_searching_for_devices" msgid="7820814625522702494">"Пребарување..."</string>
-    <string name="bluetooth_preference_device_settings" msgid="4247085616427015908">"Поставки на уред"</string>
+    <string name="bluetooth_preference_device_settings" msgid="4247085616427015908">"Поставки за уредот"</string>
     <string name="bluetooth_preference_paired_dialog_title" msgid="3567187438908143693">"Спарен уред"</string>
     <string name="bluetooth_preference_paired_dialog_internet_option" msgid="3693599743477470469">"Интернет врска"</string>
     <string name="bluetooth_preference_paired_dialog_keyboard_option" msgid="4627309436489645755">"Тастатура"</string>
@@ -803,7 +802,7 @@
     <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"Овозможи приказ на безжични мрежи"</string>
     <string name="wifi_display_no_devices_found" msgid="186501729518830451">"Не се пронајдени уреди во близина."</string>
     <string name="wifi_display_status_connecting" msgid="3799827425457383349">"Се поврзува"</string>
-    <string name="wifi_display_status_connected" msgid="85692409327461403">"Поврзана"</string>
+    <string name="wifi_display_status_connected" msgid="85692409327461403">"Поврзано"</string>
     <string name="wifi_display_status_in_use" msgid="7646114501132773174">"Во употреба"</string>
     <string name="wifi_display_status_not_available" msgid="5600448733204688205">"Недостапна"</string>
     <string name="wifi_display_details" msgid="6379855523460749126">"Поставки за приказ"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Вклучете NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC разменува податоци меѓу уредов и други уреди или цели во близина, како што се терминали за плаќање, читачи за пристап и интерактивни реклами или ознаки."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Заштитете ја NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Дозволете употреба на плаќања и јавен превоза преку NFC само кога екранот е отклучен"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Дозволи користење на NFC за плаќање и јавен превоз само кога екранот е отклучен"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Подготвено за пренос на содржина на апликација преку комуникација на блиско поле (NFC)"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Исклучено"</string>
@@ -845,22 +844,22 @@
     <string name="wifi_starting" msgid="1299466156783469023">"Вклучување на Wi-Fi..."</string>
     <string name="wifi_stopping" msgid="413711069039939520">"Исклучување на Wi-Fi..."</string>
     <string name="wifi_error" msgid="5605801874484465557">"Грешка"</string>
-    <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"Појас од 5 GHz не е достапен во земјава"</string>
+    <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"Опсег од 5 GHz не е достапен во земјава"</string>
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"Во режим на работа во авион"</string>
-    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Известување за отворени мрежи"</string>
+    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Известувај за отворени мрежи"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Извести ме кога ќе биде достапна јавна мрежа со висок квалитет"</string>
-    <string name="wifi_wakeup" msgid="4963732992164721548">"Автоматски вклучи Wi‑Fi"</string>
-    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi‑Fi ќе се вклучи автоматски на зачувани мрежи со висок квалитет во близина, како на пр., вашата домашна мрежа"</string>
+    <string name="wifi_wakeup" msgid="4963732992164721548">"Автоматски вклучувај Wi‑Fi"</string>
+    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi‑Fi ќе се вклучува автоматски во близина на зачувани мрежи со висок квалитет, како на пр., вашата домашна мрежа"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="3007457288587966962">"Недостапно бидејќи локацијата е исклучена. Вклучете ја "<annotation id="link">"локацијата"</annotation>"."</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="6820040651529910914">"Недостапно бидејќи скенирањето на Wi-Fi е исклучено"</string>
-    <string name="wifi_wakeup_summary_scoring_disabled" msgid="7067018832237903151">"За користење, изберете оператор за оценување мрежа"</string>
+    <string name="wifi_wakeup_summary_scoring_disabled" msgid="7067018832237903151">"За користење, изберете оценувач на мрежата"</string>
     <string name="wifi_poor_network_detection" msgid="7193423327400703073">"Избегнувај слаби поврзувања"</string>
-    <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"Не користи Wi-Fi-мрежа, освен ако има добра интернет-врска"</string>
+    <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"Не користи Wi-Fi мрежа, освен ако има добра интернет-врска"</string>
     <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"Користи само мрежи со добра интернет-врска"</string>
     <string name="use_open_wifi_automatically_title" msgid="3084513215481454350">"Поврзувај се на отворени мрежи"</string>
     <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"Автоматски поврзувај се на јавни мрежи со висок квалитет"</string>
-    <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"За користење, изберете оператор за оценување мрежа"</string>
-    <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"За користење, изберете компатибилен оператор за оценување мрежа"</string>
+    <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"За користење, изберете оценувач на мрежата"</string>
+    <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"За користење, изберете компатибилен оценувач на мрежата"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"Инсталирај сертификати"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"За да се подобри точноста на локацијата, апликациите и услугите можат да скенираат Wi‑Fi мрежи во секое време, дури и кога Wi‑Fi е исклучено. Ова може да се користи, на пример, за подобрување на функциите и услугите базирани на локација. Може да го измените ова во <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>поставките за скенирање<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"За да се подобри точноста на локацијата, вклучете „Скенирање на Wi‑Fi“ во <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>поставките за скенирање<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
@@ -875,10 +874,10 @@
     <string name="wifi_switch_away_when_unvalidated" msgid="2418577764071293971">"Префрли се на мобилен интернет ако Wi-Fi-мрежата го губи пристапот до интернет."</string>
     <string name="wifi_cellular_data_fallback_title" msgid="5067241930716252665">"Автоматски префрли се на мобилен интернет"</string>
     <string name="wifi_cellular_data_fallback_summary" msgid="2721467405851519769">"Користете мобилен интернет кога Wi‑Fi нема пристап до интернет. Може да ви се наплати за потрошениот сообраќај."</string>
-    <string name="wifi_add_network" msgid="4094957940791876640">"Додај мрежа"</string>
+    <string name="wifi_add_network" msgid="4094957940791876640">"Додајте мрежа"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"Поставки за Wi‑Fi"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"Wi‑Fi се вклучува повторно автоматски"</string>
-    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Wi‑Fi не се вклучува повторно автоматски"</string>
+    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Wi‑Fi не се вклучува автоматски"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"Wi-Fi мрежи"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"Повеќе опции"</string>
     <string name="wifi_menu_p2p" msgid="4945665601551289791">"Wi‑Fi Direct"</string>
@@ -890,7 +889,7 @@
     <string name="wifi_menu_forget" msgid="7561140554450163075">"Заборави мрежа"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"Измени мрежа"</string>
     <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"За да ги видите достапните мрежи, вклучете Wi-Fi."</string>
-    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Се пребарува за Wi-Fi мрежи..."</string>
+    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Се бараат Wi-Fi мрежи..."</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Немате дозвола за промена на Wi-Fi мрежата."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Повеќе"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"Автоматско подесување (WPS)"</string>
@@ -903,19 +902,19 @@
     <string name="wifi_advanced_toggle_description_expanded" msgid="1506697245302596510">"Паѓачки список „Напредни опции“. Допрете двапати за да се собере."</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3014965593695454879">"Паѓачки список „Напредни опции“. Допрете двапати за да се прошири."</string>
     <string name="wifi_ssid" msgid="6746270925975522641">"Име на мрежа"</string>
-    <string name="wifi_ssid_hint" msgid="5010024648106585165">"Внеси SSID"</string>
+    <string name="wifi_ssid_hint" msgid="5010024648106585165">"Внесете SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Безбедност"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Сокриена мрежа"</string>
     <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Ако вашиот рутер не емитува мрежен ID, а сакате да се поврзете со него во иднина, може да ја поставите мрежата како сокриена.\n\nОва може да создаде безбедносен ризик бидејќи вашиот телефон редовно ќе го емитува својот сигнал за да ја најде мрежата.\n\nПоставувањето на мрежата како сокриена нема да ги смени поставките на рутерот."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Јачина на сигнал"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Статус"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"Брзина на линкот за пренесување"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Брзина на линкот за примање"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"Брзина на пренос"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Брзина на прием"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Фреквенција"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP-адреса"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Зачувано преку"</string>
     <string name="passpoint_content" msgid="340527524510304327">"Акредитиви на <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_eap_method" msgid="3752116941487485859">"EAP метод"</string>
+    <string name="wifi_eap_method" msgid="3752116941487485859">"EAP-метод"</string>
     <string name="please_select_phase2" msgid="5848080896810435677">"Автентикација во фаза 2"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"Сертификат CA"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Домен"</string>
@@ -926,22 +925,22 @@
     <string name="wifi_show_password" msgid="7878398590772942202">"Прикажи лозинка"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"Изберете појас на АП"</string>
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Автоматски"</string>
-    <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Појас од 2,4 GHz"</string>
-    <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Појас од 5,0 GHz"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Претпочитан појас: 5,0 GHz"</string>
+    <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Опсег од 2,4 GHz"</string>
+    <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Опсег од 5,0 GHz"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Претпочитан опсег: 5,0 GHz"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Изберете барем еден појас за Wi‑Fi точка на пристап:"</string>
-    <string name="wifi_ip_settings" msgid="4636102290236116946">"Поставки на IP"</string>
+    <string name="wifi_ip_settings" msgid="4636102290236116946">"Поставки за IP"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Приватност"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Рандомизирана MAC-адреса"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Додајте уред"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Наместете го QR-кодот во средината на подолниот прозорец за да го додадете уредот на „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
-    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Скенирај QR-код"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Наместете го QR-кодот во средината на подолниот прозорец за да го додадете уредот во мрежата „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
+    <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Скенирајте QR-код"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Наместете го QR-кодот во средината на подолниот прозорец за да се поврзете со „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Придружете се на Wi‑Fi со скенирање на QR-кодот"</string>
-    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Сподели Wi‑Fi"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Скенирајте го овој QR-код за да се поврзете со „<xliff:g id="SSID">%1$s</xliff:g>“ и споделете ја лозинката"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Скенирајте го QR-кодот за да се поврзете на Wi‑Fi"</string>
+    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Споделете Wi‑Fi"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Скенирајте го овој QR-код за да се поврзете со „<xliff:g id="SSID">%1$s</xliff:g>“ и да ја споделите лозинката"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Скенирајте го овој QR-код за да се поврзете со „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"Не можеше да се прочита QR-кодот. Центрирајте го кодот и обидете се повторно"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Обидете се повторно. Ако проблемот продолжи, контактирајте со производителот на уредот"</string>
@@ -963,15 +962,15 @@
     <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Споделете точка на пристап"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Потврдете дека сте вие"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Лозинка за Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Лозинка за точка на пристап: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Лозинка за точката на пристап: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Додајте уред"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"ПОврзете се на мрежава со QR-код"</string>
     <string name="retry" msgid="8500839563577344702">"Обиди се повторно"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"Сподели со други корисници на уредот"</string>
-    <string name="wifi_unchanged" msgid="6804964646942333992">"(непроменети)"</string>
+    <string name="wifi_unchanged" msgid="6804964646942333992">"(непроменето)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"Изберете"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(Додадени се повеќе сертификати)"</string>
-    <string name="wifi_use_system_certs" msgid="4794489370929885022">"Користете системски сертификати"</string>
+    <string name="wifi_use_system_certs" msgid="4794489370929885022">"Користи системски сертификати"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"Не обезбедувај"</string>
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Не потврдувај"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Нема назначено сертификат. Вашата врска нема да биде приватна."</string>
@@ -1021,26 +1020,26 @@
     <string name="wifi_advanced_ssid_title" msgid="4229741334913894856">"SSID"</string>
     <string name="wifi_advanced_mac_address_title" msgid="1162782083754021737">"MAC адреса"</string>
     <string name="wifi_advanced_ip_address_title" msgid="2708185994512829071">"IP-адреса"</string>
-    <string name="wifi_details_title" msgid="2164042631550920157">"Детали за мрежа"</string>
-    <string name="wifi_details_subnet_mask" msgid="53396707004763012">"Маска на подмрежа"</string>
+    <string name="wifi_details_title" msgid="2164042631550920157">"Детали за мрежата"</string>
+    <string name="wifi_details_subnet_mask" msgid="53396707004763012">"Подмрежна маска"</string>
     <string name="wifi_details_dns" msgid="1118251455740116559">"DNS"</string>
-    <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"IPv6 адреси"</string>
+    <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"IPv6-адреси"</string>
     <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"Зачувани мрежи"</string>
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"Претплати"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
-    <string name="wifi_advanced_settings_label" msgid="9147669851658738784">"Поставки на IP"</string>
+    <string name="wifi_advanced_settings_label" msgid="9147669851658738784">"Поставки за IP"</string>
     <string name="wifi_advanced_not_available" msgid="5751084989400195009">"Напредни поставки за Wi‑Fi не се достапни за корисников"</string>
     <string name="wifi_ip_settings_menu_save" msgid="6557330818360425933">"Зачувај"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="8098696509412462494">"Откажи"</string>
     <string name="wifi_ip_settings_invalid_ip_address" msgid="7764507690387286292">"Внеси важечка ИП адреса."</string>
     <string name="wifi_ip_settings_invalid_gateway" msgid="7602732367437862422">"Внеси важечка адреса на капија."</string>
     <string name="wifi_ip_settings_invalid_dns" msgid="4471473055625376300">"Внеси важечка адреса на DNS."</string>
-    <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="392977552691002076">"Напишете префикс на мрежа со должина меѓу 0 и 32."</string>
+    <string name="wifi_ip_settings_invalid_network_prefix_length" msgid="392977552691002076">"Внесете мрежен префикс со должина од 0 до 32."</string>
     <string name="wifi_dns1" msgid="5250809981658822505">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
-    <string name="wifi_gateway" msgid="7455334454444443397">"Мрежен мост"</string>
-    <string name="wifi_network_prefix_length" msgid="1941206966133010633">"Долж. на префикс на мрежа"</string>
+    <string name="wifi_gateway" msgid="7455334454444443397">"Портал"</string>
+    <string name="wifi_network_prefix_length" msgid="1941206966133010633">"Должина на мрежен префикс"</string>
     <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi‑Fi Direct"</string>
     <string name="wifi_p2p_device_info" msgid="4717490498956029237">"Информации за уредот"</string>
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"Запомни ја оваа врска"</string>
@@ -1063,11 +1062,11 @@
     <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"Интернет-врската на телефонов се споделува преку точка на пристап"</string>
     <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"Апликацијата споделува содржини. За споделување на интернет-врската, исклучете ја, а потоа вклучете ја точката на пристап"</string>
     <string name="wifi_hotspot_no_password_subtext" msgid="5400500962974373706">"Не е поставена лозинка"</string>
-    <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"Име на точка на пристап"</string>
+    <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"Име на точката на пристап"</string>
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"Се вклучува <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>…"</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"Другите уреди може да се поврзат на <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Лозинка на точка на пристап"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Појас на точката на пристап"</string>
+    <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Лозинка за точката на пристап"</string>
+    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Опсег на точката на пристап"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Користете точка на пристап за да создадете Wi‑Fi мрежа за другите уреди. Точката на пристап обезбедува интернет со помош на мобилната интернет-врска. Може да ви се наплатат дополнителни трошоци за мобилен интернет."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Апликациите може да создадат точка на пристап за да споделуваат содржини со уредите во близина."</string>
     <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Автоматско исклучување на точката на пристап"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобилен интернет"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ако Wi‑Fi не е достапно, користи ја мобилната мрежа"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ако мобилната мрежа не е достапна, користи Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Повикувај преку Wi-Fi. Ако Wi‑Fi врската се загуби, повикот ќе заврши."</string>
@@ -1284,7 +1286,7 @@
     <string name="sim_reenter_new" msgid="5692585822458989725">"Повторно внеси нов PIN"</string>
     <string name="sim_change_pin" msgid="1674620855223900785">"PIN на SIM картичка"</string>
     <string name="sim_bad_pin" msgid="2409776007569751629">"Неточен PIN"</string>
-    <string name="sim_pins_dont_match" msgid="1076283313667637902">"PIN-овите не се совпаѓаат"</string>
+    <string name="sim_pins_dont_match" msgid="1076283313667637902">"PIN-кодовите не се совпаѓаат"</string>
     <string name="sim_change_failed" msgid="8874765697694275459">"Не може да го промените PIN-от.\nМожно е PIN-от да е погрешен."</string>
     <string name="sim_change_succeeded" msgid="8802418023120614533">"PIN на SIM картичката е успешно променет"</string>
     <string name="sim_lock_failed" msgid="7949781515066772755">"Не може да се промени состојбата на заклучување на SIM картичката.\nМожно е PIN-от да е погрешен."</string>
@@ -1314,7 +1316,7 @@
     <string name="hardware_info" msgid="174270144950621815">"Модел и хардвер"</string>
     <string name="hardware_revision" msgid="3315744162524354246">"Верзија на хардвер"</string>
     <string name="fcc_equipment_id" msgid="8681995718533066093">"ID на опрема"</string>
-    <string name="baseband_version" msgid="9115560821840757786">"Верзија со основен појас на фреквенција"</string>
+    <string name="baseband_version" msgid="9115560821840757786">"Верзија на немодулиран опсег"</string>
     <string name="kernel_version" msgid="8226014277756019297">"Верзија на кернел"</string>
     <string name="build_number" msgid="8648447688306248633">"Број на верзија"</string>
     <string name="module_version" msgid="1127871672527968730">"Верзии на модулот за главната линија"</string>
@@ -1355,7 +1357,7 @@
     <string name="status_signal_strength" msgid="4302597886933728789">"Јачина на сигнал"</string>
     <string name="status_roaming" msgid="5191044997355099561">"Роаминг"</string>
     <string name="status_operator" msgid="6017986100643755390">"Мрежа"</string>
-    <string name="status_wifi_mac_address" msgid="3868452167971295995">"Адреса на MAC за Wi-Fi"</string>
+    <string name="status_wifi_mac_address" msgid="3868452167971295995">"MAC-адреса на Wi-Fi"</string>
     <string name="status_bt_address" msgid="460568179311735657">"Адреса на Bluetooth"</string>
     <string name="status_serial_number" msgid="8257722124627415159">"Сериски број"</string>
     <string name="status_up_time" msgid="77128395333934087">"Време од последно рестартирање"</string>
@@ -1414,7 +1416,7 @@
     <string name="storage_menu_migrate" msgid="1885806122515759703">"Мигрирај податоци"</string>
     <string name="storage_menu_forget" msgid="4345021250834642640">"Заборави"</string>
     <string name="storage_menu_set_up" msgid="2849170579745958513">"Постави"</string>
-    <string name="storage_menu_explore" msgid="3733439525636202662">"Истражувај"</string>
+    <string name="storage_menu_explore" msgid="3733439525636202662">"Разгледајте"</string>
     <string name="storage_menu_free" msgid="6586253660759145508">"Ослободи простор"</string>
     <string name="storage_menu_manage" msgid="461380717863926516">"Управувајте со капацитетот"</string>
     <string name="storage_title_usb" msgid="2015671467177303099">"USB врска со компјутер"</string>
@@ -1456,7 +1458,7 @@
     <string name="storage_detail_system" msgid="6784247618772153283">"Систем"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"Истражи <xliff:g id="NAME">^1</xliff:g>"</string>
     <string name="storage_detail_dialog_other" msgid="5073511663616043370">"Под друго, се подразбира споделени датотеки што ги зачувале апликациите, датотеки преземени од интернет или Bluetooth, датотеки на Android итн. \n\nЗа да ги видите видливите содржини на <xliff:g id="NAME">^1</xliff:g>, допрете „Истражете“."</string>
-    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Системот опфаќа датотеки што се извршуваат на верзијата <xliff:g id="VERSION">%s</xliff:g> на Android"</string>
+    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Системот опфаќа датотеки што се користат за извршување на верзијата <xliff:g id="VERSION">%s</xliff:g> на Android"</string>
     <string name="storage_detail_dialog_user" msgid="1663117417635010371">"<xliff:g id="USER_0">^1</xliff:g> може да има зачувани фотографии, музика, апликации или други податоци што зафаќаат <xliff:g id="SIZE">^2</xliff:g> меморија. \n\nЗа детали, префрлете се на <xliff:g id="USER_1">^1</xliff:g>."</string>
     <string name="storage_wizard_init_title" msgid="3407283236421089014">"Поставете <xliff:g id="NAME">^1</xliff:g>"</string>
     <string name="storage_wizard_init_external_title" msgid="6853250619674645478">"Користи како пренослива меморија"</string>
@@ -1526,7 +1528,7 @@
     <string name="battery_level_title" msgid="5207775387973771646">"Ниво на батерија"</string>
     <string name="apn_settings" msgid="8130776653826271664">"Поставки на APN"</string>
     <string name="apn_edit" msgid="4350571070853305357">"Измени пристапна точка"</string>
-    <string name="apn_not_set" msgid="5344235604466825691">"Не е подесено"</string>
+    <string name="apn_not_set" msgid="5344235604466825691">"Не е поставено"</string>
     <string name="apn_name" msgid="8431432886706852226">"Име"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
     <string name="apn_http_proxy" msgid="8816906767987944465">"Прокси"</string>
@@ -1567,11 +1569,11 @@
     <string name="menu_restore" msgid="3799288817317293115">"Ресетирај на стандардни вредности"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"Ресетирањето стандардни поставки на APN е завршено."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Опции за ресетирање"</string>
-    <string name="reset_dashboard_summary" msgid="8778383341461126642">"Може да се ресетира мрежа, апликации или уред"</string>
+    <string name="reset_dashboard_summary" msgid="8778383341461126642">"Мрежата, апликациите или уредот може да се ресетираат"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Ресетирај Wi-Fi, мобилен интернет и Bluetooth"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"Ова ќе ги ресетира сите мрежни поставки, вклучувајќи:\n\n"<li>"Wi‑Fi"</li>\n<li>"Мобилен интернет"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Избриши преземени SIM-картички"</string>
-    <string name="reset_esim_desc" msgid="433226911566802">"За да преземете SIM-картички за замена, контактирајте со операторот. Ова нема да ги откаже плановите за мобилни услуги."</string>
+    <string name="reset_esim_desc" msgid="433226911566802">"За да преземете SIM-картички за замена, контактирајте со операторот. Со ова не се откажуваат пакети за мобилни услуги."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Ресетирај поставки"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"Да се ресетираат сите мрежни поставки? Ова дејство не може да се врати."</string>
     <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"Да се ресетираат сите мрежни поставки и да се избришат преземените SIM-картички? Ова дејство не може да се врати."</string>
@@ -1583,13 +1585,13 @@
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"Преземените SIM-картички не може да се избришат поради грешка.\n\nРестартирајте го уредот и обидете се повторно."</string>
     <string name="master_clear_title" msgid="1560712943955904673">"Избриши ги сите податоци (фабричко ресетирање)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Избриши ги сите податоци"</string>
-    <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Ова ќе ги избрише сите податоци од "<b>"внатрешна меморија"</b>"на вашиот таблет, заедно со:\n\n"<li>"вашата сметка на Google;"</li>\n<li>"податоците и поставките на системот и апликациите;"</li>\n<li>"преземените апликации."</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Ова ќе ги избрише сите податоци од "<b>"внатрешната меморија"</b>" на телефонот, заедно со:\n\n"<li>"вашата сметка на Google;"</li>\n<li>"податоците и поставките на системот и апликациите;"</li>\n<li>"преземените апликации."</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Ова ќе ги избрише сите податоци од "<b>"внатрешната меморија"</b>"на таблетот, заедно со:\n\n"<li>"вашата сметка на Google"</li>\n<li>"податоците и поставките на системот и апликациите"</li>\n<li>"преземените апликации"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Ова ќе ги избрише сите податоци од "<b>"внатрешната меморија"</b>" на телефонот, заедно со:\n\n"<li>"вашата сметка на Google"</li>\n<li>"податоците и поставките на системот и апликациите"</li>\n<li>"преземените апликации"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"Моментално сте најавени на следниве сметки:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"Присутни се и други корисници на уредот.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"Музика"</li>\n<li>"Фотографии"</li>\n<li>"Други податоци за корисникот"</li></string>
-    <string name="master_clear_desc_also_erases_esim" msgid="4497260499055258773"><li>"eSIM-картички"</li></string>
-    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"Тоа нема да го откаже вашиот пакет за мобилни услуги."</string>
+    <string name="master_clear_desc_also_erases_esim" msgid="4497260499055258773"><li>"eSIM-картичките"</li></string>
+    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"Со ова нема да се откаже вашиот пакет за мобилни услуги."</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="2723272952715259307">\n\n"За да исчистите музика, слики и други податоци на корисникот, "<b>"меморијата"</b>" треба да се избрише."</string>
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="9003555775524798797">\n\n"За да исчистите музика, слики и други податоци на корисникот, "<b>"СД картичката"</b>" треба да се избрише."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="8989746770347525207">"Избриши USB меморија"</string>
@@ -1608,20 +1610,20 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"Почекајте..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"Поставки на повик"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Постави говорна пошта, проследување на повик, повик на чекање, ID на повикувач"</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Поврзување со USB"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Интернет преку USB"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Преносл. точка на пристап"</string>
-    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Поврзување со Bluetooth"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Поврзување"</string>
+    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Интернет преку Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Врзување"</string>
     <string name="tether_settings_title_all" msgid="6935843543433954181">"Точка на пристап и врзување"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Точката на пристап е вклучена, се поврзува"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Точката на пристап е вклучена"</string>
-    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Поврзување"</string>
+    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Врзување"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Не може да се врзе или се да користат преносни точки на пристап додека е вклучен Штедачот на интернет"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Поврзување со USB"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Интернет преку USB"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Споделете ја интернет-врската на телефонот преку USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Споделете ја интернет-врската на таблетот преку USB"</string>
-    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Поврзување со Bluetooth"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Интернет преку Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Споделете ја интернет-врската на таблетот преку Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Споделете ја интернет-врската на телефонот преку Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Интернет-врската на <xliff:g id="DEVICE_NAME">%1$d</xliff:g> се споделува преку Bluetooth"</string>
@@ -1635,8 +1637,8 @@
     <string name="sms_change_default_dialog_title" msgid="6301260161969667578">"Избери апликација за SMS"</string>
     <string name="sms_change_default_dialog_text" msgid="8275088077930942680">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> како SMS-апликација?"</string>
     <string name="sms_change_default_no_previous_dialog_text" msgid="4680224695080527907">"Користи <xliff:g id="NEW_APP">%s</xliff:g> како SMS-апликација?"</string>
-    <string name="network_scorer_picker_title" msgid="1691073966560952916">"Оператор за оценување мрежа"</string>
-    <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Ниедно"</string>
+    <string name="network_scorer_picker_title" msgid="1691073966560952916">"Оценувач на мрежата"</string>
+    <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Нема"</string>
     <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Да се промени помошникот за Wi‑Fi?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Да се користи <xliff:g id="NEW_APP">%1$s</xliff:g> наместо <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управување со мрежните врски?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Да се користи <xliff:g id="NEW_APP">%s</xliff:g> за управување на вашите мрежни врски?"</string>
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Неодамнешен пристап до локацијата"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Прикажи ги деталите"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Нема апликации што скоро побарале локација"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Нема апликации што неодамна побарале утврдување на локацијата"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Ниедна апликација нема пристапено до локацијата неодамна"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Голема искористеност на бат."</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Мала искористеност на бат."</string>
@@ -1715,7 +1717,7 @@
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"Потврдете ја шемата"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"Внесете го PIN-кодот повторно"</string>
     <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"Лозинките не се совпаѓаат"</string>
-    <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"PIN-овите не се совпаѓаат"</string>
+    <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"PIN-кодовите не се совпаѓаат"</string>
     <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"Нацртајте ја шемата повторно"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"Избери начин на отклучување"</string>
     <string name="lockpassword_password_set_toast" msgid="601928982984489868">"Лозинката е поставена"</string>
@@ -1748,12 +1750,12 @@
     <string name="lock_settings_title" msgid="233657584969886812">"Безбедност на уред"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="333149762562581510">"Промени шема на отклучување"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"Промени PIN за отклучување"</string>
-    <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"Нацртајте ја шемата за отклучување"</string>
+    <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"Нацртајте шема за отклучување"</string>
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"Притисни „Мени“ за помош."</string>
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"Отпуштете го прстот кога ќе завршите"</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"Поврзете најмалку <xliff:g id="NUMBER">%d</xliff:g> точки. Обидете се повторно."</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"Шемата е снимена"</string>
-    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"Употреби ја шемата повторно за потврда"</string>
+    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"Нацртајте ја шемата повторно за потврда"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"Вашата нова шема за отклучување"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"Потврди"</string>
     <string name="lockpattern_restart_button_text" msgid="4322968353922529868">"Измени"</string>
@@ -1790,7 +1792,7 @@
     <string name="install_applications" msgid="7745902974984889179">"Непознати извори"</string>
     <string name="install_applications_title" msgid="8164828577588659496">"Дозв. ги сите изв. на аплик."</string>
     <string name="recent_app_category_title" msgid="7688788038277126727">"Неодамна отворени апликации"</string>
-    <string name="see_all_apps_title" msgid="6435061912110347474">"Видете ги сите <xliff:g id="COUNT">%1$d</xliff:g> апликации"</string>
+    <string name="see_all_apps_title" msgid="6435061912110347474">"Видете ги сите апликации (<xliff:g id="COUNT">%1$d</xliff:g>)"</string>
     <string name="install_all_warning" product="tablet" msgid="4580699862358542727">"Вашиот таблет и личните податоци се повеќе подложни на напади од апликации од непознати извори. Ако инсталирате апликации од изворов, се согласувате дека сте одговорни за каква било штета на таблетот или губењето податоци што може да произлезат од користењето на овие апликации."</string>
     <string name="install_all_warning" product="default" msgid="7445839116997296358">"Вашиот телефон и личните податоци се повеќе подложни на напади од апликации од непознати извори. Ако инсталирате апликации од изворов, се согласувате дека сте одговорни за каква било штета на телефонот или губењето податоци што може да произлезат од користењето на овие апликации."</string>
     <string name="install_all_warning" product="device" msgid="9141585291103603515">"Вашиот уред и личните податоци се повеќе подложни на напади од непознати апликации. Ако инсталирате апликации од изворов, се согласувате дека сте одговорни за каква било штета на уредот или губење податоци што може да произлезат од користењето на апликациите."</string>
@@ -1803,7 +1805,7 @@
     <string name="screen_compatibility_label" msgid="3638271673726075815">"Компатибилност на екран"</string>
     <string name="permissions_label" msgid="7341733648403464213">"Дозволи"</string>
     <string name="cache_header_label" msgid="3202284481380361966">"Кеш"</string>
-    <string name="clear_cache_btn_text" msgid="107507684844780651">"Исчисти кеш"</string>
+    <string name="clear_cache_btn_text" msgid="107507684844780651">"Избриши кеш"</string>
     <string name="cache_size_label" msgid="6205173678102220499">"Кеш"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="8938478333743197020">
       <item quantity="one">%d ставка</item>
@@ -1815,7 +1817,7 @@
     <string name="total_size_label" msgid="3929917501176594692">"Вкупно"</string>
     <string name="application_size_label" msgid="175357855490253032">"Големина на апликација"</string>
     <string name="external_code_size_label" msgid="3434421216268309411">"Апликација за USB меморија"</string>
-    <string name="data_size_label" msgid="7790201846922671662">"Податоци на корисникот"</string>
+    <string name="data_size_label" msgid="7790201846922671662">"Кориснички податоци"</string>
     <string name="external_data_size_label" product="nosdcard" msgid="8004991551882573479">"Податоци на USB меморија"</string>
     <string name="external_data_size_label" product="default" msgid="1097584278225902734">"СД картичка"</string>
     <string name="uninstall_text" msgid="4859715815689705801">"Деинсталирај"</string>
@@ -1823,7 +1825,7 @@
     <string name="install_text" msgid="2798092278891807849">"Инсталирај"</string>
     <string name="disable_text" msgid="5065834603951474397">"Оневозможи"</string>
     <string name="enable_text" msgid="7179141636849225884">"Овозможи"</string>
-    <string name="clear_user_data_text" msgid="8894073247302821764">"Исчисти ја меморијата"</string>
+    <string name="clear_user_data_text" msgid="8894073247302821764">"Ослободи простор"</string>
     <string name="app_factory_reset" msgid="8718986000278776272">"Деинсталирај ажурирања"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"Избравте оваа апликација да се стартува стандардно за некои дејства."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"Сте одбрале да ѝ дозволите за апликацијата да создава виџети и да пристапува кон нивните податоци."</string>
@@ -1840,8 +1842,8 @@
     <string name="show_running_services" msgid="1895994322704667543">"Прикажи активни услуги"</string>
     <string name="show_background_processes" msgid="88012264528093617">"Прикажи кеширани процеси"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"Апликација за итност"</string>
-    <string name="reset_app_preferences" msgid="1426500030595212077">"Ресет. парам. на аплик."</string>
-    <string name="reset_app_preferences_title" msgid="792909865493673598">"Ресетирај параметри на апликација?"</string>
+    <string name="reset_app_preferences" msgid="1426500030595212077">"Ресетирај ги поставките за апликациите"</string>
+    <string name="reset_app_preferences_title" msgid="792909865493673598">"Да се ресетираат поставките за апликациите?"</string>
     <string name="reset_app_preferences_desc" msgid="7935273005301096031">"Со ова се ресетираат сите параметри за:\n\n"<li>"оневозможени апликации"</li>\n<li>"оневозможени известувања на апликација"</li>\n<li>"стандардни апликации за дејства"</li>\n<li>"ограничувања за податоци во заднина за апликации"</li>\n<li>"сите ограничувања за дозволи"</li>\n\n" Нема да изгубите никакви податоци од апликациите."</string>
     <string name="reset_app_preferences_button" msgid="2041894727477934656">"Ресетирај апликации"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"Управувај со простор"</string>
@@ -2081,8 +2083,8 @@
     <string name="accessibility_timeout_2mins" msgid="4124259290444829477">"2 минути"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"Време за читање"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"Време за преземање дејство"</string>
-    <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Изберете колку долго да се прикажуваат пораките што треба да ги прочитате, но се видливи само привремено.\n\nНе сите апликации ја поддржуваат оваа поставка."</string>
-    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Изберете колку долго да се прикажуваат пораките што бараат да преземете дејство, но се видливи само привремено.\n\nНе сите апликации ја поддржуваат оваа поставка."</string>
+    <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Изберете колку долго да се прикажуваат пораките што треба да ги прочитате, но се видливи само привремено.\n\nНекои апликации не ја поддржуваат оваа поставка."</string>
+    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Изберете колку долго да се прикажуваат пораките што бараат да преземете дејство, но се видливи само привремено.\n\nНекои апликации не ја поддржуваат оваа поставка."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Должина на допир и задржување"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Инверзија на бои"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Може да влијае на изведбата"</string>
@@ -2108,7 +2110,7 @@
       <item quantity="other"><xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> зачувани слушни помагала</item>
     </plurals>
     <string name="accessibility_summary_state_enabled" msgid="7357731696603247963">"Вклучен"</string>
-    <string name="accessibility_summary_state_disabled" msgid="9197369047683087620">"Исклучен"</string>
+    <string name="accessibility_summary_state_disabled" msgid="9197369047683087620">"Исклучено"</string>
     <string name="accessibility_summary_state_stopped" msgid="3170264683616172746">"Не работи. Допрете за информации."</string>
     <string name="accessibility_description_state_stopped" msgid="7666178628053039493">"Услугава е дефектна."</string>
     <string name="enable_quick_setting" msgid="1580451877998661255">"Прикажи во „Брзи поставки“"</string>
@@ -2238,7 +2240,7 @@
     <string name="background_activity_warning_dialog_title" msgid="2170790412855899678">"Да се ограничи активноста во заднина?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8242749826732375096">"Апликацијата може да се однесува необично ако ја ограничите нејзината активност во заднина"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4234598000779459640">"Апликацијава не е оптимизирана и не може да се ограничи.\n\nЗа да ја ограничите, прво вклучете оптимизација на батеријата."</string>
-    <string name="device_screen_usage" msgid="4470485475363132750">"Искористеност на екранот по целосно полнење"</string>
+    <string name="device_screen_usage" msgid="4470485475363132750">"Користење на екранот по целосно полнење"</string>
     <string name="power_usage_list_summary" msgid="4314438658308211057">"Искористеност на батеријата по целосното полнење"</string>
     <string name="screen_usage_summary" msgid="263396144684078341">"Време на активен екран по целосно полнење"</string>
     <string name="device_usage_list_summary" msgid="8299017481332816368">"Искористеност на уредот по целосно полнење"</string>
@@ -2259,7 +2261,7 @@
     <string name="awake" msgid="8956720170442161285">"Време на активност на уред"</string>
     <string name="wifi_on_time" msgid="2487820618265936068">"Wi-Fi на време"</string>
     <string name="bluetooth_on_time" msgid="6400569492287292639">"Wi-Fi на време"</string>
-    <string name="advanced_battery_title" msgid="5026866913848464170">"Користење на батеријата"</string>
+    <string name="advanced_battery_title" msgid="5026866913848464170">"Искористеност на батеријата"</string>
     <string name="history_details_title" msgid="8608193822257799936">"Детали на историја"</string>
     <string name="battery_details_title" msgid="5358230551490703067">"Искористеност на батеријата"</string>
     <string name="details_subtitle" msgid="7279638828004951382">"Користи детали"</string>
@@ -2334,7 +2336,7 @@
     <string name="battery_auto_restriction_title" msgid="488905332794794076">"Користење управник со батерија"</string>
     <string name="battery_auto_restriction_summary" msgid="1638072655581821837">"Откријте кога апликациите ја трошат батеријата"</string>
     <string name="battery_manager_on" msgid="5626982529932239656">"Вклучено/Се открива кога апликациите ја трошат батеријата"</string>
-    <string name="battery_manager_off" msgid="9114027524232450371">"Исклучен"</string>
+    <string name="battery_manager_off" msgid="9114027524232450371">"Исклучено"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6721813588142691216">
       <item quantity="one">%1$d апликација е ограничена</item>
       <item quantity="other">%1$d апликации се ограничени</item>
@@ -2427,7 +2429,7 @@
     <string name="battery_detail_since_full_charge" msgid="3814176986148084378">"Детали по последното целосно полнење"</string>
     <string name="battery_last_full_charge" msgid="5624033030647170717">"Последно целосно полнење"</string>
     <string name="battery_full_charge_last" msgid="4614554109170251301">"Целосното полнење трае околу"</string>
-    <string name="battery_footer_summary" msgid="4828444679643906943">"Податоците за батеријата се приближни и може да се променат според употребата"</string>
+    <string name="battery_footer_summary" msgid="4828444679643906943">"Податоците за батеријата се приближни и може да се менуваат зависно од користењето"</string>
     <string name="battery_detail_foreground" msgid="6616408559186553085">"Во активна употреба"</string>
     <string name="battery_detail_background" msgid="7938146832943604280">"Употреба во заднина"</string>
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"Искористеност на батеријата"</string>
@@ -2453,7 +2455,7 @@
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Ќе се вклучи на <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Поставете распоред"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Исклучи кога е целосно полна"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"„Штедачот на батерија“ ќе се исклучи кога нивото на батеријата на телефонот ќе биде на <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"„Штедачот на батерија“ ќе се исклучи кога нивото на батеријата на телефонот ќе биде <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"„Штедачот на батерија“ ќе се исклучи кога нивото на батеријата на таблетот ќе биде на <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"„Штедачот на батерија“ ќе се исклучи кога нивото на батеријата на уредот ќе биде на <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2525,11 +2527,11 @@
     <string name="credentials_install" product="default" msgid="8997183776710118353">"Инсталирај од СД картичка"</string>
     <string name="credentials_install_summary" product="nosdcard" msgid="3426661965567059596">"Инсталирај сертификати од меморија"</string>
     <string name="credentials_install_summary" product="default" msgid="4943897416156671633">"Инсталирај сертификати од СД картичка"</string>
-    <string name="credentials_reset" msgid="355080737664731678">"Исчисти акредитиви"</string>
+    <string name="credentials_reset" msgid="355080737664731678">"Избриши акредитиви"</string>
     <string name="credentials_reset_summary" msgid="7622528359699428555">"Отстрани ги сите акредитиви"</string>
     <string name="trusted_credentials" msgid="6989242522455395200">"Доверливи акредитиви"</string>
     <string name="trusted_credentials_summary" msgid="7411781319056251582">"Прикажи доверливи CA сертификати"</string>
-    <string name="user_credentials" msgid="8365731467650306757">"Акредитиви на корисникот"</string>
+    <string name="user_credentials" msgid="8365731467650306757">"Кориснички акредитиви"</string>
     <string name="user_credentials_summary" msgid="7350223899317423252">"Прегледајте и изменете ги зачуваните акредитиви"</string>
     <string name="advanced_security_title" msgid="286883005673855845">"Напредни"</string>
     <string name="credential_storage_type" msgid="2585337320206095255">"Тип меморија"</string>
@@ -2538,7 +2540,7 @@
     <string name="credentials_settings_not_available" msgid="5490259681690183274">"Акредитивите не се достапни за овој корисник"</string>
     <string name="credential_for_vpn_and_apps" msgid="2462642486949593841">"Инсталиран за VPN и апликации"</string>
     <string name="credential_for_wifi" msgid="2903295786961726388">"Инсталиран за Wi-Fi"</string>
-    <string name="credentials_reset_hint" msgid="3484350477764088169">"Отстрани ги сите содржини?"</string>
+    <string name="credentials_reset_hint" msgid="3484350477764088169">"Да се отстранат сите содржини?"</string>
     <string name="credentials_erased" msgid="7287088033523869085">"Меморијата на акредитиви е избришана."</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"Мемо за. акредит. не се брише."</string>
     <string name="usage_access_title" msgid="7981321142726540574">"Апликации со пристап до корис."</string>
@@ -2563,8 +2565,8 @@
     <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"Дали да се престане со создавање резервна копија на податоците за уредот (како што се лозинки за Wi-Fi и историја на повици) и податоците за апликациите (како што се поставки и датотеки што ги складирале апликациите) и да се избришат сите копии на далечински сервери?"</string>
     <string name="fullbackup_data_summary" msgid="406274198094268556">"Автоматски создајте резервна копија на податоците на уредот (како што се лозинки за Wi-Fi и историја на повици) и податоците за апликациите (како што се поставки и датотеки кои ги складирале апликациите) од далечина.\n\nОткако ќе вклучите автоматско создавање резервна копија, податоците за уредот и апликациите повремено се зачувуваат на далечина. Податоците за апликацијата може да бидат секакви податоци кои ги зачувала апликацијата (според поставките на програмерот), вклучувајќи потенцијално чувствителни податоци како што се контакти, пораки и фотографии."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"Поставки за администраторот на уредот"</string>
-    <string name="active_device_admin_msg" msgid="6929247869516924549">"Апликација на администраторот на уредот"</string>
-    <string name="remove_device_admin" msgid="4413438593788336400">"Деактивирај ја апликацијата на администраторот на уредот"</string>
+    <string name="active_device_admin_msg" msgid="6929247869516924549">"Апликација за администраторот на уредот"</string>
+    <string name="remove_device_admin" msgid="4413438593788336400">"Деактивирај ја апликацијата за администраторот на уредот"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"Деинсталирај ја апликацијата"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"Деактивирај и деинсталирај"</string>
     <string name="select_device_admin_msg" msgid="4173769638399075387">"Апликации за администраторот"</string>
@@ -2574,18 +2576,18 @@
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"Ограничи пристап до SMS и евиденцијата на повици"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"Само стандардните апликации за телефон и пораки имаат дозволи за SMS и евиденција на повици"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"Нема достапни агенти од доверба"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"Да се активира аплик. на администратор?"</string>
-    <string name="add_device_admin" msgid="1621152410207260584">"Активирај ја апликацијата на администраторот на уредот"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"Да се активира аплик. за администратор?"</string>
+    <string name="add_device_admin" msgid="1621152410207260584">"Активирај ја апликацијата за администраторот на уредот"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Администратор на уредот"</string>
-    <string name="device_admin_warning" msgid="4421817419326480449">"Со активирање на апликацијата на администраторот ќе се дозволи апликацијата „<xliff:g id="APP_NAME">%1$s</xliff:g>“ да ги извршува следните операции:"</string>
-    <string name="device_admin_status" msgid="5424944611789040723">"Апликацијата на администраторот е активна и дозволува апликацијата „<xliff:g id="APP_NAME">%1$s</xliff:g>“ да ги извршува следните операции:"</string>
+    <string name="device_admin_warning" msgid="4421817419326480449">"Со активирање на апликацијата за администраторот ќе се дозволи апликацијата <xliff:g id="APP_NAME">%1$s</xliff:g> да ги извршува следниве операции:"</string>
+    <string name="device_admin_status" msgid="5424944611789040723">"Апликацијата за администраторот е активна и дозволува апликацијата <xliff:g id="APP_NAME">%1$s</xliff:g> да ги извршува следниве операции:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Да се активира Управникот со профил?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Ако продолжите, администраторот ќе управува со вашиот корисник, а ќе може и да складира поврзани податоци, заедно со вашите лични податоци.\n\nАдминистраторот може да ги следи поставките, пристапот, апликациите и податоците поврзани со овој корисник и да управува со нив, како и со мрежната активност и информациите за локацијата на уредот."</string>
     <string name="admin_disabled_other_options" msgid="8097063307730025707">"Другите опции се оневозможени од администраторот"</string>
     <string name="admin_more_details" msgid="1719819589822345585">"Повеќе детали"</string>
     <string name="notification_log_title" msgid="4200467765474474753">"Дневник за известувања"</string>
     <string name="sound_category_call_ringtone_vibrate_title" msgid="4678065664534722153">"Мелодија на повик и вибрации"</string>
-    <string name="wifi_setup_detail" msgid="3551227109377008779">"Детали за мрежа"</string>
+    <string name="wifi_setup_detail" msgid="3551227109377008779">"Детали за мрежата"</string>
     <string name="accessibility_sync_enabled" msgid="4620153705473448002">"Синхронизација е овозможена"</string>
     <string name="accessibility_sync_disabled" msgid="3810092470274708197">"Синхронизацијата е оневозможена"</string>
     <string name="accessibility_sync_in_progress" msgid="440606222479878898">"Се синхронизира"</string>
@@ -2594,7 +2596,7 @@
     <string name="sync_active" msgid="1112604707180806364">"Синхронизирањето е активно"</string>
     <string name="account_sync_settings_title" msgid="3344538161552327748">"Синхронизирај"</string>
     <string name="sync_is_failing" msgid="8284618104132302644">"Во моментов има проблеми со синхронизацијата. Ќе се среди наскоро."</string>
-    <string name="add_account_label" msgid="4461298847239641874">"Додај сметка"</string>
+    <string name="add_account_label" msgid="4461298847239641874">"Додајте сметка"</string>
     <string name="managed_profile_not_available_label" msgid="8784246681719821917">"Работниот профил уште не е достапен"</string>
     <string name="work_mode_label" msgid="6845849194740195757">"Работен профил"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Управувано од вашата организација"</string>
@@ -2625,8 +2627,8 @@
     <string name="preference_change_password_title" msgid="7243527448378789274">"Смени лозинка"</string>
     <string name="header_account_settings" msgid="8586173964125512219">"Поставки на сметка"</string>
     <string name="remove_account_label" msgid="5885425720323823387">"Отстрани сметка"</string>
-    <string name="header_add_an_account" msgid="8482614556580804956">"Додај сметка"</string>
-    <string name="really_remove_account_title" msgid="4166512362915154319">"Отстрани сметка?"</string>
+    <string name="header_add_an_account" msgid="8482614556580804956">"Додајте сметка"</string>
+    <string name="really_remove_account_title" msgid="4166512362915154319">"Да се отстрани сметката?"</string>
     <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Со отстранување на оваа сметка ќе се избришат сите нејзини пораки, контакти и другите податоци од таблетот!"</string>
     <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Со отстранување на оваа сметка ќе се избришат сите нејзини пораки, контакти и другите податоци од телефонот!"</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"Со отстранување на оваа сметка ќе се избришат сите нејзини пораки, контакти и другите податоци од уредот!"</string>
@@ -2703,7 +2705,7 @@
     <string name="data_usage_restrict_denied_dialog" msgid="18928292832775805">"Ограничување на интернет во заднина е можно само откога ќе поставите ограничување за мобилен интернет."</string>
     <string name="data_usage_auto_sync_on_dialog_title" msgid="2342323408229702005">"Вклучи авто синхрон. на подат.?"</string>
     <string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="4935430284683238901">"Сите промени што ги правите на вашите сметки на интернет автоматски ќе се копираат на вашиот таблет.\n\nНекои сметки може и автоматски да ги копираат сите промени направени на телефонот на интернет. Сметката на Google го прави тоа."</string>
-    <string name="data_usage_auto_sync_on_dialog" product="default" msgid="5004823486046340090">"Сите промени што ќе ги направите на вашите сметки на интернет автоматски ќе се ископираат на телефонот.\n\nНекои сметки можеби автоматски ќе ги ископираат и промените што ги правите од телефонот на интернет. Сметката на Google го прави тоа."</string>
+    <string name="data_usage_auto_sync_on_dialog" product="default" msgid="5004823486046340090">"Сите промени што ќе ги направите на вашите сметки на интернет автоматски ќе се ископираат на телефонот.\n\nНекои сметки можеби автоматски ќе ги ископираат и промените што ги вршите од телефонот на интернет. Сметката на Google го прави тоа."</string>
     <string name="data_usage_auto_sync_off_dialog_title" msgid="7105334544291643305">"Исклучи авто синхрон. на подат.?"</string>
     <string name="data_usage_auto_sync_off_dialog" msgid="4057984234450947964">"Ова ќе ви заштеди интернет и батерија, но секоја сметка ќе треба да ја синхронизирате рачно за да се соберат најновите информации. Освен тоа, нема да добивате известувања за ажурирања."</string>
     <string name="data_usage_cycle_editor_title" msgid="4967309390043599889">"Датум на ресетирање циклус на употреба"</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Корисник"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Ограничен профил"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Да се додаде нов корисник?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Уредов може да го споделувате со други лица преку создавање дополнителни корисници. Секој корисник има сопствен простор што може да го приспособува со апликации, тапети и слично. Корисниците може да приспособуваат и поставки на уредот, како на пр., Wi‑Fi, што се однесуваат на сите.\n\nКога додавате нов корисник, тоа лице треба да го постави својот простор.\n\nСекој корисник може да ажурира апликации за сите други корисници. Поставките и услугите за пристапност не може да се префрлат на новиот корисник."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Уредов може да го споделувате со други лица ако додадете дополнителни корисници. Секој корисник има сопствен простор што може да го приспособува со апликации, тапети и слично. Корисниците може да приспособуваат и поставки за уредот, како на пр., Wi‑Fi, што важат за сите.\n\nКога додавате нов корисник, тоа лице треба да го постави својот простор.\n\nСекој корисник може да ажурира апликации за сите други корисници. Поставките и услугите за пристапност не може да се префрлат на новиот корисник."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Кога додавате нов корисник, тоа лице треба да го постави својот простор.\n\nСекој корисник може да ажурира апликации за сите други корисници."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Ќе поставите корисник сега?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"Проверете дали лицето е достапно да го земе уредот и да го постави својот простор"</string>
@@ -2880,7 +2882,7 @@
     <string name="user_cannot_add_accounts_message" msgid="5993561303748749097">"Ограничените профили не можат да додаваат сметки"</string>
     <string name="user_remove_user_menu" msgid="3505139157217459864">"Избриши го <xliff:g id="USER_NAME">%1$s</xliff:g> од тука"</string>
     <string name="user_lockscreen_settings" msgid="3820813814848394568">"Поставки на екранот за заклучување"</string>
-    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"Додајте корисници од заклучен екран"</string>
+    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"Додавање корисници од заклучен екран"</string>
     <string name="user_new_user_name" msgid="3880395219777884838">"Нов корисник"</string>
     <string name="user_new_profile_name" msgid="3074939718101489937">"Нов профил"</string>
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"Избриши се себеси?"</string>
@@ -2907,15 +2909,15 @@
     <string name="user_enable_calling_confirm_message" msgid="2490126715153125970">"Историјата на повици ќе се сподели со овој корисник."</string>
     <string name="user_enable_calling_and_sms_confirm_title" msgid="4153856398523366976">"Вклучи телефонски повици и SMS?"</string>
     <string name="user_enable_calling_and_sms_confirm_message" msgid="3278802798876095734">"Историјата на повици и пораки ќе се сподели со овој корисник."</string>
-    <string name="emergency_info_title" msgid="1522609271881425375">"Информации за итни случаи"</string>
-    <string name="emergency_info_summary" msgid="7280464759837387342">"Информации и контакти за <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="emergency_info_title" msgid="1522609271881425375">"Податоци за итни случаи"</string>
+    <string name="emergency_info_summary" msgid="7280464759837387342">"Податоци и контакти за <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="application_restrictions" msgid="6871981013736536763">"Дозволи апликации и содржина"</string>
     <string name="apps_with_restrictions_header" msgid="8656739605673756176">"Апликации со ограничувања"</string>
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Прошири поставки за апликација"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Допри и плати"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Како функционира"</string>
     <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Плаќајте со телефонот во продавници"</string>
-    <string name="nfc_payment_default" msgid="7869273092463612271">"Стандард за плаќање"</string>
+    <string name="nfc_payment_default" msgid="7869273092463612271">"Стандардна апликација за плаќање"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Не е поставено"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
     <string name="nfc_payment_use_default" msgid="3098724195746409476">"Користи ја стандардната"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Освен кога е отворена друга апликација за плаќање"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"На терминалот Допри и плати плаќајте со:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Плаќање на терминалот"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Поставете апликација за плаќање. Потоа само држете ја задната страна на телефонот до кој било терминал со симболот без допир."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Поставете апликација за плаќање. Потоа само задржете ја задната страна на телефонот до кој било терминал означен со симболот за плаќање без контакт."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Разбрав"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Повеќе..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Постави како свој параметар?"</string>
@@ -2979,8 +2981,8 @@
     <string name="wizard_back" msgid="223654213898117594">"Назад"</string>
     <string name="wizard_next" msgid="5239664512608113542">"Следно"</string>
     <string name="wizard_finish" msgid="3742102879981212094">"Заврши"</string>
-    <string name="user_image_take_photo" msgid="2000247510236178111">"Фотографирај"</string>
-    <string name="user_image_choose_photo" msgid="4920315415203051898">"Избери слика"</string>
+    <string name="user_image_take_photo" msgid="2000247510236178111">"Фотографирајте"</string>
+    <string name="user_image_choose_photo" msgid="4920315415203051898">"Изберете слика"</string>
     <string name="user_image_photo_selector" msgid="8429694590849882411">"Избери фотографија"</string>
     <string name="regulatory_info_text" msgid="9112993912873512834"></string>
     <string name="sim_setup_wizard_title" msgid="77627575294867180">"SIM-картички"</string>
@@ -3121,7 +3123,7 @@
     <string name="keywords_assist_input" msgid="8392362788794886564">"стандарден, помошник"</string>
     <string name="keywords_default_payment_app" msgid="845369409578423996">"плаќање, стандарден"</string>
     <string name="keywords_ambient_display" msgid="8835182491798487184">"дојдовно известување"</string>
-    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"врзување преку USB, врзување преку Bluetooth, Wi-Fi точка на пристап"</string>
+    <string name="keywords_hotspot_tethering" msgid="1723591462602613867">"интернет преку USB, интернет преку Bluetooth, Wi-Fi точка на пристап"</string>
     <string name="keywords_touch_vibration" msgid="2081175517528255224">"повратни информации со допир, вибрации, чувствителност"</string>
     <string name="keywords_ring_vibration" msgid="4210509151866460210">"повратни информации со допир, вибрации, телефон, повик, чувствителност, ѕвонење"</string>
     <string name="keywords_notification_vibration" msgid="1077515502086745166">"повратни информации со допир, вибрации, чувствителност"</string>
@@ -3159,7 +3161,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"Тонови"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Вибрации"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Вклучете ги звуците"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"Титли во живо"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"Автоматски титлови"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"Автоматски титлови за аудиовизуелни содржини"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Никогаш"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3214,7 +3216,7 @@
     <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Не трепкај со светлото"</string>
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Без скокачки известувања на екранот"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Сокриј ги иконите на статусната лента на врвот од екранот"</string>
-    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Сокриј точки за известување на иконите на апликацијата"</string>
+    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Сокриј точки за известување во иконите за апликациите"</string>
     <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Не прикажувај известувања"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"Сокриј од списокот со известувања"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"Никогаш"</string>
@@ -3358,7 +3360,7 @@
     <string name="notifications_sent_daily" msgid="6874886521964822824">"околу <xliff:g id="NUMBER">%1$s</xliff:g> дневно"</string>
     <string name="notifications_sent_weekly" msgid="5859675428990259432">"околу <xliff:g id="NUMBER">%1$s</xliff:g> неделно"</string>
     <string name="notifications_sent_never" msgid="237997329598144638">"Никогаш"</string>
-    <string name="manage_notification_access_title" msgid="5348743662189787547">"Пристап до известување"</string>
+    <string name="manage_notification_access_title" msgid="5348743662189787547">"Пристап до известувања"</string>
     <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Пристапот до известувањата на работниот профил е блокиран"</string>
     <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"Апликациите не можат да читаат известувања"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="8496218948429646792">
@@ -3507,7 +3509,7 @@
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"потсетници"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"Дозволи настани"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"Дозволете апликациите да занемаруваат"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Исклучоци на апликацијата"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Исклучоци за апликации"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="one">Известувања од <xliff:g id="NUMBER">%1$d</xliff:g> апликација може да ја занемарат „Не вознемирувај“</item>
       <item quantity="other">Известувања од <xliff:g id="NUMBER">%1$d</xliff:g> апликации може да ја занемарат „Не вознемирувај“</item>
@@ -3602,7 +3604,7 @@
     <string name="notifications_label" msgid="2792398288062643318">"Известувања"</string>
     <string name="notifications_enabled" msgid="439339392141736137">"Вклучено"</string>
     <string name="notifications_enabled_with_info" msgid="7706460489443809452">"<xliff:g id="NOTIFICATIONS_SENT">%1$s</xliff:g>/<xliff:g id="NOTIFICATIONS_CATEGORIES_OFF">%2$s</xliff:g>"</string>
-    <string name="notifications_disabled" msgid="316658185757688983">"Исклучи"</string>
+    <string name="notifications_disabled" msgid="316658185757688983">"Исклучено"</string>
     <string name="notifications_partly_blocked" msgid="6330451240669068819">"<xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g> категории се исклучени"</string>
     <string name="notifications_silenced" msgid="538923056987616372">"Стишено"</string>
     <string name="notifications_redacted" msgid="308836040236690014">"Без чувствителни содржини на заклучен екран"</string>
@@ -3643,14 +3645,14 @@
     <string name="advanced_apps" msgid="6643869089344883537">"Напредни"</string>
     <string name="configure_apps" msgid="4066683118857400943">"Конфигурирање апликации"</string>
     <string name="unknown_app" msgid="2312052973570376877">"Непозната апликација"</string>
-    <string name="app_permissions" msgid="3215958256821756086">"Управник со дозволи"</string>
+    <string name="app_permissions" msgid="3215958256821756086">"Управувач со дозволи"</string>
     <string name="app_permissions_summary" msgid="8785798165776061594">"Апликации што користат <xliff:g id="APPS">%1$s</xliff:g>"</string>
     <string name="tap_to_wake" msgid="1902991239401652323">"Допрете за будење"</string>
     <string name="tap_to_wake_summary" msgid="8485222120721006793">"Допрете двапати каде било на екранот за да го разбудите уредот"</string>
     <string name="domain_urls_title" msgid="7939209950373945367">"За отворање линкови"</string>
     <string name="domain_urls_summary_none" msgid="5401203416941265109">"Не отворај поддржани линкови"</string>
     <string name="domain_urls_summary_one" msgid="3893975485064803435">"Отвори <xliff:g id="DOMAIN">%s</xliff:g>"</string>
-    <string name="domain_urls_summary_some" msgid="2130534984153210797">"Отворете <xliff:g id="DOMAIN">%s</xliff:g> и други URL-адреси"</string>
+    <string name="domain_urls_summary_some" msgid="2130534984153210797">"Отворај <xliff:g id="DOMAIN">%s</xliff:g> и други URL-адреси"</string>
     <string name="domain_urls_apps_summary_off" msgid="1110203970617922543">"Ниедна апликација не отвора поддржани линкови"</string>
     <plurals name="domain_urls_apps_summary_on" formatted="false" msgid="3571309605151815405">
       <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> апликација отвора поддржани линкови</item>
@@ -3710,7 +3712,7 @@
     <string name="high_power_system" msgid="739584574711292753">"Оптимизација на батеријата не е достапна"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Не применувајте оптимизација на батеријата. Може побрзо да ја истроши вашата батерија."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Да се извршува во заднина?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Ако дозволите <xliff:g id="APP_NAME">%1$s</xliff:g> секогаш да се извршува во заднина, тоа може да ја намали трајноста на батеријата. \n\nТоа може да го промените подоцна во Поставки &gt; Апликации и известувања."</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Ако дозволите <xliff:g id="APP_NAME">%1$s</xliff:g> секогаш да се извршува во заднина, тоа може да го намали траењето на батеријата. \n\nОва може да го промените подоцна во „Поставки &gt; Апликации и известувања“."</string>
     <string name="battery_summary" msgid="4345690800899981339">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> употреба од последното целосно полнење"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Управување со напојувањето"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Нема употреба на батерија од последното целосно полнење"</string>
@@ -3731,7 +3733,7 @@
     <string name="usb_use_file_transfers_desc" msgid="6953866660041189580">"Пренесете ги датотеките на друг уред"</string>
     <string name="usb_use_photo_transfers" msgid="5974236250197451257">"PTP"</string>
     <string name="usb_use_photo_transfers_desc" msgid="2325112887316125320">"Пренесувај фотографии или датотеки ако не е подржан MTP (PTP)"</string>
-    <string name="usb_use_tethering" msgid="4250626730173163846">"Врзување преку USB"</string>
+    <string name="usb_use_tethering" msgid="4250626730173163846">"Интернет преку USB"</string>
     <string name="usb_use_MIDI" msgid="4710632870781041401">"MIDI"</string>
     <string name="usb_use_MIDI_desc" msgid="1770966187150010947">"Користете го уредов како MIDI"</string>
     <string name="usb_use" msgid="8940500223316278632">"Користи USB за"</string>
@@ -3747,11 +3749,11 @@
     <string name="usb_summary_charging_only" msgid="4118449308708872339">"Полнење на уредот"</string>
     <string name="usb_summary_power_only" msgid="3552240122641051107">"Се полни поврзаниот уред"</string>
     <string name="usb_summary_file_transfers" msgid="7805342797099821502">"Пренос на датотеки"</string>
-    <string name="usb_summary_tether" msgid="778845069037366883">"Врзување преку USB"</string>
+    <string name="usb_summary_tether" msgid="778845069037366883">"Интернет преку USB"</string>
     <string name="usb_summary_photo_transfers" msgid="4743028167400644354">"PTP"</string>
     <string name="usb_summary_MIDI" msgid="5540604166270861247">"MIDI"</string>
     <string name="usb_summary_file_transfers_power" msgid="1684501026426766867">"Пренос на датотеки и полнење уред"</string>
-    <string name="usb_summary_tether_power" msgid="5684170912136320002">"Врзување преку USB и полнење уред"</string>
+    <string name="usb_summary_tether_power" msgid="5684170912136320002">"Интернет преку USB и полнење уред"</string>
     <string name="usb_summary_photo_transfers_power" msgid="4424106272137720464">"PTP и полнење уред"</string>
     <string name="usb_summary_MIDI_power" msgid="7685597621357005180">"MIDI и полнење уред"</string>
     <string name="background_check_pref" msgid="664081406854758392">"Проверка на заднината"</string>
@@ -3801,7 +3803,7 @@
     <string name="system_alert_window_settings" msgid="3024330223417646567">"Приказ врз други апликации"</string>
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"Апликации"</string>
     <string name="system_alert_window_access_title" msgid="5187343732185369675">"Приказ врз други апликации"</string>
-    <string name="permit_draw_overlay" msgid="9039092257052422344">"Дозволи прикажување врз други апликации"</string>
+    <string name="permit_draw_overlay" msgid="9039092257052422344">"Дозволи приказ врз други апликации"</string>
     <string name="allow_overlay_description" msgid="6669524816705082807">"Дозволете ѝ на апликација да се прикажува врз другите апликации што ги користите. Тоа може да го попречи користењето на другите апликации или да го промени начинот на кој се појавуваат или однесуваат."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr виртуелна реалност слушател стерео помошна услуга"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"дијалог прозорец системски предупредувања прикажување врз други апликации"</string>
@@ -3811,14 +3813,14 @@
     <string name="app_permission_summary_allowed" msgid="6458476982015518778">"Дозволено"</string>
     <string name="app_permission_summary_not_allowed" msgid="1171642541675462584">"Не е дозволено"</string>
     <string name="keywords_install_other_apps" msgid="5383559540695847668">"инсталирање апликации непознати извори"</string>
-    <string name="write_settings" msgid="9009040811145552108">"Менување поставки на системот"</string>
+    <string name="write_settings" msgid="9009040811145552108">"Менување системски поставки"</string>
     <string name="keywords_write_settings" msgid="3450405263390246293">"пишувај менувај поставки на системот"</string>
     <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g> апликации имаат дозвола да менуваат поставки на систем"</string>
     <string name="financial_apps_sms_access_title" msgid="3422655018008259655">"Пристап до SMS за финансиски апликации"</string>
     <string name="filter_install_sources_apps" msgid="4519839764020866701">"Може да инсталира други апликации"</string>
     <string name="filter_write_settings_apps" msgid="6864144615530081121">"Може да ги менува поставките на системот"</string>
     <string name="write_settings_title" msgid="5852614614193830632">"Може да ги менува поставките на системот"</string>
-    <string name="write_system_settings" msgid="20450765210832463">"Менување поставки на системот"</string>
+    <string name="write_system_settings" msgid="20450765210832463">"Менување системски поставки"</string>
     <string name="permit_write_settings" msgid="4198491281216818756">"Дозволи менување на поставките на системот"</string>
     <string name="write_settings_description" msgid="2536706293042882500">"Оваа дозвола овозможува апликацијата да менува поставки на системот."</string>
     <string name="write_settings_on" msgid="7328986337962635118">"Да"</string>
@@ -3876,7 +3878,7 @@
     <string name="disabled_by_policy_title_camera" msgid="3741138901926111197">"Камерата не е дозволена"</string>
     <string name="disabled_by_policy_title_screen_capture" msgid="1856835333536274665">"Слика од екранот не е дозволена"</string>
     <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"Апликацијава не може да се отвори"</string>
-    <string name="default_admin_support_msg" msgid="5789424433689798637">"Ако имате прашања, контактирајте со администраторот за информатичка технологија"</string>
+    <string name="default_admin_support_msg" msgid="5789424433689798637">"Ако имате прашања, контактирајте со IT-администраторот"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"Повеќе детали"</string>
     <string name="admin_profile_owner_message" msgid="3199544166281052845">"Администраторот може да ги следи и да управува со апликациите и податоците поврзани со вашиот работен профил, заедно со поставките, дозволите, корпоративниот пристап, мрежната активност и информациите за локацијата на уредот."</string>
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"Администраторот може да ги следи и да управува со апликациите и податоците поврзани со корисников, заедно со поставките, дозволите, корпоративниот пристап, мрежната активност и информациите за локацијата на уредот."</string>
@@ -3933,7 +3935,7 @@
     <string name="usage" msgid="9172908720164431622">"Користење"</string>
     <string name="cellular_data_usage" msgid="1236562234207782386">"Потрошен мобилен интернет"</string>
     <string name="app_cellular_data_usage" msgid="8499761516172121957">"Потрошен сообраќај на апликациите"</string>
-    <string name="wifi_data_usage" msgid="275569900562265895">"Потрошен Wi-Fi сообраќај"</string>
+    <string name="wifi_data_usage" msgid="275569900562265895">"Сообраќај преку Wi-Fi"</string>
     <string name="ethernet_data_usage" msgid="747614925362556718">"Потрошен етернет сообраќај"</string>
     <string name="wifi" msgid="1586738489862966138">"Wi-Fi"</string>
     <string name="ethernet" msgid="2365753635113154667">"Етернет"</string>
@@ -3944,7 +3946,7 @@
     <string name="app_usage_cycle" msgid="213483325132959663">"Циклус потрошен сообраќај од апликации"</string>
     <string name="cell_data_warning" msgid="8902740337286652689">"Предупредување за потрошен сообраќај: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"Ограничување на сообраќајот: <xliff:g id="ID_1">^1</xliff:g>"</string>
-    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Предупредување за потрошен сообраќај: <xliff:g id="ID_1">^1</xliff:g>/Ограничување на сообраќајот:<xliff:g id="ID_2">^2</xliff:g>"</string>
+    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Предупредување за потрошен сообраќај: <xliff:g id="ID_1">^1</xliff:g>/Ограничување на сообраќајот: <xliff:g id="ID_2">^2</xliff:g>"</string>
     <string name="billing_cycle_fragment_summary" msgid="4926047002107855543">"На <xliff:g id="ID_1">%1$s</xliff:g> секој месец"</string>
     <string name="network_restrictions" msgid="196294262243618198">"Ограничувања на мрежата"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="1664494781594839837">
@@ -3962,8 +3964,8 @@
     <string name="configure" msgid="8232696842838580549">"Конфигурирај"</string>
     <string name="data_usage_other_apps" msgid="7002491980141402084">"Други апликации вклучени во употребата"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> апликација има дозвола да користи неограничен интернет кога е вклучен „Штедачот на интернет“</item>
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> апликации имаат дозвола да користат неограничен интернет кога е вклучен „Штедачот на интернет“</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> апликација има дозвола да користи неограничен мобилен интернет кога е вклучен „Штедачот на интернет“</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> апликации имаат дозвола да користат неограничен мобилен интернет кога е вклучен „Штедачот на интернет“</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"Примарни податоци"</string>
     <string name="data_usage_wifi_title" msgid="7161828479387766556">"Wi‑Fi-сообраќај"</string>
@@ -3984,7 +3986,7 @@
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"Прикажи план"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"Прикажи ги деталите"</string>
     <string name="data_saver_title" msgid="7903308134514179256">"Штедач на интернет"</string>
-    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Неограничен интернет"</string>
+    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Неограничен мобилен интернет"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"Исклучен сообраќај во заднина"</string>
     <string name="data_saver_on" msgid="7281809065420480881">"Вклучено"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"Исклучено"</string>
@@ -4002,7 +4004,7 @@
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"Вклучено"</string>
     <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Ќе се вклучи на <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"Исклучено"</string>
-    <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Вклучи го сега"</string>
+    <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Вклучи сега"</string>
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Исклучи сега"</string>
     <string name="not_battery_optimizing" msgid="2616044774307734160">"Не се користи оптимизација на батеријата"</string>
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Ако уредот е заклучен, спречете внесување одговори или друг текст во известувања"</string>
@@ -4052,8 +4054,8 @@
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Не успеа да се примени прекривка"</string>
     <string name="special_access" msgid="1453926335914696206">"Посебни пристапи"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> апликација може да користи неограничен интернет</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> апликации може да користат неограничен интернет</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> апликација може да користи неограничен мобилен интернет</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> апликации може да користат неограничен мобилен интернет</item>
     </plurals>
     <string name="special_access_more" msgid="7086690625048471400">"Видете повеќе"</string>
     <string name="confirm_convert_to_fbe_warning" msgid="4972595831034280189">"Навистина ли да се избришат податоците за корисникот и да се конвертираат во шифрирана датотека?"</string>
@@ -4068,7 +4070,7 @@
     <string name="premium_sms_none" msgid="940723020871007898">"Ниедна од инсталираните апликации не побара пристап до премиум SMS"</string>
     <string name="premium_sms_warning" msgid="7604011651486294515">"Премиум SMS може да ве чини пари, а сумата ќе се додаде на сметките од операторот. Ако овозможите дозвола за апликацијата, ќе може да испраќате премиум SMS со неа."</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"Пристап до премиум SMS"</string>
-    <string name="bluetooth_disabled" msgid="6588102116819268238">"Исклучен"</string>
+    <string name="bluetooth_disabled" msgid="6588102116819268238">"Исклучено"</string>
     <string name="bluetooth_connected_summary" msgid="439920840053965217">"Поврзан со <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"Поврзан со повеќе уреди"</string>
     <string name="demo_mode" msgid="3831081808592541104">"Демо-режим на кориснички интерфејс на систем"</string>
@@ -4118,22 +4120,22 @@
     <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"За да префрлате апликации, повлечете нагоре на копчето „Почеток“. Повлечете нагоре уште еднаш за да ги видите сите апликации. Ова функционира од секој екран. Повеќе нема да имате копче „Преглед“ во долниот десен дел од екранот."</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"Пробајте го новото копче за Почеток"</string>
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Вклучете го новото движење за да префрлате апликации"</string>
-    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Допрете двапати за да го проверите телефонот"</string>
-    <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Допрете двапати за да го проверите таблетот"</string>
-    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Допрете двапати за да го проверите уредот"</string>
+    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Допрете двапати за проверка на телефонот"</string>
+    <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Допрете двапати за проверка на таблетот"</string>
+    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Допрете двапати за проверка на уредот"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"За да ги проверите времето, известувањата и другите информации, допрете двапати на екранот."</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Подигни за проверка"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Подигнете за проверка на телефонот"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Подигнете за да го проверите таблетот"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Подигнете за да го проверите уредот"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"Екран за будење"</string>
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"За да ги проверите времето, известувањата и другите информации, земете го телефонот."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"За да ги проверите времето, известувањата и другите информации, земете го таблетот."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"За да ги проверите времето, известувањата и другите информации, земете го уредот."</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Допрете за да го проверите телефонот"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Допрете за проверка на телефонот"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Допрете за да го проверите таблетот"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Допрете за да го проверите уредот"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"За да ги проверите времето, известувањата и другите информации, допрете го екранот."</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Повлечи отпечаток за известувања"</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Повлечете отпечаток за известувања"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Повлечете отпечаток"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"За да ги проверите известувањата, повлечете надолу на сензорот за отпечатоци на задната страна на телефонот."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"За да ги проверите известувањата, повлечете надолу на сензорот за отпечатоци на задната страна на таблетот."</string>
@@ -4245,7 +4247,7 @@
     <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"Дали сакате да ја отстраните оваа инстант апликација?"</string>
     <string name="launch_instant_app" msgid="5251693061228352333">"Отвори"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"Игри"</string>
-    <string name="audio_files_title" msgid="3073879661731363935">"Аудио датотеки"</string>
+    <string name="audio_files_title" msgid="3073879661731363935">"Аудиодатотеки"</string>
     <string name="app_info_storage_title" msgid="6643391804949509308">"Искористен простор"</string>
     <string name="webview_uninstalled_for_user" msgid="3407952144444040557">"(деинсталирано за корисникот <xliff:g id="USER">%s</xliff:g>)"</string>
     <string name="webview_disabled_for_user" msgid="8057805373224993504">"(оневозможено за корисникот <xliff:g id="USER">%s</xliff:g>)"</string>
@@ -4263,7 +4265,7 @@
     <string name="show_operator_name_title" msgid="5056163028128447308">"Име на мрежата"</string>
     <string name="show_operator_name_summary" msgid="6352180285743777497">"Прикажи го името на мрежата во статусната лента"</string>
     <string name="storage_manager_indicator" msgid="4255140732848476875">"„Управник со меморија“: <xliff:g id="STATUS">^1</xliff:g>"</string>
-    <string name="storage_manager_indicator_off" msgid="6404056007102580777">"Исклучен"</string>
+    <string name="storage_manager_indicator_off" msgid="6404056007102580777">"Исклучено"</string>
     <string name="storage_manager_indicator_on" msgid="5295306384982062320">"Вклучен"</string>
     <string name="install_type_instant" msgid="6248487669862821874">"Инстант апликација"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"Да се исклучи управникот со меморијата?"</string>
@@ -4304,17 +4306,17 @@
     <string name="disabled_dependent_setting_summary" msgid="7668590009599010842">"Зависи од друга поставка"</string>
     <string name="unknown_unavailability_setting_summary" msgid="5785931810977403534">"Поставката е недостапна"</string>
     <string name="my_device_info_account_preference_title" msgid="7965847995028952373">"Сметка"</string>
-    <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"Име на уред"</string>
+    <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"Име на уредот"</string>
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Контрола на Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Дозволете апликацијата да контролира Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Дозволете апликацијава да вклучува или исклучува Wi-Fi, да скенира и да се поврзува на Wi-Fi мрежи, да додава или отстранува мрежи или да започне локална точка на пристап"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Пуштање содржина на"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Пуштај содржини на"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Овој уред"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Телефон"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Таблет"</string>
     <string name="media_output_summary" product="device" msgid="5132223072593052660">"Уред"</string>
     <string name="media_out_summary_ongoing_call_state" msgid="3081034548396491775">"Недостапно за време на повици"</string>
-    <string name="media_output_summary_unavailable" msgid="6629338032551086053">"Недостапен"</string>
+    <string name="media_output_summary_unavailable" msgid="6629338032551086053">"Недостапно"</string>
     <string name="take_call_on_title" msgid="6570776899869030724">"Прифатете повик на"</string>
     <string name="cannot_change_apn_toast" msgid="5405823369239466817">"Ова APN не може да се промени."</string>
     <string name="battery_suggestion_title" product="tablet" msgid="10172199242166440">"Подобрете го траењето на батеријата"</string>
@@ -4325,19 +4327,19 @@
     <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Притиснете ги копчињата за напојување и зголемување на јачината на звукот заедно за"</string>
     <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Кратенка за спречување на ѕвонењето"</string>
     <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Вибрации"</string>
-    <string name="prevent_ringing_option_mute" msgid="53662688921253613">"Исклучи звук"</string>
+    <string name="prevent_ringing_option_mute" msgid="53662688921253613">"Исклучен звук"</string>
     <string name="prevent_ringing_option_none" msgid="1450985763137666231">"Не прави ништо"</string>
     <string name="prevent_ringing_option_vibrate_summary" msgid="7961818570574683926">"Вклучено (вибрации)"</string>
     <string name="prevent_ringing_option_mute_summary" msgid="3509459199090688328">"Вклучено (исклучен звук)"</string>
     <string name="prevent_ringing_option_none_summary" msgid="5152618221093037451">"Исклучено"</string>
-    <string name="pref_title_network_details" msgid="3971074015034595956">"Детали за мрежа"</string>
+    <string name="pref_title_network_details" msgid="3971074015034595956">"Детали за мрежата"</string>
     <string name="about_phone_device_name_warning" msgid="9088572775969880106">"Името на уредот е видливо за апликациите на телефонот. Може да го видат и други луѓе кога ќе се поврзете со уреди со Bluetooth или кога ќе поставите Wi-Fi точка на пристап."</string>
     <string name="devices_title" msgid="4768432575951993648">"Уреди"</string>
     <string name="homepage_all_settings" msgid="3201220879559136116">"Сите поставки"</string>
     <string name="homepage_personal_settings" msgid="7472638597249114564">"Предлози"</string>
     <string name="choose_network_title" msgid="3213314359630522396">"Изберете мрежа"</string>
     <string name="network_disconnected" msgid="8677203031237141594">"Исклучена"</string>
-    <string name="network_connected" msgid="8197627827976712053">"Поврзана"</string>
+    <string name="network_connected" msgid="8197627827976712053">"Поврзано"</string>
     <string name="network_connecting" msgid="8798611458457547110">"Се поврзува…"</string>
     <string name="network_could_not_connect" msgid="552874922030763713">"Не може да се поврзе"</string>
     <string name="empty_networks_list" msgid="5170020017144403884">"Не се најдени мрежи."</string>
@@ -4443,7 +4445,7 @@
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"Неважечки режим на мрежа <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Игнорирајте."</string>
     <string name="mobile_network_apn_title" msgid="5628635067747404382">"Имиња на пристапни точки"</string>
     <string name="manual_mode_disallowed_summary" msgid="799800630000340665">"Недостапно кога сте поврзани на <xliff:g id="CARRIER">%1$s</xliff:g>"</string>
-    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"Медицински информации, контакти за итни случаи"</string>
+    <string name="emergency_info_contextual_card_summary" msgid="5541444321969803486">"Медицински податоци, контакти за итни случаи"</string>
     <string name="see_more" msgid="7463940160389802632">"Видете повеќе"</string>
     <string name="see_less" msgid="3718892257002813387">"Види помалку"</string>
     <string name="network_connection_request_dialog_title" msgid="3150489262902506588">"Уред за користење со <xliff:g id="APPNAME">%1$s</xliff:g>"</string>
@@ -4463,7 +4465,7 @@
     <string name="settings_panel_title" msgid="8181989386118232534">"Табла за поставки"</string>
     <string name="internet_connectivity_panel_title" msgid="341712994620215750">"Интернет-врска"</string>
     <string name="volume_connectivity_panel_title" msgid="4998755371496690971">"Јачина на звук"</string>
-    <string name="mobile_data_ap_mode_disabled" msgid="2452716524753472885">"Недостапен во авионски режим"</string>
+    <string name="mobile_data_ap_mode_disabled" msgid="2452716524753472885">"Недостапно во авионски режим"</string>
     <string name="force_desktop_mode" msgid="6973100177551040740">"Наметни режим на работна површина"</string>
     <string name="force_desktop_mode_summary" msgid="8865007610266954719">"Наметнете го експерименталниот режим на работна површина на секундарните екрани"</string>
     <string name="hwui_force_dark_title" msgid="3744825212652331461">"Отфрли го наметнувањето темен режим"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ml/arrays.xml b/tests/CarDeveloperOptions/res/values-ml/arrays.xml
index 933d78c..6fbe7e4 100644
--- a/tests/CarDeveloperOptions/res/values-ml/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ml/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 മിനിറ്റ്"</item>
     <item msgid="6677424950124253938">"30 മിനിറ്റ്"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ഒരിക്കലും വേണ്ട"</item>
+    <item msgid="2517785806387977252">"15 സെക്കൻഡ്"</item>
+    <item msgid="6347954399441173672">"30 സെക്കൻഡ്"</item>
+    <item msgid="4858305253279921789">"ഒരു മിനിറ്റ്"</item>
+    <item msgid="8109273437140044073">"2 മിനിറ്റ്"</item>
+    <item msgid="2788593551142462622">"5 മിനിറ്റ്"</item>
+    <item msgid="8012672183888404961">"10 മിനിറ്റ്"</item>
+    <item msgid="8271452751594598661">"30 മിനിറ്റ്"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"ഉടന്‍"</item>
     <item msgid="2038544972632026612">"5 സെക്കൻഡ്"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 മിനിറ്റ്"</item>
     <item msgid="7258394417241706272">"30 മിനിറ്റ്"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"ചെറുത്"</item>
+    <item msgid="591935967183159581">"ഡിഫോൾട്ട്"</item>
+    <item msgid="1714184661981538355">"വലുത്"</item>
+    <item msgid="6195563047686707484">"ഏറ്റവും വലുത്"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"സ്‌കാൻചെയ്യുന്നു..."</item>
+    <item msgid="5597394826455877834">"കണക്‌റ്റുചെയ്യുന്നു..."</item>
+    <item msgid="5848277343965362748">"പരിശോധിച്ചുറപ്പിക്കുന്നു…"</item>
+    <item msgid="3391238031431440676">"IP വിലാസം നേടുന്നു..."</item>
+    <item msgid="5257597310494000224">"കണക്‌റ്റ് ചെയ്‌തു"</item>
+    <item msgid="8472497592913050396">"താൽക്കാലികമായി നിർത്തി"</item>
+    <item msgid="1228072488815999109">"വിച്‌ഛേദിക്കുന്നു..."</item>
+    <item msgid="7253087004422991731">"വിച്ഛേദിച്ചു"</item>
+    <item msgid="4169850917304751227">"പരാജയപ്പെട്ടു"</item>
+    <item msgid="6266658166690831131">"തടഞ്ഞു"</item>
+    <item msgid="4517230805854909775">"മോശം കണക്ഷൻ താൽക്കാലികമായി ഒഴിവാക്കുന്നു"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"സ്‌കാൻ ചെയ്യുന്നു…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റുചെയ്യുന്നു..."</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> മുഖേന പരിശോധിച്ചുറപ്പിക്കുന്നു…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിൽ നിന്ന് IP വിലാസം നേടുന്നു…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിൽ കണക്‌റ്റുചെയ്‌തു"</item>
+    <item msgid="6600156231416890902">"താൽക്കാലികമായി നിർത്തി"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> എന്നതിൽ നിന്ന് വിച്‌ഛേദിക്കുന്നു..."</item>
+    <item msgid="3980154971187953257">"വിച്ഛേദിച്ചു"</item>
+    <item msgid="2847316776634969068">"പരാജയപ്പെട്ടു"</item>
+    <item msgid="4390990424746035383">"തടഞ്ഞു"</item>
+    <item msgid="3618248791367063949">"മോശം കണക്ഷൻ താൽക്കാലികമായി ഒഴിവാക്കുന്നു"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"പുഷ് ബട്ടൺ"</item>
+    <item msgid="7401896200768713930">"പിയർ ഉപകരണത്തിൽ നിന്നുള്ള പിൻ"</item>
+    <item msgid="4526848028011846710">"ഈ ഉപകരണത്തിൽ നിന്നുള്ള പിൻ"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"കണക്‌റ്റ് ചെയ്‌തു"</item>
     <item msgid="983792611851499732">"ക്ഷണിച്ചു"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"മോശം"</item>
+    <item msgid="7882129634982603782">"മോശം"</item>
+    <item msgid="6457357501905996224">"തൃപ്‌തികരം"</item>
+    <item msgid="405271628162918841">"നല്ലത്"</item>
+    <item msgid="999948812884919584">"മികച്ചത്"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"കഴിഞ്ഞ 30 ദിവസം"</item>
     <item msgid="3211287705232736964">"ഉപയോഗ സൈക്കിൾ സജ്ജമാക്കുക..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"സ്‌റ്റാറ്റിക്ക്"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"ഒന്നുമില്ല"</item>
     <item msgid="1464741437353223198">"മാനുവൽ"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുക"</item>
     <item msgid="6423861043647911030">"ഉപയോഗസഹായി വോളിയം"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ലൊക്കേഷൻ"</item>
+    <item msgid="6656077694190491067">"ലൊക്കേഷൻ"</item>
+    <item msgid="8790228218278477369">"ലൊക്കേഷൻ"</item>
+    <item msgid="7836406246005211990">"വൈബ്രേറ്റ് ചെയ്യുക"</item>
+    <item msgid="3951439024549922598">"കോൺടാക്റ്റുകൾ റീഡ് ചെയ്യുക"</item>
+    <item msgid="8802152411647068">"കോൺടാക്റ്റുകൾ പരിഷ്‌ക്കരിക്കുക"</item>
+    <item msgid="229544934599698735">"കോൾ ചരിത്രം റീഡ് ചെയ്യുക"</item>
+    <item msgid="7396102294405899613">"കോൾ ചരിത്രം പരിഷ്‌ക്കരിക്കുക"</item>
+    <item msgid="3597797992398484655">"കലണ്ടർ റീഡ് ചെയ്യുക"</item>
+    <item msgid="2705975774250907343">"കലണ്ടർ പരിഷ്‌ക്കരിക്കുക"</item>
+    <item msgid="4668747371441932697">"ലൊക്കേഷൻ"</item>
+    <item msgid="1487578921720243646">"അറിയിപ്പ് പോസ്റ്റുചെയ്യുക"</item>
+    <item msgid="4636080349724146638">"ലൊക്കേഷൻ"</item>
+    <item msgid="673510900286463926">"ഫോണ്‍ വിളിക്കുക"</item>
+    <item msgid="542083422784609790">"SMS/MMS വായിക്കുക"</item>
+    <item msgid="1033780373029588436">"SMS/MMS എഴുതുക"</item>
+    <item msgid="5647111115517787488">"SMS/MMS നേടുക"</item>
+    <item msgid="8591105601108455893">"SMS/MMS നേടുക"</item>
+    <item msgid="7730995008517841903">"SMS/MMS നേടുക"</item>
+    <item msgid="2613033109026626086">"SMS/MMS നേടുക"</item>
+    <item msgid="3037159047591081136">"SMS/MMS അയയ്‌ക്കുക"</item>
+    <item msgid="4726682243833913568">"SMS/MMS വായിക്കുക"</item>
+    <item msgid="6555678522277865572">"SMS/MMS എഴുതുക"</item>
+    <item msgid="6981734935578130884">"ക്രമീകരണങ്ങൾ പരിഷ്‌ക്കരിക്കുക"</item>
+    <item msgid="8705854389991425629">"മുകളിൽ ഡ്രോ ചെയ്യുക"</item>
+    <item msgid="5861356020344153651">"ആക്‌സസ്സ് അറിയിപ്പുകൾ"</item>
+    <item msgid="78432174621628659">"ക്യാമറ"</item>
+    <item msgid="3986116419882154794">"ഓഡിയോ റെക്കോർഡുചെയ്യുക"</item>
+    <item msgid="4516840825756409490">"ഓഡിയോ പ്ലേ ചെയ്യുക"</item>
+    <item msgid="6811712502798183957">"ക്ലിപ്പ്ബോർഡ് റീഡുചെയ്യുക"</item>
+    <item msgid="2780369012602289114">"ക്ലിപ്പ്ബോർഡ് പരിഷ്‌ക്കരിക്കുക"</item>
+    <item msgid="2331359440170850868">"മീഡിയ ബട്ടണുകൾ"</item>
+    <item msgid="6133599737122751231">"ഓഡിയോ ഫോക്കസ്"</item>
+    <item msgid="6844485713404805301">"മൊത്തം വോളിയം"</item>
+    <item msgid="1600379420669104929">"വോയ്‌സ് വോളിയം"</item>
+    <item msgid="6296768210470214866">"റിംഗ് വോളിയം"</item>
+    <item msgid="510690696071629241">"മീഡിയാ വോളിയം"</item>
+    <item msgid="406861638631430109">"അലാറം വോളിയം"</item>
+    <item msgid="4715864795872233884">"അറിയിപ്പ് വോളിയം"</item>
+    <item msgid="2311478519251301183">"ബ്ലൂടൂത്ത് വോളിയം"</item>
+    <item msgid="5133991377896747027">"സജീവമായി തുടരുക"</item>
+    <item msgid="2464189519136248621">"ലൊക്കേഷൻ"</item>
+    <item msgid="2062677934050803037">"ലൊക്കേഷൻ"</item>
+    <item msgid="1735171933192715957">"ഉപയോഗ സ്ഥിതിവിവരക്കണക്കുകൾ നേടുക"</item>
+    <item msgid="1014093788778383554">"മൈക്രോഫോൺ മ്യൂട്ടുചെയ്യുക/അൺമ്യൂട്ടുചെയ്യുക"</item>
+    <item msgid="4199297950608622850">"ടോസ്റ്റ് കാണിക്കുക"</item>
+    <item msgid="2527962435313398821">"പ്രോജക്‌റ്റ് മീഡിയ"</item>
+    <item msgid="5117506254221861929">"VPN സജീവമാക്കുക"</item>
+    <item msgid="8291198322681891160">"വാൾപേപ്പർ എഴുതുക"</item>
+    <item msgid="7106921284621230961">"അസിസ്റ്റ് ഘടന"</item>
+    <item msgid="4496533640894624799">"അസിസ്റ്റ് സ്‌ക്രീൻഷോട്ട്"</item>
+    <item msgid="2598847264853993611">"ഫോൺ നില വായിക്കുക"</item>
+    <item msgid="9215610846802973353">"വോയ്‌സ്‌മെയിൽ ചേർക്കുക"</item>
+    <item msgid="9186411956086478261">"sip ഉപയോഗിക്കുക"</item>
+    <item msgid="6884763100104539558">"ഔട്ട്‌ഗോയിംഗ് കോൾ പ്രോസസ്സുചെയ്യുക"</item>
+    <item msgid="125513972170580692">"ഫിംഗർപ്രിന്റ്"</item>
+    <item msgid="2556071024281275619">"ബോഡി സെൻസറുകൾ"</item>
+    <item msgid="617168514928339387">"സെൽ ബ്രോഡ്‌കാസ്റ്റുകൾ വായിക്കുക"</item>
+    <item msgid="7134693570516523585">"മോക്ക് ലൊക്കേഷൻ"</item>
+    <item msgid="7224489175375229399">"സ്റ്റോറേജ് വായിക്കുക"</item>
+    <item msgid="8472735063903258202">"സ്റ്റോറേജ് എഴുതുക"</item>
+    <item msgid="4069276819909595110">"സ്ക്രീൻ ഓണാക്കുക"</item>
+    <item msgid="1228338896751121025">"അക്കൗണ്ടുകൾ സ്വന്തമാക്കുക"</item>
+    <item msgid="3181581793459233672">"പശ്ചാത്തലത്തിൽ റൺ ചെയ്യുക"</item>
+    <item msgid="2340936043025374076">"ഉപയോഗസഹായി വോളിയം"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"ഹ്രസ്വം"</item>
     <item msgid="4816511817309094890">"ഇടത്തരം"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"കൂട്ടെഴുത്ത്"</item>
     <item msgid="6896773537705206194">"ചെറിയ കാപ്പിറ്റലുകൾ"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"തീരെ ചെറുത്"</item>
+    <item msgid="5091603983404027034">"ചെറുത്"</item>
+    <item msgid="176844712416932112">"സാധാരണം"</item>
+    <item msgid="2784236342175159295">"വലുത്"</item>
+    <item msgid="218913203203160606">"വളരെ വലുത്"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"ഡിഫോൾട്ട്"</item>
     <item msgid="6488643537808152001">"ഒന്നുമില്ല"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"സ്ഥിര ആപ്പ് ഉപയോഗിക്കൂ"</item>
+    <item msgid="8611890312638868524">"കറുപ്പിൽ വെളുപ്പ്"</item>
+    <item msgid="5891360837786277638">"വെളുപ്പിൽ കറുപ്പ്"</item>
+    <item msgid="2798457065945456853">"കറുപ്പിൽ മഞ്ഞ"</item>
+    <item msgid="5799049811524553967">"നീലയിൽ മഞ്ഞ"</item>
+    <item msgid="3673930830658169860">"ഇഷ്ടാനുസൃതം"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"മുമ്പ് പങ്കിട്ട കീകൾ ഉപയോഗിക്കുന്ന L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"ഒന്നുമില്ല"</item>
     <item msgid="1157046369795346308">"മാനുവൽ"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"വിച്ഛേദിച്ചു"</item>
+    <item msgid="8754480102834556765">"സമാരംഭിക്കുന്നു..."</item>
+    <item msgid="3351334355574270250">"കണക്‌റ്റുചെയ്യുന്നു..."</item>
+    <item msgid="8303882153995748352">"കണക്‌റ്റ് ചെയ്‌തു"</item>
+    <item msgid="9135049670787351881">"ടൈംഔട്ട്"</item>
+    <item msgid="2124868417182583926">"പരാജയപ്പെട്ടു"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"ചോദിക്കുക"</item>
     <item msgid="7718817231348607934">"ഒരിക്കലുമനുവദിക്കരുത്"</item>
     <item msgid="8184570120217958741">"എല്ലായ്‌പ്പോഴും അനുവദിക്കുക"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"സാധാരണം"</item>
+    <item msgid="5101233285497327432">"ഇടത്തരം"</item>
+    <item msgid="1555861583162930714">"കുറഞ്ഞത്"</item>
+    <item msgid="1719683776264798117">"കഴിയാറായി"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"സാധാരണം"</item>
+    <item msgid="6107138933849816768">"ഇടത്തരം"</item>
+    <item msgid="182695359839047859">"കുറഞ്ഞത്"</item>
+    <item msgid="8577246509202964244">"കഴിയാറായി"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"നിരന്തരമായ"</item>
     <item msgid="167418068739176448">"മികച്ച പ്രവർത്തനം"</item>
@@ -334,8 +473,8 @@
   </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"സ്വയമേവ കണ്ടെത്തുക"</item>
-    <item msgid="773943026484148895">"മീറ്റർ-മാപകമായി കണക്കാക്കുക"</item>
-    <item msgid="1008268820118852416">"മീറ്റർ മാപകമല്ലാത്തതായി കണക്കാക്കുക"</item>
+    <item msgid="773943026484148895">"മീറ്റർ ചെയ്തതായി കണക്കാക്കുക"</item>
+    <item msgid="1008268820118852416">"മീറ്റർ ചെയ്യാത്തതായി കണക്കാക്കുക"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="6545683814310036454">"ക്രമരഹിതമാക്കിയ MAC ഉപയോഗിക്കുക (ഡിഫോൾട്ട്)"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ml/strings.xml b/tests/CarDeveloperOptions/res/values-ml/strings.xml
index 585800c..2c5fbcc 100644
--- a/tests/CarDeveloperOptions/res/values-ml/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ml/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"സ്ക്രീനിലെ ടെക്സ്റ്റ് ചെറുതോ വലുതോ ആക്കുക."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"ചെറുതാക്കുക"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"വലുതാക്കുക"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"സാമ്പിൾ ടെക്‌സ്റ്റ്"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ഓസ് നഗരത്തിലെ അതിശയിപ്പിക്കുന്ന മന്ത്രവാദി"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"അധ്യായം 11: ഓസ് എന്ന അത്ഭുതകരമായ മരതകനഗരം"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"നിങ്ങൾ പോർട്ട് ഫീൽഡ് പൂർത്തിയാക്കേണ്ടതുണ്ട്."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"ഹോസ്‌റ്റ് ഫീൽഡ് ശൂന്യമാണെങ്കിൽ പോർട്ട് ഫീൽഡും ശൂന്യമായിരിക്കണം."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"നിങ്ങൾ ടൈപ്പുചെയ്‌ത പോർട്ട് സാധുവായതല്ല."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"ബ്രൗസർ HTTP പ്രോക്‌സി ഉപയോഗിക്കുന്നുവെങ്കിലും മറ്റ് അപ്ലിക്കേഷനുകൾ ഉപയോഗിക്കാനിടയില്ല."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"ബ്രൗസർ HTTP പ്രോക്‌സി ഉപയോഗിക്കുന്നുവെങ്കിലും മറ്റ് ആപ്പുകൾ ഉപയോഗിക്കാനിടയില്ല."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL ബാന്‍ഡ്‍വിത്ത് (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL ബാന്‍ഡ്‍വിത്ത് (kbps):"</string>
@@ -419,7 +418,7 @@
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"പൂർത്തിയായി"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"മുഖം ഉപയോഗിക്കേണ്ടത്"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"ഉപകരണം അൺലോക്ക് ചെയ്യൽ"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"സൈൻ ഇൻ ചെയ്യലും പണമടയ്ക്കലും"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"ആപ്പ് സൈൻ ഇൻ, പേയ്മെന്റുകൾ"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"അൺലോക്ക് ചെയ്യാൻ കണ്ണുകൾ തുറന്നിരിക്കണം"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"മുഖം പരിശോധിച്ചുറപ്പിക്കുമ്പോൾ, കണ്ണുകൾ തുറന്നിരിക്കണം"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"എപ്പോഴും സ്ഥിരീകരണം ആവശ്യമാണ്"</string>
@@ -468,7 +467,7 @@
     <string name="security_settings_fingerprint_enroll_dialog_delete" msgid="4312297515772004580">"ഇല്ലാതാക്കുക"</string>
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"സെൻസർ സ്പർശിക്കുക"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"സെൻസറിൽ വിരൽ വച്ച് വൈബ്രേഷൻ അനുഭവപ്പെട്ട ശേഷം വിരൽ മാറ്റുക."</string>
-    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"ഉയർത്തുക, വീണ്ടും സ്പർശിക്കുക"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"വിരലെടുക്കുക, വീണ്ടും സ്പർശിക്കുക"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"നിങ്ങളുടെ ഫിംഗർപ്രിന്റിന്റെ വ്യത്യസ്ത ഭാഗങ്ങൾ ചേർക്കുന്നതിന് നിങ്ങളുടെ വിരൽ ഉയർത്തിക്കൊണ്ടിരിക്കുക"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"ഫിംഗർപ്രിന്റ് ചേർത്തു"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"നിങ്ങൾ ഈ ഐക്കൺ കാണുമ്പോൾ, തിരിച്ചറിയലിനോ വാങ്ങലിന് അംഗീകാരം നൽകാനോ നിങ്ങളുടെ ഫിംഗർപ്രിന്‍റ് ഉപയോഗിക്കുക"</string>
@@ -858,7 +857,7 @@
     <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"മികച്ച ഇന്‍റർനെറ്റ് കണക്ഷൻ ഉണ്ടാകുന്നതുവരെ വൈഫൈ നെറ്റ്‌വർക്ക് ഉപയോഗിക്കരുത്"</string>
     <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"മികച്ച ഇന്‍റർനെറ്റ് കണക്ഷനുള്ള നെറ്റ്‌വർക്കുകൾ മാത്രം ഉപയോഗിക്കുക"</string>
     <string name="use_open_wifi_automatically_title" msgid="3084513215481454350">"ഓപ്പൺ നെറ്റ്‌വർക്കിലേക്ക് കണക്റ്റ് ചെയ്യുക"</string>
-    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"ഉയർന്ന ഗുണമേന്മയുള്ള പബ്ലിക് നെറ്റ്‌വർക്കുകളിലേക്ക് സ്വയമേവ കണക്റ്റ് ചെയ്യുക"</string>
+    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"ഉയർന്ന നിലവാരമുള്ള പബ്ലിക് നെറ്റ്‌വർക്കുകളിലേക്ക് സ്വയമേവ കണക്റ്റ് ചെയ്യുക"</string>
     <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"ഉപയോഗിക്കാനായി, ഒരു നെറ്റ്‌വർക്ക് റേറ്റിംഗ് ദാതാവിനെ തിരഞ്ഞെടുക്കുക"</string>
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"ഉപയോഗിക്കാനായി, അനുയോജ്യമായ ഒരു നെറ്റ്‌വർക്ക് റേറ്റിംഗ് ദാതാവിനെ തിരഞ്ഞെടുക്കുക"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"സർട്ടിഫിക്കറ്റുകൾ ഇൻസ്റ്റാളുചെയ്യുക"</string>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID നൽകുക"</string>
     <string name="wifi_security" msgid="9136702039496152831">"സുരക്ഷ"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"മറയ്‌ക്കപ്പെട്ട നെറ്റ്‌വർക്ക്"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"നിങ്ങളുടെ റൂട്ടർ ഒരു നെറ്റ്‍വര്‍ക്ക് ഐഡി പ്രക്ഷേപണം ചെയ്യുന്നില്ലെങ്കിൽ, എന്നാൽ ഭാവിയിൽ നിങ്ങൾ ഇതിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ ആഗ്രഹിക്കുന്നെങ്കിൽ, നെറ്റ്‍വര്‍ക്ക് അദൃശ്യമാക്കി സജ്ജീകരിക്കാനാവും.\n\nനെറ്റ്‍വര്‍ക്ക് കണ്ടെത്താനായി നിങ്ങളുടെ ഫോൺ അതിന്റെ സിഗ്‌നലുകളെ പതിവായി പ്രക്ഷേപണം ചെയ്യും എന്നതിനാൽ ഇത് സുരക്ഷയുമായി ബന്ധപ്പെട്ട അപകടസാധ്യത സൃഷ്‌ടിക്കാൻ സാധ്യതയുണ്ട്.\n\nനെറ്റ്‍വര്‍ക്ക് അദൃശ്യമായി ക്രമീകരിക്കുന്നത്, നിങ്ങളുടെ റൂട്ടർ ക്രമീകരണം മാറ്റില്ല."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"നിങ്ങളുടെ റൂട്ടർ ഒരു നെറ്റ്‍വര്‍ക്ക് ഐഡി പ്രക്ഷേപണം ചെയ്യുന്നില്ല,എന്നാൽ ഭാവിയിൽ നിങ്ങൾ ഇതിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ ആഗ്രഹിക്കുന്നു എങ്കിൽ, നെറ്റ്‍വര്‍ക്ക് മറയ്ക്കപ്പെട്ടതായി സജ്ജീകരിക്കാനാവും.\n\nനെറ്റ്‍വര്‍ക്ക് കണ്ടെത്താനായി നിങ്ങളുടെ ഫോൺ അതിന്റെ സിഗ്‌നലുകളെ പതിവായി പ്രക്ഷേപണം ചെയ്യും എന്നതിനാൽ ഇത് സുരക്ഷാ ഭീഷണി സൃഷ്‌ടിച്ചേക്കും.\n\nനെറ്റ്‍വര്‍ക്ക് മറയ്ക്കപ്പെട്ടതായി ക്രമീകരിക്കുന്നത്, നിങ്ങളുടെ റൂട്ടർ ക്രമീകരണം മാറ്റില്ല."</string>
     <string name="wifi_signal" msgid="696548364467704808">"സിഗ്‌നൽ ശക്തി"</string>
     <string name="wifi_status" msgid="3439931558930689940">"നില"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"പ്രക്ഷേപണ ലിങ്കിന്റെ വേഗത"</string>
@@ -916,7 +915,7 @@
     <string name="passpoint_label" msgid="7429247462404128615">"ഇതുവഴി സംരക്ഷിച്ചു"</string>
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g> ക്രെഡൻഷ്യലുകൾ"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"EAP രീതി"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"ഘട്ടം 2 പ്രമാണീകരണം"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"രണ്ടാം ഘട്ട പരിശോധിച്ചുറപ്പിക്കൽ"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA സർട്ടിഫിക്കറ്റ്"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"ഡൊമെയ്ൻ"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"ഉപയോക്തൃ സർട്ടിഫിക്കറ്റ്"</string>
@@ -928,7 +927,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"സ്വമേധയാ"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"2.4 GHz ബാൻഡ്"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"5.0 GHz ബാൻഡ്"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5.0 GHz ബാൻഡ് തിരഞ്ഞെടുത്തു"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5.0 GHz ബാൻഡിന് മുൻഗണന"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2.4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"വൈഫൈ ഹോട്ട്‌സ്‌പോട്ടിനായി കുറഞ്ഞത് ഒരു ബാൻഡ് എങ്കിലും തിരഞ്ഞെടുക്കുക:"</string>
@@ -939,14 +938,14 @@
     <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"“<xliff:g id="SSID">%1$s</xliff:g>” എന്നതിലേക്ക് ഉപകരണം ചേർക്കാൻ,  ചുവടെയുള്ള QR കോഡിലേക്ക് കേന്ദ്രീകരിക്കുക"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR കോഡ് സ്‌കാൻ ചെയ്യുക"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"“<xliff:g id="SSID">%1$s</xliff:g>” എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ,  ചുവടെയുള്ള QR കോഡിലേക്ക് കേന്ദ്രീകരിക്കുക"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR കോഡ് പരിശോധിച്ച് വൈഫൈയിൽ ചേരുക"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR കോഡ് സ്‍കാൻ ചെയ്ത് വൈഫൈയിൽ ചേരുക"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"വൈഫൈ പങ്കിടുക"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"“<xliff:g id="SSID">%1$s</xliff:g>” എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ ഈ QR കോഡ് സ്‌കാൻ ചെയ്യുകയും പാസ്‌വേഡ് പങ്കിടുകയും ചെയ്യുക"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"“<xliff:g id="SSID">%1$s</xliff:g>\" എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്യാൻ ഈ QR കോഡ് സ്‌കാൻ ചെയ്യുക"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR കോഡ് റീഡ് ചെയ്യാനായില്ല. കോഡ് വീണ്ടും മധ്യത്തിലാക്കി വീണ്ടും ശ്രമിക്കുക"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"വീണ്ടും ശ്രമിക്കുക. പ്രശ്‌നം തുടരുകയാണെങ്കിൽ, ഉപകരണ നിർമ്മാതാവിനെ ബന്ധപ്പെടുക"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"എന്തോ കുഴപ്പമുണ്ടായി"</string>
-    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"ഉപകരണം പ്ലഗിൻ ചെയ്‌തെന്നും, ചാർജ്ജ് ചെയ്‌തെന്നും, ഓണാണെന്നും ഉറപ്പാക്കുക"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"ഉപകരണം പ്ലഗിൻ ചെയ്‌തിട്ടുണ്ടെന്നും ചാർജ്ജ് ചെയ്‌തിട്ടുണ്ടെന്നും ഓണാണെന്നും ഉറപ്പാക്കുക"</string>
     <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"ഉപകരണം പ്ലഗിൻ ചെയ്‌തെന്നും, ചാർജ്ജ് ചെയ്‌തെന്നും, ഓണാണെന്നും ഉറപ്പാക്കുക. പ്രശ്‌നം തുടരുകയാണെങ്കിൽ, ഉപകരണ നിർമ്മാതാവിനെ ബന്ധപ്പെടുക"</string>
     <string name="wifi_dpp_failure_not_supported" msgid="111779621766171626">"ഈ ഉപകരണം \"<xliff:g id="SSID">%1$s</xliff:g>\" ചേർക്കുന്നതിനെ പിന്തുണയ്ക്കുന്നില്ല"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക"</string>
@@ -973,7 +972,7 @@
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(ഒന്നിലധികം സർട്ടിഫിക്കറ്റുകൾ ചേർത്തു)"</string>
     <string name="wifi_use_system_certs" msgid="4794489370929885022">"സിസ്റ്റം സർട്ടിഫിക്കറ്റുകൾ ഉപയോഗിക്കുക"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"നൽകരുത്"</string>
-    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"മൂല്യനിർണ്ണയം ചെയ്യരുത്"</string>
+    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"സാധൂകരിക്കരുത്"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"സർട്ടിഫിക്കറ്റൊന്നും വ്യക്തമാക്കിയിട്ടില്ല. നിങ്ങളുടെ കണക്ഷൻ സ്വകാര്യമായിരിക്കുകയില്ല."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"നെറ്റ്‌വർക്കിന്റെ പേര് ദൈർഘ്യമേറിയതാണ്."</string>
     <string name="wifi_no_domain_warning" msgid="735859919311067606">"ഒരു ഡൊമെയ്ൻ വ്യക്തമാക്കിയിരിക്കണം."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"വൈഫൈ"</item>
+    <item msgid="2271962426654621656">"മൊബൈൽ"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"വൈഫൈ ലഭ്യമല്ലെങ്കിൽ, മൊബൈൽ നെറ്റ്‌വർക്ക് ഉപയോഗിക്കുക"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"മൊബൈൽ നെറ്റ്‌വർക്ക് ലഭ്യമല്ലെങ്കിൽ, വൈഫൈ ഉപയോഗിക്കുക"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"വൈഫൈ മുഖേനയുള്ള കോൾ. വൈഫൈ നഷ്‌ടപ്പെട്ടാൽ, കോൾ അവസാനിക്കും."</string>
@@ -1679,11 +1681,11 @@
     <string name="location_access_summary" msgid="6919495149026354355">"നിങ്ങളുടെ അനുമതി ആവശ്യപ്പെട്ട അപ്ലിക്കേഷനുകളെ ലൊക്കേഷൻ വിവരങ്ങൾ ഉപയോഗിക്കാൻ അനുവദിക്കുക"</string>
     <string name="location_sources_heading" msgid="8526658357120282741">"ലൊക്കേഷൻ ഉറവിടങ്ങൾ"</string>
     <string name="about_settings" product="tablet" msgid="4869626690708456341">"ടാബ്‌ലെ‌റ്റിന് ഒരാമുഖം"</string>
-    <string name="about_settings" product="default" msgid="6019547763377294261">"ഫോണിന് ഒരാമുഖം"</string>
+    <string name="about_settings" product="default" msgid="6019547763377294261">"ഫോണിനെക്കുറിച്ച്"</string>
     <string name="about_settings" product="device" msgid="1770438316234693655">"ഉപകരണ വിവരം"</string>
     <string name="about_settings" product="emulator" msgid="4497482494770487014">"എമുലേറ്റഡ് ഉപകരണത്തെ കുറിച്ച്"</string>
     <string name="about_settings_summary" msgid="4506081667462281647">"നിയമ വിവരം, നില, സോഫ്‌റ്റ്‌വെയർ പതിപ്പ് എന്നിവ കാണുക"</string>
-    <string name="legal_information" msgid="2374267257615182139">"നിയമപരമായ വിവരം"</string>
+    <string name="legal_information" msgid="2374267257615182139">"നിയമപരമായ വിവരങ്ങൾ"</string>
     <string name="contributors_title" msgid="6800028420806884340">"സംഭാവകർ"</string>
     <string name="manual" msgid="5431859421432581357">"മാനുവൽ"</string>
     <string name="regulatory_labels" msgid="380968489247381025">"റെഗുലേറ്ററി ലേബലുകൾ"</string>
@@ -1766,7 +1768,7 @@
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"പ്രൊഫൈൽ പാറ്റേൺ ദൃശ്യമാക്കുക"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"ടാപ്പുചെയ്യുമ്പോൾ വൈബ്രേറ്റുചെയ്യൂ"</string>
     <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"പവർബട്ടൺ ഉടൻ ലോക്കാകുന്നു"</string>
-    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> അൺലോക്കുചെയ്‌തിരിക്കുമ്പോൾ ഒഴികെ"</string>
+    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> അൺലോക്ക് ചെയ്‌തിരിക്കുമ്പോൾ ഒഴികെ"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"അൺലോക്ക് പാറ്റേൺ സജ്ജീകരിക്കുക"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"അൺലോക്ക് പാറ്റേൺ മാറ്റുക"</string>
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"ഒരു അൺലോക്ക് പാറ്റേൺ വരയ്‌ക്കേണ്ടതെങ്ങനെ"</string>
@@ -1983,7 +1985,7 @@
     <string name="keyboard_layout_dialog_switch_hint" msgid="138516114253502182">"മാറാൻ, Control-Spacebar അമർത്തുക"</string>
     <string name="keyboard_layout_default_label" msgid="8368579311667189793">"സ്ഥിരമായത്"</string>
     <string name="keyboard_layout_picker_title" msgid="6958831599253031987">"കീബോർഡ് ലേഔട്ടുകൾ"</string>
-    <string name="user_dict_settings_title" msgid="1415462066249818756">"വ്യക്തിഗത നിഘണ്ടു"</string>
+    <string name="user_dict_settings_title" msgid="1415462066249818756">"വ്യക്തിപരമായ നിഘണ്ടു"</string>
     <string name="user_dict_settings_for_work_title" msgid="3995828731001225748">"ജോലിക്കായുള്ള വ്യക്തിഗത നിഘണ്ഡു"</string>
     <string name="user_dict_settings_summary" msgid="3131259534814181196"></string>
     <string name="user_dict_settings_add_menu_title" msgid="1553743292556229909">"ചേര്‍ക്കുക"</string>
@@ -2307,7 +2309,7 @@
       <item quantity="other">%1$d ആപ്പുകളെ നിയന്ത്രിക്കണോ?</item>
       <item quantity="one">ആപ്പിനെ നിയന്ത്രിക്കണോ?</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"ബാറ്ററി ലാഭിക്കാൻ, പശ്ചാത്തലത്തിൽ <xliff:g id="APP">%1$s</xliff:g>-ന്റെ ബാറ്ററി ഉപഭോഗം നിർത്തുക. ഈ ആപ്പ് ശരിയായ രീതിയിൽ പ്രവർത്തിക്കാതിരിക്കുകയും അറിയിപ്പുകൾ വൈകുകയും ചെയ്‌തേക്കാം."</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"ബാറ്ററി ലാഭിക്കാൻ, <xliff:g id="APP">%1$s</xliff:g> എന്നതിനെ പശ്ചാത്തലത്തിൽ ബാറ്ററി ഉപഭോഗിക്കുന്നതിൽ നിന്നും തടയുക. ഈ ആപ്പ് ശരിയായ രീതിയിൽ പ്രവർത്തിക്കാതിരിക്കുകയും അറിയിപ്പുകൾ വൈകുകയും ചെയ്‌തേക്കാം."</string>
     <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"ബാറ്ററി ലാഭിക്കാൻ, പശ്ചാത്തലത്തിൽ ഈ ആപ്പുകളുടെ ബാറ്ററി ഉപഭോഗം നിർത്തുക. നിയന്ത്രിത ആപ്പുകൾ ശരിയായ രീതിയിൽ പ്രവർത്തിക്കാതിരിക്കുകയും അറിയിപ്പുകൾ വൈകുകയും ചെയ്‌തേക്കാം.\n\nആപ്പുകൾ:"</string>
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"ബാറ്ററി ലാഭിക്കാൻ, പശ്ചാത്തലത്തിൽ ഈ ആപ്പുകളുടെ ബാറ്ററി ഉപഭോഗം നിർത്തുക. നിയന്ത്രിത ആപ്പുകൾ ശരിയായ രീതിയിൽ പ്രവർത്തിക്കാതിരിക്കുകയും അറിയിപ്പുകൾ വൈകുകയും ചെയ്‌തേക്കാം.\n\nആപ്പുകൾ:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"നിയന്ത്രിക്കുക"</string>
@@ -2453,7 +2455,7 @@
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g>-ത്തിൽ ഇത് ഓണാകും"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"ഷെഡ്യൂള്‍‌ സജ്ജീകരിക്കൂ"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"മുഴുവൻ ചാർജായാൽ ഓഫാക്കുക"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"നിങ്ങളുടെ ഫോൺ <xliff:g id="PERCENT">%1$s</xliff:g> എത്തുമ്പോൾ ബാറ്ററി ലാഭിക്കൽ ഓഫാവും"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"നിങ്ങളുടെ ഫോൺ <xliff:g id="PERCENT">%1$s</xliff:g>-ത്തിൽ എത്തുമ്പോൾ ബാറ്ററി ലാഭിക്കൽ ഓഫാകും"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് <xliff:g id="PERCENT">%1$s</xliff:g> എത്തുമ്പോൾ ബാറ്ററി ലാഭിക്കൽ ഓഫാവും"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"നിങ്ങളുടെ ഉപകരണം <xliff:g id="PERCENT">%1$s</xliff:g> എത്തുമ്പോൾ ബാറ്ററി ലാഭിക്കൽ ഓഫാവും"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2489,7 +2491,7 @@
     <string name="menu_duration_6h" msgid="6169009210638008417">"6 മണിക്കൂർ"</string>
     <string name="menu_duration_12h" msgid="1435242738163843797">"12 മണിക്കൂർ"</string>
     <string name="menu_duration_1d" msgid="6476370834372352174">"ഒരു ദിവസം"</string>
-    <string name="menu_show_system" msgid="6315865548558708248">"സിസ്റ്റം ദൃശ്യമാക്കുക"</string>
+    <string name="menu_show_system" msgid="6315865548558708248">"സിസ്റ്റം കാണിക്കുക"</string>
     <string name="menu_hide_system" msgid="8457027118873733782">"സിസ്റ്റം മറയ്‌ക്കുക"</string>
     <string name="menu_show_percentage" msgid="6983272380729890884">"ശതമാനങ്ങൾ കാണിക്കുക"</string>
     <string name="menu_use_uss" msgid="3765054705208926803">"Uss ഉപയോഗിക്കുക"</string>
@@ -2527,7 +2529,7 @@
     <string name="credentials_install_summary" product="default" msgid="4943897416156671633">"SD കാർഡിൽ നിന്ന് സർട്ടിഫിക്കറ്റുകൾ ഇൻസ്റ്റാൾ ചെയ്യുക"</string>
     <string name="credentials_reset" msgid="355080737664731678">"ക്രെഡൻഷ്യലുകൾ മായ്ക്കുക"</string>
     <string name="credentials_reset_summary" msgid="7622528359699428555">"എല്ലാം നീക്കംചെയ്യുക"</string>
-    <string name="trusted_credentials" msgid="6989242522455395200">"വിശ്വസ്‍ത ക്രെഡൻഷ്യൽ"</string>
+    <string name="trusted_credentials" msgid="6989242522455395200">"വിശ്വസ്‍ത ക്രെഡൻഷ്യലുകൾ"</string>
     <string name="trusted_credentials_summary" msgid="7411781319056251582">"വിശ്വസ്‌ത CA സർട്ടിഫിക്കറ്റുകൾ പ്രദർശിപ്പിക്കുക"</string>
     <string name="user_credentials" msgid="8365731467650306757">"ഉപയോക്തൃ ക്രെഡന്‍ഷ്യലുകൾ"</string>
     <string name="user_credentials_summary" msgid="7350223899317423252">"സംഭരിച്ച ക്രെഡന്‍ഷ്യലുകൾ കാണുക, പരിഷ്ക്കരിക്കുക"</string>
@@ -2564,7 +2566,7 @@
     <string name="fullbackup_data_summary" msgid="406274198094268556">"ഉപകരണ വിവരവും (വൈഫൈ പാസ്‌വേഡുകളും കോൾ ചരിത്രവും പോലുള്ളവ) ആപ്പ് വിവരവും (ക്രമീകരണവും ആപ്പുകൾ സംഭരിച്ച ഫയലുകളും പോലുള്ളവ) വിദൂരമായി സ്വയമേവ ബാക്കപ്പെടുക്കുന്നു.\n\nനിങ്ങൾ സ്വയമേയുള്ള ബാക്കപ്പ് ഓണാക്കുമ്പോൾ, ഉപകരണ, ആപ്പ് വിവരം ഇടയ്‌ക്കിടെ വിദൂരമായി സംരക്ഷിക്കും. ആപ്പ് വിവരം എന്നത് കോൺടാക്റ്റുകൾ, സന്ദേശങ്ങൾ, ഫോട്ടോകൾ എന്നിവ പോലുള്ള രഹസ്യസ്വഭാവമുള്ളവ ഉൾപ്പെടെ ആപ്പ് സംരക്ഷിച്ചിട്ടുള്ള ഏതൊരു വിവരവും (ഡെവലപ്പർ ക്രമീകരണം അടിസ്ഥാനമാക്കി) ആകാം."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"ഉപകരണ അഡ്‌മിൻ ക്രമീകരണം"</string>
     <string name="active_device_admin_msg" msgid="6929247869516924549">"ഉപകരണ അഡ്‌മിൻ ആപ്പ്"</string>
-    <string name="remove_device_admin" msgid="4413438593788336400">"ഈ ഉപകരണ അഡ്‌മിൻ ആപ്പ് നിർജീവമാക്കുക"</string>
+    <string name="remove_device_admin" msgid="4413438593788336400">"ഈ ഉപകരണ അഡ്‌മിൻ ആപ്പ് നിഷ്ക്രിയമാക്കുക"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"ആപ്പ് അൺഇൻസ്റ്റാളുചെയ്യുക"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"നിർജീവമാക്കി അൺഇൻസ്‌റ്റാൾ ചെയ്യുക"</string>
     <string name="select_device_admin_msg" msgid="4173769638399075387">"ഉപകരണ അഡ്‌മിൻ ആപ്പുകൾ"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"ഇപ്പോൾ സമന്വയിപ്പിക്കുന്നതിന് ടാപ്പുചെയ്യുക<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"കലണ്ടർ"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"കോണ്ടാക്റ്റ്"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google സമന്വയത്തിലേക്ക് സ്വാഗതം!"</font>" \nനിങ്ങൾ എവിടെയായിരുന്നാലും കോൺടാക്റ്റുകളും അപ്പോയ്‌ന്റ്മെന്റുകളും അതിലധികം കാര്യങ്ങളും ആക്‌സസ്സുചെയ്യാൻ അനുവദിക്കുന്നതിനായി ഡാറ്റ സമന്വയിപ്പിക്കാനുള്ള Google-ന്റെ ഒരു സമീപനം."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"അപ്ലിക്കേഷൻ സമന്വയ ക്രമീകരണങ്ങൾ"</string>
@@ -2668,7 +2670,7 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"സിം കാർഡുകൾ"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"പരിധിയിൽ തൽക്കാലം നിർത്തി"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"ഡാറ്റ സ്വയമേ സമന്വയിപ്പിക്കൂ"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"വ്യക്തിഗത ഡാറ്റ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"വ്യക്തിപരമായ ഡാറ്റ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
     <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"ഔദ്യോഗിക ഡാറ്റ സ്വയമേവ സമന്വയിപ്പിക്കുക"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"സൈക്കിൾ മാറ്റുക..."</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"ഡാറ്റ ഉപയോഗ സൈക്കിൾ പുനഃസജ്ജീകരിക്കുന്നതിനുള്ള മാസത്തിലെ ദിവസം:"</string>
@@ -2732,7 +2734,7 @@
     <string name="data_usage_metered_wifi" msgid="2955256408132426720">"മീറ്റർ-മാപക വൈഫൈ നെറ്റ്‌വർക്ക്"</string>
     <string name="data_usage_metered_wifi_disabled" msgid="5771083253782103415">"മീറ്റർ-മാപക നെറ്റ്‌വർക്കുകൾ തിരഞ്ഞെടുക്കാൻ വൈഫൈ ഓണാക്കുക."</string>
     <string name="data_usage_metered_auto" msgid="7924116401382629319">"സ്വയമേവ"</string>
-    <string name="data_usage_metered_yes" msgid="7333744880035386073">"മീറ്റർചെയ്ത"</string>
+    <string name="data_usage_metered_yes" msgid="7333744880035386073">"മീറ്റർ ചെയ്തത്"</string>
     <string name="data_usage_metered_no" msgid="1961524615778610008">"മീറ്റർമാപകം"</string>
     <string name="data_usage_disclaimer" msgid="4683321532922590425">"കാരിയർ ഡാറ്റ കണക്കാക്കുന്നത് ഉപകരണത്തിൽ നിന്നും വ്യത്യാസപ്പെട്ടിരിക്കാം."</string>
     <string name="cryptkeeper_emergency_call" msgid="4625420047524693116">"അടിയന്തര കോൾ"</string>
@@ -2934,7 +2936,7 @@
     <string name="restriction_menu_change_pin" msgid="592512748243421101">"പിൻ മാറ്റുക"</string>
     <string name="app_notifications_switch_label" msgid="670683308275498821">"അറിയിപ്പുകൾ ദൃശ്യമാക്കുക"</string>
     <string name="help_label" msgid="1296484776243905646">"സഹായവും ഫീഡ്‌ബാക്കും"</string>
-    <string name="support_summary" msgid="3278943815956130740">"സഹായ ലേഖനങ്ങൾ, ഫോൺ, ചാറ്റ് എന്നിവ ആരംഭിക്കുക"</string>
+    <string name="support_summary" msgid="3278943815956130740">"സഹായ ലേഖനങ്ങൾ, ഫോൺ, ചാറ്റ്, ആരംഭിക്കൽ"</string>
     <string name="user_account_title" msgid="2108666882630552859">"ഉള്ളടക്കത്തിനുള്ള അക്കൗണ്ട്"</string>
     <string name="user_picture_title" msgid="6664602422948159123">"ഫോട്ടോ ഐഡി"</string>
     <string name="extreme_threats_title" msgid="1405820547540456436">"അതീവ ഗുരുതരമായ ഭീഷണികൾ"</string>
@@ -3092,7 +3094,7 @@
     <string name="keywords_lockscreen" msgid="4936846554280830394">"അൺലോക്കുചെയ്യാൻ സ്ലൈഡുചെയ്യുക, പാസ്‌വേഡ്, പാറ്റേൺ, പിൻ"</string>
     <string name="keywords_profile_challenge" msgid="8653718001253979611">"ഔദ്യോഗിക വെല്ലുവിളി, ഔദ്യോഗികം, പ്രൊഫൈൽ"</string>
     <string name="keywords_unification" msgid="2020759909366983593">"ഔദ്യോഗിക പ്രൊഫൈൽ, മാനേജുചെയ്യപ്പെടുന്ന പ്രൊഫൈൽ, ഏകീകരിക്കുക, ഏകീകരിക്കൽ, ഔദ്യോഗികം, പ്രൊഫൈൽ"</string>
-    <string name="keywords_gesture" msgid="5031323247529869644">"ജെസ്‌റ്ററുകൾ"</string>
+    <string name="keywords_gesture" msgid="5031323247529869644">"ജെസ്‌ചറുകൾ"</string>
     <string name="keywords_payment_settings" msgid="4745023716567666052">"പണമടയ്ക്കുക. ടാപ്പുചെയ്യുക, പേയ്‌മെന്റുകൾ"</string>
     <string name="keywords_backup" msgid="7433356270034921627">"ബാക്കപ്പ് ചെയ്യൂ"</string>
     <string name="keywords_assist_gesture_launch" msgid="2711433664837843513">"വിരൽചലനം"</string>
@@ -3294,7 +3296,7 @@
     <string name="other_sound_category_preference_title" msgid="2045757472469840859">"മറ്റ് ശബ്ദങ്ങളും വൈബ്രേഷനുകളും"</string>
     <string name="configure_notification_settings" msgid="291914315140851270">"അറിയിപ്പുകൾ"</string>
     <string name="recent_notifications" msgid="8125865995065032049">"അടുത്തിടെ അയച്ചവ"</string>
-    <string name="recent_notifications_see_all_title" msgid="4089007770442871469">"അവസാന 7 ദിവസങ്ങളിൽ നിന്ന് എല്ലാം കാണുക"</string>
+    <string name="recent_notifications_see_all_title" msgid="4089007770442871469">"കഴിഞ്ഞ 7 ദിവസത്തെ എല്ലാം കാണുക"</string>
     <string name="advanced_section_header" msgid="984680389373090015">"വിപുലമായത്"</string>
     <string name="profile_section_header" msgid="5471479005472037417">"ഔദ്യോഗിക അറിയിപ്പുകൾ"</string>
     <string name="asst_capability_prioritizer_title" msgid="3488284760645922160">"സ്വയമേവയുള്ള അറിയിപ്പ് മുൻഗണന നൽകൽ"</string>
@@ -3319,7 +3321,7 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"ലൈറ്റ് മിന്നുക"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"ലോക്ക് സ്‌ക്രീനിൽ"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"ഔദ്യോഗിക പ്രൊഫൈൽ ലോക്ക് ചെയ്‌തിരിക്കുമ്പോൾ"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"അറിയിപ്പുകളിലെ ഉള്ളടക്കം പൂർണമായി കാണിക്കുക"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"എല്ലാ അറിയിപ്പുകളും ഉള്ളടക്കം സഹിതം കാണിക്കുക"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"രഹസ്യാത്മകമായ ഉള്ളടക്കം അദൃശ്യമാക്കുക"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"ഒരു അറിയിപ്പും കാണിക്കരുത്"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"നിങ്ങളുടെ ഉപകരണം ലോക്ക് ചെയ്തിരിക്കുമ്പോൾ, അറിയിപ്പുകൾ എങ്ങനെയാണ് കാണിക്കേണ്ടത്?"</string>
@@ -3587,7 +3589,7 @@
     <string name="imei_information_summary" msgid="716516316022275083">"IMEI അനുബന്ധ വിവരങ്ങൾ"</string>
     <string name="slot_number" msgid="785422579177068698">"(സ്ലോട്ട്<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
     <string name="launch_by_default" msgid="6106985160202769725">"സ്ഥിരമായി തുറക്കുക"</string>
-    <string name="app_launch_domain_links_title" msgid="2987289657348349133">"ലിങ്കുകൾ തുറക്കുന്നു"</string>
+    <string name="app_launch_domain_links_title" msgid="2987289657348349133">"ലിങ്കുകൾ തുറക്കൽ"</string>
     <string name="app_launch_open_domain_urls_title" msgid="8595126859922391331">"പിന്തുണയ്‌ക്കുന്ന ലിങ്കുകൾ തുറക്കുക"</string>
     <string name="app_launch_open_domain_urls_summary" msgid="6803029846855502366">"ആവശ്യപ്പെടാതെ തുറക്കുക"</string>
     <string name="app_launch_supported_domain_urls_title" msgid="503976327533974142">"പിന്തുണയ്‌ക്കുന്ന ലിങ്കുകൾ"</string>
@@ -3647,7 +3649,7 @@
     <string name="app_permissions_summary" msgid="8785798165776061594">"<xliff:g id="APPS">%1$s</xliff:g> ഉപയോഗിക്കുന്ന ആപ്പുകൾ"</string>
     <string name="tap_to_wake" msgid="1902991239401652323">"സജീവമാക്കാൻ ടാപ്പുചെയ്യുക"</string>
     <string name="tap_to_wake_summary" msgid="8485222120721006793">"ഉപകരണം സജീവമാക്കാൻ സ്‌ക്രീനിലെവിടെയെങ്കിലും രണ്ടുതവണ ടാപ്പുചെയ്യുക"</string>
-    <string name="domain_urls_title" msgid="7939209950373945367">"ലിങ്കുകൾ തുറക്കുന്നു"</string>
+    <string name="domain_urls_title" msgid="7939209950373945367">"ലിങ്കുകൾ തുറക്കൽ"</string>
     <string name="domain_urls_summary_none" msgid="5401203416941265109">"പിന്തുണയ്‌ക്കുന്ന ലിങ്കുകൾ തുറക്കരുത്"</string>
     <string name="domain_urls_summary_one" msgid="3893975485064803435">"<xliff:g id="DOMAIN">%s</xliff:g> തുറക്കുക"</string>
     <string name="domain_urls_summary_some" msgid="2130534984153210797">"<xliff:g id="DOMAIN">%s</xliff:g> ഡൊമെയ്‌നും മറ്റ് URL-കളും തുറക്കുക"</string>
@@ -3801,7 +3803,7 @@
     <string name="system_alert_window_settings" msgid="3024330223417646567">"മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുക"</string>
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"ആപ്സ്"</string>
     <string name="system_alert_window_access_title" msgid="5187343732185369675">"മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിപ്പിക്കുക"</string>
-    <string name="permit_draw_overlay" msgid="9039092257052422344">"മറ്റ് ആപ്‌സിന് മുകളിൽ പ്രദർശിക്കുന്നത് അനുവദിക്കുക"</string>
+    <string name="permit_draw_overlay" msgid="9039092257052422344">"മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ പ്രദർശിക്കുന്നത് അനുവദിക്കുക"</string>
     <string name="allow_overlay_description" msgid="6669524816705082807">"നിങ്ങൾ ഉപയോഗിക്കുന്ന മറ്റ് ആപ്പുകൾക്ക് മുകളിൽ ഒരു ആപ്പിനെ ദൃശ്യമാക്കുന്നതിന് ഈ ആപ്പിനെ അനുവദിക്കുക. നിങ്ങൾ ആ ആപ്പുകൾ ഉപയോഗിക്കുന്നതിനെ ഇത് തടസ്സപ്പെടുത്തുകയോ അവ കാണപ്പെടുന്ന അല്ലെങ്കിൽ പെരുമാറുന്ന രീതിയെ മാറ്റുകയോ ചെയ്തേക്കാം."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr വെർച്വൽ റിയാലിറ്റി ലിസണർ സ്റ്റീരിയോ സഹായി സേവനം"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"മറ്റ് ആപ്സിന് മുകളിൽ സിസ്റ്റം അലേർട്ട് വിൻഡോ ഡയലോഗ് പ്രദർശിപ്പിക്കുക"</string>
@@ -3962,7 +3964,7 @@
     <string name="configure" msgid="8232696842838580549">"കോൺഫിഗർ ചെയ്യുക"</string>
     <string name="data_usage_other_apps" msgid="7002491980141402084">"ഉപയോഗത്തിൽ ഉൾപ്പെട്ട മറ്റ് ആപ്‌സ്"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
-      <item quantity="other">ഡാറ്റ സേവർ ഓണായിരിക്കുമ്പോൾ, പരിധിയില്ലാതെ ഡാറ്റ ഉപയോഗിക്കുന്നതിന് <xliff:g id="COUNT">%1$d</xliff:g> ആപ്‌സിനെ അനുവദിച്ചു</item>
+      <item quantity="other">ഡാറ്റ സേവർ ഓണായിരിക്കുമ്പോൾ, പരിധിയില്ലാതെ ഡാറ്റ ഉപയോഗിക്കുന്നതിന് <xliff:g id="COUNT">%1$d</xliff:g> ആപ്പുകളെ അനുവദിച്ചു</item>
       <item quantity="one">ഡാറ്റ സേവർ ഓണായിരിക്കുമ്പോൾ, പരിധിയില്ലാതെ ഡാറ്റ ഉപയോഗിക്കുന്നതിന് ഒരു ആപ്പിനെ അനുവദിച്ചു</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"പ്രാഥമിക ഡാറ്റ"</string>
@@ -4000,7 +4002,7 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"മറ്റൊരു ഫിംഗർപ്രിന്റ് ചേർക്കുക"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"മറ്റൊരു വിരൽ ഉപയോഗിച്ച് അൺലോക്കുചെയ്യുക"</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"ഓണാണ്"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>-ത്തിൽ ഇത് ഓണാക്കും"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>-ത്തിൽ ഇത് ഓണാകും"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"ഓഫാണ്"</string>
     <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"ഇപ്പോൾ ഓണാക്കുക"</string>
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"ഇപ്പോൾ ഓഫാക്കുക"</string>
@@ -4050,7 +4052,7 @@
     <string name="display_cutout_emulation_keywords" msgid="6795671536772871439">"ഡിസ്പ്ലേ കട്ടൗട്ട്, നോച്ച്"</string>
     <string name="overlay_option_device_default" msgid="165508753381657697">"ഉപകരണ ഡിഫോള്‍ട്ട്"</string>
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"ഓവർലേ പ്രയോഗിക്കുന്നതിൽ പരാജയപ്പെട്ടു"</string>
-    <string name="special_access" msgid="1453926335914696206">"പ്രത്യേക ആപ്പ് ആക്‌സസ്സ്"</string>
+    <string name="special_access" msgid="1453926335914696206">"പ്രത്യേക ആപ്പ് ആക്‌സസ്"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> ആപ്പുകൾക്ക് നിയന്ത്രണമില്ലാതെ ഡാറ്റ ഉപയോഗിക്കാം</item>
       <item quantity="one">1 ആപ്പിന് നിയന്ത്രണമില്ലാതെ ഡാറ്റ ഉപയോഗിക്കാം</item>
@@ -4105,7 +4107,7 @@
     <string name="deletion_helper_automatic_title" msgid="4370975149425263205">"സ്വയമേവ"</string>
     <string name="deletion_helper_manual_title" msgid="1011785013431162078">"മാനുവൽ"</string>
     <string name="deletion_helper_preference_title" msgid="797270307034242206">"ഇപ്പോൾ ഇടം സൃഷ്ടിക്കുക"</string>
-    <string name="gesture_preference_title" msgid="583646591518373785">"ജെസ്‌റ്ററുകൾ"</string>
+    <string name="gesture_preference_title" msgid="583646591518373785">"ജെസ്‌ചറുകൾ"</string>
     <string name="gesture_preference_summary" product="default" msgid="2990736567599191163">"നിങ്ങളുടെ ഫോൺ നിയന്ത്രിക്കുന്നതിനുള്ള ദ്രുത ജെസ്റ്ററുകൾ"</string>
     <string name="gesture_preference_summary" product="tablet" msgid="8303793594714075580">"നിങ്ങളുടെ ടാബ്‌ലെറ്റ് നിയന്ത്രിക്കുന്നതിനുള്ള അതിവേഗ ജെസ്റ്ററുകൾ"</string>
     <string name="gesture_preference_summary" product="device" msgid="7792199669106960922">"നിങ്ങളുടെ ഉപകരണം നിയന്ത്രിക്കുന്നതിനുള്ള അതിവേഗ ജെസ്റ്ററുകൾ"</string>
@@ -4122,7 +4124,7 @@
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"ടാബ്‌ലെറ്റ് പരിശോധിക്കുന്നതിന്, രണ്ടുതവണ ടാപ്പുചെയ്യുക"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"ഉപകരണം പരിശോധിക്കുന്നതിന്, രണ്ടുതവണ ടാപ്പുചെയ്യുക"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"സമയവും അറിയിപ്പുകളും മറ്റ് വിവരങ്ങളും പരിശോധിക്കുന്നതിന്, നിങ്ങളുടെ സ്ക്രീനിൽ രണ്ട് തവണ ടാപ്പ് ചെയ്യുക."</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"പരിശോധിക്കാൻ ഫോണുയർത്തുക"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"പരിശോധിക്കാൻ ഫോണെടുക്കുക"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"പരിശോധിക്കുന്നതിന് ടാബ്‌ലെറ്റ് എടുത്തുയർത്തുക"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"പരിശോധിക്കുന്നതിന് ഉപകരണം എടുത്തുയർത്തുക"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"ഡിസ്‌പ്ലേ സജീവമാക്കുക"</string>
@@ -4153,7 +4155,7 @@
     <string name="instant_apps_settings" msgid="879003203555847537">"ഇൻസ്‌റ്റന്‍റ് ആപ്പ് മുൻഗണനകൾ"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"ഇൻസ്‌റ്റാൾ ചെയ്‍തിട്ടുള്ള ആപ്പുകൾ"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"നിങ്ങളുടെ സ്റ്റോറേജ് ഇപ്പോൾ മാനേജുചെയ്യുന്നത് സ്റ്റോറേജ് ​​മാനേജരാണ്"</string>
-    <string name="account_for_section_header" msgid="5975241715840642563">"<xliff:g id="USER_NAME">%1$s</xliff:g> എന്ന ഉപയോക്താവിന്റെ അക്കൗണ്ടുകൾ"</string>
+    <string name="account_for_section_header" msgid="5975241715840642563">"<xliff:g id="USER_NAME">%1$s</xliff:g> എന്നയാളുടെ അക്കൗണ്ടുകൾ"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"ക്രമീകരിക്കുക"</string>
     <string name="auto_sync_account_title" msgid="2394463123733529506">"ഡാറ്റ സ്വയം സമന്വയിപ്പിക്കുക"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"വ്യക്തിഗത ഡാറ്റ സ്വയം സമന്വയിപ്പിക്കുക"</string>
@@ -4321,9 +4323,9 @@
     <string name="battery_suggestion_title" product="device" msgid="765005476863631528">"ഉപകരണത്തിന്റെ ബാറ്ററി ലൈഫ് മെച്ചപ്പെടുത്തുക"</string>
     <string name="battery_suggestion_title" product="default" msgid="3295786171830183688">"ഫോണിന്റെ ബാറ്ററി ലൈഫ് മെച്ചപ്പെടുത്തുക"</string>
     <string name="battery_suggestion_summary" msgid="2669070349482656490"></string>
-    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"റിംഗിംഗ് തടയുക"</string>
+    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"റിംഗ് ചെയ്യുന്നത് തടയുക"</string>
     <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"പവറും ശബ്‌ദം കൂട്ടുന്ന ബട്ടണും ഒരുമിച്ച് ഇനിപ്പറയുന്നതിനായി, അമർത്തുക"</string>
-    <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"റിംഗ് ചെയ്യുന്നത് തടയാൻ കുറുക്കുവഴി"</string>
+    <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"റിംഗ് ചെയ്യുന്നത് തടയാനുള്ള കുറുക്കുവഴി"</string>
     <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"വൈബ്രേറ്റ് ചെയ്യുക"</string>
     <string name="prevent_ringing_option_mute" msgid="53662688921253613">"മ്യൂട്ട് ചെയ്യുക"</string>
     <string name="prevent_ringing_option_none" msgid="1450985763137666231">"ഒന്നും ചെയ്യരുത്"</string>
diff --git a/tests/CarDeveloperOptions/res/values-mn/arrays.xml b/tests/CarDeveloperOptions/res/values-mn/arrays.xml
index 815dcbc..41cc6ae 100644
--- a/tests/CarDeveloperOptions/res/values-mn/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-mn/arrays.xml
@@ -85,7 +85,7 @@
     <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> руу холбогдож байна…"</item>
     <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-тай гэрчилж байна…"</item>
     <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-с IP хаягийг авч байна…"</item>
-    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> руу холбогдсон"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-д холбогдсон"</item>
     <item msgid="6600156231416890902">"Түр хаасан"</item>
     <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>-с салгагдаж байна…"</item>
     <item msgid="3980154971187953257">"Салгагдсан"</item>
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"дэвсгэрт ажиллуулах"</item>
     <item msgid="6423861043647911030">"хүртээмжийн дууны түвшин"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Байршил"</item>
+    <item msgid="6656077694190491067">"Байршил"</item>
+    <item msgid="8790228218278477369">"Байршил"</item>
+    <item msgid="7836406246005211990">"Чичиргээ"</item>
+    <item msgid="3951439024549922598">"Харилцагчдыг унших"</item>
+    <item msgid="8802152411647068">"Харилцагчдыг өөрчлөх"</item>
+    <item msgid="229544934599698735">"Дуудлагын жагсаалтыг унших"</item>
+    <item msgid="7396102294405899613">"Дуудлагын жагсаалтыг өөрчлөх"</item>
+    <item msgid="3597797992398484655">"Хуанли унших"</item>
+    <item msgid="2705975774250907343">"Календарийг өөрчлөх"</item>
+    <item msgid="4668747371441932697">"Байршил"</item>
+    <item msgid="1487578921720243646">"Пост мэдэгдэл"</item>
+    <item msgid="4636080349724146638">"Байршил"</item>
+    <item msgid="673510900286463926">"Утас руу залгах"</item>
+    <item msgid="542083422784609790">"SMS/MMS унших"</item>
+    <item msgid="1033780373029588436">"SMS/MMS бичих"</item>
+    <item msgid="5647111115517787488">"SMS/MMS хүлээн авах"</item>
+    <item msgid="8591105601108455893">"SMS/MMS хүлээн авах"</item>
+    <item msgid="7730995008517841903">"SMS/MMS хүлээн авах"</item>
+    <item msgid="2613033109026626086">"SMS/MMS хүлээн авах"</item>
+    <item msgid="3037159047591081136">"SMS/MMS илгээх"</item>
+    <item msgid="4726682243833913568">"SMS/MMS унших"</item>
+    <item msgid="6555678522277865572">"SMS/MMS бичих"</item>
+    <item msgid="6981734935578130884">"Тохиргоог өөрчлөх"</item>
+    <item msgid="8705854389991425629">"Дээр нь нээх"</item>
+    <item msgid="5861356020344153651">"Хандалтын мэдэгдэл"</item>
+    <item msgid="78432174621628659">"Камер"</item>
+    <item msgid="3986116419882154794">"Аудио бичих"</item>
+    <item msgid="4516840825756409490">"Аудио тоглуулах"</item>
+    <item msgid="6811712502798183957">"Түр санах ойг унших"</item>
+    <item msgid="2780369012602289114">"Түр санах ойг өөрчлөх"</item>
+    <item msgid="2331359440170850868">"Медиа товч"</item>
+    <item msgid="6133599737122751231">"Аудио фокус"</item>
+    <item msgid="6844485713404805301">"Үндсэн дууны хэмжээ"</item>
+    <item msgid="1600379420669104929">"Хоолойн дууны хэмжээ"</item>
+    <item msgid="6296768210470214866">"Хонхны дууны түвшин"</item>
+    <item msgid="510690696071629241">"Медиа дууны түвшин"</item>
+    <item msgid="406861638631430109">"Сэрүүлгийн дууны түвшин"</item>
+    <item msgid="4715864795872233884">"Мэдэгдлийн дууны хэмжээ"</item>
+    <item msgid="2311478519251301183">"Блютүүтийн хэмжээ"</item>
+    <item msgid="5133991377896747027">"Сэрүүн байлгах"</item>
+    <item msgid="2464189519136248621">"Байршил"</item>
+    <item msgid="2062677934050803037">"Байршил"</item>
+    <item msgid="1735171933192715957">"Ашиглалтын статистик авах"</item>
+    <item msgid="1014093788778383554">"Микрофон хаах/нээх"</item>
+    <item msgid="4199297950608622850">"toast харуулах"</item>
+    <item msgid="2527962435313398821">"Төслийн медиа"</item>
+    <item msgid="5117506254221861929">"VPN идэвхжүүлэх"</item>
+    <item msgid="8291198322681891160">"Ханын зураг бичих"</item>
+    <item msgid="7106921284621230961">"Бүтцийг өөрчлөх"</item>
+    <item msgid="4496533640894624799">"Дэлгэцийн агшинг өөрчлөх"</item>
+    <item msgid="2598847264853993611">"Гар утасны төлөвийг унших"</item>
+    <item msgid="9215610846802973353">"Дуут шуудан нэмэх"</item>
+    <item msgid="9186411956086478261">"Sip-г ашиглах"</item>
+    <item msgid="6884763100104539558">"Залгах дуудлагыг боловсруулах"</item>
+    <item msgid="125513972170580692">"Хурууны хээ"</item>
+    <item msgid="2556071024281275619">"Биеийн мэдрэгч"</item>
+    <item msgid="617168514928339387">"Үүрэн нэвтрүүлгийг унших"</item>
+    <item msgid="7134693570516523585">"Хуурамч байршил"</item>
+    <item msgid="7224489175375229399">"Санах ойг унших"</item>
+    <item msgid="8472735063903258202">"Санах ойг бичих"</item>
+    <item msgid="4069276819909595110">"Дэлгэцийг асаах"</item>
+    <item msgid="1228338896751121025">"Бүртгэл авах"</item>
+    <item msgid="3181581793459233672">"Дэвсгэрт ажиллуулах"</item>
+    <item msgid="2340936043025374076">"Хүртээмжийн дууны түвшин"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Богино"</item>
     <item msgid="4816511817309094890">"Дунд"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Хэзээ ч зөвшөөрөхгүй"</item>
     <item msgid="8184570120217958741">"Байнга зөвшөөрөх"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Хэвийн"</item>
+    <item msgid="5101233285497327432">"Дундаж"</item>
+    <item msgid="1555861583162930714">"Бага"</item>
+    <item msgid="1719683776264798117">"Эгзэгтэй"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Хэвийн"</item>
+    <item msgid="6107138933849816768">"Дундаж"</item>
+    <item msgid="182695359839047859">"Бага"</item>
+    <item msgid="8577246509202964244">"Эгзэгтэй"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Тогтвортой"</item>
     <item msgid="167418068739176448">"Топ үйлдэл"</item>
@@ -377,7 +453,7 @@
     <item msgid="6248998242443333892">"Кеш хийгдсэн (хоосон)"</item>
   </string-array>
   <string-array name="color_picker">
-    <item msgid="3151827842194201728">"Усан цэнхэр"</item>
+    <item msgid="3151827842194201728">"Ногоон цэнхэр"</item>
     <item msgid="3228505970082457852">"Цэнхэр"</item>
     <item msgid="6590260735734795647">"Индиго"</item>
     <item msgid="3521763377357218577">"Ягаан"</item>
diff --git a/tests/CarDeveloperOptions/res/values-mn/strings.xml b/tests/CarDeveloperOptions/res/values-mn/strings.xml
index c941ea4..b48723a 100644
--- a/tests/CarDeveloperOptions/res/values-mn/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-mn/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Дэлгэц дээрх текстийг томруулах, жижигрүүлэх."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Жижигрүүлэх"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Томруулах"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Жишээ текст"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Озын Гайхамшигт шидтэн"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Бүлэг 11: Озын Гайхамшигт Маргад эрдэнийн хот"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Та порт талбарыг гүйцээх шаардлагатай."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Хостын талбар хоосон байгаа бол портын талбар хоосон байх шаардлагатай."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Таны оруулсан порт буруу байна."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP проксиг хөтөч ашиглаж байгаа боловч бусад апп-ууд ашиглахгүй байж магадгүй."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP проксиг хөтөч ашиглаж байгаа боловч бусад апп ашиглахгүй байж магадгүй."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL Зурвасын өргөн (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL Зурвасын өргөн (kbps):"</string>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID оруулна уу"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Аюулгүй байдал"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Нуугдсан сүлжээ"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Хэрэв таны чиглүүлэгч сүлжээний ID-г дамжуулахгүй байгаа хэдий ч та цаашдаа үүнд холбогдох хүсэлтэй байвал сүлжээг нуусан гэж тохируулах боломжтой.\n\nТаны утас сүлжээ олохын тулд дохиогоо тогтмол дамжуулах тул энэ нь аюулгүй байдлын эрсдэл үүсгэж болзошгүй.\n\nСүлжээг нуусан гэж тохируулах нь таны чиглүүлэгчийн тохиргоог өөрчлөхгүй."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Хэрэв таны рүүтэр сүлжээний ID-г дамжуулахгүй байгаа хэдий ч та цаашдаа үүнд холбогдох хүсэлтэй байвал сүлжээг нуусан гэж тохируулах боломжтой.\n\nТаны утас сүлжээ олохын тулд дохиогоо тогтмол дамжуулах тул энэ нь аюулгүй байдлын эрсдэл үүсгэж болзошгүй.\n\nСүлжээг нуусан гэж тохируулах нь таны рүүтэрийн тохиргоог өөрчлөхгүй."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Сигналын хүч"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Статус"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Дамжуулах холбоосны хурд"</string>
@@ -973,7 +972,7 @@
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(Олон сертификат нэмсэн)"</string>
     <string name="wifi_use_system_certs" msgid="4794489370929885022">"Системийн гэрчилгээ ашигла"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"\"Бүү олго\""</string>
-    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Хүчин төгөлдөр бүү болго"</string>
+    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Бүү хүчин төгөлдөр болго"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Ямар ч сертификат заагаагүй байна. Таны холболт хувийн биш байх болно."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Сүлжээний нэр хэтэрхий урт байна."</string>
     <string name="wifi_no_domain_warning" msgid="735859919311067606">"Домэйн зааж өгөх шаардлагатай."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобайл"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Хэрэв Wi‑Fi боломжгүй бол мобайл сүлжээ ашиглана уу"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Хэрэв мобайл сүлжээ боломжгүй байвал Wi-Fi-г ашиглана уу"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi-р залгана. Wi‑Fi салсан тохиолдолд залгахаа болино."</string>
@@ -1213,7 +1215,7 @@
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Хуваарь"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Аль нь ч биш"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Тохируулсан хугацаанд асна"</string>
-    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Нар мандахаас жаргах хүртэл асна"</string>
+    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Нар жаргахаас мандах хүртэл асна"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"Эхлэх цаг"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Дуусах цаг"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"Төлөв"</string>
@@ -1589,7 +1591,7 @@
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"Энэ төхөөрөмж дээр өөр хэрэглэгчид байна.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"Хөгжим"</li>\n<li>"Зураг"</li>\n<li>"Бусад хэрэглэгчийн өгөгдөл"</li></string>
     <string name="master_clear_desc_also_erases_esim" msgid="4497260499055258773"><li>"eSIM-үүд"</li></string>
-    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"Энэ нь таны мобайл үйлчилгээний төлөвлөгөөг цуцлахгүй."</string>
+    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"Энэ нь таны мобайл үйлчилгээний багцыг цуцлахгүй."</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="2723272952715259307">\n\n"Хөгжим, зураг болон бусад хэрэглэгчийн өгөгдлийг цэвэрлэхийн тулд "<b>"USB санг"</b>" арилгах шаардлагатай."</string>
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="9003555775524798797">\n\n"Хөгжим, зураг болон бусад хэрэглэгчийн өгөгдлийг цэвэрлэхийн тулд "<b>"SD картыг"</b>" арилгах шаардлагатай."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="8989746770347525207">"USB санг арилгах"</string>
@@ -1968,7 +1970,7 @@
     <string name="keyboard_assistance_category" msgid="2276351807419818125">"Гарын тусламж"</string>
     <string name="physical_keyboard_title" msgid="3508591962962814313">"Бодит гар"</string>
     <string name="show_ime" msgid="7322620473198763563">"Виртуал гарыг харуулах"</string>
-    <string name="show_ime_summary" msgid="3246628154011464373">"Бодит гар идэвхтэй үед үүнийг дэлгэцэд харуулна уу"</string>
+    <string name="show_ime_summary" msgid="3246628154011464373">"Биет гар идэвхтэй үед үүнийг дэлгэцэд харуулна уу"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"Гарын товчлолын туслагч"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Боломжтой товчлолыг харуулах"</string>
     <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Ажлын профайлын гар &amp; хэрэгсэл"</string>
@@ -2098,7 +2100,7 @@
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Тайлбар ашиглах"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Үргэлжлүүлэх"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Сонсголын төхөөрөмжүүд"</string>
-    <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"Холбогдсон сонсголын төхөөрөмжүүд алга"</string>
+    <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"Холбогдсон сонсголын төхөөрөмж алга"</string>
     <string name="accessibility_hearingaid_adding_summary" msgid="4139031880828714300">"Сонсголын төхөөрөмж нэмэх"</string>
     <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"Сонсголын төхөөрөмжүүдээ холбохын тулд төхөөрөмжөө дараагийн дэлгэцээс олж товшино уу."</string>
     <string name="accessibility_hearingaid_pair_instructions_second_message" msgid="1584538735488464991">"Таны сонсголын төхөөрөмжүүд холболтын горимд байгаа эсэхийг шалгана уу."</string>
@@ -2275,8 +2277,8 @@
     <string name="battery_tip_smart_battery_title" product="tablet" msgid="203494973250969040">"Таблетынхаа батарейн ажиллах хугацааг нэмэгдүүлэх"</string>
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Төхөөрөмжийнхөө батарейн ажиллах хугацааг нэмэгдүүлэх"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Батерейны менежерийг асаах"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Тэжээл хэмнэгчийг асаах"</string>
-    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Батерей ердийнхөөс хурдан дуусаж болзошгүй"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Батарей хэмнэгчийг асаах"</string>
+    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Батарей ердийн үеийнхээс хурдан дуусаж болзошгүй"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Тэжээл хэмнэгч асаалттай байна"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Зарим онцлогийг хязгаарласан байж болзошгүй"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Утсыг ердийнхөөс их хэмжээгээр ашигласан"</string>
@@ -2296,8 +2298,8 @@
       <item quantity="one">%1$s-г саяхан хязгаарласан</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="other">%2$d аппын батерейг цаана ашиглах түвшин өндөр байна</item>
-      <item quantity="one">%1$s-н батерейг цаана ашиглах түвшин өндөр байна</item>
+      <item quantity="other">%2$d аппын батарейг цаана ашиглах түвшин өндөр байна</item>
+      <item quantity="one">%1$s-н батарейг цаана ашиглах түвшин өндөр байна</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Эдгээр аппыг цаана ажиллуулах боломжгүй байна</item>
@@ -2628,7 +2630,7 @@
     <string name="header_add_an_account" msgid="8482614556580804956">"Бүртгэл нэмэх"</string>
     <string name="really_remove_account_title" msgid="4166512362915154319">"Бүртгэлийг арилгах уу?"</string>
     <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Энэ акаунтыг арилгаснаас үүний бүх зурвас, харилцагчид болон бусад өгөгдлүүдийг таблетаас устгах болно!"</string>
-    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Энэ акаунтыг арилгаснаар үүний бүх зурвас, харилцагчид, бусад өгөгдлүүдийг утаснаас устгах болно!"</string>
+    <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Энэ бүртгэлийг хассанаар үүний бүх зурвас, харилцагчид, бусад өгөгдлийг утаснаас устгах болно!"</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"Энэ бүртгэлийг устгаснаар үүний бүх зурвас, харилцагч болон бусад өгөгдлийг төхөөрөмжөөс устгана!"</string>
     <string name="remove_account_failed" msgid="491458185327106966">"Энэ өөрчлөлтийг таны админ зөвшөөрөөгүй байна"</string>
     <string name="cant_sync_dialog_title" msgid="5483419398223189881">"Гараар синк хийх боломжгүй"</string>
@@ -2668,8 +2670,8 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"SIM карт"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"Хязгаарт хүрмэгц зогсоосон"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"Датаг автоматаар синклэх"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Хувийн датаг автоматаар синк хийх"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Ажлын датаг автоматаар синк хийх"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"Хувийн өгөгдлийг автоматаар синк хийх"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"Ажлын өгөгдлийг автоматаар синк хийх"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"Циклийг өөрчлөх…"</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"Дата ашиглалтын циклийг шинэчлэх сарын өдөр:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"Энэ хугацаанд дата ашигласан апп байхгүй."</string>
@@ -2773,7 +2775,7 @@
     <string name="vpn_disconnect_confirm" msgid="3505111947735651082">"Энэ VPN-г салгах уу?"</string>
     <string name="vpn_disconnect" msgid="4625914562388652486">"Салгах"</string>
     <string name="vpn_version" msgid="2006792987077940456">"Хувилбар <xliff:g id="VERSION">%s</xliff:g>"</string>
-    <string name="vpn_forget_long" msgid="8457511440635534478">"VPN мартсан"</string>
+    <string name="vpn_forget_long" msgid="8457511440635534478">"VPN-г мартах"</string>
     <string name="vpn_replace_vpn_title" msgid="8517436922021598103">"Энэ VPN-г солих уу?"</string>
     <string name="vpn_set_vpn_title" msgid="6483554732067951052">"VPN-г тогтмол асаалттайгаар тохируулах уу?"</string>
     <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"Энэ тохиргоо асаалттай үед та VPN-г амжилттай холбох хүртэл интернетэд холбогдохгүй"</string>
@@ -2868,8 +2870,8 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Хэрэглэгч"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Хязгаарлагдсан профайл"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Шинэ хэрэглэгч нэмэх үү?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Та нэмэлт хэрэглэгч үүсгэх замаар бусад хүмүүстэй энэ төхөөрөмжийг хуваалцаж болно. Хэрэглэгч тус бүр апп, ханын цаас болон бусад зүйлээ өөрчлөх боломжтой хувийн орон зайтай байдаг. Түүнчлэн хэрэглэгч нь бүх хэрэглэгчид нөлөөлөх боломжтой Wi-Fi зэрэг төхөөрөмжийн тохиргоог өөрчлөх боломжтой.\n\nХэрэв та шинэ хэрэглэгч нэмэх бол тухайн хүн хувийн орон зайгаа бүрдүүлэх ёстой.\n\nХэрэглэгч бүр бусад бүх хэрэглэгчийн өмнөөс апп шинэчилж болно. Хүртээмжийн тохиргоо болон үйлчилгээг шинэ хэрэглэгчид шилжүүлэх боломжгүй байж болзошгүй."</string>
-    <string name="user_add_user_message_short" msgid="1802594476285458254">"Та шинэ хэрэглэгч нэмбэл тухайн хүн өөрийн профайлыг тохируулах шаардлагатай.\n\nАль ч хэрэглэгч бүх хэрэглэгчийн апп-уудыг шинэчлэх боломжтой."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Та нэмэлт хэрэглэгч үүсгэх замаар бусад хүнтэй энэ төхөөрөмжийг хуваалцаж болно. Хэрэглэгч тус бүр апп, ханын цаас болон бусад зүйлээ өөрчлөх боломжтой хувийн орон зайтай байдаг. Түүнчлэн хэрэглэгч нь бүх хэрэглэгчид нөлөөлөх боломжтой Wi-Fi зэрэг төхөөрөмжийн тохиргоог өөрчлөх боломжтой.\n\nХэрэв та шинэ хэрэглэгч нэмэх бол тухайн хүн хувийн орон зайгаа тохируулах ёстой.\n\nХэрэглэгч бүр бусад бүх хэрэглэгчийн өмнөөс апп шинэчилж болно. Хандалтын тохиргоо болон үйлчилгээг шинэ хэрэглэгчид шилжүүлэх боломжгүй байж болзошгүй."</string>
+    <string name="user_add_user_message_short" msgid="1802594476285458254">"Та шинэ хэрэглэгч нэмбэл тухайн хүн өөрийн профайлыг тохируулах шаардлагатай.\n\nАль ч хэрэглэгч бүх хэрэглэгчийн аппуудыг шинэчлэх боломжтой."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Хэрэглэгчийг одоо тохируулах уу?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"Хэрэглэгч төхөөрөмжийг авч өөрийн профайлыг тохируулах боломжтой эсэхийг шалгана уу"</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"Профайлыг одоо тохируулах уу?"</string>
@@ -2914,7 +2916,7 @@
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Аппликейшний тохиргоог дэлгэх"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Товшоод төлөөрэй"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Энэ хэрхэн ажилладаг вэ"</string>
-    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Дэлгүүрийн тооцоог утсаа ашиглан хийх"</string>
+    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Дэлгүүрт утсаараа тооцоо хийх"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"Төлбөр төлөх стандарт апп"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Тохируулаагүй"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Өөр төлбөрийн апп нээлттэй байхаас бусад үед"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"\"Товшиж төлөх\" дээр төлөх:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Tерминалаар тооцоо хийж байна"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Төлбөрийн апп-г тохируулаарай. Холбоoгүй тэмдэг бүхий терминалд утасныхаа ард талыг бариарай."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Төлбөрийн аппыг тохируулаарай. Зайнаас уншуулах тэмдэг бүхий терминалд утасныхаа ард талыг бариарай."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Ойлголоо"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Илүү..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Таны тохируулга болгох уу?"</string>
@@ -3705,13 +3707,13 @@
     <string name="high_power_filter_on" msgid="5294209328473386403">"Оновчлоогүй"</string>
     <string name="high_power_on" msgid="3573501822510580334">"Оновчлоогүй"</string>
     <string name="high_power_off" msgid="5906679734326490426">"Батарей ашиглалтыг оновчилж байна"</string>
-    <string name="high_power_system" msgid="739584574711292753">"Тэжээлийн оновчлолыг ашиглах боломжгүй байна"</string>
+    <string name="high_power_system" msgid="739584574711292753">"Батарейн оновчлолыг ашиглах боломжгүй байна"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Тэжээлийн оновчлол ашиглах шаардлагагүй. Учир нь тэжээлийг илүү түргэн дуусгаж болох юм."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Аппыг цаана тогтмол ажиллуулахыг зөвшөөрөх үү?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g>-г цаана ажиллуулахаар зөвшөөрсөн тохиолдолд батерейны түвшинг багасгах болно. \n\nТа үүнийг дараа нь Тохиргоо, Апп, мэдэгдэл хэсэгт өөрчлөх боломжтой."</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g>-г байнга цаана ажиллуулахаар зөвшөөрсөн тохиолдолд батарейны түвшинг багасгах болно. \n\nТа үүнийг дараа нь Тохиргоо, Апп, мэдэгдэл хэсэгт өөрчлөх боломжтой."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Сүүлд бүрэн цэнэглэснээс хойш <xliff:g id="PERCENTAGE">%1$s</xliff:g>-г ашигласан"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Цэнэгний менежмент"</string>
-    <string name="no_battery_summary" msgid="4105932628367471314">"Сүүлийн бүрэн цэнэглэлтээс хойш тэжээл огт ашиглаагүй"</string>
+    <string name="no_battery_summary" msgid="4105932628367471314">"Сүүлийн бүрэн цэнэглэлтээс хойш батарей огт ашиглаагүй"</string>
     <string name="app_notification_preferences" msgid="5154466638524523201">"Апп-ийн тохиргоо"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"SystemUI Tuner харуулах"</string>
     <string name="additional_permissions" msgid="3142290772324571654">"Нэмэлт зөвшөөрөл"</string>
@@ -3760,7 +3762,7 @@
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Туслах апп-ийг дэлгэцийн зурагт хандахыг зөвшөөрөх"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Дэлгэц гэрэлтэх"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"Дэлгэц эсвэл дэлгэцийн зургаас текст рүү туслах апп хандах үед дэлгэцийн ирмэг гэрэлтэх"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"Туслах апп нь таны харж байгаа дэлгэцийн мэдээлэл дээр тулгуурлан танд туслах боломжтой. Зарим апп нь танд нэгдсэн тусламжийн үйлчилгээ үзүүлэх үүднээс эхлүүлэгч болон дуун оролтыг дэмждэг."</string>
+    <string name="assist_footer" msgid="7030121180457472165">"Туслах апп нь таны харж байгаа дэлгэцийн мэдээлэлд тулгуурлан танд туслах боломжтой. Зарим апп нь танд нэгдсэн тусламжийн үйлчилгээ үзүүлэх үүднээс эхлүүлэгч болон дуун оролтыг дэмждэг."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Санах ой дундаж ашиглалт"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Санах ойн хамгийн хэрэглээ"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Санах ойн ашиглалт"</string>
@@ -3800,7 +3802,7 @@
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"Апп"</string>
     <string name="system_alert_window_access_title" msgid="5187343732185369675">"Бусад апп дээр харуулах"</string>
     <string name="permit_draw_overlay" msgid="9039092257052422344">"Бусад апп дээр харуулахыг зөвшөөрөх"</string>
-    <string name="allow_overlay_description" msgid="6669524816705082807">"Энэ аппыг ашиглаж буй бусад аппын дээр харуулахыг зөвшөөрнө үү. Ингэснээр таны бусад аппын ашиглалт эсвэл тэдгээрийн харагдац, ажиллагаанд өөрчлөлт орж болзошгүй."</string>
+    <string name="allow_overlay_description" msgid="6669524816705082807">"Энэ аппыг ашиглаж буй бусад апп дээр харуулахыг зөвшөөрнө үү. Ингэснээр таны бусад аппын ашиглалт эсвэл тэдгээрийн харагдац, ажиллагаанд өөрчлөлт орж болзошгүй."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr виртуал бодит сонсогч стерео туслагч үйлчилгээ"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"системийн дохиоллын цонхны харилцан үйлдлийг бусад апп дээр харуулах"</string>
     <string name="overlay_settings" msgid="3325154759946433666">"Бусад апп дээр харуулах"</string>
@@ -4006,7 +4008,7 @@
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Төхөөрөмж түгжээтэй үед хариу бичих, бусад текстийг мэдэгдлээр ирэх эсэхийг тохируулна уу."</string>
     <string name="default_spell_checker" msgid="8636661093243189533">"Өгөгдмөл алдаа шалгагч"</string>
     <string name="choose_spell_checker" msgid="7619860861923582868">"Алдаа шалгагч сонгох"</string>
-    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Зөв бичгийн алдаа шалгагчийг ашиглах"</string>
+    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Зөв бичгийн алдаа шалгагч ашиглах"</string>
     <string name="spell_checker_not_selected" msgid="331034541988255137">"Сонгоогүй"</string>
     <string name="notification_log_no_title" msgid="3668232437235348628">"(байхгүй)"</string>
     <string name="notification_log_details_delimiter" msgid="5485526744689532908">": "</string>
@@ -4156,7 +4158,7 @@
     <string name="auto_sync_account_title" msgid="2394463123733529506">"Өгөгдлийг автоматаар синк хийх"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"Хувийн өгөгдлийг автоматаар синк хийх"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"Ажлын өгөгдлийг автоматаар синк хийх"</string>
-    <string name="auto_sync_account_summary" msgid="6316230976974033772">"Өгөгдлийг автоматаар дахин боловсруулахыг апп-д зөвшөөрөх"</string>
+    <string name="auto_sync_account_summary" msgid="6316230976974033772">"Өгөгдлийг автоматаар дахин боловсруулахыг аппад зөвшөөрөх"</string>
     <string name="account_sync_title" msgid="1570164819114297154">"Бүртгэл синк хийх"</string>
     <string name="account_sync_summary_some_on" msgid="1934556869158274053">"<xliff:g id="ID_2">%2$d</xliff:g>-с <xliff:g id="ID_1">%1$d</xliff:g> зүйлд синк асаалттай"</string>
     <string name="account_sync_summary_all_on" msgid="3634161204232431700">"Бүх зүйлд синк асаалттай"</string>
@@ -4470,7 +4472,7 @@
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"Зөвшөөрөл, бүртгэлийн үйл ажиллагаа, хувийн өгөгдөл"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"Хасах"</string>
     <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Хадгалах"</string>
-    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Энэ саналыг устгах уу?"</string>
+    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Энэ саналыг хасах уу?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Зөвлөмжийг устгасан"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Болих"</string>
     <string name="low_storage_summary" msgid="4562224870189133400">"Хадгалах сангийн багтаамж бага байна. <xliff:g id="PERCENTAGE">%1$s</xliff:g>-г ашигласан - <xliff:g id="FREE_SPACE">%2$s</xliff:g> сул"</string>
diff --git a/tests/CarDeveloperOptions/res/values-mr/arrays.xml b/tests/CarDeveloperOptions/res/values-mr/arrays.xml
index 66a7810..55fda50 100644
--- a/tests/CarDeveloperOptions/res/values-mr/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-mr/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 मिनिटे"</item>
     <item msgid="6677424950124253938">"30 मिनिटे"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"कधीही नाही"</item>
+    <item msgid="2517785806387977252">"15 सेकंद"</item>
+    <item msgid="6347954399441173672">"३० सेकंद"</item>
+    <item msgid="4858305253279921789">"एक मिनिट"</item>
+    <item msgid="8109273437140044073">"दोन मिनिटे"</item>
+    <item msgid="2788593551142462622">"5 मिनिटे"</item>
+    <item msgid="8012672183888404961">"10 मिनिटे"</item>
+    <item msgid="8271452751594598661">"३० मिनिटे"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"तत्काळ"</item>
     <item msgid="2038544972632026612">"5 सेकंद"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 मिनिटे"</item>
     <item msgid="7258394417241706272">"30 मिनिटे"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"लहान"</item>
+    <item msgid="591935967183159581">"डीफॉल्ट"</item>
+    <item msgid="1714184661981538355">"मोठा"</item>
+    <item msgid="6195563047686707484">"सर्वात मोठा"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"स्कॅन करत आहे…"</item>
+    <item msgid="5597394826455877834">"कनेक्ट करत आहे..."</item>
+    <item msgid="5848277343965362748">"ऑथेंटिकेट करत आहे…"</item>
+    <item msgid="3391238031431440676">"IP पत्ता मिळवत आहे…"</item>
+    <item msgid="5257597310494000224">"कनेक्ट केलेले आहे"</item>
+    <item msgid="8472497592913050396">"निलंबित"</item>
+    <item msgid="1228072488815999109">"डिस्कनेक्ट करत आहे..."</item>
+    <item msgid="7253087004422991731">"डिस्कनेक्ट केले"</item>
+    <item msgid="4169850917304751227">"अयशस्वी"</item>
+    <item msgid="6266658166690831131">"अवरोधित"</item>
+    <item msgid="4517230805854909775">"तात्पुरते खराब कनेक्शन टाळत आहे"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"स्कॅन करत आहे…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> वर कनेक्ट करत आहे…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> सह ऑथेंटिकेट करत आहे…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> वरून आयपी अ‍ॅड्रेस मिळवत आहे…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> वर कनेक्ट केले आहे"</item>
+    <item msgid="6600156231416890902">"निलंबित"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> वरून डिस्कनेक्ट करत आहे…"</item>
+    <item msgid="3980154971187953257">"डिस्कनेक्ट केले"</item>
+    <item msgid="2847316776634969068">"अयशस्वी"</item>
+    <item msgid="4390990424746035383">"अवरोधित"</item>
+    <item msgid="3618248791367063949">"तात्पुरते खराब कनेक्शन टाळत आहे"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"पुश बटण"</item>
+    <item msgid="7401896200768713930">"पीअर डिव्हाइसवरील पिन"</item>
+    <item msgid="4526848028011846710">"या डिव्हाइसवरील पिन"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"कनेक्ट केलेले आहे"</item>
     <item msgid="983792611851499732">"आमंत्रित केले"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"४"</item>
     <item msgid="3132506679404897150">"५"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"खराब"</item>
+    <item msgid="7882129634982603782">"वाईट"</item>
+    <item msgid="6457357501905996224">"चांगले"</item>
+    <item msgid="405271628162918841">"उत्तम"</item>
+    <item msgid="999948812884919584">"उत्कृष्ट"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"अंतिम 30 दिवस"</item>
     <item msgid="3211287705232736964">"वापर चक्र सेट करा..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"स्थिर"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"काहीही नाही"</item>
     <item msgid="1464741437353223198">"व्यक्तिचलित"</item>
@@ -234,16 +281,78 @@
     <item msgid="2633626056029384366">"बनावट स्थान"</item>
     <item msgid="8356842191824684631">"वाचण्‍याचा स्टोरेज"</item>
     <item msgid="5671906070163291500">"लिहिण्‍याचा स्टोरेज"</item>
-    <item msgid="2791955098549340418">"स्क्रीन चालू करा"</item>
+    <item msgid="2791955098549340418">"स्क्रीन सुरू करा"</item>
     <item msgid="5599435119609178367">"खाती मिळवा"</item>
     <item msgid="1165623660533024666">"पार्श्वभूमीमध्ये चालवा"</item>
     <item msgid="6423861043647911030">"प्रवेशयोग्यता आकारमान"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"स्थान"</item>
+    <item msgid="6656077694190491067">"स्थान"</item>
+    <item msgid="8790228218278477369">"स्थान"</item>
+    <item msgid="7836406246005211990">"व्हायब्रेट"</item>
+    <item msgid="3951439024549922598">"संपर्क वाचा"</item>
+    <item msgid="8802152411647068">"संपर्क सुधारित करा"</item>
+    <item msgid="229544934599698735">"कॉल लॉग वाचा"</item>
+    <item msgid="7396102294405899613">"कॉल लॉग सुधारित करा"</item>
+    <item msgid="3597797992398484655">"कॅलेंडर वाचा"</item>
+    <item msgid="2705975774250907343">"कॅलेंडर सुधारित करा"</item>
+    <item msgid="4668747371441932697">"स्थान"</item>
+    <item msgid="1487578921720243646">"पोस्ट सूचना"</item>
+    <item msgid="4636080349724146638">"स्थान"</item>
+    <item msgid="673510900286463926">"फोनवर कॉल करा"</item>
+    <item msgid="542083422784609790">"SMS/MMS वाचा"</item>
+    <item msgid="1033780373029588436">"SMS/MMS लिहा"</item>
+    <item msgid="5647111115517787488">"SMS/MMS प्राप्त करा"</item>
+    <item msgid="8591105601108455893">"SMS/MMS प्राप्त करा"</item>
+    <item msgid="7730995008517841903">"SMS/MMS प्राप्त करा"</item>
+    <item msgid="2613033109026626086">"SMS/MMS प्राप्त करा"</item>
+    <item msgid="3037159047591081136">"एसएमएस/MMS पाठवा"</item>
+    <item msgid="4726682243833913568">"SMS/MMS वाचा"</item>
+    <item msgid="6555678522277865572">"SMS/MMS लिहा"</item>
+    <item msgid="6981734935578130884">"सेटिंग्ज सुधारित करा"</item>
+    <item msgid="8705854389991425629">"शीर्षस्थानी रेखांकित करा"</item>
+    <item msgid="5861356020344153651">"सूचना अ‍ॅक्सेस करा"</item>
+    <item msgid="78432174621628659">"कॅमेरा"</item>
+    <item msgid="3986116419882154794">"ऑडिओ रेकॉर्ड करा"</item>
+    <item msgid="4516840825756409490">"ऑडिओ प्ले करा"</item>
+    <item msgid="6811712502798183957">"क्लिपबोर्ड वाचा"</item>
+    <item msgid="2780369012602289114">"क्लिपबोर्ड सुधारित करा"</item>
+    <item msgid="2331359440170850868">"मीडिया बटणे"</item>
+    <item msgid="6133599737122751231">"ऑडिओ फोकस"</item>
+    <item msgid="6844485713404805301">"प्रमुख व्हॉल्यूम"</item>
+    <item msgid="1600379420669104929">"आवाज व्हॉल्यूम"</item>
+    <item msgid="6296768210470214866">"रिंग व्हॉल्यूम"</item>
+    <item msgid="510690696071629241">"मीडिया व्हॉल्यूम"</item>
+    <item msgid="406861638631430109">"अलार्म व्हॉल्यूम"</item>
+    <item msgid="4715864795872233884">"सूचना व्हॉल्यूम"</item>
+    <item msgid="2311478519251301183">"ब्लूटूथ व्हॉल्यूम"</item>
+    <item msgid="5133991377896747027">"सक्रिय ठेवा"</item>
+    <item msgid="2464189519136248621">"स्थान"</item>
+    <item msgid="2062677934050803037">"स्थान"</item>
+    <item msgid="1735171933192715957">"वापर आकडेवारी मिळवा"</item>
+    <item msgid="1014093788778383554">"मायक्रोफोन निःशब्द/सशब्द करा"</item>
+    <item msgid="4199297950608622850">"टोस्ट दर्शवा"</item>
+    <item msgid="2527962435313398821">"प्रोजेक्‍ट मीडिया"</item>
+    <item msgid="5117506254221861929">"VPN सक्रिय करा"</item>
+    <item msgid="8291198322681891160">"लिहिण्याचा वॉलपेपर"</item>
+    <item msgid="7106921284621230961">"सहाय्य रचना"</item>
+    <item msgid="4496533640894624799">"सहाय्य स्क्रीनशॉट"</item>
+    <item msgid="2598847264853993611">"फोन स्थिती वाचा"</item>
+    <item msgid="9215610846802973353">"व्हॉइसमेल जोडा"</item>
+    <item msgid="9186411956086478261">"सिप वापरा"</item>
+    <item msgid="6884763100104539558">"केल्या जाणार्‍या कॉलवर प्रक्रिया करत आहे"</item>
+    <item msgid="125513972170580692">"फिंगरप्रिंट"</item>
+    <item msgid="2556071024281275619">"शरीर सेन्सर"</item>
+    <item msgid="617168514928339387">"सेल ब्रॉडकास्ट वाचा"</item>
+    <item msgid="7134693570516523585">"बनावट स्थान"</item>
+    <item msgid="7224489175375229399">"वाचण्‍याचा स्टोरेज"</item>
+    <item msgid="8472735063903258202">"लिहिण्‍याचा स्टोरेज"</item>
+    <item msgid="4069276819909595110">"स्क्रीन सुरू करा"</item>
+    <item msgid="1228338896751121025">"खाती मिळवा"</item>
+    <item msgid="3181581793459233672">"पार्श्वभूमीमध्ये चालवा"</item>
+    <item msgid="2340936043025374076">"प्रवेशयोग्यता आकारमान"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"लघु"</item>
     <item msgid="4816511817309094890">"मध्‍यम"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"Cursive"</item>
     <item msgid="6896773537705206194">"Small capitals"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"खूप लहान"</item>
+    <item msgid="5091603983404027034">"लहान"</item>
+    <item msgid="176844712416932112">"सामान्य"</item>
+    <item msgid="2784236342175159295">"मोठा"</item>
+    <item msgid="218913203203160606">"खूप मोठा"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"डीफॉल्ट"</item>
     <item msgid="6488643537808152001">"काहीही नाही"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"१००%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"अ‍ॅप डीफॉल्ट वापरा"</item>
+    <item msgid="8611890312638868524">"काळ्‍यावर पांढरे"</item>
+    <item msgid="5891360837786277638">"पांढर्‍यावर काळे"</item>
+    <item msgid="2798457065945456853">"काळ्यावर पिवळे"</item>
+    <item msgid="5799049811524553967">"निळ्यावर पिवळे"</item>
+    <item msgid="3673930830658169860">"कस्टम"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"पूर्व-शेअर की सह L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"काहीही नाही"</item>
     <item msgid="1157046369795346308">"व्यक्तिचलित"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"डिस्कनेक्ट केले"</item>
+    <item msgid="8754480102834556765">"प्रारंभ करत आहे…"</item>
+    <item msgid="3351334355574270250">"कनेक्ट करत आहे..."</item>
+    <item msgid="8303882153995748352">"कनेक्ट केलेले आहे"</item>
+    <item msgid="9135049670787351881">"टाइमआउट"</item>
+    <item msgid="2124868417182583926">"अयशस्वी"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"विचारा"</item>
     <item msgid="7718817231348607934">"कधीही अनुमती देऊ नका"</item>
     <item msgid="8184570120217958741">"नेहमी अनुमती द्या"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"सामान्य"</item>
+    <item msgid="5101233285497327432">"मध्यम"</item>
+    <item msgid="1555861583162930714">"कमी"</item>
+    <item msgid="1719683776264798117">"जटिल"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"सामान्य"</item>
+    <item msgid="6107138933849816768">"मध्यम"</item>
+    <item msgid="182695359839047859">"कमी"</item>
+    <item msgid="8577246509202964244">"गंभीर"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"कायम"</item>
     <item msgid="167418068739176448">"आघाडीच्या ॲक्टिव्हिटी"</item>
@@ -309,9 +448,9 @@
     <item msgid="6610439017684111046">"प्राप्तकर्ता"</item>
     <item msgid="7367606086319921117">"होम"</item>
     <item msgid="3344660712396741826">"शेवटच्या ॲक्टिव्हिटी"</item>
-    <item msgid="5006559348883303865">"कॅशे केलेली (ॲक्टिव्हिटी)"</item>
-    <item msgid="8633480732468137525">"कॅशे केलेला (ॲक्टिव्हिटी क्लायंट)"</item>
-    <item msgid="6248998242443333892">"कॅश   केलेला (रिक्त)"</item>
+    <item msgid="5006559348883303865">"कॅशे  केलेली (ॲक्टिव्हिटी)"</item>
+    <item msgid="8633480732468137525">"कॅशे  केलेला (ॲक्टिव्हिटी क्लायंट)"</item>
+    <item msgid="6248998242443333892">"कॅशे    केलेला (रिक्त)"</item>
   </string-array>
   <string-array name="color_picker">
     <item msgid="3151827842194201728">"हिरवट निळा"</item>
diff --git a/tests/CarDeveloperOptions/res/values-mr/strings.xml b/tests/CarDeveloperOptions/res/values-mr/strings.xml
index cbf29cb..96c3e9d 100644
--- a/tests/CarDeveloperOptions/res/values-mr/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-mr/strings.xml
@@ -23,11 +23,11 @@
     <string name="deny" msgid="3998166389989144025">"नकार द्या"</string>
     <string name="device_info_default" msgid="1548919563979154348">"अज्ञात"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="3953785659137161981">
-      <item quantity="other">तुम्ही आता विकासक बनण्यापासून <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> चरणे दूर आहात.</item>
-      <item quantity="one">तुम्ही आता विकासक बनण्यापासून <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> चरण दूर आहात.</item>
+      <item quantity="other">तुम्ही आता डेव्हलपर बनण्यापासून <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> पायऱ्या दूर आहात.</item>
+      <item quantity="one">तुम्ही आता डेव्हलपर बनण्यापासून <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> पायरी दूर आहात.</item>
     </plurals>
-    <string name="show_dev_on" msgid="9075712234786224065">"आता तुम्ही एक विकासक आहात!"</string>
-    <string name="show_dev_already" msgid="7665948832405148689">"आवश्यकता नाही, तुम्ही आधीपासून एक विकासक आहात."</string>
+    <string name="show_dev_on" msgid="9075712234786224065">"आता तुम्ही एक डेव्हलपर आहात!"</string>
+    <string name="show_dev_already" msgid="7665948832405148689">"आवश्यकता नाही, तुम्ही आधीपासून एक डेव्हलपर आहात."</string>
     <string name="dev_settings_disabled_warning" msgid="3198732189395396721">"कृपया सर्वात आधी डेव्हलपर पर्याय सुरू करा."</string>
     <string name="header_category_wireless_networks" msgid="8968405993937795898">"वायरलेस आणि नेटवर्क"</string>
     <string name="header_category_system" msgid="4045988717359334410">"सिस्टम"</string>
@@ -38,7 +38,7 @@
     <string name="wfc_provisioned_switch_string" msgid="5446697646596639516">"वायफाय कॉलिंगची तरतूद केली"</string>
     <string name="eab_provisioned_switch_string" msgid="3921103790584572430">"EAB/उपस्थितीची तरतूद आहे"</string>
     <string name="cbrs_data_switch_string" msgid="9120919504831536183">"Cbrs डेटा"</string>
-    <string name="dsds_switch_string" msgid="2606482598327613264">"DSDS सुरु करा"</string>
+    <string name="dsds_switch_string" msgid="2606482598327613264">"DSDS सुरू करा"</string>
     <string name="dsds_dialog_title" msgid="3279829304547130217">"डिव्हाइस रीस्टार्ट करायचे का?"</string>
     <string name="dsds_dialog_message" msgid="571197076181853304">"ही सेटिंग बदलण्यासाठी तुम्ही तुमचे डिव्हाइस रीस्टार्ट करणे आवश्यक आहे."</string>
     <string name="dsds_dialog_confirm" msgid="4858826679303698086">"रीस्टार्ट"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"स्क्रीन वरील मजकूर आणखी लहान किंवा आणखी मोठा करा."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"आणखी लहान करा"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"आणखी मोठे करा"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"नमुना मजकूर"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Oz चा अद्भूत जादूगार"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"अध्याय 11: Oz चे अद्भूत पाचूंचे शहर"</string>
@@ -124,15 +123,15 @@
     <string name="bluetooth_device" msgid="3170974107364990008">"नाव नसलेले ब्लूटूथ डिव्हाइस"</string>
     <string name="progress_scanning" msgid="633923400401041181">"शोधत आहे"</string>
     <string name="bluetooth_no_devices_found" msgid="4396050022213494322">"जवळपास ब्लूटूथ डिव्हाइस आढळली नाहीत."</string>
-    <string name="bluetooth_notif_ticker" msgid="8398481099943141819">"ब्लूटूथ पेअरींग विनंती"</string>
-    <string name="bluetooth_notif_title" msgid="5090288898529286011">"पेअरींग विनंती"</string>
+    <string name="bluetooth_notif_ticker" msgid="8398481099943141819">"ब्लूटूथ पेअरिंग विनंती"</string>
+    <string name="bluetooth_notif_title" msgid="5090288898529286011">"पेअरिंग विनंती"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सह जोडण्यासाठी टॅप करा."</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"मिळालेल्या फायली"</string>
     <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"फायली ब्लूटूथद्वारे मिळाल्या आहेत"</string>
     <string name="device_picker" msgid="8345264486071697705">"ब्लूटूथ डिव्हाइस निवडा"</string>
-    <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ चालू करू इच्छितो"</string>
+    <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ सुरू करू इच्छितो"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ बंद करू इच्छितो"</string>
-    <string name="bluetooth_ask_enablement_no_name" msgid="6105893027185475233">"अ‍ॅप ब्लूटूथ चालू करु इच्छित आहे"</string>
+    <string name="bluetooth_ask_enablement_no_name" msgid="6105893027185475233">"अ‍ॅप ब्लूटूथ सुरू करु इच्छित आहे"</string>
     <string name="bluetooth_ask_disablement_no_name" msgid="8648888502291681310">"अ‍ॅप ब्लूटूथ बंद करू इच्छितो"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="6871595755186170115">"<xliff:g id="APP_NAME">%1$s</xliff:g> तुमचा टॅबलेट अन्य ब्लूटूथ डीव्हाइससाठी <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकंदांसाठी दृश्यमान करू इच्छितो."</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="3388041479101348095">"<xliff:g id="APP_NAME">%1$s</xliff:g> तुमचा फोन अन्य ब्लूटूथ डीव्हाइससाठी <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकंदांसाठी दृश्यमान करू इच्छितो."</string>
@@ -142,15 +141,15 @@
     <string name="bluetooth_ask_lasting_discovery" product="default" msgid="7796723473397303412">"<xliff:g id="APP_NAME">%1$s</xliff:g> तुमचा फोन इतर ब्लूटूथ डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
     <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="5961921359655434504">"अ‍ॅप तुमचा टॅबलेट इतर ब्लूटूथ डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
     <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="3585910858758443872">"अ‍ॅप तुमचा फोन इतर ब्लूटूथ डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
-    <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5676466923424941153">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ चालू करू इच्छितो आणि <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकंदांसाठी तुमचा टॅबलेट अन्य डीव्हाइससाठी दृश्‍यमान करू इच्छितो."</string>
-    <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="507088376226791063">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ चालू करू इच्छितो आणि <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकंदांसाठी तुमचा फोन अन्य डीव्हाइससाठी दृश्‍यमान करू इच्छितो."</string>
-    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="1164681893121736219">"अ‍ॅप ब्लूटूथ चालू करु इच्छित आहे आणि इतर डीव्हाइससाठी <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकंदांकरिता तुमचा टॅबलेट दृश्यमान बनवू इच्छित आहे."</string>
-    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="2542247690119921188">"अ‍ॅप ब्लूटूथ चालू करु इच्छित आहे आणि इतर डीव्हाइससाठी <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकंदांकरिता तुमचा फोन दृश्यमान बनवू इच्छित आहे."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="7118362102769177771">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ चालू करु इच्छित आहे आणि तुमचा टॅबलेट इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="2577488464813970727">"<xliff:g id="APP_NAME">%1$s</xliff:g> अ‍ॅप ब्लूटूथ चालू करु इच्छित आहे आणि तुमचा फोन इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="7083038132794842691">"अ‍ॅप ब्लूटूथ चालू करु इच्छित आहे आणि तुमचा टॅबलेट इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="3541668604020109525">"अ‍ॅप ब्लूटूथ चालू करु इच्छित आहे आणि तुमचा फोन इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
-    <string name="bluetooth_turning_on" msgid="6935183036449748493">"ब्लूटूथ चालू करत आहे…"</string>
+    <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5676466923424941153">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ सुरू करू इच्छितो आणि <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकंदांसाठी तुमचा टॅबलेट अन्य डीव्हाइससाठी दृश्‍यमान करू इच्छितो."</string>
+    <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="507088376226791063">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ सुरू करू इच्छितो आणि <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकंदांसाठी तुमचा फोन अन्य डीव्हाइससाठी दृश्‍यमान करू इच्छितो."</string>
+    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="1164681893121736219">"अ‍ॅप ब्लूटूथ सुरू करु इच्छित आहे आणि इतर डीव्हाइससाठी <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकंदांकरिता तुमचा टॅबलेट दृश्यमान बनवू इच्छित आहे."</string>
+    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="2542247690119921188">"अ‍ॅप ब्लूटूथ सुरू करु इच्छित आहे आणि इतर डीव्हाइससाठी <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकंदांकरिता तुमचा फोन दृश्यमान बनवू इच्छित आहे."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="7118362102769177771">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लूटूथ सुरू करु इच्छित आहे आणि तुमचा टॅबलेट इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="2577488464813970727">"<xliff:g id="APP_NAME">%1$s</xliff:g> अ‍ॅप ब्लूटूथ सुरू करु इच्छित आहे आणि तुमचा फोन इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="7083038132794842691">"अ‍ॅप ब्लूटूथ सुरू करु इच्छित आहे आणि तुमचा टॅबलेट इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="3541668604020109525">"अ‍ॅप ब्लूटूथ सुरू करु इच्छित आहे आणि तुमचा फोन इतर डीव्हाइससाठी दृश्‍यमान करू इच्छित आहे. तुम्ही ब्लूटूथ सेटिंग्जमध्ये नंतर हे बदलू शकता."</string>
+    <string name="bluetooth_turning_on" msgid="6935183036449748493">"ब्लूटूथ सुरू करत आहे…"</string>
     <string name="bluetooth_turning_off" msgid="9214026723789756620">"ब्लूटूथ बंद करत आहे…"</string>
     <string name="bluetooth_connection_permission_request" msgid="2382506002340643398">"ब्लूटूथ कनेक्शन विनंती"</string>
     <string name="bluetooth_connection_notif_message" msgid="6824654400460127108">"\"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>\" शी कनेक्ट करण्यासाठी टॅप करा."</string>
@@ -164,7 +163,7 @@
     <string name="bluetooth_sap_request" msgid="6318039677671263261">"सिम प्रवेश विनंती"</string>
     <string name="bluetooth_sap_acceptance_dialog_text" msgid="1909352413109340355">"<xliff:g id="DEVICE_NAME_0">%1$s</xliff:g> आपल्या सिम कार्डवर प्रवेश करू इच्छित आहे. सिम कार्डवर प्रवेश मंजूर केल्यामुळे कनेक्शनच्या कालावधीसाठी आपल्या डिव्हाइसवरील डेटा कनेक्टिव्हिटी अक्षम होईल. <xliff:g id="DEVICE_NAME_1">%2$s?</xliff:g> वर प्रवेश द्या"</string>
     <string name="bluetooth_device_name_summary" msgid="8661066392056595005">"इतर डिव्‍हाइसना \'<xliff:g id="DEVICE_NAME">^1</xliff:g>\' म्‍हणून दिसत आहे"</string>
-    <string name="bluetooth_off_footer" msgid="7658444560543730571">"इतर डिव्हाइसशी कनेक्ट करण्यासाठी ब्लूटूथ चालू करा."</string>
+    <string name="bluetooth_off_footer" msgid="7658444560543730571">"इतर डिव्हाइसशी कनेक्ट करण्यासाठी ब्लूटूथ सुरू करा."</string>
     <string name="bluetooth_paired_device_title" msgid="8361860197780425286">"तुमचे डिव्हाइस"</string>
     <string name="bluetooth_pairing_page_title" msgid="9053463656712597709">"नवीन डिव्हाइस जोडा"</string>
     <string name="bluetooth_pref_summary" product="tablet" msgid="3601662966604648212">"तुमच्या टॅबलेटला जवळपासच्या ब्लूटूथ डिव्हाइसशी संवाद साधण्याची अनुमती द्या"</string>
@@ -313,7 +312,7 @@
     <string name="roaming_enable" msgid="2108142024297441116">"रोमिंग असताना डेटा सेवांवर कनेक्ट करा"</string>
     <string name="roaming_disable" msgid="1915440242079953809">"रोमिंगमध्ये असताना डेटा सेवांना कनेक्ट करा"</string>
     <string name="roaming_reenable_message" msgid="8388505868655113258">"तुम्ही डेटा रोमिंग बंद करून तुमचे होम नेटवर्क सोडल्यामुळे तुम्ही डेटा कनेक्टिव्हिटी गमावली आहे."</string>
-    <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"हे चालू करा"</string>
+    <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"हे सुरू करा"</string>
     <string name="roaming_warning" msgid="5488050911277592868">"तुम्हाला बर्‍याच प्रमाणात शुल्‍क लागू शकते."</string>
     <string name="roaming_warning_multiuser" product="tablet" msgid="7090388691615686893">"जेव्हा तुम्ही डेटा रोमिंगला अनुमती देता, तेव्हा तुम्हाला महत्त्वाचे रोमिंग शुल्क आकारले जाऊ शकते!\n\nही सेटिंग या टॅब्लेटवरील सर्व वापरकर्ते प्रभावित करते."</string>
     <string name="roaming_warning_multiuser" product="default" msgid="6999819541078827556">"जेव्हा तुम्ही डेटा रोमिंगला अनुमती देता, तेव्हा आपल्याकडून महत्त्वाचे रोमिंग शुल्क आकारले जाऊ शकते!\n\nही सेटिंग या फोनवरील सर्व वापरकर्ते प्रभावित करते."</string>
@@ -444,13 +443,13 @@
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1640839304679275468">"फोन अनलॉक करण्यासाठी किंवा खरेदींना मंजूरी देण्यासाठी तुमचे फिंगरप्रिंट वापरा.\n\nटीप: तुम्ही हे डिव्हाइस अनलॉक करण्यासाठी तुम्‍ही तुमचे फिंगरप्रिंट वापरू शकत नाही. अधिक माहितीसाठी संस्थेच्या प्रशासकाशी संपर्क साधा."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6734490666593320711">"फोन अनलॉक करण्यासाठी किंवा खरेदीला मंजुरी देण्यासाठी तुमची फिंगरप्रिंट वापरा.\n\nटीप: क्लिष्ट पॅटर्न किंवा पिनच्या तुलनेत तुमची फिंगरप्रिंट ही कमी सुरक्षित असू शकते."</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="9168637333731599827">"रद्द करा"</string>
-    <string name="security_settings_fingerprint_enroll_introduction_continue" msgid="271662150372486535">"सुरु ठेवा"</string>
+    <string name="security_settings_fingerprint_enroll_introduction_continue" msgid="271662150372486535">"सुरू ठेवा"</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="756928427429893070">"वगळा"</string>
     <string name="security_settings_fingerprint_enroll_introduction_continue_setup" msgid="4125977169169671144">"पुढील"</string>
     <string name="setup_fingerprint_enroll_skip_title" msgid="763018850721691594">"फिंगरप्रिंट पायरी वगळायची?"</string>
     <string name="setup_fingerprint_enroll_skip_after_adding_lock_text" msgid="8849928362049018680">"फिंगरप्रिंट सेटअपला फक्त एक किंवा दोन मिनिटे लागतात. ही पायरी वगळली तरी तुम्ही नंतर सेटिंग्जमध्ये जाऊन तुमची फिंगरप्रिंट जोडू शकता."</string>
     <string name="lock_screen_intro_skip_title" msgid="5307431665496346914">"स्क्रीन लॉक वगळायचे?"</string>
-    <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="7553945981266845264">"डिव्हाइस संरक्षण वैशिष्ट्ये चालू होणार नाहीत. हा टॅब्लेट हरवल्यास, चोरी झाल्यास किंवा रीसेट केल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
+    <string name="lock_screen_intro_skip_dialog_text_frp" product="tablet" msgid="7553945981266845264">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हा टॅब्लेट हरवल्यास, चोरी झाल्यास किंवा रीसेट केल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="device" msgid="1378243257238015603">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हे डिव्हाइस हरवल्यास, चोरी झाल्यास किंवा रीसेट केल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
     <string name="lock_screen_intro_skip_dialog_text_frp" product="default" msgid="8395540117461339748">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हा फोन हरवल्यास, चोरी झाल्यास किंवा रीसेट केल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
     <string name="lock_screen_intro_skip_dialog_text" product="tablet" msgid="7572334562915795226">"डिव्हाइस संरक्षण वैशिष्ट्ये सुरू होणार नाहीत. हा टॅब्लेट हरवल्यास किंवा चोरी झाल्यास तुम्ही इतरांना तो वापरण्यापासून रोखू शकणार नाही."</string>
@@ -509,14 +508,14 @@
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"टॅबलेट एंक्रिप्ट करा"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="3110852053238357832">"फोन एंक्रिप्ट करा"</string>
     <string name="crypt_keeper_encrypted_summary" msgid="2438498691741626642">"एंक्रिप्ट केले"</string>
-    <string name="crypt_keeper_desc" product="tablet" msgid="9142792050252407734">"तुम्ही तुमची खाती, सेटिंग्ज, डाउनलोड केलेले अ‍ॅप्स आणि त्यांचा डेटा, मीडिया आणि इतर फायली एंक्रिप्ट करू शकता. तुम्ही तुमचा टॅब्लेट एंक्रिप्ट केल्यानंतर, तुम्ही स्क्रीन लॉक (म्हणजे, एक पॅटर्न किंवा अंकीय पिन किंवा पासवर्ड) सेट केला आहे हे गृहित धरून, प्रत्येकवेळी तुम्ही टॅब्लेट चालू करता तेव्हा त्याचे एंक्रिप्ट करण्‍यासाठी आपल्‍याला स्क्रीन अनलॉक करण्‍याची आवश्यकता असेल. एंक्रिप्ट करण्‍याचा अन्य एकमेव मार्ग तुमचा सर्व डेटा मिटवून, फॅक्‍टरी डेटा रीसेट करणे हा होय.\n\nएंक्रिप्शनला एक तास किंवा अधिक वेळ लागू शकतो. तुम्ही संपूर्ण प्रक्रियेत चार्ज केलेल्या बॅटरीसह प्रारंभ करणे आणि तुमचा टॅब्लेट प्लग इन केलेला ठेवणे आवश्यक आहे. तुम्ही त्यात व्यत्यय आणल्यास, तुम्ही तुमचा काही किंवा सर्व डेटा गमवाल."</string>
-    <string name="crypt_keeper_desc" product="default" msgid="1996334685607444282">"तुम्ही तुमची खाती, सेटिंग्ज, डाउनलोड केलेली अ‍ॅप्स आणि त्यांचा डेटा, मीडिया आणि इतर फायली एंक्रिप्ट करू शकता. तुम्ही तुमचा फोन एंक्रिप्ट केल्यानंतर, तुम्ही स्क्रीन लॉक (म्हणजे, एक पॅटर्न किंवा अंकीय पिन किंवा पासवर्ड) सेट केला आहे हे गृहित धरून, प्रत्येकवेळी तुम्ही फोन चालू करता तेव्हा त्याचे एंक्रिप्ट करण्‍यासाठी आपल्‍याला स्क्रीन अनलॉक करण्‍याची आवश्यकता असेल. एंक्रिप्ट करण्‍याचा अन्य एकमेव मार्ग तुमचा सर्व डेटा मिटवून, फॅक्‍टरी डेटा रीसेट करणे हा होय.\n\nएंक्रिप्टीकरणास एक तास किंवा अधिक वेळ लागू शकतो. तुम्ही संपूर्ण प्रक्रियेत चार्ज केलेल्या बॅटरीसह प्रारंभ करणे आणि तुमचा फोन प्लग इन केलेला ठेवणे आवश्यक आहे. तुम्ही त्यात व्यत्यय आणल्यास, तुम्ही तुमचा काही किंवा सर्व डेटा गमवाल."</string>
+    <string name="crypt_keeper_desc" product="tablet" msgid="9142792050252407734">"तुम्ही तुमची खाती, सेटिंग्ज, डाउनलोड केलेले अ‍ॅप्स आणि त्यांचा डेटा, मीडिया आणि इतर फायली एंक्रिप्ट करू शकता. तुम्ही तुमचा टॅब्लेट एंक्रिप्ट केल्यानंतर, तुम्ही स्क्रीन लॉक (म्हणजे, एक पॅटर्न किंवा अंकीय पिन किंवा पासवर्ड) सेट केला आहे हे गृहित धरून, प्रत्येकवेळी तुम्ही टॅब्लेट सुरू करता तेव्हा त्याचे एंक्रिप्ट करण्‍यासाठी आपल्‍याला स्क्रीन अनलॉक करण्‍याची आवश्यकता असेल. एंक्रिप्ट करण्‍याचा अन्य एकमेव मार्ग तुमचा सर्व डेटा मिटवून, फॅक्‍टरी डेटा रीसेट करणे हा होय.\n\nएंक्रिप्शनला एक तास किंवा अधिक वेळ लागू शकतो. तुम्ही संपूर्ण प्रक्रियेत चार्ज केलेल्या बॅटरीसह प्रारंभ करणे आणि तुमचा टॅब्लेट प्लग इन केलेला ठेवणे आवश्यक आहे. तुम्ही त्यात व्यत्यय आणल्यास, तुम्ही तुमचा काही किंवा सर्व डेटा गमवाल."</string>
+    <string name="crypt_keeper_desc" product="default" msgid="1996334685607444282">"तुम्ही तुमची खाती, सेटिंग्ज, डाउनलोड केलेली अ‍ॅप्स आणि त्यांचा डेटा, मीडिया आणि इतर फायली एंक्रिप्ट करू शकता. तुम्ही तुमचा फोन एंक्रिप्ट केल्यानंतर, तुम्ही स्क्रीन लॉक (म्हणजे, एक पॅटर्न किंवा अंकीय पिन किंवा पासवर्ड) सेट केला आहे हे गृहित धरून, प्रत्येकवेळी तुम्ही फोन सुरू करता तेव्हा त्याचे एंक्रिप्ट करण्‍यासाठी आपल्‍याला स्क्रीन अनलॉक करण्‍याची आवश्यकता असेल. एंक्रिप्ट करण्‍याचा अन्य एकमेव मार्ग तुमचा सर्व डेटा मिटवून, फॅक्‍टरी डेटा रीसेट करणे हा होय.\n\nएंक्रिप्टीकरणास एक तास किंवा अधिक वेळ लागू शकतो. तुम्ही संपूर्ण प्रक्रियेत चार्ज केलेल्या बॅटरीसह प्रारंभ करणे आणि तुमचा फोन प्लग इन केलेला ठेवणे आवश्यक आहे. तुम्ही त्यात व्यत्यय आणल्यास, तुम्ही तुमचा काही किंवा सर्व डेटा गमवाल."</string>
     <string name="crypt_keeper_button_text" product="tablet" msgid="7918671468758813824">"टॅबलेट एंक्रिप्ट करा"</string>
     <string name="crypt_keeper_button_text" product="default" msgid="8737394386627318489">"फोन एंक्रिप्ट करा"</string>
     <string name="crypt_keeper_low_charge_text" msgid="1422879728632636311">"तुमची बॅटरी चार्ज करा आणि पुन्हा प्रयत्न करा."</string>
     <string name="crypt_keeper_unplugged_text" msgid="6597684068340036200">"तुमचा चार्जर प्लग इन करा आणि पुन्हा प्रयत्न करा."</string>
     <string name="crypt_keeper_dialog_need_password_title" msgid="8532211509636340535">"कोणताही लॉक स्क्रीन पिन किंवा पासवर्ड नाही"</string>
-    <string name="crypt_keeper_dialog_need_password_message" msgid="1341590897367808702">"तुम्ही एनक्रिप्शन सुरु करण्यापूर्वी तुम्हाला एक लॉक स्क्रीन पिन ‍किंवा पासवर्ड सेट करण्याची आवश्यकता आहे."</string>
+    <string name="crypt_keeper_dialog_need_password_message" msgid="1341590897367808702">"तुम्ही एनक्रिप्शन सुरू करण्यापूर्वी तुम्हाला एक लॉक स्क्रीन पिन ‍किंवा पासवर्ड सेट करण्याची आवश्यकता आहे."</string>
     <string name="crypt_keeper_confirm_title" msgid="8884417036062084547">"एंक्रिप्ट करायचे?"</string>
     <string name="crypt_keeper_final_desc" product="tablet" msgid="2713708841024805586">"एंक्रिप्शन कार्य परत न करता येणारे आहे आणि तुम्ही त्यात व्यत्यय आणल्यास, तुमचा डेटा गमावेल. एंक्रिप्शनला एखादा तास किंवा जास्त वेळ लागतो, यादरम्यान टॅबलेट कित्येक वेळा रीस्टार्ट होईल."</string>
     <string name="crypt_keeper_final_desc" product="default" msgid="2483549885938505746">"एंक्रिप्शन कार्य परत न करता येणारे आहे आणि तुम्ही त्यात व्यत्यय आणल्यास, तुमचा डेटा गमावेल. एंक्रिप्शनला एखादा तास किंवा जास्त वेळ लागतो, यादरम्यान फोन कित्येक वेळा रीस्टार्ट होईल."</string>
@@ -525,16 +524,16 @@
     <string name="crypt_keeper_setup_description" product="default" msgid="3391750289253411494">"तुमचा फोन एंक्रिप्ट केला जात असताना प्रतीक्षा करा. <xliff:g id="PERCENT">^1</xliff:g>% पूर्ण."</string>
     <string name="crypt_keeper_setup_time_remaining" product="tablet" msgid="7841271240063858796">"तुमचा टॅब्लेट एंक्रिप्ट केला जात असताना प्रतीक्षा करा. शिल्लक वेळ: <xliff:g id="DURATION">^1</xliff:g>"</string>
     <string name="crypt_keeper_setup_time_remaining" product="default" msgid="8049188590821796173">"तुमचा फोन एंक्रिप्ट केला जात असताना प्रतीक्षा करा. शिल्लक वेळ: <xliff:g id="DURATION">^1</xliff:g>"</string>
-    <string name="crypt_keeper_force_power_cycle" product="tablet" msgid="9168213181845231795">"तुमचा टॅबलेट अनलॉक करण्‍यासाठी, तो बंद करा आणि नंतर चालू करा."</string>
+    <string name="crypt_keeper_force_power_cycle" product="tablet" msgid="9168213181845231795">"तुमचा टॅबलेट अनलॉक करण्‍यासाठी, तो बंद करा आणि नंतर सुरू करा."</string>
     <string name="crypt_keeper_force_power_cycle" product="default" msgid="1182690469082263666">"तुमचा फोन अनलॉक करण्‍यासाठी, तो बंद करा आणि नंतर सुरू करा."</string>
     <string name="crypt_keeper_warn_wipe" msgid="700814581500057050">"चेतावणी: अनलॉक करण्‍याच्या आणखी <xliff:g id="COUNT">^1</xliff:g> अयशस्‍वी प्रयत्नांनंतर तुमचे डिव्हाइस पुसले जाईल."</string>
     <string name="crypt_keeper_enter_password" msgid="726933635335219421">"तुमचा पासवर्ड टाइप करा"</string>
     <string name="crypt_keeper_failed_title" msgid="1906382607060855782">"एंक्रिप्शन अयशस्वी"</string>
-    <string name="crypt_keeper_failed_summary" product="tablet" msgid="7844833877734529625">"कूटबद्धीकरणात व्यत्यय आला आणि हे पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या टॅबलेटवरील डेटा यापुढे प्रवेशयोग्य राहणार नाही. \n\n तुमचा टॅबलेट वापरून पुन्हा सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
-    <string name="crypt_keeper_failed_summary" product="default" msgid="2895589681839090312">"कूटबद्धीकरणात व्यत्यय आला आणि पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या फोनवरील डेटा यापुढे प्रवेशयोग्य नाही.\n\nतुमचा फोन वापरणे पुन्हा सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर जेव्हा तुम्ही तुमचा फोन सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+    <string name="crypt_keeper_failed_summary" product="tablet" msgid="7844833877734529625">"कूटबद्धीकरणात व्यत्यय आला आणि हे पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या टॅबलेटवरील डेटा यापुढे प्रवेशयोग्य राहणार नाही. \n\n तुमचा टॅबलेट वापरून पुन्हा सुरू करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+    <string name="crypt_keeper_failed_summary" product="default" msgid="2895589681839090312">"कूटबद्धीकरणात व्यत्यय आला आणि पूर्ण होऊ शकत नाही. परिणामस्वरूप, आपल्या फोनवरील डेटा यापुढे प्रवेशयोग्य नाही.\n\nतुमचा फोन वापरणे पुन्हा सुरू करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करण्याची आवश्यकता आहे. रीसेट केल्यानंतर जेव्हा तुम्ही तुमचा फोन सेट करता, तेव्हा आपल्याकडे आपल्या Google खात्यावर बॅकअप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
     <string name="crypt_keeper_data_corrupt_title" msgid="6561535293845985713">"विकूटन अयशस्वी"</string>
-    <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="7018748502706237323">"तुम्ही एंटर केलेला पासवर्ड चुकीचा आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा टॅबलेट वापरणे पुनः सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा तुम्हाला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
-    <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="5798580588985326937">"तुम्ही एंटर केलेला पासवर्ड बरोबर आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा फोन वापरणे पुनः सुरु करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा फोन सेट करता, तेव्हा तुम्हाला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+    <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="7018748502706237323">"तुम्ही एंटर केलेला पासवर्ड चुकीचा आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा टॅबलेट वापरणे पुनः सुरू करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा टॅबलेट सेट करता, तेव्हा तुम्हाला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
+    <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="5798580588985326937">"तुम्ही एंटर केलेला पासवर्ड बरोबर आहे, परंतु दुर्दैवाने तुमचा डेटा दूषित आहे. \n\nतुमचा फोन वापरणे पुनः सुरू करण्यासाठी, तुम्हाला फॅक्टरी रीसेट करणे आवश्यक आहे. रीसेट केल्यानंतर तुम्ही तुमचा फोन सेट करता, तेव्हा तुम्हाला आपल्या Google खात्यावर बॅक अप घेतलेला कोणताही डेटा रीस्टोअर करण्याची संधी असेल."</string>
     <string name="crypt_keeper_switch_input_method" msgid="4744137470890459582">"इनपुट पद्धत स्विच करा"</string>
     <string name="suggested_lock_settings_title" msgid="1518155558803371661">"तुमचा फोन सुरक्षित ठेवा"</string>
     <string name="suggested_lock_settings_summary" product="tablet" msgid="1861066918594412519">"टॅबलेटचे संरक्षण करण्‍यासाठी स्‍क्रीन लॉक सेट करा"</string>
@@ -579,7 +578,7 @@
     <string name="fingerprint_unlock_set_unlock_pattern" msgid="132337696546315927">"फिंगरप्रिंट + पॅटर्न"</string>
     <string name="fingerprint_unlock_set_unlock_pin" msgid="886426673328906002">"फिंगरप्रिंट + पिन"</string>
     <string name="fingerprint_unlock_set_unlock_password" msgid="3325527833422156515">"फिंगरप्रिंट + पासवर्ड"</string>
-    <string name="fingerprint_unlock_skip_fingerprint" msgid="2063700014903801639">"फिंगरप्रिंट न वापरता सुरु ठेवा"</string>
+    <string name="fingerprint_unlock_skip_fingerprint" msgid="2063700014903801639">"फिंगरप्रिंट न वापरता सुरू ठेवा"</string>
     <string name="fingerprint_unlock_title" msgid="8009992449332532869">"तुम्ही आपल्या फिंगरप्रिंटचा वापर करून तुमचा फोन अनलॉक करू शकता. सुरक्षिततेसाठी, या पर्यायाकरिता एक बॅक अप स्क्रीन लॉक आवश्यक आहे."</string>
     <string name="face_unlock_set_unlock_pattern" msgid="3748596996869406905">"फेस ऑथेंटिकेशन + पॅटर्न"</string>
     <string name="face_unlock_set_unlock_pin" msgid="3320824093518497476">"फेस ऑथेंटिकेशन + पिन"</string>
@@ -659,7 +658,7 @@
       <item quantity="other">पिन किमान <xliff:g id="COUNT_1">%d</xliff:g> अंकी असणे आवश्यक आहे</item>
       <item quantity="one">पिनमध्ये किमान <xliff:g id="COUNT_0">%d</xliff:g> अंक असणे आवश्यक आहे</item>
     </plurals>
-    <string name="lockpassword_continue_label" msgid="7279261861924400655">"सुरु ठेवा"</string>
+    <string name="lockpassword_continue_label" msgid="7279261861924400655">"सुरू ठेवा"</string>
     <plurals name="lockpassword_password_too_long" formatted="false" msgid="7994068708438608179">
       <item quantity="other"><xliff:g id="NUMBER_1">%d</xliff:g> वर्णांपेक्षा कमी असणे आवश्यक आहे</item>
       <item quantity="one"><xliff:g id="NUMBER_0">%d</xliff:g> वर्णापेक्षा कमी असणे आवश्यक आहे</item>
@@ -712,7 +711,7 @@
     <string name="lockpattern_tutorial_cancel_label" msgid="450401426127674369">"रद्द करा"</string>
     <string name="lockpattern_tutorial_continue_label" msgid="8474690922559443018">"पुढील"</string>
     <string name="lock_setup" msgid="8710689848703935088">"सेटअप पूर्ण झाले आहे"</string>
-    <string name="manage_device_admin" msgid="322047441168191695">"डिव्हाइस अ‍ॅडमिन ॲप्‍स"</string>
+    <string name="manage_device_admin" msgid="322047441168191695">"डिव्हाइस अ‍ॅडमिन अ‍ॅप्स"</string>
     <string name="number_of_device_admins_none" msgid="8519193548630223132">"सक्रिय अ‍ॅप्स नाहीत"</string>
     <plurals name="number_of_device_admins" formatted="false" msgid="6445613288828151224">
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> सक्रिय अ‍ॅप्‍स</item>
@@ -726,13 +725,13 @@
       <item quantity="one">1 सक्रिय विश्वासू एजंट</item>
     </plurals>
     <string name="bluetooth_quick_toggle_title" msgid="7410319268406112792">"ब्लूटूथ"</string>
-    <string name="bluetooth_quick_toggle_summary" msgid="3951769568065428093">"ब्लूटूथ चालू करा"</string>
+    <string name="bluetooth_quick_toggle_summary" msgid="3951769568065428093">"ब्लूटूथ सुरू करा"</string>
     <string name="bluetooth_settings" msgid="5228032727293770389">"ब्लूटूथ"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"ब्लूटूथ"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"कनेक्शन व्यवस्थापित करा, डिव्हाइस नाव आणि शोधयोग्यता सेट करा"</string>
     <string name="bluetooth_pairing_request" msgid="7221745525632573125">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सह जोडायचे?"</string>
-    <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"ब्लूटूथ पेअरींग कोड"</string>
-    <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"पेअरींग कोड टाइप करा नंतर Return किंवा Enter दाबा"</string>
+    <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"ब्लूटूथ पेअरिंग कोड"</string>
+    <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"पेअरिंग कोड टाइप करा नंतर Return किंवा Enter दाबा"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"पिन मध्ये अक्षरे किंवा प्रतीके आहेत"</string>
     <string name="bluetooth_pin_values_hint" msgid="8044671726261326240">"सामान्यतः 0000 किंवा 1234"</string>
     <string name="bluetooth_pin_values_hint_16_digits" msgid="2665983525706661525">"16 अंक असणे आवश्यक आहे"</string>
@@ -741,7 +740,7 @@
     <string name="bluetooth_confirm_passkey_msg" msgid="7094455604290076371">"यासह जोडण्यासाठी:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt;हे ही पासकी दर्शवत असल्याचे सुनिश्चित करा:&lt;br&gt;&lt;b&gt;<xliff:g id="PASSKEY">%2$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_incoming_pairing_msg" msgid="940451919337185024">"यावरून:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt;हे डिव्हाइस जोडायचे?"</string>
     <string name="bluetooth_display_passkey_pin_msg" msgid="5909423849232791647">"यासह जोडण्यासाठी:<xliff:g id="BOLD1_0">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1">&lt;/b&gt;&lt;br&gt;&lt;br&gt;</xliff:g>यावर टाइप करा:<xliff:g id="BOLD2_1">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2">&lt;/b&gt;</xliff:g>, नंतर Return किंवा Enter दाबा."</string>
-    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"तुमच्या संपर्क आणि कॉल इतिहासातील अ‍ॅक्सेसची अनुमती द्या"</string>
+    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"तुमचे संपर्क आणि कॉल इतिहास अ‍ॅक्सेस करण्याची अनुमती द्या"</string>
     <string name="bluetooth_error_title" msgid="5718761586633101960"></string>
     <string name="bluetooth_connecting_error_message" msgid="8473359363469518478">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सह कनेक्ट करणे शक्य झाले नाही."</string>
     <string name="bluetooth_preference_scan_title" msgid="457781003962324807">"डिव्हाइसेससाठी स्कॅन करा"</string>
@@ -766,8 +765,8 @@
     <string name="bluetooth_device_context_connect_advanced" msgid="423463405499392444">"पर्याय…"</string>
     <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"प्रगत"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"प्रगत ब्लूटूथ"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"ब्लूटूथ चालू असते तेव्हा, तुमचे डिव्हाइस इतर जवळच्या ब्लूटूथ डिव्हाइस सह संवाद करु शकते."</string>
-    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"ब्‍लूटूथ सुरू असताना, तुमचे डिव्‍हाइस इतर जवळपासच्‍या ब्‍लूटूथ डिव्‍हाइसशी संवाद साधू शकते.\n\nडिव्‍हाइस अनुभव सुधारण्‍यासाठी, ॲप्‍स आणि सेवा ब्‍लूटूथ सुरू असताना देखील, अजूनही जवळपासचे डिव्‍हाइस कधीही स्‍कॅन करू शकते. उदाहरणार्थ, याचा वापर स्‍थानावर आधारित वैशिष्‍ट्ये आणि सेवा सुधारण्‍यात केला जाऊ शकतो. तुम्‍ही हे "<annotation id="link">"स्‍कॅनिंग सेटिंग्‍ज"</annotation>" मध्‍ये जाऊन बदलू शकता."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"ब्लूटूथ सुरू असते तेव्हा, तुमचे डिव्हाइस इतर जवळच्या ब्लूटूथ डिव्हाइस सह संवाद करु शकते."</string>
+    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"ब्‍लूटूथ सुरू असताना, तुमचे डिव्‍हाइस इतर जवळपासच्‍या ब्‍लूटूथ डिव्‍हाइसशी संवाद साधू शकते.\n\nडिव्‍हाइस अनुभव सुधारण्‍यासाठी, अ‍ॅप्स आणि सेवा ब्‍लूटूथ सुरू असताना देखील, अजूनही जवळपासचे डिव्‍हाइस कधीही स्‍कॅन करू शकते. उदाहरणार्थ, याचा वापर स्‍थानावर आधारित वैशिष्‍ट्ये आणि सेवा सुधारण्‍यात केला जाऊ शकतो. तुम्‍ही हे "<annotation id="link">"स्‍कॅनिंग सेटिंग्‍ज"</annotation>" मध्‍ये जाऊन बदलू शकता."</string>
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"स्‍थान अचूकता सुधारण्‍यासाठी, सिस्टम अ‍ॅप्स आणि सेवा अद्याप ब्लूटूथ डिव्हाइस शोधू शकतात. तुम्ही हे <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्कॅनिंग सेटिंग्ज<xliff:g id="LINK_END_1">LINK_END</xliff:g> मध्‍ये बदलू शकता."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"कनेक्ट होऊ शकत नाही. पुन्हा प्रयत्न करा."</string>
     <string name="device_details_title" msgid="726517818032923222">"डिव्हाइस तपशील"</string>
@@ -817,14 +816,14 @@
     <string name="wifi_tap_to_sign_in" msgid="1075925570550560453">"नेटवर्कवर साइन इन करण्यासाठी येथे टॅप करा"</string>
     <string name="tx_link_speed" msgid="4557508597788146162">"<xliff:g id="TRANSMIT_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
     <string name="rx_link_speed" msgid="3735337600274627581">"<xliff:g id="RECEIVE_LINK_SPEED">%1$d</xliff:g> Mbps"</string>
-    <string name="wifi_ask_enable" msgid="925862998663619616">"<xliff:g id="REQUESTER">%s</xliff:g> वाय-फाय चालू करू इच्छित आहे"</string>
+    <string name="wifi_ask_enable" msgid="925862998663619616">"<xliff:g id="REQUESTER">%s</xliff:g> वाय-फाय सुरू करू इच्छित आहे"</string>
     <string name="wifi_ask_disable" msgid="2146839060110412974">"<xliff:g id="REQUESTER">%s</xliff:g> वाय-फाय बंद करू इच्छित आहे"</string>
     <string name="art_verifier_for_debuggable_title" msgid="5223835619409464642">"डीबग करण्यायोग्य ॲप्सच्या बाइटकोडची पडताळणी करा"</string>
     <string name="art_verifier_for_debuggable_summary" msgid="2204242476996701111">"डीबग करण्यायोग्य ॲप्ससाठी बाइटकोडची पडताळणी करण्यासाठी ART ला अनुमती द्या"</string>
     <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="983451155092850657">"टॅबलेट दुसर्‍या डिव्हाइसला स्पर्श करतो तेव्हा डेटा अदलाबदलीस अनुमती द्या"</string>
     <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"फोन दुसर्‍या डिव्हाइसला स्पर्श करतो तेव्हा डेटा अदलाबदलीस अनुमती द्या"</string>
-    <string name="nfc_disclaimer_title" msgid="4860231267351602970">"NFC चालू करा"</string>
+    <string name="nfc_disclaimer_title" msgid="4860231267351602970">"NFC सुरू करा"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC हे डिव्हाइस आणि दुसरे जवळपासचे डिव्हाइस किंवा पेमेंट टर्मिनल, ॲक्सेस रीडर आणि सुसंवादी जाहिराती किंवा टॅग यासारख्या लक्ष्यांमधील डेटाची अदलाबदल करते."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"NFC चे संरक्षण करा"</string>
     <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"स्क्रीन अनलॉक केल्यावर NFC पेमेंट आणि फक्त परिवहन वापरासाठीला अनुमती द्या"</string>
@@ -833,16 +832,16 @@
     <string name="android_beam_off_summary" msgid="7365818039159364600">"बंद"</string>
     <string name="nfc_disabled_summary" msgid="2181777971122724361">"NFC बंद असल्यामुळे उपलब्ध नाही"</string>
     <string name="android_beam_label" msgid="5340299879556025708">"Android बीम"</string>
-    <string name="android_beam_explained" msgid="4501176353247859329">"जेव्हा हे वैशिष्ट्य चालू केलेले असते तेव्हा, तुम्ही डिव्हाइस एकत्र जवळ धरून दुसर्‍या NFC-सक्षम डिव्हाइस वर अ‍ॅपचा आशय बीम करू शकता. उदाहरणार्थ, तुम्ही वेब पेज, YouTube व्हिडिओ, संपर्क आणि बरेच काही बीम करू शकता.\n\nफक्त डिव्हाइस एकत्र आणा (विशेषतः पाठोपाठ) आणि नंतर स्क्रीन टॅप करा. काय बीम केले जाते हे अ‍ॅप निर्धारित करते."</string>
+    <string name="android_beam_explained" msgid="4501176353247859329">"जेव्हा हे वैशिष्ट्य सुरू केलेले असते तेव्हा, तुम्ही डिव्हाइस एकत्र जवळ धरून दुसर्‍या NFC-सक्षम डिव्हाइस वर अ‍ॅपचा आशय बीम करू शकता. उदाहरणार्थ, तुम्ही वेब पेज, YouTube व्हिडिओ, संपर्क आणि बरेच काही बीम करू शकता.\n\nफक्त डिव्हाइस एकत्र आणा (विशेषतः पाठोपाठ) आणि नंतर स्क्रीन टॅप करा. काय बीम केले जाते हे अ‍ॅप निर्धारित करते."</string>
     <string name="wifi_quick_toggle_title" msgid="7935778388625246184">"वाय-फाय"</string>
-    <string name="wifi_quick_toggle_summary" msgid="2879870570547594266">"वाय-फाय चालू करा"</string>
+    <string name="wifi_quick_toggle_summary" msgid="2879870570547594266">"वाय-फाय सुरू करा"</string>
     <string name="wifi_settings" msgid="7486492317310514109">"वाय-फाय"</string>
     <string name="wifi_settings_master_switch_title" msgid="3917916944694253946">"वाय-फाय वापरा"</string>
     <string name="wifi_settings_category" msgid="9094716747565527901">"वाय-फाय सेटिंग्ज"</string>
     <string name="wifi_settings_title" msgid="5265554991622344805">"वाय-फाय"</string>
     <string name="wifi_settings_summary" msgid="7117267255799892820">"वायरलेस प्रवेश बिंदू सेट करा आणि  व्यवस्थापित करा"</string>
     <string name="wifi_select_network" msgid="2541598480767312831">"वाय-फाय निवडा"</string>
-    <string name="wifi_starting" msgid="1299466156783469023">"वाय-फाय चालू करत आहे..."</string>
+    <string name="wifi_starting" msgid="1299466156783469023">"वाय-फाय सुरू करत आहे..."</string>
     <string name="wifi_stopping" msgid="413711069039939520">"वाय-फाय बंद करत आहे…"</string>
     <string name="wifi_error" msgid="5605801874484465557">"एरर"</string>
     <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"या देशात 5 GHz बँड उपलब्‍ध नाही"</string>
@@ -863,21 +862,21 @@
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"वापरण्‍यासाठी, सुसंगत नेटवर्क रेटिंग पुरवठादार निवडा"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"प्रमाणपत्रे इंस्टॉल करा"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"स्थान अचूकता सुधारण्यासाठी अ‍ॅप्स आणि सेवा वाय-फाय बंद असतानाही कधीही वाय-फाय नेटवर्क शोधण्यासाठी स्कॅन करू शकतात. स्थानाधारित वैशिष्ट्ये आणि सेवांमध्ये सुधारणा करण्यासाठी हे वापरले जाऊ शकते. तुम्ही हे <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्कॅनिंग सेटिंग्ज<xliff:g id="LINK_END_1">LINK_END</xliff:g> मध्ये बदलू शकता."</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"स्थान अचूकता वाढवण्यासाठी, <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्कॅनिंग सेटिंग्ज<xliff:g id="LINK_END_1">LINK_END</xliff:g> मध्ये वाय-फाय स्कॅनिंग चालू करा."</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"स्थान अचूकता वाढवण्यासाठी, <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्कॅनिंग सेटिंग्ज<xliff:g id="LINK_END_1">LINK_END</xliff:g> मध्ये वाय-फाय स्कॅनिंग सुरू करा."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"पुन्हा दर्शवू नका"</string>
-    <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"निष्क्रिय असताना वाय-फाय चालू ठेवा"</string>
-    <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"निष्क्रिय करा दरम्यान वाय-फाय चालू"</string>
+    <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"निष्क्रिय असताना वाय-फाय सुरू ठेवा"</string>
+    <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"निष्क्रिय करा दरम्यान वाय-फाय सुरू"</string>
     <string name="wifi_setting_sleep_policy_error" msgid="9029652631829560733">"सेटिंग बदलताना समस्या आली"</string>
     <string name="wifi_suspend_efficiency_title" msgid="5292408676086580527">"कार्यक्षमतेत सुधारणा करा"</string>
     <string name="wifi_suspend_optimizations" msgid="8826033336622472222">"वाय-फाय ऑप्टिमायझेशन"</string>
-    <string name="wifi_suspend_optimizations_summary" msgid="2375789014394339008">"वाय-फाय चालू असताना बॅटरी वापर कमी करा"</string>
+    <string name="wifi_suspend_optimizations_summary" msgid="2375789014394339008">"वाय-फाय सुरू असताना बॅटरी वापर कमी करा"</string>
     <string name="wifi_limit_optimizations_summary" msgid="1192849485764156570">"वाय-फाय द्वारे वापरलेल्या बॅटरीवर मर्यादा घाला"</string>
     <string name="wifi_switch_away_when_unvalidated" msgid="2418577764071293971">"वाय-फायला इंटरनेट ॲक्सेस नसल्यास मोबाइल डेटावर स्विच करा."</string>
     <string name="wifi_cellular_data_fallback_title" msgid="5067241930716252665">"मोबाइल डेटावर स्‍वयंचलितपणे स्विच करा"</string>
     <string name="wifi_cellular_data_fallback_summary" msgid="2721467405851519769">"वाय-फायवरून इंटरनेट ॲक्सेस नसताना मोबाइल डेटा वापरा. डेटा वापर शुल्क लागू शकते."</string>
     <string name="wifi_add_network" msgid="4094957940791876640">"नेटवर्क जोडा"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"वाय-फाय प्राधान्ये"</string>
-    <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"वाय-फाय आपोआप परत चालू होते"</string>
+    <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"वाय-फाय आपोआप परत सुरू होते"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"वाय-फाय आपोआप परत सुरू होत नाही"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"वाय-फाय नेटवर्क"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"अधिक पर्याय"</string>
@@ -889,7 +888,7 @@
     <string name="wifi_menu_remember" msgid="717257200269700641">"नेटवर्क लक्षात ठेवा"</string>
     <string name="wifi_menu_forget" msgid="7561140554450163075">"नेटवर्क विसरा"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"नेटवर्क सुधारित करा"</string>
-    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"उपलब्ध नेटवर्क पाहण्यासाठी, वाय-फाय चालू करा."</string>
+    <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"उपलब्ध नेटवर्क पाहण्यासाठी, वाय-फाय सुरू करा."</string>
     <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"वाय-फाय नेटवर्क शोधत आहे…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"तुम्हाला वाय-फाय नेटवर्क बदलण्याची परवानगी नाही."</string>
     <string name="wifi_more" msgid="3538241640407382185">"अधिक"</string>
@@ -981,7 +980,7 @@
     <string name="wifi_wps_available_second_item" msgid="5703265526619705185">" (WPS उपलब्ध)"</string>
     <string name="wifi_carrier_connect" msgid="7202618367339982884">"वाहक वाय-फाय नेटवर्क"</string>
     <string name="wifi_carrier_content" msgid="3467402515071949783">"<xliff:g id="NAME">%1$s</xliff:g> ने कनेक्ट करा"</string>
-    <string name="wifi_scan_always_turnon_message" msgid="7811846312032594248">"स्थान अचूकता सुधारण्यासाठी आणि इतर हेतूंसाठी, <xliff:g id="APP_NAME">%1$s</xliff:g> ला नेटवर्क स्कॅनिंग चालू करण्याची आवश्यकता आहे, वाय-फाय बंद असताना देखील.\n\nस्कॅन करू इच्छित सर्व ॲप्सना अनुमती द्यायची?"</string>
+    <string name="wifi_scan_always_turnon_message" msgid="7811846312032594248">"स्थान अचूकता सुधारण्यासाठी आणि इतर हेतूंसाठी, <xliff:g id="APP_NAME">%1$s</xliff:g> ला नेटवर्क स्कॅनिंग सुरू करण्याची आवश्यकता आहे, वाय-फाय बंद असताना देखील.\n\nस्कॅन करू इच्छित सर्व ॲप्सना अनुमती द्यायची?"</string>
     <string name="wifi_scan_always_turnoff_message" msgid="556993843641750002">"हे बंद करण्यासाठी, ओव्हरफ्लो मेनू मधील प्रगत वर जा."</string>
     <string name="wifi_scan_always_confirm_allow" msgid="8857664849515496237">"अनुमती द्या"</string>
     <string name="wifi_scan_always_confirm_deny" msgid="6190909841125369403">"नकार द्या"</string>
@@ -994,7 +993,7 @@
     <string name="lost_internet_access_title" msgid="1061916948695946130">"वाय-फाय इंटरनेटशी कनेक्ट केलेले नाही"</string>
     <string name="lost_internet_access_text" msgid="8962010031520731813">"वाय-फायचे कनेक्शन खराब असताना तुम्ही मोबाइल नेटवर्कवर स्विच करू शकता. डेटा वापर शुल्क लागू होऊ शकते."</string>
     <string name="lost_internet_access_switch" msgid="9218006455779873700">"मोबाइलवर स्विच करा"</string>
-    <string name="lost_internet_access_cancel" msgid="6577871064062518744">"वाय‑फाय वर सुरु ठेवा"</string>
+    <string name="lost_internet_access_cancel" msgid="6577871064062518744">"वाय‑फाय वर सुरू ठेवा"</string>
     <string name="lost_internet_access_persist" msgid="6368659013482055611">"पुन्हा कधीही दर्शवू नका"</string>
     <string name="wifi_connect" msgid="5653612760223533650">"कनेक्ट करा"</string>
     <string name="wifi_turned_on_message" msgid="3377779146238242894">"वाय-फाय सुरू केले आहे"</string>
@@ -1046,7 +1045,7 @@
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"हे कनेक्शन लक्षात ठेवा"</string>
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"डिव्हाइसेस शोधा"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"शोधत आहे..."</string>
-    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"डीव्हाइसला पुन्हा नाव द्या"</string>
+    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"डिव्हाइसला पुन्हा नाव द्या"</string>
     <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"पीअर डिव्हाइसेस"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"लक्षात ठेवलेले समूह"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"कनेक्ट करु शकलो नाही"</string>
@@ -1061,10 +1060,10 @@
     <string name="wifi_hotspot_off_subtext" msgid="6177054857136221058">"इतर डिव्हाइससोबत इंटरनेट किंवा आशय शेअर करत नाही"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="tablet" msgid="71421730039785897">"या टॅबलेटचे इंटरनेट कनेक्शन हॉटस्पॉटने शेअर करत आहे"</string>
     <string name="wifi_hotspot_tethering_on_subtext" product="default" msgid="8914285514605049879">"या फोनचे इंटरनेट कनेक्शन हॉटस्पॉटने शेअर करत आहे"</string>
-    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"अ‍ॅप आशय शेअर करत आहे. इंटरनेट कनेक्शन शेअर करण्यासाठी, हॉटस्‍पॉट बंद करा, नंतर चालू करा"</string>
+    <string name="wifi_hotspot_on_local_only_subtext" msgid="7415381343846704553">"अ‍ॅप आशय शेअर करत आहे. इंटरनेट कनेक्शन शेअर करण्यासाठी, हॉटस्‍पॉट बंद करा, नंतर सुरू करा"</string>
     <string name="wifi_hotspot_no_password_subtext" msgid="5400500962974373706">"पासवर्ड सेट केलेला नाही"</string>
     <string name="wifi_hotspot_name_title" msgid="6572202165400226127">"हॉटस्पॉट नाव"</string>
-    <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> चालू करत आहे..."</string>
+    <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> सुरू करत आहे..."</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"इतर डिव्हाइस <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>शी कनेक्ट होऊ शकतात"</string>
     <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"हॉटस्पॉट पासवर्ड"</string>
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"AP बॅंड"</string>
@@ -1072,7 +1071,7 @@
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"जवळपासच्या डिव्हाइससोबत आशय शेअर करण्यासाठी अ‍ॅप्स हॉटस्पॉट तयार करू शकतात."</string>
     <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"हॉटस्पॉट आपोआप बंद करा"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"कुठलीही डिव्हाइस कनेक्ट केली नसल्यास, वाय-फाय हॉटस्पॉट बंद होईल"</string>
-    <string name="wifi_tether_starting" msgid="7676952148471297900">"हॉटस्पॉट चालू करत आहे…"</string>
+    <string name="wifi_tether_starting" msgid="7676952148471297900">"हॉटस्पॉट सुरू करत आहे…"</string>
     <string name="wifi_tether_stopping" msgid="7478561853791953349">"हॉटस्पॉट बंद करत आहे…"</string>
     <string name="wifi_tether_enabled_subtext" msgid="7534760116478734006">"<xliff:g id="NETWORK_SSID">%1$s</xliff:g> सक्रिय आहे"</string>
     <string name="wifi_tether_failed_subtext" msgid="3501001612207106">"पोर्टेबल वाय-फाय हॉटस्पॉट एरर"</string>
@@ -1103,11 +1102,14 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"वाय-फाय"</item>
+    <item msgid="2271962426654621656">"मोबाइल"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"वाय-फाय उपलब्ध नसल्यास, मोबाइल नेटवर्क वापरा"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"मोबाइल नेटवर्क उपलब्ध नसल्यास, वाय-फाय वापरा"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"वाय-फायवरून कॉल करा. वाय-फाय गमावल्यास, कॉल संपेल."</string>
-    <string name="wifi_calling_off_explanation" msgid="1653424723742898015">"वाय-फाय कॉलिंग चालू असताना, तुमचा फोन तुमच्या प्राधान्यावर आणि कोणता सिग्नल मजबूत आहे याच्या आधारावर, वाय-फाय नेटवर्क किंवा तुमच्या वाहकाच्या नेटवर्कद्वारे कॉल राउट करू शकतो. हे वैशिष्ट्य सुरू करण्यापूर्वी, फी आणि इतर तपशीलांच्या संबंधात तुमच्या वाहकास विचारा. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
+    <string name="wifi_calling_off_explanation" msgid="1653424723742898015">"वाय-फाय कॉलिंग सुरू असताना, तुमचा फोन तुमच्या प्राधान्यावर आणि कोणता सिग्नल मजबूत आहे याच्या आधारावर, वाय-फाय नेटवर्क किंवा तुमच्या वाहकाच्या नेटवर्कद्वारे कॉल राउट करू शकतो. हे वैशिष्ट्य सुरू करण्यापूर्वी, फी आणि इतर तपशीलांच्या संबंधात तुमच्या वाहकास विचारा. <xliff:g id="ADDITIONAL_TEXT">%1$s</xliff:g>"</string>
     <string name="wifi_calling_off_explanation_2" msgid="8648609693875720408"></string>
     <string name="emergency_address_title" msgid="5779915349686787024">"संकटकालीन पत्ता"</string>
     <string name="emergency_address_summary" msgid="478668478569851714">"तुम्ही वाय-फाय वरून आणीबाणी कॉल केल्यावर हे तुमचे स्थान असल्याचे दाखवले जाते"</string>
@@ -1180,7 +1182,7 @@
     <string name="accelerometer_summary_on" product="default" msgid="6454733048264875491">"फोन फिरवताना ओरिएंटेशन आपोआप स्विच करा"</string>
     <string name="accelerometer_summary_off" product="tablet" msgid="2663240868158338608">"टॅब्लेट फिरवताना ओरिएंटेशन आपोआप स्विच करा"</string>
     <string name="accelerometer_summary_off" product="default" msgid="3366996018631557687">"फोन फिरवताना ओरिएंटेशन आपोआप स्विच करा"</string>
-    <string name="brightness" msgid="7309120144111305275">"चकाकी स्तर"</string>
+    <string name="brightness" msgid="7309120144111305275">"ब्राइटनेस पातळी"</string>
     <string name="brightness_title" msgid="5660190946911149690">"चकाकी"</string>
     <string name="brightness_summary" msgid="8687101964451818730">"स्क्रीनची चकाकी समायोजित करा"</string>
     <string name="auto_brightness_title" msgid="908511534369820426">"अ‍ॅडॅप्टिव्ह ब्राइटनेस"</string>
@@ -1200,7 +1202,7 @@
     <string name="auto_brightness_subtitle" msgid="8516999348793100665">"तुम्ही प्राधान्य दिलेला उज्ज्वलता स्तर"</string>
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"उपलब्ध प्रकाशासाठी समायोजित करू नका"</string>
     <string name="auto_brightness_very_high_summary" msgid="7202032980509583918">"वाढलेला बॅटरी वापर"</string>
-    <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"उपलब्ध प्रकाशासाठी उज्ज्वलता स्तर अनुकूल करा. हे वैशिष्ट्य चालू असताना, तुम्ही तरीही उज्ज्वलता तात्पुरती समायोजित करू शकता."</string>
+    <string name="auto_brightness_disclaimer" msgid="5416696351199148809">"उपलब्ध प्रकाशासाठी उज्ज्वलता स्तर अनुकूल करा. हे वैशिष्ट्य सुरू असताना, तुम्ही तरीही उज्ज्वलता तात्पुरती समायोजित करू शकता."</string>
     <string name="auto_brightness_description" msgid="8209140379089535411">"तुमच्या स्क्रीनचा ब्राइटनेस तुमच्या वातावरण आणि ॲक्टिव्हिटीशी आपोआप अ‍ॅडजस्ट होईल. अ‍ॅडॅप्टिव्ह ब्राइटनेसला तुमची प्राधान्ये जाणून घेण्यात मदत करण्यासाठी तुम्ही स्लाइडर मॅन्युअली हलवू शकता."</string>
     <string name="display_white_balance_title" msgid="5747260735311935143">"व्हाइट बॅलन्स डिस्प्ले करा"</string>
     <string name="adaptive_sleep_title" msgid="3237620948260957018">"स्क्रीन अवेअर"</string>
@@ -1212,7 +1214,7 @@
     <string name="night_display_text" msgid="5330502493684652527">"रात्रीचा प्रकाश तुमच्या स्क्रीनला पिवळसर तपकिरी छटा देतो. यामुळे मंद प्रकाशात तुमची स्क्रीन पाहणे किंवा वाचणे सोपे होते आणि तुम्हाला झोप येण्यात मदत होऊ शकते."</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"शेड्युल"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"काहीही नाही"</string>
-    <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"ठराविक वेळी सुरू होतो"</string>
+    <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"ठरावीक वेळी सुरू होतो"</string>
     <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"सूर्यास्त-सूर्योदय सुरू राहतो"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"सुरू होण्याची वेळ"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"संपण्याची वेळ"</string>
@@ -1220,9 +1222,9 @@
     <string name="night_display_temperature_title" msgid="8375126629902616296">"तीव्रता"</string>
     <string name="night_display_summary_off" msgid="8850539785332228069">"बंद / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"आपोआप कधीही सुरू होणार नाही"</string>
-    <string name="night_display_summary_off_auto_mode_custom" msgid="596847003171394411">"<xliff:g id="ID_1">%1$s</xliff:g> वाजता आपोआप चालू होईल"</string>
-    <string name="night_display_summary_off_auto_mode_twilight" msgid="4071750976585359952">"सूर्यास्ताच्या वेळी आपोआप चालू होईल"</string>
-    <string name="night_display_summary_on" msgid="6580571388791426596">"चालू / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="night_display_summary_off_auto_mode_custom" msgid="596847003171394411">"<xliff:g id="ID_1">%1$s</xliff:g> वाजता आपोआप सुरू होईल"</string>
+    <string name="night_display_summary_off_auto_mode_twilight" msgid="4071750976585359952">"सूर्यास्ताच्या वेळी आपोआप सुरू होईल"</string>
+    <string name="night_display_summary_on" msgid="6580571388791426596">"सुरू / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_summary_on_auto_mode_never" msgid="5461580863060506687">"आपोआप कधीही बंद होणार नाही"</string>
     <string name="night_display_summary_on_auto_mode_custom" msgid="2200631112239399233">"<xliff:g id="ID_1">%1$s</xliff:g> वाजता आपोआप बंद होईल"</string>
     <string name="night_display_summary_on_auto_mode_twilight" msgid="8386769601369289561">"सूर्योदयाच्या वेळी आपोआप बंद होईल"</string>
@@ -1250,9 +1252,9 @@
     <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"डॉक केलेले असताना"</string>
     <string name="screensaver_settings_summary_never" msgid="3995259444981620707">"कधीही नाही"</string>
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"बंद"</string>
-    <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"फोन डॉक केलेला असताना आणि/किंवा निष्क्रिय असताना काय होते हे नियंत्रित करण्यासाठी स्क्रीन सेव्हर चालू करा."</string>
+    <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"फोन डॉक केलेला असताना आणि/किंवा निष्क्रिय असताना काय होते हे नियंत्रित करण्यासाठी स्क्रीन सेव्हर सुरू करा."</string>
     <string name="screensaver_settings_when_to_dream" msgid="3763052013516826348">"कधी सुरू करायचे"</string>
-    <string name="screensaver_settings_current" msgid="4017556173596361672">"सद्य स्क्रीन सेव्हर"</string>
+    <string name="screensaver_settings_current" msgid="4017556173596361672">"सध्याचा स्क्रीन सेव्हर"</string>
     <string name="screensaver_settings_dream_start" msgid="3772227299054662550">"आता सुरू करा"</string>
     <string name="screensaver_settings_button" msgid="4662384378821837589">"सेटिंग्ज"</string>
     <string name="automatic_brightness" msgid="8663792987774126192">"स्वयंचलित चकाकी"</string>
@@ -1352,10 +1354,10 @@
     <string name="status_data_state" msgid="4538705798873861963">"मोबाईल नेटवर्क स्थिती"</string>
     <string name="status_esim_id" msgid="9201767073386770286">"EID"</string>
     <string name="status_service_state" msgid="4406215321296496234">"सेवा स्थिती"</string>
-    <string name="status_signal_strength" msgid="4302597886933728789">"सिग्नल स्ट्रेंथ"</string>
+    <string name="status_signal_strength" msgid="4302597886933728789">"सिग्नल सामर्थ्य"</string>
     <string name="status_roaming" msgid="5191044997355099561">"रोमिंग"</string>
     <string name="status_operator" msgid="6017986100643755390">"नेटवर्क"</string>
-    <string name="status_wifi_mac_address" msgid="3868452167971295995">"वाय-फाय MAC पत्ता"</string>
+    <string name="status_wifi_mac_address" msgid="3868452167971295995">"वाय-फाय MAC अ‍ॅड्रेस"</string>
     <string name="status_bt_address" msgid="460568179311735657">"ब्लूटूथ पत्ता"</string>
     <string name="status_serial_number" msgid="8257722124627415159">"सिरीअल नंबर"</string>
     <string name="status_up_time" msgid="77128395333934087">"सुरू असल्याचा कालावधी"</string>
@@ -1373,7 +1375,7 @@
     <string name="memory_dcim_usage" msgid="599009211606524732">"चित्रे, व्हिडिओ"</string>
     <string name="memory_music_usage" msgid="809605300042546279">"ऑडिओ (संगीत, रिंगटोन, पॉडकास्ट इ.)"</string>
     <string name="memory_media_misc_usage" msgid="6258827529046910705">"इतर फायली"</string>
-    <string name="memory_media_cache_usage" msgid="1307620682751377717">"कॅश केलेला डेटा"</string>
+    <string name="memory_media_cache_usage" msgid="1307620682751377717">"कॅशे  केलेला डेटा"</string>
     <string name="sd_eject" product="nosdcard" msgid="3016608823130472449">"शेअर केलेले संचयन अनमाउंट करा"</string>
     <string name="sd_eject" product="default" msgid="4943338855474925396">"SD कार्ड अनमाउंट करा"</string>
     <string name="sd_eject_summary" product="nosdcard" msgid="8571017212318899178">"अंतर्गत USB स्टोरेज अनमाउंट करा"</string>
@@ -1388,8 +1390,8 @@
     <string name="sd_format" product="default" msgid="1346245995138883960">"SD कार्ड मिटवा"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="1179857727779521920">"अंतर्गत USB संचयनावरील सर्व डेटा मिटवते, जसे की संगीत आणि फोटो"</string>
     <string name="sd_format_summary" product="default" msgid="4284028411908176234">"SD कार्डवरील सर्व डेटा मिटवते, जसे की संगीत आणि फोटो"</string>
-    <string name="memory_clear_cache_title" msgid="4306793268129306684">"कॅश   केलेला डेटा साफ करायचा?"</string>
-    <string name="memory_clear_cache_message" msgid="6723120398411410031">"हे सर्व ॲप्ससाठी कॅश   केलेला डेटा साफ करेल."</string>
+    <string name="memory_clear_cache_title" msgid="4306793268129306684">"कॅशे    केलेला डेटा साफ करायचा?"</string>
+    <string name="memory_clear_cache_message" msgid="6723120398411410031">"हे सर्व ॲप्ससाठी कॅशे    केलेला डेटा साफ करेल."</string>
     <string name="mtp_ptp_mode_summary" msgid="6074099855478444183">"MTP किंवा TP कार्य सक्रिय आहे"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="3843209947310774105">"USB स्टोरेज अनमाउंट करायचे?"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="4400426555375434431">"SD कार्ड अनमाउंट करायचे?"</string>
@@ -1451,7 +1453,7 @@
     <string name="storage_detail_images" msgid="6996202225684468964">"इमेज"</string>
     <string name="storage_detail_videos" msgid="6030983354721080849">"व्हिडिओ"</string>
     <string name="storage_detail_audio" msgid="6011098436589663944">"ऑडिओ"</string>
-    <string name="storage_detail_cached" msgid="5761648455067920683">"कॅश केलेला डेटा"</string>
+    <string name="storage_detail_cached" msgid="5761648455067920683">"कॅशे  केलेला डेटा"</string>
     <string name="storage_detail_other" msgid="9164851767437306618">"इतर"</string>
     <string name="storage_detail_system" msgid="6784247618772153283">"सिस्टम"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"<xliff:g id="NAME">^1</xliff:g> एक्सप्लोर करा"</string>
@@ -1471,7 +1473,7 @@
     <string name="storage_wizard_format_progress_title" msgid="6905902731208646436">"<xliff:g id="NAME">^1</xliff:g> फॉर्मेट करत आहे…"</string>
     <string name="storage_wizard_format_progress_body" msgid="5346709539457190419">"फॉरमॅट होत असताना <xliff:g id="NAME">^1</xliff:g> काढू टाकू नका."</string>
     <string name="storage_wizard_migrate_title" msgid="7440473364104826496">"डेटा नवीन संचयनावर हलवा"</string>
-    <string name="storage_wizard_migrate_body" msgid="4959356431201831339">"या नवीन <xliff:g id="NAME">^1</xliff:g> वर तुम्ही तुमचे फोटो, फायली आणि काही अ‍ॅप्स हलवू शकता. \n\nहलविण्‍यास सुमारे <xliff:g id="TIME">^2</xliff:g> लागेल आणि अंतर्गत संचयनावर <xliff:g id="SIZE">^3</xliff:g> मोकळे करेल. काही अ‍ॅप्स सुरु असताना कार्य करणार नाहीत."</string>
+    <string name="storage_wizard_migrate_body" msgid="4959356431201831339">"या नवीन <xliff:g id="NAME">^1</xliff:g> वर तुम्ही तुमचे फोटो, फायली आणि काही अ‍ॅप्स हलवू शकता. \n\nहलविण्‍यास सुमारे <xliff:g id="TIME">^2</xliff:g> लागेल आणि अंतर्गत संचयनावर <xliff:g id="SIZE">^3</xliff:g> मोकळे करेल. काही अ‍ॅप्स सुरू असताना कार्य करणार नाहीत."</string>
     <string name="storage_wizard_migrate_now" msgid="9004605853000689024">"आता हलवा"</string>
     <string name="storage_wizard_migrate_later" msgid="5303070653970922924">"नंतर हलवा"</string>
     <string name="storage_wizard_migrate_confirm_title" msgid="5768497751644935313">"आता डेटा हलवा"</string>
@@ -1488,7 +1490,7 @@
     <string name="storage_wizard_move_progress_title" msgid="5250929161803336592">"<xliff:g id="APP">^1</xliff:g> हलवित आहे…"</string>
     <string name="storage_wizard_move_progress_body" msgid="1713792142250410169">"हलविण्‍यादरम्यान <xliff:g id="NAME">^1</xliff:g> काढू नका. \n\nहलविणे पूर्ण होईपर्यंत या डिव्‍हाइसवरील <xliff:g id="APP">^2</xliff:g> अ‍ॅप उपलब्‍ध नसेल."</string>
     <string name="storage_wizard_move_progress_cancel" msgid="9047521329704060401">"हलविणे रद्द करा"</string>
-    <string name="storage_wizard_slow_body" msgid="2307974936036261069">"हे <xliff:g id="NAME_0">^1</xliff:g> धीमे असल्याचे दिसते. \n\nतुम्ही सुरु ठेवू शकता परंतु या स्थानावर हलविलेल्या अ‍ॅप्समध्‍ये अडथळा येऊ शकतो आणि डेटा स्थानांतरणास बराच वेळ लागू शकतो. \n\nअधिक चांगल्या कार्यप्रदर्शनासाठी आणखी जलद <xliff:g id="NAME_1">^1</xliff:g> वापरण्‍याचा विचार करा."</string>
+    <string name="storage_wizard_slow_body" msgid="2307974936036261069">"हे <xliff:g id="NAME_0">^1</xliff:g> धीमे असल्याचे दिसते. \n\nतुम्ही सुरू ठेवू शकता परंतु या स्थानावर हलविलेल्या अ‍ॅप्समध्‍ये अडथळा येऊ शकतो आणि डेटा स्थानांतरणास बराच वेळ लागू शकतो. \n\nअधिक चांगल्या कार्यप्रदर्शनासाठी आणखी जलद <xliff:g id="NAME_1">^1</xliff:g> वापरण्‍याचा विचार करा."</string>
     <string name="storage_wizard_init_v2_title" msgid="7408910177547901960">"तुम्ही हे <xliff:g id="NAME">^1</xliff:g> कसे वापराल?"</string>
     <string name="storage_wizard_init_v2_internal_title" product="tablet" msgid="7948795312504302810">"अतिरिक्त टॅबलेट स्टोरेजसाठी वापरा"</string>
     <string name="storage_wizard_init_v2_internal_summary" product="tablet" msgid="6237770506398410172">"फक्त या टॅबलेटवरील अ‍ॅप्स, फायली आणि मीडियासाठी"</string>
@@ -1518,7 +1520,7 @@
     <string name="storage_wizard_slow_v2_title" msgid="4662009769135525740">"हळू <xliff:g id="NAME">^1</xliff:g>"</string>
     <string name="storage_wizard_slow_v2_body" msgid="4443996335261861797">"तुम्ही तरीही <xliff:g id="NAME_0">^1</xliff:g> वापरू शकता, परंतु ते हळू असू शकते. \n\nया <xliff:g id="NAME_1">^2</xliff:g> वर स्टोअर केलेली अ‍ॅप्स योग्यरित्या काम करू शकणार नाहीत आणि आशय ट्रांसफरसाठी जास्त वेळ लागू शकतो. \n\n जलद <xliff:g id="NAME_2">^3</xliff:g> वापरण्याचा प्रयत्न करा, किंवा त्याऐवजी पोर्टेबल स्टोरेजसाठी <xliff:g id="NAME_3">^4</xliff:g> वापरा."</string>
     <string name="storage_wizard_slow_v2_start_over" msgid="1686964124972424100">"पुन्हा सुरू करा"</string>
-    <string name="storage_wizard_slow_v2_continue" msgid="2320238517431613392">"सुरु ठेवा"</string>
+    <string name="storage_wizard_slow_v2_continue" msgid="2320238517431613392">"सुरू ठेवा"</string>
     <string name="storage_wizard_ready_v2_external_body" msgid="5803422587027895664">"तुम्‍ही <xliff:g id="NAME">^1</xliff:g> मध्‍ये आशय हलवू शकता"</string>
     <!-- syntax error in translation for storage_wizard_ready_v2_internal_body (678829432420351228) org.xmlpull.v1.XmlPullParserException: expected: /string read: b (position:END_TAG </b>@1:142 in     <string name="storage_wizard_ready_v2_internal_body" msgid="678829432420351228">"<xliff:g id="NAME">^1</xliff:g> वर आशय हलवण्यासाठी, "</b>"सेटिंग्ज &gt; स्टोरेज"<b>" वर जा"</string>
 )  -->
@@ -1569,10 +1571,10 @@
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"डीफॉल्ट APN सेटिंग्ज रीसेट करणे पूर्ण झाले."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"रीसेट पर्याय"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"नेटवर्क, अ‍ॅप्स आणि डिव्हाइस रीसेट केले जाऊ शकतात"</string>
-    <string name="reset_network_title" msgid="8944059136930806211">"वायफाय मोबाइल आणि ब्लूटूथ रीसेट करा"</string>
+    <string name="reset_network_title" msgid="8944059136930806211">"वाय-फाय, मोबाइल आणि ब्लूटूथ रीसेट करा"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"हे यांसह सर्व नेटवर्क सेटिंग्‍ज रीसेट करेल:\n\n"<li>"वाय‑फाय"</li>\n<li>"मोबाइल डेटा"</li>\n<li>"ब्लूटुथ"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"डाउनलोड केलेली सिम मिटवा"</string>
-    <string name="reset_esim_desc" msgid="433226911566802">"बदली सिम डाउनलोड करण्यासाठी, तुमच्या वाहकाशी संपर्क साधा. हे कोणतेही मोबाइल सेवा प्लॅन रद्द करणार नाही."</string>
+    <string name="reset_esim_desc" msgid="433226911566802">"बदली सिम डाउनलोड करण्यासाठी तुमच्या वाहकाशी संपर्क साधा. हे केल्याने कोणतेही मोबाइल सेवा प्लॅन रद्द होणार नाहीत."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"सेटिंग्ज रीसेट करा"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"सर्व नेटवर्क सेटिंग्ज रीसेट करायची? तुम्ही ही कृती पहिल्यासारखी करू शकत नाही."</string>
     <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"सर्व नेटवर्क सेटिंग्ज रीसेट करायची आणि डाउनलोड केलेली सिम मिटवायची? तुम्ही ही कृती पहिल्यासारखी करू शकत नाही."</string>
@@ -1585,12 +1587,12 @@
     <string name="master_clear_title" msgid="1560712943955904673">"सर्व डेटा मिटवा (फॅक्टरी रीसेट)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"सर्व डेटा मिटवा (फॅक्टरी रीसेट)"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"हे तुमच्या टॅबलेटच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि ॲप डेटा आणि सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अ‍ॅप्स"</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"हे तुमच्या फोनच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल, यासह:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अ‍ॅप डेटा सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अ‍ॅप्स"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"हे खालील ठिकाणी तुमच्या फोनच्या "<b>"अंतर्गत स्टोरेज"</b>" वरील सर्व डेटा मिटवेल:\n\n"<li>"तुमचे Google खाते"</li>\n<li>"सिस्टम आणि अ‍ॅप डेटा सेटिंग्ज"</li>\n<li>"डाउनलोड केलेली अ‍ॅप्स"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"तुम्ही खालील खात्यांवर सध्या साइन इन केले आहे:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"या डिव्‍हाइसवर इतर वापरकर्ते उपस्‍थित आहेत.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"संगीत"</li>\n<li>"फोटो"</li>\n<li>"अन्य वापरकर्ता डेटा"</li></string>
     <string name="master_clear_desc_also_erases_esim" msgid="4497260499055258773"><li>"eSIM"</li></string>
-    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"असे केल्‍याने तुमचा मोबाइल सेवा प्‍लॅन रद्द होणार नाही."</string>
+    <string name="master_clear_desc_no_cancel_mobile_plan" msgid="6072668588881679461">\n\n"हे केल्‍याने तुमचा मोबाइल सेवा प्‍लॅन रद्द होणार नाही."</string>
     <string name="master_clear_desc_erase_external_storage" product="nosdcard" msgid="2723272952715259307">\n\n"संगीत, चित्रे आणि अन्य वापरकर्ता डेटा साफ करण्यासाठी, "<b>"USB स्टोरेज"</b>" मिटविणे आवश्यक आहे."</string>
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="9003555775524798797">\n\n"संगीत, चित्रे आणि अन्य वापरकर्ता डेटा साफ करण्यासाठी, "<b>"SD कार्ड"</b>" पुसण्याची आवश्यकता आहे."</string>
     <string name="erase_external_storage" product="nosdcard" msgid="8989746770347525207">"USB स्टोरेज मिटवा"</string>
@@ -1614,10 +1616,10 @@
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"ब्लूटूथ टेदरिंग"</string>
     <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"टेदरिंग"</string>
     <string name="tether_settings_title_all" msgid="6935843543433954181">"हॉटस्‍पॉट आणि टेदरिंग"</string>
-    <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"हॉटस्पॉट चालू, टेदरिंग करत आहे"</string>
-    <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"हॉटस्पॉट चालू"</string>
+    <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"हॉटस्पॉट सुरू, टेदरिंग करत आहे"</string>
+    <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"हॉटस्पॉट सुरू"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"टेदरिंग"</string>
-    <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"डेटा सेव्हर चालू असताना टिथर करू शकत नाही किंवा पोर्टेबल हॉटस्पॉटचा वापर करू शकत नाही"</string>
+    <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"डेटा सेव्हर सुरू असताना टिथर करू शकत नाही किंवा पोर्टेबल हॉटस्पॉटचा वापर करू शकत नाही"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB टेदरिंग"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"फोनचे इंटरनेट कनेक्शन USB ने शेअर करा"</string>
@@ -1646,7 +1648,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"कृपया सिम कार्ड घाला आणि रीस्टार्ट करा"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"कृपया इंटरनेटशी कनेक्ट करा"</string>
     <string name="location_title" msgid="8664674161765477168">"माझे स्थान"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"कार्य प्रोफाईलसाठी स्थान"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"कार्य प्रोफाइलसाठी स्थान"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"अ‍ॅप परवानगी"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"स्‍थान बंद आहे"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1655,7 +1657,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"अलीकडील स्थान अ‍ॅक्सेस"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"तपशील पहा"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"अलीकडे कोणत्याही ॲप्सने स्थानाची विनंती केलेली नाही"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"अलीकडे कोणत्याही अ‍ॅप्सनी स्थानाची विनंती केलेली नाही"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"अलीकडे अ‍ॅक्सेस केलेल्या अ‍ॅप्सचे स्थान नाही"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"उच्च बॅटरी वापर"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"अल्प बॅटरी वापर"</string>
@@ -1725,12 +1727,12 @@
     <string name="lockpassword_choose_your_password_header_for_face" msgid="8823110536502072216">"फेस ऑथेंटिकेशन वापरण्यासाठी, पासवर्ड सेट करा"</string>
     <string name="lockpassword_choose_your_pattern_header_for_face" msgid="5563793748503883666">"फेस ऑथेंटिकेशन वापरण्यासाठी, पॅटर्न सेट करा"</string>
     <string name="lockpassword_choose_your_pin_header_for_face" msgid="7238352632535405068">"फेस ऑथेंटिकेशन वापरण्यासाठी, पिन सेट करा"</string>
-    <string name="lockpassword_confirm_your_pattern_generic" msgid="6146545393074070916">"सुरु ठेवण्यासाठी तुमच्या डिव्हाइस पॅटर्नचा वापर करा"</string>
-    <string name="lockpassword_confirm_your_pin_generic" msgid="8732268389177735264">"सुरु ठेवण्यासाठी तुमचे डिव्हाइस पिन एंटर करा"</string>
-    <string name="lockpassword_confirm_your_password_generic" msgid="6304552647060899594">"सुरु ठेवण्यासाठी तुमचे डिव्हाइस पासवर्ड एंटर करा"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"सुरु ठेवण्यासाठी आपल्या कार्य नमुन्याचा वापर करा"</string>
-    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"सुरु ठेवण्यासाठी तुमचा कार्य पिन एंटर करा"</string>
-    <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"सुरु ठेवण्यासाठी तुमचा कार्य पासवर्ड एंटर करा"</string>
+    <string name="lockpassword_confirm_your_pattern_generic" msgid="6146545393074070916">"सुरू ठेवण्यासाठी तुमच्या डिव्हाइस पॅटर्नचा वापर करा"</string>
+    <string name="lockpassword_confirm_your_pin_generic" msgid="8732268389177735264">"सुरू ठेवण्यासाठी तुमचे डिव्हाइस पिन एंटर करा"</string>
+    <string name="lockpassword_confirm_your_password_generic" msgid="6304552647060899594">"सुरू ठेवण्यासाठी तुमचे डिव्हाइस पासवर्ड एंटर करा"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"सुरू ठेवण्यासाठी आपल्या कार्य नमुन्याचा वापर करा"</string>
+    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"सुरू ठेवण्यासाठी तुमचा कार्य पिन एंटर करा"</string>
+    <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"सुरू ठेवण्यासाठी तुमचा कार्य पासवर्ड एंटर करा"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="1014214190135045781">"वाढीव सुरक्षिततेसाठी, तुमच्या डीव्हाइसचा पॅटर्न वापरा"</string>
     <string name="lockpassword_strong_auth_required_device_pin" msgid="24030584350601016">"वाढीव सुरक्षिततेसाठी, तुमच्या डिव्हाइसचा पिन टाका"</string>
     <string name="lockpassword_strong_auth_required_device_password" msgid="7746588206458754598">"वाढीव सुरक्षिततेसाठी, तुमच्या डिव्हाइसचा पासवर्ड टाका"</string>
@@ -1754,12 +1756,12 @@
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"पूर्ण झाल्यावर बोट सोडा"</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"कमीत कमी <xliff:g id="NUMBER">%d</xliff:g> बिंदू कनेक्ट करा. पुन्हा प्रयत्न करा."</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"पॅटर्न रेकॉर्ड झाला"</string>
-    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"पुष्टी करण्यासाठी पुन्हा नमूना रेखांकित करा"</string>
+    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"खात्री करण्यासाठी पॅटर्न पुन्हा एकदा काढा"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"तुमचा नवीन अनलॉक पॅटर्न"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"निश्चित करा"</string>
     <string name="lockpattern_restart_button_text" msgid="4322968353922529868">"पुन्हा रेखाटा"</string>
     <string name="lockpattern_retry_button_text" msgid="5473976578241534298">"साफ करा"</string>
-    <string name="lockpattern_continue_button_text" msgid="3328913552656376892">"सुरु ठेवा"</string>
+    <string name="lockpattern_continue_button_text" msgid="3328913552656376892">"सुरू ठेवा"</string>
     <string name="lockpattern_settings_title" msgid="5152005866870766842">"पॅटर्न अनलॉक करा"</string>
     <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"आवश्यक पॅटर्न"</string>
     <string name="lockpattern_settings_enable_summary" msgid="8027605503917737512">"स्क्रीन अनलॉक करण्यासाठी पॅटर्न रेखाटणे आवश्यक आहे"</string>
@@ -1803,9 +1805,9 @@
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"डीफॉल्ट"</string>
     <string name="screen_compatibility_label" msgid="3638271673726075815">"स्क्रीन सुसंगतता"</string>
     <string name="permissions_label" msgid="7341733648403464213">"परवानग्या"</string>
-    <string name="cache_header_label" msgid="3202284481380361966">"कॅश"</string>
-    <string name="clear_cache_btn_text" msgid="107507684844780651">"कॅश साफ करा"</string>
-    <string name="cache_size_label" msgid="6205173678102220499">"कॅश"</string>
+    <string name="cache_header_label" msgid="3202284481380361966">"कॅशे"</string>
+    <string name="clear_cache_btn_text" msgid="107507684844780651">"कॅशे  साफ करा"</string>
+    <string name="cache_size_label" msgid="6205173678102220499">"कॅशे"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="8938478333743197020">
       <item quantity="other">%d आयटम</item>
       <item quantity="one"> 1 आयटम</item>
@@ -1838,11 +1840,11 @@
     <string name="sort_order_size" msgid="3167376197248713027">"आकारानुसार क्रमवारी लावा"</string>
     <string name="sort_order_recent_notification" msgid="5592496977404445941">"सर्वात अलीकडील"</string>
     <string name="sort_order_frequent_notification" msgid="5640245013098010347">"सर्वाधिक"</string>
-    <string name="show_running_services" msgid="1895994322704667543">"चालू सेवा दर्शवा"</string>
-    <string name="show_background_processes" msgid="88012264528093617">"कॅश   केलेल्या प्रक्रिया दर्शवा"</string>
+    <string name="show_running_services" msgid="1895994322704667543">"सुरू सेवा दर्शवा"</string>
+    <string name="show_background_processes" msgid="88012264528093617">"कॅशे    केलेल्या प्रक्रिया दर्शवा"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"आणीबाणी अ‍ॅप"</string>
     <string name="reset_app_preferences" msgid="1426500030595212077">"अ‍ॅप प्राधान्ये रीसेट करा"</string>
-    <string name="reset_app_preferences_title" msgid="792909865493673598">"अ‍ॅप प्राधान्ये रीसेट करायचे?"</string>
+    <string name="reset_app_preferences_title" msgid="792909865493673598">"अ‍ॅप प्राधान्ये रीसेट करायची?"</string>
     <string name="reset_app_preferences_desc" msgid="7935273005301096031">"हे यासाठी सर्व प्राधान्ये रीसेट करेल:\n\n "<li>"बंद केलेली अ‍ॅप्स"</li>\n" "<li>"बंद केलेल्या अ‍ॅप्स सूचना"</li>\n" "<li>"क्रियांसाठी डीफॉल्ट अ‍ॅप्लिकेशन्स"</li>\n" "<li>"अ‍ॅप्ससाठी पार्श्वभूमीवरील डेटा प्रतिबंध"</li>\n" "<li>"कोणतेही परवानगी प्रतिबंध"</li>\n\n" तुम्ही कोणताही अ‍ॅप डेटा गमावणार नाही."</string>
     <string name="reset_app_preferences_button" msgid="2041894727477934656">"अ‍ॅप्स रीसेट करा"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"जागा व्यवस्थापित करा"</string>
@@ -1851,7 +1853,7 @@
     <string name="filter_apps_all" msgid="3938077534861382701">"सर्व अ‍ॅप्स"</string>
     <string name="filter_apps_disabled" msgid="5394488790555678117">"बंद केलेले अ‍ॅप्स"</string>
     <string name="filter_apps_third_party" msgid="3985794876813232322">"डाउनलोड केले"</string>
-    <string name="filter_apps_running" msgid="6852975378502426359">"चालू आहे"</string>
+    <string name="filter_apps_running" msgid="6852975378502426359">"सुरू आहे"</string>
     <string name="filter_apps_onsdcard" product="nosdcard" msgid="3501701148760911442">"USB स्टोरेज"</string>
     <string name="filter_apps_onsdcard" product="default" msgid="135989136394672864">"SD कार्डवर"</string>
     <string name="not_installed" msgid="6432131218496140253">"या वापरकर्त्यासाठी इंस्टॉल केले नाही"</string>
@@ -1893,13 +1895,13 @@
     <string name="app_install_details_title" msgid="6954953384372934881">"अ‍ॅप तपशील"</string>
     <string name="app_install_details_summary" msgid="6612222941121363940">"अ‍ॅप <xliff:g id="APP_STORE">%1$s</xliff:g> मधून इंस्टॉल केला"</string>
     <string name="instant_app_details_summary" msgid="6384264315914966114">"<xliff:g id="APP_STORE">%1$s</xliff:g> ची अधिक माहिती"</string>
-    <string name="app_ops_running" msgid="6378418969742957805">"चालू आहे"</string>
+    <string name="app_ops_running" msgid="6378418969742957805">"सुरू आहे"</string>
     <string name="app_ops_never_used" msgid="8305262378162525813">"(कधीही न वापरलेले)"</string>
     <string name="no_default_apps" msgid="4519038578011412532">"कोणतेही डीफॉल्‍ट अ‍ॅप्स नाहीत."</string>
     <string name="storageuse_settings_title" msgid="3390798597982116048">"संचयन वापर"</string>
     <string name="storageuse_settings_summary" msgid="3013328092465903687">"ॲप्सद्वारे वापरलेले संचयन पहा"</string>
     <string name="service_restarting" msgid="1190995225643385568">"रीस्टार्ट करत आहे"</string>
-    <string name="cached" msgid="4019482949725020855">"पार्श्वभूमी प्रक्रिया कॅश   केली"</string>
+    <string name="cached" msgid="4019482949725020855">"पार्श्वभूमी प्रक्रिया कॅशे    केली"</string>
     <string name="no_running_services" msgid="618823924559385173">"काहीही चालत नाही."</string>
     <string name="service_started_by_app" msgid="6906027340122215035">"अ‍ॅप द्वारे प्रारंभ केला."</string>
     <!-- no translation found for service_client_name (7083258170099389413) -->
@@ -1921,9 +1923,9 @@
     <string name="running_processes_header_apps_prefix" msgid="4024980745400903746">"अ‍ॅप्स"</string>
     <string name="running_processes_header_free_prefix" msgid="1092348393136753031">"मोकळी"</string>
     <string name="running_processes_header_used_prefix" msgid="2984090414986096084">"वापरलेली"</string>
-    <string name="running_processes_header_cached_prefix" msgid="8398315634778729026">"कॅश   केलेले"</string>
+    <string name="running_processes_header_cached_prefix" msgid="8398315634778729026">"कॅशे    केलेले"</string>
     <string name="running_processes_header_ram" msgid="3867954556214535588">"RAM चे <xliff:g id="RAM_0">%1$s</xliff:g>"</string>
-    <string name="runningservicedetails_settings_title" msgid="7075556369123578372">"चालू अ‍ॅप"</string>
+    <string name="runningservicedetails_settings_title" msgid="7075556369123578372">"सुरू अ‍ॅप"</string>
     <string name="no_services" msgid="2085012960886321920">"सक्रिय नाहीत"</string>
     <string name="runningservicedetails_services_title" msgid="5890094559748633615">"सेवा"</string>
     <string name="runningservicedetails_processes_title" msgid="5496507383850423763">"प्रक्रिया"</string>
@@ -1937,8 +1939,8 @@
     <string name="process_service_in_use_description" msgid="2253782391122637651">"<xliff:g id="COMP_NAME">%1$s</xliff:g> सेवा वापरात आहे."</string>
     <string name="process_provider_in_use_description" msgid="7841332986505618569">"<xliff:g id="COMP_NAME">%1$s</xliff:g> प्रदाता वापरात आहे."</string>
     <string name="runningservicedetails_stop_dlg_title" msgid="6022380394950336262">"सिस्टम सेवा थांबवायची?"</string>
-    <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="7619909495973395025">"तुम्ही ही सेवा थांबविल्यास, तुम्ही तीचा पॉवर बंद करून पुन्हा चालू करेपर्यंत आपल्या टॅब्लेटची काही वैशिष्ट्ये योग्यरितीने कार्य करणे थांबवू शकतात."</string>
-    <string name="runningservicedetails_stop_dlg_text" product="default" msgid="8168850859827213988">"तुम्ही ही सेवा थांबविल्यास, तुम्ही तीचा पॉवर बंद करून पुन्हा चालू करेपर्यंत आपल्या टॅब्लेटची काही वैशिष्ट्ये योग्यरितीने कार्य करणे थांबवू शकतात."</string>
+    <string name="runningservicedetails_stop_dlg_text" product="tablet" msgid="7619909495973395025">"तुम्ही ही सेवा थांबविल्यास, तुम्ही तीचा पॉवर बंद करून पुन्हा सुरू करेपर्यंत आपल्या टॅब्लेटची काही वैशिष्ट्ये योग्यरितीने कार्य करणे थांबवू शकतात."</string>
+    <string name="runningservicedetails_stop_dlg_text" product="default" msgid="8168850859827213988">"तुम्ही ही सेवा थांबविल्यास, तुम्ही तीचा पॉवर बंद करून पुन्हा सुरू करेपर्यंत आपल्या टॅब्लेटची काही वैशिष्ट्ये योग्यरितीने कार्य करणे थांबवू शकतात."</string>
     <string name="language_input_gesture_title" msgid="7547999017999159601">"भाषा, इनपुट आणि जेश्चर"</string>
     <string name="language_input_gesture_summary_on_with_assist" msgid="315262339899294132"></string>
     <string name="language_input_gesture_summary_on_non_assist" msgid="6054599939153669225"></string>
@@ -2050,7 +2052,7 @@
     <string name="talkback_summary" msgid="6602857105831641574">"स्क्रीन रीडर प्रामुख्याने दृष्टीहीन किंवा कमी दृष्टी असलेल्या लोकांसाठी आहे"</string>
     <string name="select_to_speak_summary" msgid="7514180457557735421">"आयटमना मोठ्याने ऐकण्यासाठी स्क्रीनवरील आयटमवर टॅप करा"</string>
     <string name="accessibility_captioning_title" msgid="5878371993023439642">"मथळे"</string>
-    <string name="accessibility_screen_magnification_title" msgid="7250949681883917360">"मोठे करणे"</string>
+    <string name="accessibility_screen_magnification_title" msgid="7250949681883917360">"मॅग्निफिकेशन"</string>
     <string name="accessibility_screen_magnification_gestures_title" msgid="9199287875401817974">"तीन वेळा टॅप करून मोठे करा"</string>
     <string name="accessibility_screen_magnification_navbar_title" msgid="400655612610761242">"बटणासह मोठे करा"</string>
     <string name="accessibility_screen_magnification_state_navbar_gesture" msgid="1863831350878995600">"बटण आणि तीन वेळा टॅप करून मोठे करा"</string>
@@ -2058,12 +2060,12 @@
     <string name="accessibility_screen_magnification_short_summary" msgid="5698545174944494486">"झूम करण्यासाठी 3 वेळा टॅप करा"</string>
     <string name="accessibility_screen_magnification_navbar_short_summary" msgid="5418767043532322397">"झूम करण्यासाठी बटणावर टॅप करा"</string>
     <string name="accessibility_screen_magnification_summary" msgid="3363006902079431772"><b>"झूम करण्यासाठी"</b>", स्क्रीनवर 3 वेळा पटपट टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी 2 किंवा अधिक बोटांनी ड्रॅग करा"</li>\n<li>"झूम ॲडजस्ट करण्यासाठी 2 किंवा अधिक बोटांनी पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी"</b>", स्क्रीनवर 3 वेळा पटपट टॅप करा आणि तिसर्‍या टॅपवर तुमचे बोट धरून ठेवा.\n"<ul><li>"स्क्रीनवर इथेतिथे जाण्यासाठी ड्रॅग करा"</li>\n<li>"झूम कमी करण्यासाठी बोट उचला"</li></ul>\n\n"तुम्ही कीबोर्ड किंवा नेव्हिगेशन बारचा झूम वाढवू शकत नाही."</string>
-    <string name="accessibility_screen_magnification_navbar_summary" msgid="4726360285256503132">"मोठे करणे चालू केले असताना, त्वरित मोठे करण्यासाठी, स्क्रीनच्या तळाशी असलेले प्रवेशयोग्यता बटण वापरा.\n\n"<b>"झूम करण्यासाठी"</b>", प्रवेशयोग्यता बटण टॅप करा, नंतर स्क्रीनवर कुठेही टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी 2 किंवा अधिक बोटे ड्रॅग करा"</li>\n<li>"झूम समायोजित करण्यासाठी 2 किंवा अधिक बोटे पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी"</b>", प्रवेशयोग्यता बटण दाबा, नंतर स्क्रीनवर कुठेही स्पर्श करा आणि धरून ठेवा.\n"<ul><li>"स्क्रीनवर अवतीभवती हलवण्यासाठी ड्रॅग करा"</li>\n<li>"झूम कमी करण्यासाठी बोट उचला"</li></ul>\n\n"आपण कीबोर्ड किंवा नेव्हिगेशन बारचा झूम वाढवू शकत नाही."</string>
-    <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="6477234309484795550">"प्रवेशयोग्यता बटण <xliff:g id="SERVICE">%1$s</xliff:g> वर सेट केले आहे. मोठे करणे वापरण्यासाठी, प्रवेशयोग्यता बटणाला स्पर्श करा आणि धरून ठेवा, नंतर मोठे करणे निवडा."</string>
+    <string name="accessibility_screen_magnification_navbar_summary" msgid="4726360285256503132">"मॅग्निफिकेशन सुरू केले असताना, त्वरित मोठे करण्यासाठी, स्क्रीनच्या तळाशी असलेले प्रवेशयोग्यता बटण वापरा.\n\n"<b>"झूम करण्यासाठी"</b>", प्रवेशयोग्यता बटण टॅप करा, नंतर स्क्रीनवर कुठेही टॅप करा.\n"<ul><li>"स्क्रोल करण्यासाठी 2 किंवा अधिक बोटे ड्रॅग करा"</li>\n<li>"झूम समायोजित करण्यासाठी 2 किंवा अधिक बोटे पिंच करा"</li></ul>\n\n<b>"तात्पुरते झूम करण्यासाठी"</b>", प्रवेशयोग्यता बटण दाबा, नंतर स्क्रीनवर कुठेही स्पर्श करा आणि धरून ठेवा.\n"<ul><li>"स्क्रीनवर अवतीभवती हलवण्यासाठी ड्रॅग करा"</li>\n<li>"झूम कमी करण्यासाठी बोट उचला"</li></ul>\n\n"आपण कीबोर्ड किंवा नेव्हिगेशन बारचा झूम वाढवू शकत नाही."</string>
+    <string name="accessibility_screen_magnification_navbar_configuration_warning" msgid="6477234309484795550">"प्रवेशयोग्यता बटण <xliff:g id="SERVICE">%1$s</xliff:g> वर सेट केले आहे. मॅग्निफिकेशन वापरण्यासाठी, प्रवेशयोग्यता बटणाला स्पर्श करा आणि धरून ठेवा, नंतर मॅग्निफिकेशन निवडा."</string>
     <string name="accessibility_global_gesture_preference_title" msgid="3842279082831426816">"आवाज की शॉर्टकट"</string>
     <string name="accessibility_shortcut_service_title" msgid="3516052294376744060">"शॉर्टकट सेवा"</string>
     <string name="accessibility_shortcut_service_on_lock_screen_title" msgid="1279441617927949980">"लॉक स्‍क्रीनवरून अनुमती द्या"</string>
-    <string name="accessibility_shortcut_description" msgid="1427049334225166395">"शॉर्टकट चालू असताना, प्रवेशयोग्यता वैशिष्ट्य सुरू करण्यासाठी तुम्ही आवाज बटणे 3 सेकंद दाबू शकता."</string>
+    <string name="accessibility_shortcut_description" msgid="1427049334225166395">"शॉर्टकट सुरू असताना, प्रवेशयोग्यता वैशिष्ट्य सुरू करण्यासाठी तुम्ही आवाज बटणे 3 सेकंद दाबू शकता."</string>
     <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="5652244684961877255">"उच्च कॉंट्रास्ट मजकूर"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="2466317284195934003">"स्क्रीन विस्तृतीकरण स्वयं अद्ययावत करा"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="6625473745911276917">"अ‍ॅप संक्रमणांवर स्क्रीन विस्तृतीकरण अद्ययावत करा"</string>
@@ -2081,11 +2083,11 @@
     <string name="accessibility_timeout_1min" msgid="5019003178551730551">"एक मिनिट"</string>
     <string name="accessibility_timeout_2mins" msgid="4124259290444829477">"दोन मिनिटे"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"वाचण्यासाठी वेळ"</string>
-    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"कृती करण्यासाठी लागणारा वेळ"</string>
+    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"कृतीसाठी लागणारा वेळ"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"तात्पुरता दृश्यमान असेल असा तुम्हाला वाचायचा असलेला मेसेज किती वेळ दाखवायचा ते निवडा.\n\nसर्व अ‍ॅप्स यासेटिंगला सपोर्ट करत नाहीत."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"तुम्हाला कृती करण्यास सांगणारे, परंतु केवळ तात्पुरते दृश्यमान असलेले मेसेज किती वेळ दाखवले जावेत ते निवडा.\n\nया सेटिंगला सर्व अ‍ॅप्समध्ये सपोर्ट असेल असे नाही."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"स्पर्श आणि धरण्याचा विलंब"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"रंग व्युत्क्रम"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"कलर इन्व्हर्जन"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"कार्यप्रदर्शन प्रभावित करू शकते"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"थांबल्याची वेळ"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"तुम्ही माउस वापरत असल्यास, जेव्हा कर्सर काही वेळासाठी हलणे थांबवतो तेव्हा तुम्ही तो आपोआप कृती करण्यासाठी सेट करू शकता."</string>
@@ -2098,17 +2100,17 @@
     <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"रंग सुधारणा वापरा"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"कॅप्शन वापरा"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"सुरू ठेवा"</string>
-    <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"श्रवण यंत्रे"</string>
-    <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"कोणतीही श्रवण यंत्रे जोडलेली नाहीत"</string>
-    <string name="accessibility_hearingaid_adding_summary" msgid="4139031880828714300">"श्रवण यंत्रे जोडा"</string>
-    <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"तुमची श्रवण यंत्रे पेअर करण्यासाठी पुढील स्क्रीनवर तुमचे डिव्हाइस शोधा आणि त्यावर टॅप करा."</string>
-    <string name="accessibility_hearingaid_pair_instructions_second_message" msgid="1584538735488464991">"तुमची श्रवण यंत्रे पेअरिंग मोडमध्ये असल्याची खात्री करा."</string>
+    <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"श्रवणयंत्रे"</string>
+    <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"कोणतीही श्रवणयंत्रे जोडलेली नाहीत"</string>
+    <string name="accessibility_hearingaid_adding_summary" msgid="4139031880828714300">"श्रवणयंत्रे जोडा"</string>
+    <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"तुमची श्रवणयंत्रे पेअर करण्यासाठी पुढील स्क्रीनवर तुमचे डिव्हाइस शोधा आणि त्यावर टॅप करा."</string>
+    <string name="accessibility_hearingaid_pair_instructions_second_message" msgid="1584538735488464991">"तुमची श्रवणयंत्रे पेअरिंग मोडमध्ये असल्याची खात्री करा."</string>
     <string name="accessibility_hearingaid_active_device_summary" msgid="6081382497207168885">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> सुरू आहे"</string>
     <plurals name="show_number_hearingaid_count" formatted="false" msgid="7906547154695855096">
-      <item quantity="other"> सेव्ह केलेली <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> श्रवण यंत्रे</item>
-      <item quantity="one"> सेव्ह केलेले <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> श्रवण यंत्र</item>
+      <item quantity="other"> सेव्ह केलेली <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> श्रवणयंत्रे</item>
+      <item quantity="one"> सेव्ह केलेले <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> श्रवणयंत्र</item>
     </plurals>
-    <string name="accessibility_summary_state_enabled" msgid="7357731696603247963">"चालू"</string>
+    <string name="accessibility_summary_state_enabled" msgid="7357731696603247963">"सुरू"</string>
     <string name="accessibility_summary_state_disabled" msgid="9197369047683087620">"बंद"</string>
     <string name="accessibility_summary_state_stopped" msgid="3170264683616172746">"काम करत नाही आहे. माहितीसाठी टॅप करा."</string>
     <string name="accessibility_description_state_stopped" msgid="7666178628053039493">"या सेवेमध्ये बिघाड आहे."</string>
@@ -2179,11 +2181,11 @@
     <string name="enable_service_title" msgid="2746143093464928251">"<xliff:g id="SERVICE">%1$s</xliff:g> वापरायचे?"</string>
     <string name="capabilities_list_title" msgid="8177719542886123788">"यासाठी <xliff:g id="SERVICE">%1$s</xliff:g> आवश्यक आहे:"</string>
     <string name="touch_filtered_warning" msgid="3072665526993043879">"अ‍ॅप परवानगी विनंती अस्पष्‍ट करीत असल्‍याने, सेटिंग्ज आपल्या प्रतिसादाची पडताळणी करू शकत नाहीत."</string>
-    <string name="enable_service_encryption_warning" msgid="3580275420826492351">"तुम्ही <xliff:g id="SERVICE">%1$s</xliff:g> चालू केल्‍यास, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्‍यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
-    <string name="secure_lock_encryption_warning" msgid="8724670910924531152">"तुम्ही ॲक्सेसयोग्यता सेवा चालू केली असल्‍यामुळे, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्‍यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
-    <string name="enable_service_pattern_reason" msgid="7415969807374459848">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्यामुळे डेटा एंक्रिप्शनवर परिणाम होतो, तुम्हाला तुमच्या पॅटर्नची पुष्टी करण्याची आवश्यकता आहे."</string>
-    <string name="enable_service_pin_reason" msgid="2899057249007636608">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्याने एंक्रिप्शन डेटा प्रभावित होतो, तुम्हाला तुमच्या पिन ची पुष्टी करण्याची आवश्यकता आहे."</string>
-    <string name="enable_service_password_reason" msgid="5210815233227388083">"<xliff:g id="SERVICE">%1$s</xliff:g> चालू करण्यामुळे डेटा एंक्रिप्शनवर परिणाम होतो, तुम्हाला तुमच्या पासवर्डची पुष्टी करण्याची आवश्यकता आहे."</string>
+    <string name="enable_service_encryption_warning" msgid="3580275420826492351">"तुम्ही <xliff:g id="SERVICE">%1$s</xliff:g> सुरू केल्‍यास, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्‍यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
+    <string name="secure_lock_encryption_warning" msgid="8724670910924531152">"तुम्ही ॲक्सेसयोग्यता सेवा सुरू केली असल्‍यामुळे, तुमचे डिव्हाइस डेटा एंक्रिप्शन वर्धित करण्‍यासाठी तुमचे स्क्रीन लॉक वापरणार नाही."</string>
+    <string name="enable_service_pattern_reason" msgid="7415969807374459848">"<xliff:g id="SERVICE">%1$s</xliff:g> सुरू करण्यामुळे डेटा एंक्रिप्शनवर परिणाम होतो, तुम्हाला तुमच्या पॅटर्नची पुष्टी करण्याची आवश्यकता आहे."</string>
+    <string name="enable_service_pin_reason" msgid="2899057249007636608">"<xliff:g id="SERVICE">%1$s</xliff:g> सुरू करण्याने एंक्रिप्शन डेटा प्रभावित होतो, तुम्हाला तुमच्या पिन ची पुष्टी करण्याची आवश्यकता आहे."</string>
+    <string name="enable_service_password_reason" msgid="5210815233227388083">"<xliff:g id="SERVICE">%1$s</xliff:g> सुरू करण्यामुळे डेटा एंक्रिप्शनवर परिणाम होतो, तुम्हाला तुमच्या पासवर्डची पुष्टी करण्याची आवश्यकता आहे."</string>
     <string name="accessibility_service_warning" msgid="345702253188068806">"<xliff:g id="SERVICE">%1$s</xliff:g>या डिव्हाइसच्या पूर्ण नियंत्रणासाठी विनंती करत आहे. सेवा स्क्रीन रीड करू शकते आणि अ‍ॅक्सेसिबिलिटीच्या गरजा असलेल्या वापरकर्त्यांच्या वतीने कृती करू शकते. नियंत्रणाची ही पातळी बहुतांश अ‍ॅप्ससाठी योग्य नाही."</string>
     <string name="disable_service_title" msgid="6234243399949005825">"<xliff:g id="SERVICE">%1$s</xliff:g> थांबवायचे?"</string>
     <string name="disable_service_message" msgid="4250593674885651779">"ठीक आहेवर टॅप करण्यामुळे <xliff:g id="SERVICE">%1$s</xliff:g> थांबेल."</string>
@@ -2194,8 +2196,8 @@
     <string name="print_settings" msgid="7886184656544483072">"प्रिंट"</string>
     <string name="print_settings_summary_no_service" msgid="634173687975841526">"बंद"</string>
     <plurals name="print_settings_summary" formatted="false" msgid="7580293760281445137">
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> प्रिंट सेवा चालू</item>
-      <item quantity="one">1 प्रिंट सेवा चालू</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> प्रिंट सेवा सुरू</item>
+      <item quantity="one">1 प्रिंट सेवा सुरू</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="6180308415569432845">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> प्रिंट कार्ये</item>
@@ -2241,25 +2243,25 @@
     <string name="background_activity_disabled_dialog_text" msgid="4234598000779459640">"हे अ‍ॅप बॅटरी ऑप्टिमाइझ करण्यासाठी सेट केलेले नसल्याने, तुम्ही ते प्रतिबंधित करू शकत नाही.\n\nअ‍ॅप प्रतिबंधित करण्यासाठी, प्रथम बॅटरी ऑप्टिमायझेशन सुरू करा"</string>
     <string name="device_screen_usage" msgid="4470485475363132750">"पूर्ण चार्ज झाल्यानंतरचा स्क्रीन वापर"</string>
     <string name="power_usage_list_summary" msgid="4314438658308211057">"पूर्ण चार्ज केल्यापासूनचा बॅटरी वापर"</string>
-    <string name="screen_usage_summary" msgid="263396144684078341">"पूर्ण चार्जपासून स्क्रीन चालू असण्याच्या वेळाचे प्रमाण"</string>
+    <string name="screen_usage_summary" msgid="263396144684078341">"पूर्ण चार्जपासून स्क्रीन सुरू असण्याच्या वेळाचे प्रमाण"</string>
     <string name="device_usage_list_summary" msgid="8299017481332816368">"शेवटच्या पूर्ण चार्जपासून डिव्हाइस वापर"</string>
     <string name="battery_since_unplugged" msgid="6486555910264026856">"अनप्लग केल्यापासून बॅटरी वापर"</string>
     <string name="battery_since_reset" msgid="4747587791838336661">"रीसेट केल्यापासून बॅटरी वापर"</string>
     <string name="battery_stats_on_battery" msgid="2644055304085279716">"बॅटरीवरील <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="battery_stats_duration" msgid="4867858933068728005">"अनप्लग केल्यापासून <xliff:g id="TIME">%1$s</xliff:g>"</string>
     <string name="battery_stats_charging_label" msgid="3156586822576998231">"चार्ज होत आहे"</string>
-    <string name="battery_stats_screen_on_label" msgid="1223495366609581497">"स्क्रीन चालू"</string>
-    <string name="battery_stats_gps_on_label" msgid="3944533098574423359">"GPS चालू"</string>
-    <string name="battery_stats_camera_on_label" msgid="557892808497848886">"कॅमेरा चालू"</string>
-    <string name="battery_stats_flashlight_on_label" msgid="162279812156241905">"फ्लॅशलाइट चालू"</string>
+    <string name="battery_stats_screen_on_label" msgid="1223495366609581497">"स्क्रीन सुरू"</string>
+    <string name="battery_stats_gps_on_label" msgid="3944533098574423359">"GPS सुरू"</string>
+    <string name="battery_stats_camera_on_label" msgid="557892808497848886">"कॅमेरा सुरू"</string>
+    <string name="battery_stats_flashlight_on_label" msgid="162279812156241905">"फ्लॅशलाइट सुरू"</string>
     <string name="battery_stats_wifi_running_label" msgid="3223557320252465826">"वाय-फाय"</string>
     <string name="battery_stats_wake_lock_label" msgid="670884103452713535">"सक्रिय"</string>
     <string name="battery_stats_phone_signal_label" msgid="2502589944816260503">"मोबाईल नेटवर्क सिग्नल"</string>
     <!-- no translation found for battery_stats_last_duration (8190573267292309839) -->
     <skip />
     <string name="awake" msgid="8956720170442161285">"डिव्हाइस ॲक्टिव्हेट होण्याची वेळ"</string>
-    <string name="wifi_on_time" msgid="2487820618265936068">"वाय-फाय चालू केल्याची वेळ"</string>
-    <string name="bluetooth_on_time" msgid="6400569492287292639">"वाय-फाय चालू केल्याची वेळ"</string>
+    <string name="wifi_on_time" msgid="2487820618265936068">"वाय-फाय सुरू केल्याची वेळ"</string>
+    <string name="bluetooth_on_time" msgid="6400569492287292639">"वाय-फाय सुरू केल्याची वेळ"</string>
     <string name="advanced_battery_title" msgid="5026866913848464170">"बॅटरी वापर"</string>
     <string name="history_details_title" msgid="8608193822257799936">"इतिहास तपशील"</string>
     <string name="battery_details_title" msgid="5358230551490703067">"बॅटरी वापर"</string>
@@ -2275,10 +2277,10 @@
     <string name="battery_tip_smart_battery_title" product="default" msgid="5517122075918038665">"तुमच्या फोनचे बॅटरी लाइफ सुधारा"</string>
     <string name="battery_tip_smart_battery_title" product="tablet" msgid="203494973250969040">"तुमच्या टॅबलेटचे बॅटरी लाइफ सुधारा"</string>
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"तुमच्या डिव्हाइसचे बॅटरी लाइफ सुधारा"</string>
-    <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"बॅटरी व्यवस्थापक चालू करा"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"बॅटरी सेव्हर चालू करा"</string>
+    <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"बॅटरी व्यवस्थापक सुरू करा"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"बॅटरी सेव्हर सुरू करा"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"बॅटरी नेहमीपेक्षा लवकर संपू शकते"</string>
-    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"बॅटरी सेव्हर चालू आहे"</string>
+    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"बॅटरी सेव्हर सुरू आहे"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"काही वैशिष्ट्ये मर्यादित असू शकतात"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"फोन नेहमीपेक्षा जास्त वापरला गेला"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"टॅबलेट नेहमीपेक्षा जास्त वापरले गेला"</string>
@@ -2301,8 +2303,8 @@
       <item quantity="one">%1$s चा बॅकग्राउंड बॅटरी वापर जास्त आहे</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
-      <item quantity="other">ही अ‍ॅप्स बॅकग्राउंडमध्ये चालू शकत नाहीत</item>
-      <item quantity="one">हे अ‍ॅप बॅकग्राउंडमध्ये चालू शकत नाही</item>
+      <item quantity="other">ही अ‍ॅप्स बॅकग्राउंडमध्ये सुरू शकत नाहीत</item>
+      <item quantity="one">हे अ‍ॅप बॅकग्राउंडमध्ये सुरू शकत नाही</item>
     </plurals>
     <plurals name="battery_tip_restrict_app_dialog_title" formatted="false" msgid="3042021435866172168">
       <item quantity="other">%1$d अ‍ॅप्स प्रतिबंधित करायची?</item>
@@ -2386,7 +2388,7 @@
     <string name="usage_type_video" msgid="8161701367674306793">"व्हिडिओ"</string>
     <string name="usage_type_camera" msgid="2276450385733155264">"कॅमेरा"</string>
     <string name="usage_type_flashlight" msgid="954750302897154167">"फ्लॅशलाइट"</string>
-    <string name="usage_type_on_time" msgid="4622180623970638221">"वेळ चालू"</string>
+    <string name="usage_type_on_time" msgid="4622180623970638221">"वेळ सुरू"</string>
     <string name="usage_type_no_coverage" msgid="6032663899998431817">"सिग्नलशिवायची वेळ"</string>
     <string name="usage_type_total_battery_capacity" msgid="1954889791720119945">"एकूण बॅटरी क्षमता"</string>
     <string name="usage_type_computed_power" msgid="2594890316149868151">"गणना केलेला पॉवर वापर"</string>
@@ -2430,7 +2432,7 @@
     <string name="battery_full_charge_last" msgid="4614554109170251301">"पूर्ण चार्ज सुमारे इतका वेळ टिकते"</string>
     <string name="battery_footer_summary" msgid="4828444679643906943">"बॅटरी वापर डेटा अंदाजे आहे आणि वापराच्या आधारे बदलू शकतो"</string>
     <string name="battery_detail_foreground" msgid="6616408559186553085">"सक्रिय वापरात असताना"</string>
-    <string name="battery_detail_background" msgid="7938146832943604280">"पार्श्वभूमीत असताना"</string>
+    <string name="battery_detail_background" msgid="7938146832943604280">"बॅकग्राउंडमध्ये असताना"</string>
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"बॅटरी वापर"</string>
     <string name="battery_detail_info_title" msgid="4617514228447481336">"पूर्ण चार्जपासून"</string>
     <string name="battery_detail_manage_title" msgid="745194290572617507">"बॅटरी वापर व्यवस्थापित करा"</string>
@@ -2446,7 +2448,7 @@
     <string name="process_mediaserver_label" msgid="8591722404282619153">"मीडियासर्व्हर"</string>
     <string name="process_dex2oat_label" msgid="8249082119748556085">"अ‍ॅप ऑप्टिमायझेशन"</string>
     <string name="battery_saver" msgid="3989710213758938398">"बॅटरी सेव्‍हर"</string>
-    <string name="battery_saver_auto_title" msgid="4158659069641849952">"आपोआप चालू करा"</string>
+    <string name="battery_saver_auto_title" msgid="4158659069641849952">"आपोआप सुरू करा"</string>
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"कोणतेही शेड्युल नाही"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"तुमच्या दिनक्रमावर आधारित"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"टक्केवारीवर आधारित"</string>
@@ -2461,7 +2463,7 @@
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="2321082163892561703">"सुरू करा"</string>
     <string name="battery_saver_master_switch_title" msgid="8241862826825517212">"बॅटरी सेव्हर वापरा"</string>
-    <string name="battery_saver_turn_on_automatically_title" msgid="7316920304024245838">"स्वयंचलितपणे चालू करा"</string>
+    <string name="battery_saver_turn_on_automatically_title" msgid="7316920304024245838">"स्वयंचलितपणे सुरू करा"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"कधीही नाही"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"<xliff:g id="PERCENT">%1$s</xliff:g>बॅटरीवर"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"बॅटरी टक्‍केवारी"</string>
@@ -2473,12 +2475,12 @@
     <string name="process_stats_total_duration_percentage" msgid="737215062610178960">"<xliff:g id="TIMEDURATION">%2$s</xliff:g> पासून <xliff:g id="PERCENT">%1$s</xliff:g> रॅम वापरली"</string>
     <string name="process_stats_type_background" msgid="7867552451658035199">"पार्श्वभूमी"</string>
     <string name="process_stats_type_foreground" msgid="9185538008409818577">"पुरोभाग"</string>
-    <string name="process_stats_type_cached" msgid="6774816751826613732">"कॅश   केलेले"</string>
+    <string name="process_stats_type_cached" msgid="6774816751826613732">"कॅशे    केलेले"</string>
     <string name="process_stats_os_label" msgid="2866711070924260440">"Android OS"</string>
     <string name="process_stats_os_native" msgid="8971193568864959041">"मूळ"</string>
     <string name="process_stats_os_kernel" msgid="496627624157605578">"कर्नेल"</string>
     <string name="process_stats_os_zram" msgid="5654662484619165424">"Z-Ram"</string>
-    <string name="process_stats_os_cache" msgid="5662578472981137018">"कॅश"</string>
+    <string name="process_stats_os_cache" msgid="5662578472981137018">"कॅशे"</string>
     <string name="process_stats_ram_use" msgid="7064754065505886755">"RAM वापर"</string>
     <string name="process_stats_bg_ram_use" msgid="1489397892092393257">"RAM वापर (पार्श्वभूमी)"</string>
     <string name="process_stats_run_time" msgid="4961296157434073261">"चालण्याचा कालावधी"</string>
@@ -2497,7 +2499,7 @@
     <string name="menu_proc_stats_type" msgid="2680179749566186247">"आकडेवारी प्रकार"</string>
     <string name="menu_proc_stats_type_background" msgid="1898036847606845052">"पार्श्वभूमी"</string>
     <string name="menu_proc_stats_type_foreground" msgid="8244384283966204023">"पुरोभाग"</string>
-    <string name="menu_proc_stats_type_cached" msgid="8238824117399683217">"कॅश केलेले"</string>
+    <string name="menu_proc_stats_type_cached" msgid="8238824117399683217">"कॅशे  केलेले"</string>
     <string name="voice_input_output_settings" msgid="2180337183089517667">"आवाज इनपुट आणि आउटपुट"</string>
     <string name="voice_input_output_settings_title" msgid="7080213653518526025">"आवाज इनपुट आणि आउटपुट सेटिंग्ज"</string>
     <string name="voice_search_settings_title" msgid="4999026024622014272">"व्हॉइस शोध"</string>
@@ -2507,7 +2509,7 @@
     <string name="voice_service_preference_section_title" msgid="2984112696100778038">"व्‍हॉइस इनपुट सेवा"</string>
     <string name="voice_interactor_preference_summary" msgid="7321365727286121067">"पूर्ण हॉटवर्ड आणि परस्परसंवाद"</string>
     <string name="voice_recognizer_preference_summary" msgid="3681161319745912594">"मजकूर पाठविण्यासाठी सोपे उच्चारण"</string>
-    <string name="voice_interaction_security_warning" msgid="4986261746316889768">"आपल्या वतीने व्हॉइस परीक्षण नेहमी-चालू कार्यप्रदर्शन करण्यासाठी आणि व्हॉइस सक्षम ॲप्लिकेशन नियंत्रित करण्यासाठी व्हॉइस इनपुट सेवा सक्षम असेल. हे <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> ॲप्लिकेशनावरून येते. या सेवेचा वापर सक्षम करायचा?"</string>
+    <string name="voice_interaction_security_warning" msgid="4986261746316889768">"आपल्या वतीने व्हॉइस परीक्षण नेहमी-सुरू कार्यप्रदर्शन करण्यासाठी आणि व्हॉइस सक्षम ॲप्लिकेशन नियंत्रित करण्यासाठी व्हॉइस इनपुट सेवा सक्षम असेल. हे <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g> ॲप्लिकेशनावरून येते. या सेवेचा वापर सक्षम करायचा?"</string>
     <string name="tts_engine_preference_title" msgid="1183116842356275061">"प्राधान्य इंजिन"</string>
     <string name="tts_engine_settings_title" msgid="4079757915136562358">"इंजिन सेटिंग्ज"</string>
     <string name="tts_sliders_title" msgid="1927481069989092278">"भाषण गती आणि पिच"</string>
@@ -2562,7 +2564,7 @@
     <string name="backup_erase_dialog_title" msgid="8178424339104463014"></string>
     <string name="backup_erase_dialog_message" msgid="8767843355330070902">"Google सर्व्हरवरील आपल्या वाय-फाय पासवर्ड, बुकमार्क, इतर सेटिंग्ज आणि अ‍ॅप डेटाचा बॅक अप घेणे थांबवायचे तसेच सर्व प्रती मिटवायच्या?"</string>
     <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"डिव्हाइस डेटाचा (जसे की वाय-फाय पासवर्ड आणि कॉल इतिहास) आणि (अ‍ॅप्सद्वारे स्टोअर केलेल्या सेटिंग्ज आणि फायली यासारख्या) अ‍ॅप डेटाचा बॅकअप घेणे थांबवायचे, तसेच दूरस्थ सर्व्हर वरील सर्व प्रती मिटवायच्या?"</string>
-    <string name="fullbackup_data_summary" msgid="406274198094268556">"आपोआप डिव्हाइस डेटाचा (जसे की वाय-फाय पासवर्ड आणि कॉल इतिहास) आणि अ‍ॅप डेटाचा (जसे की अ‍ॅप्‍स द्वारे स्टोअर केलेल्या सेटिंग्ज आणि फायली) दूरस्‍थपणे बॅकअप घ्‍या.\n\nतुम्ही स्वयंचलित बॅकअप चालू करता तेव्‍हा, डिव्हाइस आणि अ‍ॅप डेटा ठराविक कालावधीने दूरस्‍थपणे सेव्ह केला जातो. अ‍ॅप डेटा हा संपर्क, मेसेज आणि फोटो यासारख्‍या संभाव्य संवेदनशील डेटासह अ‍ॅपने सेव्ह केलेला (डेव्हलपरच्या सेटिंग्जवर आधारित) कोणताही डेटा असू शकतो."</string>
+    <string name="fullbackup_data_summary" msgid="406274198094268556">"आपोआप डिव्हाइस डेटाचा (जसे की वाय-फाय पासवर्ड आणि कॉल इतिहास) आणि अ‍ॅप डेटाचा (जसे की अ‍ॅप्‍स द्वारे स्टोअर केलेल्या सेटिंग्ज आणि फायली) दूरस्‍थपणे बॅकअप घ्‍या.\n\nतुम्ही स्वयंचलित बॅकअप सुरू करता तेव्‍हा, डिव्हाइस आणि अ‍ॅप डेटा ठराविक कालावधीने दूरस्‍थपणे सेव्ह केला जातो. अ‍ॅप डेटा हा संपर्क, मेसेज आणि फोटो यासारख्‍या संभाव्य संवेदनशील डेटासह अ‍ॅपने सेव्ह केलेला (डेव्हलपरच्या सेटिंग्जवर आधारित) कोणताही डेटा असू शकतो."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"डिव्हाइस प्रशासक सेटिंग्ज"</string>
     <string name="active_device_admin_msg" msgid="6929247869516924549">"डिव्हाइस प्रशासक अ‍ॅप"</string>
     <string name="remove_device_admin" msgid="4413438593788336400">"हे डिव्हाइस अ‍ॅडमिन अ‍ॅप बंद करा"</string>
@@ -2606,7 +2608,7 @@
     <string name="background_data_dialog_title" msgid="8306650658158895976">"पार्श्वभूमीवरील डेटा अक्षम करायचा?"</string>
     <string name="background_data_dialog_message" msgid="8126774244911656527">"पार्श्वभूमीवरील डेटा बंद केल्याने बॅटरी लाइफ वाढते आणि डेटा वापर कमी होतो. तरीही, काही अ‍ॅप्स पार्श्वभूमीवर डेटा कनेक्शन वापरतात."</string>
     <string name="sync_automatically" msgid="5746117156896468099">"अ‍ॅप डेटा स्वयं-संकालित करा"</string>
-    <string name="sync_enabled" msgid="535172627223336983">"सिंक चालू आहे"</string>
+    <string name="sync_enabled" msgid="535172627223336983">"सिंक सुरू आहे"</string>
     <string name="sync_disabled" msgid="713721807204805062">"सिंक बंद आहे"</string>
     <string name="sync_error" msgid="988155155932442765">"सिंक एरर"</string>
     <string name="last_synced" msgid="4511434057768999129">"अंतिम सिंक केले: <xliff:g id="LAST_SYNC_TIME">%1$s</xliff:g>"</string>
@@ -2618,7 +2620,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"आता संकालित करण्यासाठी टॅप करा<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"कॅलेंडर"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"संपर्क"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google सिंकामध्ये स्वागत आहे!"</font>" \nतुम्ही जेथे आहात तेथून आपल्या संपर्क, भेटी आणि अधिक मध्ये प्रवेश करण्याची अनुमती देण्यासाठी डेटा सिंक करण्याकरिता एक Google दृष्टिकोन."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"अ‍ॅप सिंक सेटिंग्ज"</string>
@@ -2633,7 +2635,7 @@
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"हे खाते काढल्याने त्याचे सर्व मेसेज, संपर्क आणि डिव्हाइसवरील इतर डेटा हटवला जाईल!"</string>
     <string name="remove_account_failed" msgid="491458185327106966">"या बदलाला आपल्या प्रशासकाद्वारे अनुमती नाही"</string>
     <string name="cant_sync_dialog_title" msgid="5483419398223189881">"व्यक्तिचलितपणे सिंक करू शकत नाही"</string>
-    <string name="cant_sync_dialog_message" msgid="3467126947262857534">"या आयटमसाठी सध्या सिंक अक्षम केले आहे. हे सेटिंग बदलण्यासाठी, पार्श्वभूमीवरील डेटा आणि आपोआप होणारे सिंक तात्पुरते चालू करा."</string>
+    <string name="cant_sync_dialog_message" msgid="3467126947262857534">"या आयटमसाठी सध्या सिंक अक्षम केले आहे. हे सेटिंग बदलण्यासाठी, पार्श्वभूमीवरील डेटा आणि आपोआप होणारे सिंक तात्पुरते सुरू करा."</string>
     <string name="enter_password" msgid="2963496904625715235">"Android प्रारंभ करण्‍यासाठी, तुमचा पासवर्ड प्रविष्‍ट करा"</string>
     <string name="enter_pin" msgid="7140938268709546890">"Android प्रारंभ करण्‍यासाठी, तुमचा पिन प्रविष्‍ट करा"</string>
     <string name="enter_pattern" msgid="1653841963422825336">"Android प्रारंभ करण्‍यासाठी, आपल्या नमुन्याची रेखाटणी करा"</string>
@@ -2731,7 +2733,7 @@
     <string name="data_usage_metered_body" msgid="1342905101297753439">"पार्श्वभूमीवरील डेटा प्रतिबंधित असताना मीटर केलेली नेटवर्क मोबाइल नेटवर्कप्रमाणे वापरली जातात. मोठ्‍या डाउनलोडसाठी ही नेटवर्क वापरण्‍यापूर्वी अ‍ॅप्‍सकडून चेतावणी मिळू शकते."</string>
     <string name="data_usage_metered_mobile" msgid="3675591449158207593">"मोबाईल नेटवर्क"</string>
     <string name="data_usage_metered_wifi" msgid="2955256408132426720">"मीटर केलेली वाय-फाय नेटवर्क"</string>
-    <string name="data_usage_metered_wifi_disabled" msgid="5771083253782103415">"मीटर केलेली नेटवर्क निवडण्‍यासाठी, वाय-फाय चालू करा."</string>
+    <string name="data_usage_metered_wifi_disabled" msgid="5771083253782103415">"मीटर केलेली नेटवर्क निवडण्‍यासाठी, वाय-फाय सुरू करा."</string>
     <string name="data_usage_metered_auto" msgid="7924116401382629319">"स्वयंचलित"</string>
     <string name="data_usage_metered_yes" msgid="7333744880035386073">"मर्यादित डेटा वापराचे नेटवर्क"</string>
     <string name="data_usage_metered_no" msgid="1961524615778610008">"मीटरने मोजले नाही"</string>
@@ -2759,10 +2761,10 @@
     <string name="vpn_no_ca_cert" msgid="486605757354800838">"(सर्व्हर सत्यापित करू नका)"</string>
     <string name="vpn_no_server_cert" msgid="679622228649855629">"(सर्व्हरवरुन प्राप्त झालेले)"</string>
     <string name="vpn_always_on_invalid_reason_type" msgid="165810330614905489">"हा VPN प्रकार सर्व वेळी कनेक्ट केलेला राहू शकत नाही"</string>
-    <string name="vpn_always_on_invalid_reason_server" msgid="3864424127328210700">"नेहमी-चालू VPN केवळ अंकीय सर्व्हर पत्त्यांना समर्थित करतात"</string>
-    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3814114757059738225">"नेहमी-चालू VPN साठी DNS सर्व्हर नमूद करणे आवश्यक आहे"</string>
-    <string name="vpn_always_on_invalid_reason_dns" msgid="501388894176868973">"नेहमी-चालू VPN साठी DNS सर्व्हर पत्ते अंकीय असणे आवश्यक आहे"</string>
-    <string name="vpn_always_on_invalid_reason_other" msgid="8504512156730364447">"एंटर केलेली माहिती नेहमी-चालू VPN ला समर्थित करत नाही"</string>
+    <string name="vpn_always_on_invalid_reason_server" msgid="3864424127328210700">"नेहमी-सुरू VPN केवळ अंकीय सर्व्हर पत्त्यांना समर्थित करतात"</string>
+    <string name="vpn_always_on_invalid_reason_no_dns" msgid="3814114757059738225">"नेहमी-सुरू VPN साठी DNS सर्व्हर नमूद करणे आवश्यक आहे"</string>
+    <string name="vpn_always_on_invalid_reason_dns" msgid="501388894176868973">"नेहमी-सुरू VPN साठी DNS सर्व्हर पत्ते अंकीय असणे आवश्यक आहे"</string>
+    <string name="vpn_always_on_invalid_reason_other" msgid="8504512156730364447">"एंटर केलेली माहिती नेहमी-सुरू VPN ला समर्थित करत नाही"</string>
     <string name="vpn_cancel" msgid="440645172381062337">"रद्द करा"</string>
     <string name="vpn_done" msgid="6314426362224527349">"डिसमिस करा"</string>
     <string name="vpn_save" msgid="1332625259182278316">"सेव्ह करा"</string>
@@ -2776,14 +2778,14 @@
     <string name="vpn_version" msgid="2006792987077940456">"आवृत्ती <xliff:g id="VERSION">%s</xliff:g>"</string>
     <string name="vpn_forget_long" msgid="8457511440635534478">"VPN विसरा"</string>
     <string name="vpn_replace_vpn_title" msgid="8517436922021598103">"विद्यमान VPN पुनर्स्थित करायचे?"</string>
-    <string name="vpn_set_vpn_title" msgid="6483554732067951052">"नेहमी-चालू VPN सेट करायचे?"</string>
-    <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"हे सेटिंग चालू असताना, VPN यशस्वीरीत्या कनेक्ट करेपर्यंत तुमच्याकडे इंटरनेट कनेक्शन असणार नाही"</string>
+    <string name="vpn_set_vpn_title" msgid="6483554732067951052">"नेहमी-सुरू VPN सेट करायचे?"</string>
+    <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"हे सेटिंग सुरू असताना, VPN यशस्वीरीत्या कनेक्ट करेपर्यंत तुमच्याकडे इंटरनेट कनेक्शन असणार नाही"</string>
     <string name="vpn_replace_always_on_vpn_enable_message" msgid="4149931501300203205">"तुमचे सद्य VPN बदलले जाईल आणि VPN यशस्वीरित्या कनेक्ट करेपर्यंत तुमच्याकडे इंटरनेट कनेक्शन असणार नाही"</string>
-    <string name="vpn_replace_always_on_vpn_disable_message" msgid="4924947523200883088">"तुम्ही आधीपासून नेहमी-चालू VPN शी कनेक्ट केले आहे. तुम्ही एका भिन्न VPN शी कनेक्ट केल्यास, तुमचे विद्यमान VPN पुनर्स्थित केले जाईल आणि नेहमी-चालू मोड बंद होईल."</string>
+    <string name="vpn_replace_always_on_vpn_disable_message" msgid="4924947523200883088">"तुम्ही आधीपासून नेहमी-सुरू VPN शी कनेक्ट केले आहे. तुम्ही एका भिन्न VPN शी कनेक्ट केल्यास, तुमचे विद्यमान VPN पुनर्स्थित केले जाईल आणि नेहमी-सुरू मोड बंद होईल."</string>
     <string name="vpn_replace_vpn_message" msgid="8009433728523145393">"तुम्ही आधीपासून एका VPN शी कनेक्ट केले आहे. तुम्ही भिन्न VPN शी कनेक्ट केल्यास, तुमचे विद्यमान VPN बदलले जाईल."</string>
-    <string name="vpn_turn_on" msgid="2334736319093953055">"चालू करा"</string>
+    <string name="vpn_turn_on" msgid="2334736319093953055">"सुरू करा"</string>
     <string name="vpn_cant_connect_title" msgid="5803347131129293771">"<xliff:g id="VPN_NAME">%1$s</xliff:g> कनेक्ट करू शकत नाही"</string>
-    <string name="vpn_cant_connect_message" msgid="7729125036551401236">"हे अ‍ॅप नेहमी-चालू VPN ला समर्थित करत नाही"</string>
+    <string name="vpn_cant_connect_message" msgid="7729125036551401236">"हे अ‍ॅप नेहमी-सुरू VPN ला समर्थित करत नाही"</string>
     <string name="vpn_title" msgid="7801918186865029203">"VPN"</string>
     <string name="vpn_create" msgid="2477570636472897359">"VPN प्रोफाइल जोडा"</string>
     <string name="vpn_menu_edit" msgid="8061437799373333593">"प्रोफाईल संपादित करा"</string>
@@ -2792,12 +2794,12 @@
     <string name="vpn_no_vpns_added" msgid="6616183541896197147">"कोणतेही VPN जोडलेले नाहीत"</string>
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"VPN शी नेहमी कनेक्ट केलेले रहा"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"या ॲपद्वारे समर्थित नाही"</string>
-    <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"नेहमी-चालू सक्रिय"</string>
+    <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"नेहमी-सुरू सक्रिय"</string>
     <string name="vpn_require_connection" msgid="5413746839457797350">"VPN शिवायची कनेक्शन ब्लॉक करा"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"VPN कनेक्शन आवश्यक आहे?"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"नेहमी कनेक्ट केलेले राहण्यासाठी एक VPN प्रोफाईल निवडा. केवळ या VPN शी कनेक्ट केलेले असताना नेटवर्क रहदारीला अनुमती दिली जाईल."</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"काहीही नाही"</string>
-    <string name="vpn_lockdown_config_error" msgid="8761770968704589885">"नेहमी चालू असलेल्या VPN ला सर्व्हर आणि DNS दोन्हीसाठी एका IP पत्त्याची आवश्यकता आहे."</string>
+    <string name="vpn_lockdown_config_error" msgid="8761770968704589885">"नेहमी सुरू असलेल्या VPN ला सर्व्हर आणि DNS दोन्हीसाठी एका IP पत्त्याची आवश्यकता आहे."</string>
     <string name="vpn_no_network" msgid="8313250136194588023">"कोणतेही नेटवर्क कनेक्शन नाही. कृपया नंतर पुन्हा प्रयत्न करा."</string>
     <string name="vpn_disconnected" msgid="4597953053220332539">"VPN पासून डिस्कनेक्ट झाले"</string>
     <string name="vpn_disconnected_summary" msgid="3784118965271376808">"काहीही नाही"</string>
@@ -2849,7 +2851,7 @@
     <string name="user_settings_title" msgid="7917598650933179545">"एकाहून अधिक वापरकर्ते"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"नवीन वापरकर्त्यांना जोडून तुमचे डिव्हाइस शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती, अ‍ॅप्स, सेटिंग्ज आणि बर्‍याच गोष्टीसाठी तुमच्या डिव्हाइसवर वैयक्तिक जागा आहे."</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"नवीन वापरकर्त्यांना जोडून तुमचा टॅबलेट शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती अ‍ॅप्स, सेटिंग्ज आणि बर्‍याच गोष्टीसाठी तुमच्या टॅबलेटवर वैयक्तिक जागा आहे."</string>
-    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"नवीन वापरकर्त्यांना जोडून तुमचा फोन शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती अ‍ॅप्स, सेटिंग्ज आणि बर्‍याच गोष्टीसाठी तुमच्या फोनवर वैयक्तिक जागा आहे."</string>
+    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"नवीन वापरकर्त्यांना जोडून तुमचा फोन शेअर करा. प्रत्येक वापरकर्त्याला कस्टम होम स्क्रीन, खाती, अ‍ॅप्स, सेटिंग्ज आणि बर्‍याच गोष्टीसाठी तुमच्या फोनवर वैयक्तिक जागा आहे."</string>
     <string name="user_list_title" msgid="6670258645246192324">"वापरकर्ते आणि प्रोफाईल्स"</string>
     <string name="user_add_user_or_profile_menu" msgid="4220679989900149336">"वापरकर्ता किंवा प्रोफाइल जोडा"</string>
     <string name="user_add_user_menu" msgid="9006572936456324794">"वापरकर्ता जोडा"</string>
@@ -2869,10 +2871,10 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"वापरकर्ता"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"प्रतिबंधित प्रोफाईल"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"नवीन वापरकर्ता जोडायचा?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"अतिरिक्त वापरकर्ते तयार करून तुम्ही इतर लोकांसोबत हे डिव्हाइस शेअर करू शकता. प्रत्येक वापरकर्त्यास त्यांची स्वतःची स्पेस असते, जी ते अ‍ॅप्स, वॉलपेपर आणि यासारख्या गोष्टींनी कस्टमाइझ करू शकतात. वापरकर्ते प्रत्येकाला प्रभावित करणाऱ्या वाय-फाय सारख्या डिव्हाइस सेटिंग्ज अ‍ॅडजस्ट देखील करू शकतात.\n\nतुम्ही एक नवीन वापरकर्ता जोडता, तेव्हा त्या व्यक्तीला त्याची स्पेस सेट अप करण्याची आवश्यकता असते.\n\nकोणताही वापरकर्ता इतर सर्व वापरकर्त्यांसाठी अ‍ॅप अपडेट करू शकतो. ॲक्सेसिबिलिटी सेटिंग्ज आणि सेवा नवीन वापरकर्त्याला कदाचित ट्रान्सफर होणार नाहीत."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"अतिरिक्त वापरकर्ते तयार करून तुम्ही इतर लोकांसोबत हे डिव्हाइस शेअर करू शकता. प्रत्येक वापरकर्त्यास त्यांची स्वतःची स्पेस असते, जी ते अ‍ॅप्स, वॉलपेपर आणि यासारख्या गोष्टींनी कस्टमाइझ करू शकतात. वापरकर्ते प्रत्येकाला प्रभावित करणारी वाय-फाय सारखी डिव्हाइस सेटिंग्ज अ‍ॅडजस्ट देखील करू शकतात.\n\nतुम्ही एक नवीन वापरकर्ता जोडता, तेव्हा त्या व्यक्तीला त्याची स्पेस सेट अप करण्याची आवश्यकता असते.\n\nकोणताही वापरकर्ता इतर सर्व वापरकर्त्यांसाठी अ‍ॅप अपडेट करू शकतो. अ‍ॅक्सेसिबिलिटी सेटिंग्ज आणि सेवा नवीन वापरकर्त्याला कदाचित ट्रान्सफर होणार नाहीत."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"तुम्ही एक नवीन वापरकर्ता जोडता तेव्हा, त्या व्यक्तीस त्यांचे स्थान सेट करण्याची आवश्यकता असते.\n\nकोणताही वापरकर्ता इतर सर्व वापरकर्त्यांसाठी अ‍ॅप्स अपडेट करू शकतो."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"आता वापरकर्ता सेट करायचा?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"डिव्हाइस घेण्यासाठी आणि त्यांचे स्थान सेट करण्यासाठी व्यक्ती उपलब्ध असल्याची खात्री करा"</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"तो वापरकर्ता डिव्हाइसजवळ आहे आणि त्याचे स्थान सेट करण्यासाठी उपलब्ध आहे याची खात्री करा"</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"आता प्रोफाईल सेट करायचा?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"आता सेट करा"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"आत्ता नाही"</string>
@@ -2891,7 +2893,7 @@
     <string name="user_confirm_remove_self_message" product="tablet" msgid="2889456786320157545">"तुम्ही या टॅब्लेटवरील तुमचे स्थान आणि डेटा गमवाल. तुम्ही ही क्रिया पूर्ववत करु शकत नाही."</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="8441729423565705183">"तुम्ही या फोनवरील तुमचे स्थान आणि डेटा गमवाल. तुम्ही ही क्रिया पूर्ववत करु शकत नाही."</string>
     <string name="user_confirm_remove_message" msgid="5202150470271756013">"सर्व अ‍ॅप्स आणि डेटा हटवला जाईल."</string>
-    <string name="work_profile_confirm_remove_message" msgid="1220672284385083128">"तुम्ही सुरु ठेवल्यास या प्रोफाईलमधील सर्व अ‍ॅप्स आणि डेटा हटवला जाईल."</string>
+    <string name="work_profile_confirm_remove_message" msgid="1220672284385083128">"तुम्ही सुरू ठेवल्यास या प्रोफाईलमधील सर्व अ‍ॅप्स आणि डेटा हटवला जाईल."</string>
     <string name="user_profile_confirm_remove_message" msgid="8376289888144561545">"सर्व अ‍ॅप्स आणि डेटा हटवला जाईल."</string>
     <string name="user_adding_new_user" msgid="381717945749193417">"नवीन वापरकर्त्यास जोडत आहे…"</string>
     <string name="user_delete_user_description" msgid="3627684990761268859">"वापरकर्ता हटवा"</string>
@@ -2902,7 +2904,7 @@
     <string name="user_exit_guest_confirm_message" msgid="6955182181145748919">"या सत्रातील सर्व अ‍ॅप्स आणि डेटा हटवला जाईल."</string>
     <string name="user_exit_guest_dialog_remove" msgid="1878866060881115716">"काढा"</string>
     <string name="user_enable_calling" msgid="864760054792249503">"फोन कॉल सुरू करा"</string>
-    <string name="user_enable_calling_sms" msgid="3450252891736718793">"फोन कॉल आणि SMS चालू करा"</string>
+    <string name="user_enable_calling_sms" msgid="3450252891736718793">"फोन कॉल आणि SMS सुरू करा"</string>
     <string name="user_remove_user" msgid="3687544420125911166">"वापरकर्ता हटवा"</string>
     <string name="user_enable_calling_confirm_title" msgid="1141612415529158542">"फोन कॉल सुरू करायचे?"</string>
     <string name="user_enable_calling_confirm_message" msgid="2490126715153125970">"या वापरकर्त्याशी कॉल इतिहास शेअर केला जाईल."</string>
@@ -2935,7 +2937,7 @@
     <string name="restriction_menu_change_pin" msgid="592512748243421101">"पिन बदला"</string>
     <string name="app_notifications_switch_label" msgid="670683308275498821">"सूचना दर्शवा"</string>
     <string name="help_label" msgid="1296484776243905646">"मदत आणि अभिप्राय"</string>
-    <string name="support_summary" msgid="3278943815956130740">"मदत लेख, फोन आणि चॅट, सुरूवात करणे"</string>
+    <string name="support_summary" msgid="3278943815956130740">"मदत लेख, फोन आणि चॅट, सुरुवात करणे"</string>
     <string name="user_account_title" msgid="2108666882630552859">"सामग्रीसाठी खाते"</string>
     <string name="user_picture_title" msgid="6664602422948159123">"फोटो आयडी"</string>
     <string name="extreme_threats_title" msgid="1405820547540456436">"अत्याधिक धोके"</string>
@@ -3047,7 +3049,7 @@
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"डीफॉल्ट अ‍ॅप्स"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"भाषा, जेश्चर, वेळ, बॅकअप"</string>
     <string name="search_results_title" msgid="4160717656435503940">"सेटिंग्ज"</string>
-    <string name="keywords_wifi" msgid="8477688080895466846">"वायफाय, वाय-फाय, नेटवर्क कनेक्शन, इंटरनेट, वायरलेस, डेटा, वाय फाय"</string>
+    <string name="keywords_wifi" msgid="8477688080895466846">"वायफाय, वाय-फाय, नेटवर्क कनेक्शन, इंटरनेट, वायरलेस, डेटा, वाय-फाय"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="1031260564121854773">"वाय-फाय सूचना, वायफाय सूचना"</string>
     <string name="keywords_auto_brightness" msgid="5007188989783072428">"ऑटो ब्राइटनेस"</string>
     <string name="keywords_vibrate_on_touch" msgid="3615173661462446877">"व्हायब्रेशन थांबवा, टॅप करा, कीबोर्ड"</string>
@@ -3116,7 +3118,7 @@
     <string name="keywords_system_update_settings" msgid="4419971277998986067">"अपग्रेड करा, Android"</string>
     <string name="keywords_zen_mode_settings" msgid="4103819458182535493">"डीएनडी, शेड्यूल, सूचना, ब्लॉक, शांतता, व्हायब्रेट, झोप, काम, फोकस, ध्वनी, म्यूट, दिवस, कार्य दिवस, शनिवार व रविवार, आठवड्याची शेवटची रात्र, इव्हेंट"</string>
     <string name="keywords_screen_timeout" msgid="4328381362313993666">"स्क्रीन, लॉक टाइम, कालबाह्य, लॉकस्क्रीन"</string>
-    <string name="keywords_storage_settings" msgid="6422454520424236476">"मेमरी, कॅशे, डेटा, हटवा, साफ करा, मोकळी करा, जागा"</string>
+    <string name="keywords_storage_settings" msgid="6422454520424236476">"मेमरी, कॅशे , डेटा, हटवा, साफ करा, मोकळी करा, जागा"</string>
     <string name="keywords_bluetooth_settings" msgid="1152229891590622822">"कनेक्ट केलेले, डिव्हाइस, हेडफोन, हेडसेट, स्पीकर, वायरलेस, पेअर, इयरबड, संगीत, मीडिया"</string>
     <string name="keywords_wallpaper" msgid="7665778626293643625">"पार्श्वभूमी, स्क्रीन, लॉकस्क्रीन, थीम"</string>
     <string name="keywords_assist_input" msgid="8392362788794886564">"डीफॉल्ट, सहाय्यक"</string>
@@ -3159,7 +3161,7 @@
     <string name="emergency_tone_silent" msgid="804809075282717882">"शांतता"</string>
     <string name="emergency_tone_alert" msgid="907868135091891015">"टोन"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"स्पंदने"</string>
-    <string name="boot_sounds_title" msgid="7583926202411353620">"ध्वनी चालू करा"</string>
+    <string name="boot_sounds_title" msgid="7583926202411353620">"ध्वनी सुरू करा"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"लाइव्ह कॅप्शन"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"मीडियाला आपोआप सबटायटल द्या"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"कधीही नाही"</string>
@@ -3168,7 +3170,7 @@
       <item quantity="one">एक सुरू केले</item>
     </plurals>
     <string name="zen_mode_settings_title" msgid="3425263414594779244">"व्यत्यय आणू नका"</string>
-    <string name="zen_mode_settings_turn_on_dialog_title" msgid="3062548369931058282">"व्यत्यय आणू नका चालू करा"</string>
+    <string name="zen_mode_settings_turn_on_dialog_title" msgid="3062548369931058282">"व्यत्यय आणू नका सुरू करा"</string>
     <string name="zen_mode_behavior_settings_title" msgid="423125904296667490">"अपवाद"</string>
     <string name="zen_mode_duration_settings_title" msgid="5522668871014735728">"डीफॉल्ट कालावधी"</string>
     <string name="zen_mode_behavior_allow_title" msgid="2440627647424280842">"यांचे ध्वनी आणि व्हायब्रेशन राहू द्या"</string>
@@ -3208,7 +3210,7 @@
     <string name="zen_mode_restrict_notifications_summary_custom" msgid="4982187708274505748">"अंशतः लपवलेले"</string>
     <string name="zen_mode_restrict_notifications_summary_hidden" msgid="7637206880685474111">"सूचना आल्यावर व्हिज्युअल किंवा आवाज नाही"</string>
     <string name="zen_mode_what_to_block_title" msgid="2142809942549840800">"कस्टम प्रतिबंध"</string>
-    <string name="zen_mode_block_effects_screen_on" msgid="1042489123800404560">"स्क्रीन चालू असताना"</string>
+    <string name="zen_mode_block_effects_screen_on" msgid="1042489123800404560">"स्क्रीन सुरू असताना"</string>
     <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"स्क्रीन बंद असताना"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"ध्वनी आणि व्हायब्रेट म्यूट करा"</string>
     <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"स्क्रीन सुरू करू नका"</string>
@@ -3220,7 +3222,7 @@
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"सूचना सूचीमधून लपवा"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"कधीही नाही"</string>
     <string name="zen_mode_block_effect_summary_screen_off" msgid="2985086455557755722">"स्क्रीन बंद असताना"</string>
-    <string name="zen_mode_block_effect_summary_screen_on" msgid="6183282342145215594">"स्क्रीन चालू असताना"</string>
+    <string name="zen_mode_block_effect_summary_screen_on" msgid="6183282342145215594">"स्क्रीन सुरू असताना"</string>
     <string name="zen_mode_block_effect_summary_sound" msgid="4907185880913861880">"ध्वनी आणि व्हायब्रेट"</string>
     <string name="zen_mode_block_effect_summary_some" msgid="6035118904496072665">"ध्वनी, व्हायब्रेट आणि काही व्हिज्युअल चिन्हांच्या काही सूचना"</string>
     <string name="zen_mode_block_effect_summary_all" msgid="2830443565687247759">"सूचनांचा ध्वनी, व्हायब्रेट आणि व्हिज्युअल चिन्ह"</string>
@@ -3228,13 +3230,13 @@
     <string name="zen_mode_no_exceptions" msgid="3099578343994492857">"काहीही नाही"</string>
     <string name="zen_mode_other_options" msgid="7216192179063769057">"इतर पर्याय"</string>
     <string name="zen_mode_add" msgid="2533484377786927366">"जोडा"</string>
-    <string name="zen_mode_enable_dialog_turn_on" msgid="6396050543542026184">"चालू करा"</string>
+    <string name="zen_mode_enable_dialog_turn_on" msgid="6396050543542026184">"सुरू करा"</string>
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"आता सुरू करा"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"आता बंद करा"</string>
-    <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"व्यत्यय आणू नका <xliff:g id="FORMATTED_TIME">%s</xliff:g> पर्यंत चालू असणार आहे"</string>
+    <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"व्यत्यय आणू नका <xliff:g id="FORMATTED_TIME">%s</xliff:g> पर्यंत सुरू असणार आहे"</string>
     <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"तुम्ही बंद करेपर्यंत व्यत्यय आणू नका सुरू राहील"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"(<xliff:g id="RULE_NAME">%s</xliff:g>) शेड्युलने व्यत्यय आणू नका आपोआप सुरू केले"</string>
-    <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"<xliff:g id="APP_NAME">%s</xliff:g> या ॲपने व्यत्यय आणू नका आपोआप चालू केले"</string>
+    <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"<xliff:g id="APP_NAME">%s</xliff:g> या ॲपने व्यत्यय आणू नका आपोआप सुरू केले"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"<xliff:g id="RULE_NAMES">%s</xliff:g>साठी व्यत्यय आणू नका कस्टम सेटिंग्ज सह सुरू आहे."</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer_link" msgid="4007974052885089379"><annotation id="link">" कस्टम सेटिंग्ज पाहा"</annotation></string>
     <string name="zen_interruption_level_priority" msgid="9178419297408319234">"केवळ प्राधान्य"</string>
@@ -3372,7 +3374,7 @@
     <string name="notification_assistant_security_warning_title" msgid="4190584438086738496">"<xliff:g id="SERVICE">%1$s</xliff:g> ला सूचना अ‍ॅक्सेस करण्याची अनुमती द्यायची का?"</string>
     <string name="notification_assistant_security_warning_summary" msgid="6924513399671031930">"संपर्क नावे आणि तुम्हाला येणारे एसएमएस यासारख्या वैयक्तिक माहितीच्या समावेशासह <xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> सर्व सूचना पाहू शकेल. ते त्यांच्यामधील सूचनांमध्ये बदल करू शकेल किंवा त्यांना डिसमिस करू शकेल अथवा त्यामध्ये असलेली अ‍ॅक्शन बटणे ट्रिगर करू शकेल. \n\nयामुळे ॲपला व्यत्यय आणू नका सुरू किंवा बंद करता येईल आणि संबंधित सेटिंग्ज बदलता येतील."</string>
     <string name="notification_listener_security_warning_title" msgid="4902253246428777797">"<xliff:g id="SERVICE">%1$s</xliff:g> साठी सूचना प्रवेशास अनुमती द्यायची?"</string>
-    <string name="notification_listener_security_warning_summary" msgid="4454702907350100288">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> तुम्ही प्राप्त करता ती संपर्क नावे आणि मजकूर मेसेज यासारख्या वैयक्तिक माहितीसह सर्व सूचना वाचण्यात सक्षम असेल. तो सूचना डिसमिस करण्यात किंवा त्यामध्ये असलेली क्रिया बटणे ट्रिगर करण्यात देखील सक्षम असेल. \n\nहे ॲपला व्यत्यय आणू नका चालू किंवा बंद करण्याची आणि सबंधित सेटिंग्ज बदलण्याची क्षमता देखील देईल."</string>
+    <string name="notification_listener_security_warning_summary" msgid="4454702907350100288">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> तुम्ही प्राप्त करता ती संपर्क नावे आणि मजकूर मेसेज यासारख्या वैयक्तिक माहितीसह सर्व सूचना वाचण्यात सक्षम असेल. तो सूचना डिसमिस करण्यात किंवा त्यामध्ये असलेली क्रिया बटणे ट्रिगर करण्यात देखील सक्षम असेल. \n\nहे ॲपला व्यत्यय आणू नका सुरू किंवा बंद करण्याची आणि सबंधित सेटिंग्ज बदलण्याची क्षमता देखील देईल."</string>
     <string name="notification_listener_disable_warning_summary" msgid="162165151519082978">"तुम्ही <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> साठी सूचनांमधील प्रवेश बंद केल्यास, व्यत्यय आणू नका मधील प्रवेश देखील बंद केला जाऊ शकतो."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="7863495391671154188">"बंद करा"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="6264631825225298458">"रद्द करा"</string>
@@ -3413,7 +3415,7 @@
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> वर्गवाऱ्या हटवल्या</item>
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> वर्गवारी हटवली</item>
     </plurals>
-    <string name="notification_toggle_on" msgid="5119816745741139542">"चालू"</string>
+    <string name="notification_toggle_on" msgid="5119816745741139542">"सुरू"</string>
     <string name="notification_toggle_off" msgid="5289843670514922751">"बंद"</string>
     <string name="app_notification_block_title" msgid="7898269373875294367">"सर्व ब्लॉक करा"</string>
     <string name="app_notification_block_summary" msgid="4502146897785692336">"या सूचना कधीही दर्शवू नका"</string>
@@ -3445,13 +3447,13 @@
     <string name="zen_mode_delete_rule_confirmation" msgid="2646596466259025978">"\"<xliff:g id="RULE">%1$s</xliff:g>\" नियम हटवायचा?"</string>
     <string name="zen_mode_delete_rule_button" msgid="611058106279881991">"हटवा"</string>
     <string name="zen_mode_rule_type_unknown" msgid="2819480113355191421">"अज्ञात"</string>
-    <string name="zen_mode_app_set_behavior" msgid="8597398780262575571">"या सेटिंग्ज आत्ता बदलता येणार नाहीत. एका (<xliff:g id="APP_NAME">%1$s</xliff:g>) अ‍ॅपने कस्टम वर्तनासह व्यत्यय आणू नका आपोआप चालू केलेले आहे."</string>
-    <string name="zen_mode_unknown_app_set_behavior" msgid="5666462954329932302">"या सेटिंग्ज आत्ता बदलता येणार नाहीत. एका अ‍ॅपने व्यत्यय आणू नका हे कस्टम वर्तनासह आपोआप चालू केले."</string>
-    <string name="zen_mode_qs_set_behavior" msgid="788646569296973998">"या सेटिंग्ज आत्ता बदलता येणार नाहीत. व्यत्यय आणू नका हे मॅन्युअली कस्टम वर्तनासह चालू करण्यात आले."</string>
+    <string name="zen_mode_app_set_behavior" msgid="8597398780262575571">"या सेटिंग्ज आत्ता बदलता येणार नाहीत. एका (<xliff:g id="APP_NAME">%1$s</xliff:g>) अ‍ॅपने कस्टम वर्तनासह व्यत्यय आणू नका आपोआप सुरू केलेले आहे."</string>
+    <string name="zen_mode_unknown_app_set_behavior" msgid="5666462954329932302">"या सेटिंग्ज आत्ता बदलता येणार नाहीत. एका अ‍ॅपने व्यत्यय आणू नका हे कस्टम वर्तनासह आपोआप सुरू केले."</string>
+    <string name="zen_mode_qs_set_behavior" msgid="788646569296973998">"या सेटिंग्ज आत्ता बदलता येणार नाहीत. व्यत्यय आणू नका हे मॅन्युअली कस्टम वर्तनासह सुरू करण्यात आले."</string>
     <string name="zen_schedule_rule_type_name" msgid="4516851728113801329">"वेळ"</string>
-    <string name="zen_schedule_rule_enabled_toast" msgid="1742354493045049048">"निर्दिष्‍ट केलेल्या कालावधींसाठी व्यत्यय आणू नका चालू करण्याकरिता स्वयंचलित नियम सेट केला"</string>
+    <string name="zen_schedule_rule_enabled_toast" msgid="1742354493045049048">"निर्दिष्‍ट केलेल्या कालावधींसाठी व्यत्यय आणू नका सुरू करण्याकरिता स्वयंचलित नियम सेट केला"</string>
     <string name="zen_event_rule_type_name" msgid="7467729997336583342">"इव्‍हेंट"</string>
-    <string name="zen_event_rule_enabled_toast" msgid="7087368268966855976">"निर्दिष्‍ट केलेल्या इव्हेंटसाठी व्यत्यय आणू नका चालू करण्याकरिता स्वयंचलित नियम सेट केला"</string>
+    <string name="zen_event_rule_enabled_toast" msgid="7087368268966855976">"निर्दिष्‍ट केलेल्या इव्हेंटसाठी व्यत्यय आणू नका सुरू करण्याकरिता स्वयंचलित नियम सेट केला"</string>
     <string name="zen_mode_event_rule_calendar" msgid="6088077103908487442">"यासाठी इव्हेंट दरम्यान"</string>
     <string name="zen_mode_event_rule_summary_calendar_template" msgid="4027207992040792657">"<xliff:g id="CALENDAR">%1$s</xliff:g> साठी इव्हेंट दरम्यान"</string>
     <string name="zen_mode_event_rule_summary_any_calendar" msgid="7590085295784895885">"कोणतेही कॅलेंडर"</string>
@@ -3462,7 +3464,7 @@
     <string name="zen_mode_event_rule_reply_yes_or_maybe" msgid="5042234361937256329">"होय किंवा कदाचित"</string>
     <string name="zen_mode_event_rule_reply_yes" msgid="7039756546321205552">"होय"</string>
     <string name="zen_mode_rule_not_found_text" msgid="6553855397424553685">"नियम आढळला नाही."</string>
-    <string name="zen_mode_rule_summary_enabled_combination" msgid="8269105393636454359">"चालू / <xliff:g id="MODE">%1$s</xliff:g>"</string>
+    <string name="zen_mode_rule_summary_enabled_combination" msgid="8269105393636454359">"सुरू / <xliff:g id="MODE">%1$s</xliff:g>"</string>
     <string name="zen_mode_rule_summary_provider_combination" msgid="8674730656585528193">"<xliff:g id="PACKAGE">%1$s</xliff:g>\n<xliff:g id="SUMMARY">%2$s</xliff:g>"</string>
     <string name="zen_mode_schedule_rule_days" msgid="220627703673691816">"दिवस"</string>
     <string name="zen_mode_schedule_rule_days_none" msgid="6011716195119389956">"काहीही नाही"</string>
@@ -3524,7 +3526,7 @@
     <string name="zen_mode_calls_summary_two" msgid="9017678770532673578">"<xliff:g id="CALLER_TYPE">%1$s</xliff:g> आणि <xliff:g id="CALLERT_TPYE">%2$s</xliff:g> कडून अनुमती द्या"</string>
     <string name="zen_mode_repeat_callers_summary" msgid="1752513516040525545">"एकाच व्यक्तीने <xliff:g id="MINUTES">%d</xliff:g> मिनिटांच्या आत दुसर्‍यांदा कॉल केल्यास"</string>
     <string name="zen_mode_behavior_summary_custom" msgid="3909532602640130841">"कस्टम"</string>
-    <string name="zen_mode_when" msgid="7835420687948416255">"स्वयंचलितपणे चालू करा"</string>
+    <string name="zen_mode_when" msgid="7835420687948416255">"स्वयंचलितपणे सुरू करा"</string>
     <string name="zen_mode_when_never" msgid="4506296396609224524">"कधीही नाही"</string>
     <string name="zen_mode_when_every_night" msgid="3942151668791426194">"प्रत्येक रात्री"</string>
     <string name="zen_mode_when_weeknights" msgid="2412709309122408474">"आठवड्याच्या रात्री"</string>
@@ -3542,11 +3544,11 @@
     </plurals>
     <string name="zen_mode_summary_alarms_only_by_time" msgid="2462898862757904560">"केवळ <xliff:g id="FORMATTEDTIME">%1$s</xliff:g> पर्यंत अलार्मवर बदला"</string>
     <string name="zen_mode_summary_always" msgid="2703276042913200837">"नेहमी व्‍यत्यय आणा वर बदला"</string>
-    <string name="zen_mode_screen_on" msgid="7098470659072167219">"स्क्रीन चालू असताना"</string>
+    <string name="zen_mode_screen_on" msgid="7098470659072167219">"स्क्रीन सुरू असताना"</string>
     <string name="zen_mode_screen_on_summary" msgid="8275416649295357524">"सूचनांना स्क्रीनवरील व्यत्यय आणू नका पॉपने शांत होऊ द्या, आणि एक स्टेटस बार आयकॉन दाखवू द्या"</string>
     <string name="zen_mode_screen_off" msgid="84211490206459038">"स्क्रीन बंद असताना"</string>
-    <string name="zen_mode_screen_off_summary" msgid="8592179073243001267">"व्यत्यय आणू नका ने स्क्रीन चालू करून लाइटची उघडझाप करू द्या आणि सूचनांना मूक होऊ द्या"</string>
-    <string name="zen_mode_screen_off_summary_no_led" msgid="7255874108150630145">"व्यत्यय आणू नका ने स्क्रीन चालू करा आणि सूचनांना मूक होऊ द्या"</string>
+    <string name="zen_mode_screen_off_summary" msgid="8592179073243001267">"व्यत्यय आणू नका ने स्क्रीन सुरू करून लाइटची उघडझाप करू द्या आणि सूचनांना मूक होऊ द्या"</string>
+    <string name="zen_mode_screen_off_summary_no_led" msgid="7255874108150630145">"व्यत्यय आणू नका ने स्क्रीन सुरू करा आणि सूचनांना मूक होऊ द्या"</string>
     <string name="notification_app_settings_button" msgid="3651180424198580907">"सूचना सेटिंग्ज"</string>
     <string name="suggestion_button_text" msgid="5783566542423813847">"ठीक"</string>
     <string name="device_feedback" msgid="4042352891448769818">"या डिव्हाइस बद्दल अभिप्राय पाठवा"</string>
@@ -3563,7 +3565,7 @@
     <string name="managing_admin" msgid="3212584016377581608">"<xliff:g id="ADMIN_APP_LABEL">%s</xliff:g> द्वारे व्यवस्थापित"</string>
     <string name="experimental_preference" msgid="5903223408406906322">"(प्रायोगिक)"</string>
     <string name="encryption_interstitial_header" msgid="3298397268731647519">"सुरक्षित प्रारंभ"</string>
-    <string name="encryption_continue_button" msgid="2808797091460167842">"सुरु ठेवा"</string>
+    <string name="encryption_continue_button" msgid="2808797091460167842">"सुरू ठेवा"</string>
     <string name="encryption_interstitial_message_pin" msgid="6592265582286340307">"सुरू होण्यापूर्वी तुमचा पिन आवश्यक करून तुम्ही हे डिव्हाइस अधिक संरक्षित करू शकता. डिव्हाइस सुरू होईपर्यंत, ते कॉल, मेसेज किंवा अलार्मसह सूचना प्राप्त करू शकत नाही. \n\nयामुळे हरवलेल्या किंवा चोरीला गेलेल्या डिव्हाइस वरील डेटाचे संरक्षण करण्यात मदत होते. तुमचे डिव्हाइस सुरू करण्यासाठी पिन हवा?"</string>
     <string name="encryption_interstitial_message_pattern" msgid="5620724295995735120">"सुरू होण्यापूर्वी तुमचा पॅटर्न आवश्यक करून तुम्ही हे डिव्हाइस अधिक संरक्षित करू शकता. डिव्हाइस सुरू होईपर्यंत, ते कॉल, मेसेज किंवा अलार्मसह सूचना प्राप्त करू शकत नाही. \n\nयामुळे हरवलेल्या किंवा चोरीला गेलेल्या डिव्हाइस वरील डेटाचे संरक्षण करण्यात मदत होते. तुमचे डिव्हाइस सुरू करण्यासाठी पॅटर्न हवा?"</string>
     <string name="encryption_interstitial_message_password" msgid="7236688467386126401">"सुरू होण्यापूर्वी तुमचा पासवर्ड आवश्यक करून तुम्ही हे डिव्हाइस अधिक संरक्षित करू शकता. डिव्हाइस सुरू होईपर्यंत, ते कॉल, मेसेज किंवा अलार्मसह सूचना प्राप्त करू शकत नाही. \n\nयामुळे हरवलेल्या किंवा चोरीला गेलेल्या डिव्हाइस वरील डेटाचे संरक्षण करण्यात मदत होते. तुमचे डिव्हाइस सुरू करण्यासाठी पासवर्ड हवा?"</string>
@@ -3710,8 +3712,8 @@
     <string name="high_power_off" msgid="5906679734326490426">"बॅटरी वापर ऑप्टिमाइझ करत आहे"</string>
     <string name="high_power_system" msgid="739584574711292753">"बॅटरी ऑप्टिमायझेशन उपलब्ध नाही"</string>
     <string name="high_power_desc" msgid="333756885680362741">"बॅटरी ऑप्टिमायझेशन वापरू नका. तुमची बॅटरी अधिक द्रुतपणे संपवू शकते."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"अ‍ॅप नेहमी पार्श्वभूमीत चालू द्यायचे?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> नेहमी पार्श्वभूमीमध्ये चालू दिल्याने बॅटरीचे आयुर्मान कमी होऊ शकते. \n\nतुम्ही हे नंतर सेटिंग्ज &gt; अ‍ॅप्स आणि सूचना मधून बदलू शकता."</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"अ‍ॅप नेहमी पार्श्वभूमीत सुरू द्यायचे?"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> नेहमी पार्श्वभूमीमध्ये सुरू दिल्याने बॅटरीचे आयुर्मान कमी होऊ शकते. \n\nतुम्ही हे नंतर सेटिंग्ज &gt; अ‍ॅप्स आणि सूचना मधून बदलू शकता."</string>
     <string name="battery_summary" msgid="4345690800899981339">"शेवटच्या पूर्ण चार्जनंतर <xliff:g id="PERCENTAGE">%1$s</xliff:g> वापर"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"ऊर्जा व्यवस्थापन"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"पूर्ण चार्ज झाल्यानंतर बॅटरी वापर नाही"</string>
@@ -3786,8 +3788,8 @@
     <string name="memory_maximum_usage" msgid="4734981118293469479">"कमाल वापर"</string>
     <string name="no_data_usage" msgid="903383745620135746">"डेटा वापरला गेलेला नाही"</string>
     <string name="zen_access_warning_dialog_title" msgid="7704910289810337055">"<xliff:g id="APP">%1$s</xliff:g> वर व्यत्यय आणू नका ला ॲक्सेस द्यायचा का?"</string>
-    <string name="zen_access_warning_dialog_summary" msgid="2717755746850874577">"व्यत्यय आणू नका चालू/बंद करण्‍यात आणि संबंधित स्‍ट्रिंगमध्‍ये बदल करण्‍यात अ‍ॅप सक्षम असेल."</string>
-    <string name="zen_access_disabled_package_warning" msgid="7086237569177576966">"सूचना प्रवेश चालू असल्याने चालू केलेले ठेवणे आवश्यक आहे"</string>
+    <string name="zen_access_warning_dialog_summary" msgid="2717755746850874577">"व्यत्यय आणू नका सुरू/बंद करण्‍यात आणि संबंधित स्‍ट्रिंगमध्‍ये बदल करण्‍यात अ‍ॅप सक्षम असेल."</string>
+    <string name="zen_access_disabled_package_warning" msgid="7086237569177576966">"सूचना प्रवेश सुरू असल्याने सुरू केलेले ठेवणे आवश्यक आहे"</string>
     <string name="zen_access_revoke_warning_dialog_title" msgid="6850994585577513299">"<xliff:g id="APP">%1$s</xliff:g> साठी व्यत्यय आणू नका मध्‍ये प्रवेश करणे रद्द करायचे?"</string>
     <string name="zen_access_revoke_warning_dialog_summary" msgid="3487422193181311403">"या ॲपने तयार केलेले सर्व व्यत्यय आणू नका नियम काढले जातील."</string>
     <string name="ignore_optimizations_on" msgid="4373971641328943551">"ऑप्टिमाइझ करू नका"</string>
@@ -3854,7 +3856,7 @@
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> अ‍ॅप्ससाठी बंद</item>
       <item quantity="one">1 अ‍ॅपसाठी बंद</item>
     </plurals>
-    <string name="notification_summary_none" msgid="5003043219430054784">"सर्व ॲप्ससाठी चालू"</string>
+    <string name="notification_summary_none" msgid="5003043219430054784">"सर्व ॲप्ससाठी सुरू"</string>
     <string name="apps_summary" msgid="8355759446490212195">"<xliff:g id="COUNT">%1$d</xliff:g> अ‍ॅप्स इंस्टॉल केले"</string>
     <string name="apps_summary_example" msgid="3011143598675185269">"24 अ‍ॅप्स इंस्टॉल केली"</string>
     <string name="storage_summary" msgid="4835916510511133784">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> वापरले - <xliff:g id="FREE_SPACE">%2$s</xliff:g> मोकळे"</string>
@@ -3883,16 +3885,16 @@
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"तुमचा प्रशासक सेटिंग्ज, परवानग्या, कॉर्पोरेट ॲक्सेस, नेटवर्क ॲक्टिव्हिटी आणि डीव्हाइसची स्थान माहिती यांसह तुमच्या कार्य प्रोफाइलशी संबधित ॲप्सचे आणि डेटाचे परीक्षण व व्यवस्थापन करू शकतो."</string>
     <string name="admin_device_owner_message" msgid="1823477572459610869">"तुमच्या प्रशासकाकडे तुमच्या नेटवर्क ॲक्टिव्हिटी तसेच या डीव्हाइसशी संबधित सेटिंग्ज, कॉर्पोरेट ॲक्सेस, परवानग्या यांसह अ‍ॅप्स आणि डेटा यांचे परीक्षण आणि व्यवस्थापन करण्याची क्षमता आहे."</string>
     <string name="condition_turn_off" msgid="4395150881365143558">"बंद करा"</string>
-    <string name="condition_turn_on" msgid="1699088245481841159">"चालू करा"</string>
+    <string name="condition_turn_on" msgid="1699088245481841159">"सुरू करा"</string>
     <string name="condition_expand_show" msgid="4118818022763913777">"दर्शवा"</string>
     <string name="condition_expand_hide" msgid="1112721783024332643">"लपवा"</string>
     <string name="condition_hotspot_title" msgid="4143299802283098506">"हॉटस्पॉट अ‍ॅक्टिव्ह आहे"</string>
-    <string name="condition_airplane_title" msgid="8484582712516148433">"विमान मोड चालू आहे"</string>
+    <string name="condition_airplane_title" msgid="8484582712516148433">"विमान मोड सुरू आहे"</string>
     <string name="condition_airplane_summary" msgid="3021193218494740742">"नेटवर्क उपलब्ध नाही"</string>
-    <string name="condition_zen_title" msgid="2128184708916052585">"व्यत्यय आणू नका चालू आहे"</string>
+    <string name="condition_zen_title" msgid="2128184708916052585">"व्यत्यय आणू नका सुरू आहे"</string>
     <string name="condition_zen_summary_phone_muted" msgid="4396050395522974654">"फोन म्यूट केला आहे"</string>
     <string name="condition_zen_summary_with_exceptions" msgid="3435216391993785818">"अपवादांसह"</string>
-    <string name="condition_battery_title" msgid="6704870010912986274">"बॅटरी बचतकर्ता चालू आहे"</string>
+    <string name="condition_battery_title" msgid="6704870010912986274">"बॅटरी सेव्हर सुरू आहे"</string>
     <string name="condition_battery_summary" msgid="1236078243905690620">"वैशिष्ट्ये प्रतिबंधित केलेली आहेत"</string>
     <string name="condition_cellular_title" msgid="6605277435894307935">"मोबाइल डेटा बंद आहे"</string>
     <string name="condition_cellular_summary" msgid="3607459310548343777">"इंटरनेट फक्त वाय-फायद्वारे उपलब्ध आहे"</string>
@@ -3907,7 +3909,7 @@
     <string name="condition_device_vibrate_summary" msgid="9073880731894828604">"कॉल आणि सूचनांसाठी"</string>
     <string name="night_display_suggestion_title" msgid="4222839610992282188">"रात्रीच्या प्रकाशाचे वेळापत्रक सेट करा"</string>
     <string name="night_display_suggestion_summary" msgid="1754361016383576916">"दररोज रात्री स्क्रीन आपोआप टिंट करा"</string>
-    <string name="condition_night_display_title" msgid="9171491784857160135">"रात्रीचा प्रकाश चालू आहे"</string>
+    <string name="condition_night_display_title" msgid="9171491784857160135">"रात्रीचा प्रकाश सुरू आहे"</string>
     <string name="condition_night_display_summary" msgid="7885776986937527558">"स्क्रीनची छटा मंद पिवळसर केली आहे"</string>
     <string name="condition_grayscale_title" msgid="1226351649203551299">"ग्रेस्केल"</string>
     <string name="condition_grayscale_summary" msgid="749172886527349546">"फक्त ग्रे रंगात दाखवा"</string>
@@ -3963,11 +3965,11 @@
     <string name="configure" msgid="8232696842838580549">"कॉन्फिगर करा"</string>
     <string name="data_usage_other_apps" msgid="7002491980141402084">"वापरामध्ये समाविष्‍ट केलेली इतर अ‍ॅप्स"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
-      <item quantity="other">डेटा सेव्हर चालू असताना <xliff:g id="COUNT">%1$d</xliff:g> अनुप्रयोगांना अनिर्बंध डेटा वापरण्याची अनुमती दिली</item>
-      <item quantity="one"> डेटा सेव्हर चालू असताना 1 अनुप्रयोगास अनिर्बंध डेटा वापरण्याची अनुमती दिली</item>
+      <item quantity="other">डेटा सेव्हर सुरू असताना <xliff:g id="COUNT">%1$d</xliff:g> अ‍ॅप्सना अनिर्बंध डेटा वापरण्याची अनुमती दिली</item>
+      <item quantity="one"> डेटा सेव्हर सुरू असताना 1 अ‍ॅपला अनिर्बंध डेटा वापरण्याची अनुमती दिली</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"प्राथमिक डेटा"</string>
-    <string name="data_usage_wifi_title" msgid="7161828479387766556">"वाय फाय डेटा"</string>
+    <string name="data_usage_wifi_title" msgid="7161828479387766556">"वाय-फाय डेटा"</string>
     <string name="data_used" msgid="1063553292806661784">"<xliff:g id="ID_1">^1</xliff:g> वापरला"</string>
     <string name="data_used_formatted" msgid="9150356955895106822">"<xliff:g id="ID_1">^1</xliff:g> <xliff:g id="ID_2">^2</xliff:g> वापरला"</string>
     <string name="data_overusage" msgid="1570432641791021533">"<xliff:g id="ID_1">^1</xliff:g> मर्यादा संपली"</string>
@@ -3991,7 +3993,7 @@
     <string name="data_saver_off" msgid="7439439787358504018">"बंद"</string>
     <string name="data_saver_switch_title" msgid="8244008132112735207">"डेटा सेव्हर वापरा"</string>
     <string name="unrestricted_app_title" msgid="4390661122069905122">"अनिर्बंध डेटा वापर"</string>
-    <string name="unrestricted_app_summary" msgid="2829141815077800483">"डेटा सेव्हर चालू असताना अनिर्बंध डेटा प्रवेशास अनुमती द्या"</string>
+    <string name="unrestricted_app_summary" msgid="2829141815077800483">"डेटा सेव्हर सुरू असताना अनिर्बंध डेटा प्रवेशास अनुमती द्या"</string>
     <string name="home_app" msgid="3695063566006954160">"होम अ‍ॅप"</string>
     <string name="no_default_home" msgid="1518949210961918497">"डीफॉल्ट होम नाही"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="63693894094570367">"सुरक्षित प्रारंभ"</string>
@@ -4140,7 +4142,7 @@
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"तुमच्या सूचना तपासण्यासाठी, तुमच्या टॅबलेटच्या मागे फिंगरप्रिंट सेन्सरवर खाली स्वाइप करा."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"आपल्या सूचना तपासण्यासाठी, आपल्या डिव्हाइसच्या मागे फिंगरप्रिंट सेन्सरवर खाली स्वाइप करा."</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="948946491233738823">"सूचना पटकन पहा"</string>
-    <string name="gesture_setting_on" msgid="7573680730101327866">"चालू"</string>
+    <string name="gesture_setting_on" msgid="7573680730101327866">"सुरू"</string>
     <string name="gesture_setting_off" msgid="2540159841716890511">"बंद"</string>
     <string name="oem_unlock_enable_disabled_summary_bootloader_unlocked" msgid="7233244080078311793">"बुटलोडर आधीपासून अनलॉक केले"</string>
     <string name="oem_unlock_enable_disabled_summary_connectivity" msgid="262986780389836168">"अगोदर इंटरनेटशी कनेक्ट करा"</string>
@@ -4194,9 +4196,9 @@
     </plurals>
     <string name="enterprise_privacy_input_method" msgid="5885916325874284011">"डीफॉल्ट कीबोर्ड"</string>
     <string name="enterprise_privacy_input_method_name" msgid="439610095825218563">"<xliff:g id="APP_LABEL">%s</xliff:g> वर सेट करा"</string>
-    <string name="enterprise_privacy_always_on_vpn_device" msgid="2022700916516458213">"नेहमी VPN चालू असणे सक्रिय आहे"</string>
-    <string name="enterprise_privacy_always_on_vpn_personal" msgid="5644065780843002044">"आपल्‍या वैयक्तिक प्रोफाइलमध्‍ये नेहमी VPN चालू असणे सक्रिय आहे"</string>
-    <string name="enterprise_privacy_always_on_vpn_work" msgid="6443089897985373564">"आपल्‍या कार्य प्रोफाइलमध्‍ये नेहमी VPN चालू असणे सक्रिय आहे"</string>
+    <string name="enterprise_privacy_always_on_vpn_device" msgid="2022700916516458213">"नेहमी VPN सुरू असणे सक्रिय आहे"</string>
+    <string name="enterprise_privacy_always_on_vpn_personal" msgid="5644065780843002044">"आपल्‍या वैयक्तिक प्रोफाइलमध्‍ये नेहमी VPN सुरू असणे सक्रिय आहे"</string>
+    <string name="enterprise_privacy_always_on_vpn_work" msgid="6443089897985373564">"आपल्‍या कार्य प्रोफाइलमध्‍ये नेहमी VPN सुरू असणे सक्रिय आहे"</string>
     <string name="enterprise_privacy_global_http_proxy" msgid="3862135895716080830">"जागतिक HTTP प्रॉक्‍सी सेट आहे"</string>
     <string name="enterprise_privacy_ca_certs_device" msgid="7715658848470643878">"विश्वसनीय क्रेडेंशिअल"</string>
     <string name="enterprise_privacy_ca_certs_personal" msgid="1356447417193483802">"तुमच्‍या खाजगी प्रोफाइलमधील विश्वसनीय क्रेडेंशिअल"</string>
@@ -4246,7 +4248,7 @@
     <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"तुम्हाला हे इन्स्टंट अ‍ॅप काढायचे आहे का?"</string>
     <string name="launch_instant_app" msgid="5251693061228352333">"उघडा"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"गेम"</string>
-    <string name="audio_files_title" msgid="3073879661731363935">"ऑडिओ फायली"</string>
+    <string name="audio_files_title" msgid="3073879661731363935">"ऑडिओ फाइल"</string>
     <string name="app_info_storage_title" msgid="6643391804949509308">"वापरलेली जागा"</string>
     <string name="webview_uninstalled_for_user" msgid="3407952144444040557">"(<xliff:g id="USER">%s</xliff:g> वापरकर्त्‍यासाठी विस्‍थापित)"</string>
     <string name="webview_disabled_for_user" msgid="8057805373224993504">"(<xliff:g id="USER">%s</xliff:g> वापरकर्त्‍यासाठी अक्षम केले)"</string>
@@ -4265,7 +4267,7 @@
     <string name="show_operator_name_summary" msgid="6352180285743777497">"स्टेटस बारमध्ये नेटवर्क नाव प्रदर्शित करा"</string>
     <string name="storage_manager_indicator" msgid="4255140732848476875">"स्टोरेज व्यवस्थापक: <xliff:g id="STATUS">^1</xliff:g>"</string>
     <string name="storage_manager_indicator_off" msgid="6404056007102580777">"बंद"</string>
-    <string name="storage_manager_indicator_on" msgid="5295306384982062320">"चालू"</string>
+    <string name="storage_manager_indicator_on" msgid="5295306384982062320">"सुरू"</string>
     <string name="install_type_instant" msgid="6248487669862821874">"इन्सटंट अ‍ॅप"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"स्टोरेज व्यवस्थापक बंद करायचा?"</string>
     <string name="storage_movies_tv" msgid="7282484273991655296">"चित्रपट आणि टीव्ही अ‍ॅप्स"</string>
@@ -4308,8 +4310,8 @@
     <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"डिव्हाइसचे नाव"</string>
     <string name="change_wifi_state_title" msgid="5140754955787584174">"वाय-फाय नियंत्रण"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"ॲपला वाय-फाय नियंत्रित करू द्या"</string>
-    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"या ॲपला वाय-फाय चालू किंवा बंद करू द्या, वाय-फाय नेटवर्क स्कॅन करू द्या आणि त्याच्याशी कनेक्ट करू द्या, नेटवर्क जोडू किंवा काढू द्या किंवा केवळ-स्थानिक हॉटस्पॉट सुरू करू द्या"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"मीडिया प्‍ले करा"</string>
+    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"या ॲपला वाय-फाय सुरू किंवा बंद करू द्या, वाय-फाय नेटवर्क स्कॅन करू द्या आणि त्याच्याशी कनेक्ट करू द्या, नेटवर्क जोडू किंवा काढू द्या किंवा केवळ-स्थानिक हॉटस्पॉट सुरू करू द्या"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"मीडिया यावर प्‍ले करा"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"हे डिव्हाइस"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"फोन"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"टॅबलेट"</string>
@@ -4473,7 +4475,7 @@
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"परवानग्या, खाते अ‍ॅक्टिव्हिटी, वैयक्तिक डेटा"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"काढून टाका"</string>
     <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"ठेवा"</string>
-    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"ही सुचाना काढून टाकायची आहे का?"</string>
+    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"ही सूचना काढून टाकायची आहे का?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"सूचना काढली"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"पहिल्यासारखे करा"</string>
     <string name="low_storage_summary" msgid="4562224870189133400">"स्टोरेज कमी आहे. <xliff:g id="PERCENTAGE">%1$s</xliff:g> वापरले - <xliff:g id="FREE_SPACE">%2$s</xliff:g> मोकळे"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ms/arrays.xml b/tests/CarDeveloperOptions/res/values-ms/arrays.xml
index e7eead6..bc4c748 100644
--- a/tests/CarDeveloperOptions/res/values-ms/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ms/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"jalankan di latar belakang"</item>
     <item msgid="6423861043647911030">"kelantangan kebolehaksesan"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokasi"</item>
+    <item msgid="6656077694190491067">"Lokasi"</item>
+    <item msgid="8790228218278477369">"Lokasi"</item>
+    <item msgid="7836406246005211990">"Getar"</item>
+    <item msgid="3951439024549922598">"Baca kenalan"</item>
+    <item msgid="8802152411647068">"Ubah suai kenalan"</item>
+    <item msgid="229544934599698735">"Baca log panggilan"</item>
+    <item msgid="7396102294405899613">"Ubah suai log panggilan"</item>
+    <item msgid="3597797992398484655">"Baca kalendar"</item>
+    <item msgid="2705975774250907343">"Ubah suai kalendar"</item>
+    <item msgid="4668747371441932697">"Lokasi"</item>
+    <item msgid="1487578921720243646">"Siarkan pemberitahuan"</item>
+    <item msgid="4636080349724146638">"Lokasi"</item>
+    <item msgid="673510900286463926">"Hubungi telefon"</item>
+    <item msgid="542083422784609790">"Baca SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Tulis SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Terima SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Terima SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Terima SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Terima SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Hantar SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Baca SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Tulis SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Ubah suai tetapan"</item>
+    <item msgid="8705854389991425629">"Lukiskan di atas"</item>
+    <item msgid="5861356020344153651">"Pemberitahuan akses"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Rakam audio"</item>
+    <item msgid="4516840825756409490">"Mainkan audio"</item>
+    <item msgid="6811712502798183957">"Baca papan keratan"</item>
+    <item msgid="2780369012602289114">"Ubah suai papan keratan"</item>
+    <item msgid="2331359440170850868">"Butang media"</item>
+    <item msgid="6133599737122751231">"Tumpuan audio"</item>
+    <item msgid="6844485713404805301">"Kelantangan utama"</item>
+    <item msgid="1600379420669104929">"Kelantangan suara"</item>
+    <item msgid="6296768210470214866">"Kelantangan deringan"</item>
+    <item msgid="510690696071629241">"Kelantangan media"</item>
+    <item msgid="406861638631430109">"Kelantangan penggera"</item>
+    <item msgid="4715864795872233884">"Kelantangan pemberitahuan"</item>
+    <item msgid="2311478519251301183">"Kelantangan Bluetooth"</item>
+    <item msgid="5133991377896747027">"Kekal berjaga"</item>
+    <item msgid="2464189519136248621">"Lokasi"</item>
+    <item msgid="2062677934050803037">"Lokasi"</item>
+    <item msgid="1735171933192715957">"Dapatkan statistik penggunaan"</item>
+    <item msgid="1014093788778383554">"Redam/nyahredam mikrofon"</item>
+    <item msgid="4199297950608622850">"Tunjukkan toast"</item>
+    <item msgid="2527962435313398821">"Tayangkan media"</item>
+    <item msgid="5117506254221861929">"Aktifkan VPN"</item>
+    <item msgid="8291198322681891160">"Tulis kertas dinding"</item>
+    <item msgid="7106921284621230961">"Bantu struktur"</item>
+    <item msgid="4496533640894624799">"Bantu tangkapan skrin"</item>
+    <item msgid="2598847264853993611">"Baca keadaan telefon"</item>
+    <item msgid="9215610846802973353">"Tambahkan mel suara"</item>
+    <item msgid="9186411956086478261">"Gunakan sip"</item>
+    <item msgid="6884763100104539558">"Proses panggilan keluar"</item>
+    <item msgid="125513972170580692">"Cap jari"</item>
+    <item msgid="2556071024281275619">"Penderia badan"</item>
+    <item msgid="617168514928339387">"Baca siaran sel"</item>
+    <item msgid="7134693570516523585">"Lokasi palsu"</item>
+    <item msgid="7224489175375229399">"Baca storan"</item>
+    <item msgid="8472735063903258202">"Tulis storan"</item>
+    <item msgid="4069276819909595110">"Hidupkan skrin"</item>
+    <item msgid="1228338896751121025">"Dapatkan akaun"</item>
+    <item msgid="3181581793459233672">"Jalankan di latar belakang"</item>
+    <item msgid="2340936043025374076">"Kelantangan kebolehaksesan"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Pendek"</item>
     <item msgid="4816511817309094890">"Sederhana"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Jangan benarkan"</item>
     <item msgid="8184570120217958741">"Sentiasa benarkan"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Biasa"</item>
+    <item msgid="5101233285497327432">"Sederhana"</item>
+    <item msgid="1555861583162930714">"Rendah"</item>
+    <item msgid="1719683776264798117">"Kritikal"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Biasa"</item>
+    <item msgid="6107138933849816768">"Sederhana"</item>
+    <item msgid="182695359839047859">"Rendah"</item>
+    <item msgid="8577246509202964244">"Kritikal"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Berterusan"</item>
     <item msgid="167418068739176448">"Aktiviti popular"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ms/strings.xml b/tests/CarDeveloperOptions/res/values-ms/strings.xml
index bf141c2..234dde9 100644
--- a/tests/CarDeveloperOptions/res/values-ms/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ms/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Kecilkan atau besarkan teks pada skrin."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Kecilkan"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Besarkan"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Teks contoh"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Ahli Sihir Oz yang Menakjubkan"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Bab 11: Oz, Kota Zamrud yang Menakjubkan"</string>
@@ -928,7 +927,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Automatik"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Jalur 2.4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Jalur 5.0 GHz"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Lajur 5.0 GHz diutamakan"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Jalur 5.0 GHz diutamakan"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2.4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5.0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Pilih sekurang-kurangnya satu jalur untuk tempat liputan Wi-Fi:"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mudah alih"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Jika Wi-Fi tidak tersedia, gunakan rangkaian mudah alih"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Jika rangkaian mudah alih tidak tersedia, gunakan Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Panggil melalui Wi‑Fi. Jika Wi-Fi terputus, panggilan akan ditamatkan."</string>
diff --git a/tests/CarDeveloperOptions/res/values-my/arrays.xml b/tests/CarDeveloperOptions/res/values-my/arrays.xml
index c87c35c..9fbddfa 100644
--- a/tests/CarDeveloperOptions/res/values-my/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-my/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"ပစိဖိတ်"</item>
     <item msgid="7044520255415007865">"အားလုံး"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"၁၅ စက္ကန့်"</item>
+    <item msgid="772029947136115322">"စက္ကန့် ၃၀"</item>
+    <item msgid="8743663928349474087">"၁ မိနစ်"</item>
+    <item msgid="1506508631223164814">"၂ မိနစ်"</item>
+    <item msgid="8664703938127907662">"၅ မိနစ်"</item>
+    <item msgid="5827960506924849753">"၁၀ မိနစ်"</item>
+    <item msgid="6677424950124253938">"၃၀ မိနစ်"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ဘယ်တော့မှ"</item>
+    <item msgid="2517785806387977252">"၁၅ စက္ကန့်"</item>
+    <item msgid="6347954399441173672">"စက္ကန့် ၃၀"</item>
+    <item msgid="4858305253279921789">"၁ မိနစ်"</item>
+    <item msgid="8109273437140044073">"၂ မိနစ်"</item>
+    <item msgid="2788593551142462622">"၅ မိနစ်"</item>
+    <item msgid="8012672183888404961">"၁၀ မိနစ်"</item>
+    <item msgid="8271452751594598661">"မိနစ် ၃၀"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"ချက်ချင်း"</item>
     <item msgid="2038544972632026612">"၅ စက္ကန့်"</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"၁၀ မိနစ်"</item>
     <item msgid="7258394417241706272">"၃၀ မိနစ်"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"သေး"</item>
+    <item msgid="591935967183159581">"မူရင်း"</item>
+    <item msgid="1714184661981538355">"ကြီး"</item>
+    <item msgid="6195563047686707484">"အကြီးဆုံး"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"စကင်ပြုလုပ်နေပြီ"</item>
+    <item msgid="5597394826455877834">"ချိတ်ဆက်နေသည်"</item>
+    <item msgid="5848277343965362748">"အထောက်အထားစိစစ်နေသည်…"</item>
+    <item msgid="3391238031431440676">"အိုင်ပီလိပ်စာရယူနေသည်"</item>
+    <item msgid="5257597310494000224">"ချိတ်ဆက်ထားသည်"</item>
+    <item msgid="8472497592913050396">"ဆိုင်းငံ့ထားသည်"</item>
+    <item msgid="1228072488815999109">"အဆက်အသွယ်ဖြတ်တောက်သည်"</item>
+    <item msgid="7253087004422991731">"ချိတ်ဆက်မှုပြတ်တောက်သည်"</item>
+    <item msgid="4169850917304751227">"မအောင်မြင်ပါ"</item>
+    <item msgid="6266658166690831131">"ပိတ်ဆို့ထား"</item>
+    <item msgid="4517230805854909775">"နှေးကွေးသောဆက်သွယ်မှုကို ယာယီရှောင်ရှားထားသည်"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"ရှာဖွေနေသည်…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> နှင့် ဆက်သွယ်နေပါသည်"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ဖြင့် အထောက်အထားစိစစ်နေသည်…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> မှ အိုင်ပီလိပ်စာကို ရယူနေသည်…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> နှင့် ဆက်သွယ်ထားပြီး"</item>
+    <item msgid="6600156231416890902">"ဆိုင်းငံ့ထားသည်"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>မှ ဆက်သွယ်မှုဖြတ်တောက်သွားသည်"</item>
+    <item msgid="3980154971187953257">"ချိတ်ဆက်မှုပြတ်တောက်သည်"</item>
+    <item msgid="2847316776634969068">"မအောင်မြင်ပါ"</item>
+    <item msgid="4390990424746035383">"ပိတ်ဆို့ထား"</item>
+    <item msgid="3618248791367063949">"နှေးကွေးသောဆက်သွယ်မှုကို ယာယီရှောင်ရှားထားသည်"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"နှိပ်ရန်ခလုတ်"</item>
+    <item msgid="7401896200768713930">"တန်းတူစက်ပစ္စည်းမှပင်နံပါတ်"</item>
+    <item msgid="4526848028011846710">"ဤစက်မှပင်နံပါတ်"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"ချိတ်ဆက်ထားသည်"</item>
     <item msgid="983792611851499732">"ဖိတ်ခေါ်ထားပြီး"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"အသုံးပြုနိုင်သည်"</item>
     <item msgid="3230556734162006146">"စက်ကွင်းပြင်ပ"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"၂ မိနစ်"</item>
+    <item msgid="2759776603549270587">"၅ မိနစ်"</item>
+    <item msgid="167772676068860015">"၁ နာရီ"</item>
+    <item msgid="5985477119043628504">"ဘယ်တော့မှ ပိတ်မပစ်ရန်"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"စနစ်မူရင်းကို အသုံးပြုရန်− <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"၁"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"၄"</item>
     <item msgid="3132506679404897150">"၅"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"ညံ့သည်"</item>
+    <item msgid="7882129634982603782">"ညံ့သည်"</item>
+    <item msgid="6457357501905996224">"အတန်အသင့်"</item>
+    <item msgid="405271628162918841">"ကောင်းသည်"</item>
+    <item msgid="999948812884919584">"အလွန်ကောင်းသည်"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"နောက်ဆုံး ရက် ၃၀"</item>
     <item msgid="3211287705232736964">"သုံးစွဲမှု စက်ဝန်း သတ်မှတ်ရန်..."</item>
@@ -106,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"ပုံသေ"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"မရှိ"</item>
     <item msgid="1464741437353223198">"ကိုယ်တိုင်ထည့်သွင်းခြင်း"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"နောက်ခံမှာ အလုပ်လုပ်ပါ"</item>
     <item msgid="6423861043647911030">"အများသုံးစွဲနိုင်မှု အသံ"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"တည်နေရာ"</item>
+    <item msgid="6656077694190491067">"တည်နေရာ"</item>
+    <item msgid="8790228218278477369">"တည်နေရာ"</item>
+    <item msgid="7836406246005211990">"တုန်ခါရန်"</item>
+    <item msgid="3951439024549922598">"အဆက်အသွယ်များ ဖတ်ရန်"</item>
+    <item msgid="8802152411647068">"အဆက်အသွယ်များပြင်ဆင်ရန်"</item>
+    <item msgid="229544934599698735">"ခေါ်ဆိုထားသော မှတ်တမ်းကိုဖတ်ရန်"</item>
+    <item msgid="7396102294405899613">"ခေါ်ဆိုထားသော မှတ်တမ်းကို ပြင်ဆင်ရန်"</item>
+    <item msgid="3597797992398484655">"ပြက္ခဒိန်ကို ဖတ်ရန်"</item>
+    <item msgid="2705975774250907343">"ပြက္ခဒိန်ပြင်ဆင်ရန်"</item>
+    <item msgid="4668747371441932697">"တည်နေရာ"</item>
+    <item msgid="1487578921720243646">"အကြောင်းကြားစာကို တင်ရန်"</item>
+    <item msgid="4636080349724146638">"တည်နေရာ"</item>
+    <item msgid="673510900286463926">"ဖုန်းခေါ်ရန်"</item>
+    <item msgid="542083422784609790">"စာတို/ရုပ်သံစာ ဖတ်ရန်"</item>
+    <item msgid="1033780373029588436">"စာတို/ရုပ်သံစာ ရေးရန်"</item>
+    <item msgid="5647111115517787488">"စာတို/ရုပ်သံစာ လက်ခံရန်"</item>
+    <item msgid="8591105601108455893">"စာတို/ရုပ်သံစာ လက်ခံရန်"</item>
+    <item msgid="7730995008517841903">"စာတို/ရုပ်သံစာ လက်ခံရန်"</item>
+    <item msgid="2613033109026626086">"စာတို/ရုပ်သံစာ လက်ခံရန်"</item>
+    <item msgid="3037159047591081136">"SMS/MMS ပို့ရန်"</item>
+    <item msgid="4726682243833913568">"စာတို/ရုပ်သံစာ ဖတ်ရန်"</item>
+    <item msgid="6555678522277865572">"စာတို/ရုပ်သံစာ ရေးရန်"</item>
+    <item msgid="6981734935578130884">"ဆက်တင်များ ပြင်ဆင်ရန်"</item>
+    <item msgid="8705854389991425629">"အပေါ်မှ ဆွဲရန်"</item>
+    <item msgid="5861356020344153651">"အကြောင်းကြားချက်များအား အသုံးပြုခွင့်"</item>
+    <item msgid="78432174621628659">"ကင်မရာ"</item>
+    <item msgid="3986116419882154794">"အသံဖမ်းရန်"</item>
+    <item msgid="4516840825756409490">"အသံဖွင့်ရန်"</item>
+    <item msgid="6811712502798183957">"နောက်ခံမှတ်တမ်း ဖတ်ရန်"</item>
+    <item msgid="2780369012602289114">"နောက်ခံမှတ်တမ်းပြင်ဆင်ရန်"</item>
+    <item msgid="2331359440170850868">"မီဒီယာခလုတ်များ"</item>
+    <item msgid="6133599737122751231">"အသံပြတ်သားအောင်ချိန်ရန်"</item>
+    <item msgid="6844485713404805301">"ပင်မအသံအတိုးအကျယ်"</item>
+    <item msgid="1600379420669104929">"စကားသံအတိုးအကျယ်"</item>
+    <item msgid="6296768210470214866">"ဖုန်းမြည်သံ အတိုးအကျယ်"</item>
+    <item msgid="510690696071629241">"မီဒီယာ အသံအတိုးအကျယ်"</item>
+    <item msgid="406861638631430109">"နှိုးစက်အသံ အတိုးအကျယ်"</item>
+    <item msgid="4715864795872233884">"အကြောင်းကြားချက်သံ ပမာဏ"</item>
+    <item msgid="2311478519251301183">"ဘလူးတုသ်သံအတိုးအကျယ်"</item>
+    <item msgid="5133991377896747027">"ဖွင့်လျှက်ထားရှိရန်"</item>
+    <item msgid="2464189519136248621">"တည်နေရာ"</item>
+    <item msgid="2062677934050803037">"တည်နေရာ"</item>
+    <item msgid="1735171933192715957">"သုံးစွဲမှု စာရင်းအင်းများကို ရယူရန်"</item>
+    <item msgid="1014093788778383554">"မိုက်ခရိုဖုန်း အသံတိတ်/မတိတ်ရန်"</item>
+    <item msgid="4199297950608622850">"အမည်ကို ပြပါ"</item>
+    <item msgid="2527962435313398821">"ပရိုဂျက် မီဒီယာ"</item>
+    <item msgid="5117506254221861929">"VPN ကို စဖွင့်သုံးပါ"</item>
+    <item msgid="8291198322681891160">"နောက်ခံရေးပါ"</item>
+    <item msgid="7106921284621230961">"ဖွဲ့စည်းပုံကို ကူညီပါ"</item>
+    <item msgid="4496533640894624799">"မျက်နှာပြင်ကို ကူညီပါ"</item>
+    <item msgid="2598847264853993611">"ဖုန်း အခြေအနေကို ဖတ်ပါ"</item>
+    <item msgid="9215610846802973353">"အသံမေးလ် ထည့်ပါ"</item>
+    <item msgid="9186411956086478261">"ငုံခြင်းကို သုံးပါ"</item>
+    <item msgid="6884763100104539558">"အထွက် ခေါ်ဆိုမှုများကို စီမံဆောင်ရွက်ပါ"</item>
+    <item msgid="125513972170580692">"လက်ဗွေ"</item>
+    <item msgid="2556071024281275619">"ခန္ဓာကိုယ် အာရုံခံကိရိယာများ"</item>
+    <item msgid="617168514928339387">"ဆဲလ် ထုတ်လွှင့်မှုများကို ဖတ်ပါ"</item>
+    <item msgid="7134693570516523585">"တည်နေရာကို အတုဖန်တီးပါ"</item>
+    <item msgid="7224489175375229399">"သိုလှောင်ခန်းကို ဖတ်ပါ"</item>
+    <item msgid="8472735063903258202">"သိုလှောင်ခန်းကို ရေးပါ"</item>
+    <item msgid="4069276819909595110">"မျက်နှာပြင်ကို ဖွင့်ပါ"</item>
+    <item msgid="1228338896751121025">"အကောင့်များကို ရယူပါ"</item>
+    <item msgid="3181581793459233672">"နောက်ခံမှာ အလုပ်လုပ်ပါ"</item>
+    <item msgid="2340936043025374076">"အများသုံးစွဲနိုင်မှု အသံ"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"အတို"</item>
     <item msgid="4816511817309094890">"အတော်အသင့်"</item>
@@ -247,7 +369,13 @@
     <item msgid="4627069151979553527">"Cursiv"</item>
     <item msgid="6896773537705206194">"စာလုံးကြီး ဆိုဒ်သေးများ"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"အလွန်သေးရန်"</item>
+    <item msgid="5091603983404027034">"သေး"</item>
+    <item msgid="176844712416932112">"ပုံမှန်"</item>
+    <item msgid="2784236342175159295">"ကြီး"</item>
+    <item msgid="218913203203160606">"အလွန်ကြီးရန်"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"မူရင်း"</item>
     <item msgid="6488643537808152001">"မရှိ"</item>
@@ -262,7 +390,14 @@
     <item msgid="1874668269931014581">"၇၅%"</item>
     <item msgid="6462911487571123954">"၁၀၀%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"အက်ပ်ပုံသေများကို သုံးရန်"</item>
+    <item msgid="8611890312638868524">"အမည်းပေါ်အဖြူ"</item>
+    <item msgid="5891360837786277638">"အဖြူပေါ်အမည်း"</item>
+    <item msgid="2798457065945456853">"အမည်းပေါ်အဝါ"</item>
+    <item msgid="5799049811524553967">"အပြာပေါ်အဝါ"</item>
+    <item msgid="3673930830658169860">"စိတ်ကြိုက်"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"ကြိုတင် ပေးထားတဲ့ ကီးပါရှိသောL2TP/IPSec VPN"</item>
@@ -275,15 +410,32 @@
     <item msgid="2958623927055120839">"မရှိ"</item>
     <item msgid="1157046369795346308">"ကိုယ်တိုင်ထည့်သွင်းခြင်း"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"ချိတ်ဆက်မှုပြတ်တောက်သည်"</item>
+    <item msgid="8754480102834556765">"စတင်နေသည်"</item>
+    <item msgid="3351334355574270250">"ချိတ်ဆက်နေသည်"</item>
+    <item msgid="8303882153995748352">"ချိတ်ဆက်ထားသည်"</item>
+    <item msgid="9135049670787351881">"အချိန်ကုန်ပါပြီ"</item>
+    <item msgid="2124868417182583926">"မအောင်မြင်ပါ"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"မေးပါ"</item>
     <item msgid="7718817231348607934">"ဘယ်တော့မှခွင့်မပြုပါ"</item>
     <item msgid="8184570120217958741">"အမြဲခွင့်ပြုပါ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ပုံမှန်"</item>
+    <item msgid="5101233285497327432">"အတော်အသင့်"</item>
+    <item msgid="1555861583162930714">"နိမ့်"</item>
+    <item msgid="1719683776264798117">"အရေးပါ"</item>
+    <item msgid="1567326459340152525">"။"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ပုံမှန်"</item>
+    <item msgid="6107138933849816768">"အတော်အသင့်"</item>
+    <item msgid="182695359839047859">"နိမ့်"</item>
+    <item msgid="8577246509202964244">"အရေးကြီး"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"တချိန်လုံး"</item>
     <item msgid="167418068739176448">"အသုံး အများဆုံး"</item>
diff --git a/tests/CarDeveloperOptions/res/values-my/strings.xml b/tests/CarDeveloperOptions/res/values-my/strings.xml
index 77c81fc..468454c 100644
--- a/tests/CarDeveloperOptions/res/values-my/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-my/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"မျက်နှာပြင်ပေါ်ရှိ စာလုံးကို ပိုသေးအောင် သို့မဟုတ် ပိုကြီးအောင် လုပ်ပါ။"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"ပိုသေးအောင် ပြုလုပ်ပါ"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"ပိုကြီးအောင် ပြုလုပ်ပါ"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"နမူနာ စာသား"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Oz ၏အံ့ဖွယ်ဝိဇ္ဇာ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"အခန်းကြီး ၁၁ − Oz ၏အံ့ဖွယ် မြစိမ်းရောင်မြို့တော်"</string>
@@ -324,7 +323,7 @@
     <string name="date_and_time_settings_title_setup_wizard" msgid="1573030770187844365">"ရက်စွဲနှင့် အချိန် သတ်မှတ်ရန်"</string>
     <string name="date_and_time_settings_summary" msgid="4617979434474713417">"ရက်စွဲ အချိန် အချိန်ဇုန်နှင့် ပုံစံများအား သတ်မှတ်ရန်"</string>
     <string name="date_time_auto" msgid="2679132152303750218">"ကွန်ရက်က ပြသောအချိန် သုံးပါ"</string>
-    <string name="zone_auto_title" msgid="5500880975376882488">"ကွန်ရက်ကပြသော စံတော်ချိန် သုံးပါ"</string>
+    <string name="zone_auto_title" msgid="5500880975376882488">"ကွန်ရက်က ဖော်ပြထားသောအချိန်ဇုန်ကို အသုံးပြုရန်"</string>
     <string name="date_time_24hour_auto" msgid="7499659679134962547">"အသုံးပြုမည့် ဒေသဘာသာစကား၏စနစ်ကို သုံးရန်"</string>
     <string name="date_time_24hour_title" msgid="6209923858891621283">"၂၄-နာရီပုံစံ"</string>
     <string name="date_time_24hour" msgid="1265706705061608742">"၂၄-နာရီပုံစံကို အသုံးပြုမည်"</string>
@@ -364,7 +363,7 @@
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"မရှိ"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"ဥပမာ၊ Joe ၏ Android"</string>
-    <string name="user_info_settings_title" msgid="1125111518759995748">"သုံးစွဲသူအကြောင်း"</string>
+    <string name="user_info_settings_title" msgid="1125111518759995748">"အသုံးပြုသူအကြောင်း"</string>
     <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"သော့ခတ်ထားသောမျက်နှာပြင်ပေါ်သုံးစွဲသူ၏အကြောင်းပြရန်"</string>
     <string name="profile_info_settings_title" msgid="4855892878512562551">"ကိုယ်ရေးအချက်အလက်"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"အကောင့်များ"</string>
@@ -544,7 +543,7 @@
     <string name="suggested_fingerprint_lock_settings_summary" product="tablet" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="default" msgid="8114514312665251311"></string>
-    <string name="lock_settings_picker_title" msgid="1034741644461982205">"မျက်နှာပြင်လော့ခ်ချနည်းရွေးရန်"</string>
+    <string name="lock_settings_picker_title" msgid="1034741644461982205">"ဖန်သားပြင်လော့ခ်"</string>
     <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"အလုပ် လော့ခ်ချခြင်းကို ရွေးပါ"</string>
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"သင့်တက်ဘလက်ကို ကာကွယ်ပါ"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"သင့်စက်ပစ္စည်းကို ကာကွယ်ပါ"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"မိုဘိုင်း"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi မရနိုင်လျှင် မိုဘိုင်းကွန်ရက် သုံးပါ"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"မိုဘိုင်းကွန်ရက် မရနိုင်လျှင် Wi‑Fi သုံးပါ"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi-Fi သုံး၍ ခေါ်ဆိုသည်။ Wi‑Fi မရတော့လျှင် ခေါ်ဆိုမှု ပြီးသွားပါမည်။"</string>
@@ -1323,7 +1325,7 @@
     <string name="device_status" msgid="395318738663800026">"အခြေအနေ"</string>
     <string name="device_status_summary" product="tablet" msgid="8975790197766171710">"ဘက်ထရီ၊ ကွန်ယက်နှင့် တစ်ခြားအချက်အလက်၏ အခြေအနေများ"</string>
     <string name="device_status_summary" product="default" msgid="8282235230720651642">"ဖုန်းနံပါတ်၊ ထုတ်လွင့်မှု စသည်"</string>
-    <string name="storage_settings" msgid="7009733301485139652">"သိုလှောင်မှုများ"</string>
+    <string name="storage_settings" msgid="7009733301485139652">"သိုလှောင်ခန်း"</string>
     <string name="storage_settings_for_app" msgid="3028887232073069965">"သိုလှောင်ခန်းနှင့် ကက်ရှ်"</string>
     <string name="storage_usb_settings" msgid="4470138799276333403">"သိုလှောင်ခန်း"</string>
     <string name="storage_settings_title" msgid="7348362600789024415">"သိုလှောင်မှု ဆက်တင်များ"</string>
@@ -1704,7 +1706,7 @@
     <string name="settings_safetylegal_activity_unreachable" msgid="3541894966476445833">"သင့်တွင်ဒေတာချိတ်ဆက်မှု မရှိပါ။ ဤအချက်အလက်ကိုကြည့်ရန် အင်တာနက်ချိတ်ဆက်မှုရှိသည့် မည်သည့်ကွန်ပျူတာမှမဆို %s ထံသို့ သွားပါ။"</string>
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"ဖွင့်နေဆဲ…"</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"အခြားနည်းလမ်း သုံးရန်"</string>
-    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"မျက်နှာပြင်လော့ခ် သတ်မှတ်ခြင်း"</string>
+    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"ဖန်သားပြင်လော့ခ် သတ်မှတ်ခြင်း"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"လုံခြုံရေးအတွက် စကားဝှက် သတ်မှတ်ပါ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"လက်ဗွေသုံးရန် စကားဝှက်သတ်မှတ်ပါ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"လက်ဗွေသုံးရန် ပုံစံသတ်မှတ်ပါ"</string>
@@ -1797,7 +1799,7 @@
     <string name="advanced_settings" msgid="6282069364060968122">"အဆင့်မြင့်အပြင်အဆင်များ"</string>
     <string name="advanced_settings_summary" msgid="5912237062506771716">"ပိုမိုပြီးရွေးချယ်နိုင်သော အပြင်အဆင်များ ရရှိခြင်း"</string>
     <string name="application_info_label" msgid="3886253474964599105">"အက်ပ်အချက်အလက်များ"</string>
-    <string name="storage_label" msgid="1109537840103290384">"သိုလှောင်မှုများ"</string>
+    <string name="storage_label" msgid="1109537840103290384">"သိုလှောင်ခန်း"</string>
     <string name="auto_launch_label" msgid="47089737922907379">"မူရင်းအတိုင်းဖွင့်ရန်"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"မူရင်းအတိုင်း"</string>
     <string name="screen_compatibility_label" msgid="3638271673726075815">"ဖန်သားပြင် လိုက်ဖက်မှု"</string>
@@ -2000,7 +2002,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="6492621665762797309">"စာလုံးကို ပြင်ဆင်မည်"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="4577283176672181497">"ပြင်ဆင်ရန်"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="670470172230144069">"ဖျက်ရန်"</string>
-    <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"အသုံးပြုသူအဘိဓာန်တွင် သင့်စကားလုံးများမရှိပါ။ စကားလုံးတစ်ခု ပေါင်းထည့်ရန်၊ (+) ခလုတ်ကိုနှိပ်ပါ။"</string>
+    <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"အသုံးပြုသူအဘိဓာန်တွင် စကားလုံးများမရှိပါ။ စကားလုံးတစ်ခု ပေါင်းထည့်ရန်၊ (+) ခလုတ်ကိုနှိပ်ပါ။"</string>
     <string name="user_dict_settings_all_languages" msgid="8839702015353418176">"ဘာသာစကားအားလုံးအတွက်"</string>
     <string name="user_dict_settings_more_languages" msgid="8345984308635521364">"ဘာသာစကားပိုများများ…"</string>
     <string name="testing" msgid="4255916838792186365">"စမ်းသပ်မှု"</string>
@@ -2080,7 +2082,7 @@
     <string name="accessibility_timeout_1min" msgid="5019003178551730551">"၁ မိနစ်"</string>
     <string name="accessibility_timeout_2mins" msgid="4124259290444829477">"၂ မိနစ်"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"ဖတ်ရန် အချိန်"</string>
-    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"တစ်ခုခုလုပ်ဆောင်ရန် အချိန်"</string>
+    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"လုပ်ဆောင်ရန် အချိန်"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"သင် ဖတ်ရှုရမည့် မက်ဆေ့ဂျ်များအား ပြရမည့် ကြာချိန် ရွေးပါ။ သို့သော်လည်း ယာယီသာ မြင်ရပါမည်။\n\nဤဆက်တင်ကို အက်ပ်အားလုံးတွင် အသုံးမပြုနိုင်ပါ။"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"တစ်ခုခုလုပ်ဆောင်ရန် မေးသည့် မက်ဆေ့ဂျ်များ ပြရမည့်ကြာချိန် ရွေးပါ၊ သို့သော်လည်း ယာယီသာ မြင်ရပါမည်။\n\nအက်ပ်အားလုံးတွင် ဤဆက်တင် အသုံးမပြုနိုင်ပါ။"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"ထိထားရန် လိုအပ်ချိန်"</string>
@@ -2922,8 +2924,8 @@
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"အမြဲတမ်း"</string>
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"အခြား ငွေပေးချေရေး အက်ပ်ပွင့်နေချိန်မှ လွဲပြီး"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"တို့ထိပြီးပေးရန် နေရာတွင် အောက်ပါနည်းဖြင့် ပေးပါ-"</string>
-    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"မှတ်တိုင်တွင် ငွေချေခြင်း"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ငွေပေးချေရေး အက်ပ်ကို သတ်မှတ်ပေးပါ။ ၎င်းနောက်မှာ သင့်ဖုန်း၏ နောက်ကျောကို ချိတ်ဆက်ရန် မလိုသည့် သင်္ကေတ ပါရှိသော တာမီနယ် တခုခုဆီသို့ ကပ်ပေးလိုက်ရုံပါပဲ။"</string>
+    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"ငွေချေစက်တွင် ငွေပေးချေခြင်း"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ငွေပေးချေရေး အက်ပ်ကို သတ်မှတ်ပါ။ ၎င်းနောက် သင့်ဖုန်း၏ ကျောဘက်ကို ချိတ်ဆက်ရန် မလိုသင်္ကေတပါ ငွေချေစက် တစ်ခုဆီသို့ ကပ်လိုက်ပါ။"</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"ရပါပြီ"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"နောက်ထပ်..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"သင်၏ ဦးစားပေးချက်များ သတ်မှတ်မည်လား?"</string>
@@ -3160,7 +3162,7 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"တုန်ခါမှုများ"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"အသံများ ဖွင့်ထားပါ"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"တိုက်ရိုက်စာတန်းထိုး"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"အလိုလို မီဒီယာ စာတန်းထိုးရန်"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"အလိုအလျောက် စာတန်းထိုးရန်"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"ဘယ်တော့မှ"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> ခု ဖွင့်ထားသည်</item>
@@ -3675,7 +3677,7 @@
     <string name="default_app" msgid="8861276008866619872">"(မူသေ)"</string>
     <string name="system_app" msgid="4111402206594443265">"(စနစ်)"</string>
     <string name="system_default_app" msgid="1454719098589351197">"(စနစ်မူလ)"</string>
-    <string name="apps_storage" msgid="5658466038269046038">"အက်ပ်များ သိုလှောင်မှု"</string>
+    <string name="apps_storage" msgid="5658466038269046038">"အက်ပ်များ သိုလှောင်ခန်း"</string>
     <string name="usage_access" msgid="2023443456361489516">"သုံးစွဲမှုကို ကြည့်ရှုနိုင်ခြင်း"</string>
     <string name="permit_usage_access" msgid="3321727608629752758">"ဝင်ရောက်သုံးစွဲမှုအား ခွင့့်ပြုရန်"</string>
     <string name="app_usage_preference" msgid="5691545073101551727">"အက်ပ်သုံးစွဲမှု ရွေးချယ်စရာများ"</string>
diff --git a/tests/CarDeveloperOptions/res/values-nb/arrays.xml b/tests/CarDeveloperOptions/res/values-nb/arrays.xml
index 04b22b6..1719b05 100644
--- a/tests/CarDeveloperOptions/res/values-nb/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-nb/arrays.xml
@@ -392,8 +392,8 @@
   </string-array>
   <string-array name="captioning_preset_selector_titles">
     <item msgid="326819345272910536">"Bruk appens standardvalg"</item>
-    <item msgid="8611890312638868524">"Hvitt på svart"</item>
-    <item msgid="5891360837786277638">"Svart på hvitt"</item>
+    <item msgid="8611890312638868524">"Hvit på svart"</item>
+    <item msgid="5891360837786277638">"Svart på hvit"</item>
     <item msgid="2798457065945456853">"Gult på svart"</item>
     <item msgid="5799049811524553967">"Gult på blått"</item>
     <item msgid="3673930830658169860">"Tilpasset"</item>
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Aldri tillat"</item>
     <item msgid="8184570120217958741">"Alltid tillat"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderat"</item>
+    <item msgid="1555861583162930714">"Lav"</item>
+    <item msgid="1719683776264798117">"Kritisk"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderat"</item>
+    <item msgid="182695359839047859">"Lav"</item>
+    <item msgid="8577246509202964244">"Kritisk"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Vedvarende"</item>
     <item msgid="167418068739176448">"Høyeste aktivitet"</item>
@@ -467,7 +477,7 @@
     <item msgid="1008268820118852416">"Behandle som uten datamåling"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Bruk tilfeldig valgt MAC-adresse (standard)"</item>
+    <item msgid="6545683814310036454">"Bruk tilfeldig MAC-adresse (standard)"</item>
     <item msgid="214234417308375326">"Bruk enhetens MAC-adresse"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-nb/strings.xml b/tests/CarDeveloperOptions/res/values-nb/strings.xml
index 98d8827..52e4a1e 100644
--- a/tests/CarDeveloperOptions/res/values-nb/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-nb/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Gjør teksten på skjermen større eller mindre."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Gjør mindre"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Gjør større"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Eksempeltekst"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Trollmannen fra Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Kapittel 11: Den vidunderlige smaragdbyen Oz"</string>
@@ -470,7 +469,7 @@
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Plassér fingeren på sensoren, og løft den når du kjenner en vibrasjon"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Løft fingeren og berør igjen"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Løft fingeren gjentatte ganger for å legge til de forskjellige delene av fingeravtrykket ditt"</string>
-    <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Fingeravtrykk lagt til"</string>
+    <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Fingeravtrykket er lagt til"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Når du ser dette ikonet, kan du bruke fingeravtrykket ditt til å identifisere deg eller godkjenne kjøp"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Gjør det senere"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="2816424026528101690">"Vil du hoppe over fingeravtrykk-konfig.?"</string>
@@ -488,7 +487,7 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Ferdig"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Ops, det er ikke sensoren"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Berør sensoren på baksiden av telefonen. Bruk pekefingeren."</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Registrering er ikke fullført"</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Registreringen er ikke fullført"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Tidsgrensen for registrering av fingeravtrykk er nådd. Prøv på nytt."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Registrering av fingeravtrykket mislyktes. Prøv på nytt, eller bruk en annen finger."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Legg til ett til"</string>
@@ -847,7 +846,7 @@
     <string name="wifi_error" msgid="5605801874484465557">"Feil"</string>
     <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"5 GHz-bånd er ikke tilgjengelig i dette landet"</string>
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"I flymodus"</string>
-    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Varsel om åpent nettverk"</string>
+    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Varsel om åpne nettverk"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Varsle når et offentlig nettverk av høy kvalitet er tilgjengelig"</string>
     <string name="wifi_wakeup" msgid="4963732992164721548">"Slå på Wi‑Fi automatisk"</string>
     <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi‑Fi slås på igjen i nærheten av lagrede nettverk av høy kvalitet, for eksempel hjemmenettverket ditt"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Bruk mobilnettverk hvis Wi-Fi er utilgjengelig"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Bruk Wi-Fi hvis mobilnettverket er utilgjengelig"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Ring via Wi‑Fi. Samtalen avsluttes hvis du mister Wi‑Fi-tilkoblingen."</string>
@@ -1705,7 +1707,7 @@
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"Laster inn …"</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Bruk en annen metode"</string>
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Angi skjermlås"</string>
-    <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Angi et passord for sikkerheten"</string>
+    <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Angi et passord av hensyn til sikkerheten"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Angi passord for å bruke fingeravtrykk"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Angi mønster for å bruke fingeravtrykk"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Angi en PIN-kode for sikkerheten"</string>
@@ -1750,7 +1752,7 @@
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"Endre PIN-kode for opplåsning"</string>
     <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"Tegn et opplåsingsmønster"</string>
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"Trykk menyknappen for hjelp."</string>
-    <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"Slipp opp fingeren når du er ferdig."</string>
+    <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"Løft fingeren når du er ferdig."</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"Berør minst <xliff:g id="NUMBER">%d</xliff:g> punkter. Prøv på nytt."</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"Mønsteret er registrert"</string>
     <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"Tegn mønsteret på nytt for å bekrefte"</string>
@@ -2087,7 +2089,7 @@
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Fargeinvertering"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Kan påvirke ytelsen"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"Holdetid"</string>
-    <string name="accessibility_autoclick_description" msgid="5492414927846407499">"Hvis du bruker en mus, kan du stille musepekeren til å klikke automatisk når den slutter å bevege seg i en bestemt periode."</string>
+    <string name="accessibility_autoclick_description" msgid="5492414927846407499">"Hvis du bruker en mus, kan du stille musepekeren til å klikke automatisk etter at den har stått i ro en viss tid."</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="8303022510942147049">"Forsinkelse før klikk"</string>
     <string name="accessibility_vibration_settings_title" msgid="1902649657883159406">"Vibrasjon"</string>
     <string name="accessibility_notification_vibration_title" msgid="1005799039440510298">"Varselvibrering"</string>
@@ -2792,7 +2794,7 @@
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"La enheten være tilkoblet VPN hele tiden"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"Støttes ikke av denne appen"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"Alltid på er aktiv"</string>
-    <string name="vpn_require_connection" msgid="5413746839457797350">"Blokker tilkoblinger uten VPN"</string>
+    <string name="vpn_require_connection" msgid="5413746839457797350">"Blokkér tilkoblinger uten VPN"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"Vil du kreve VPN-tilkobling?"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"Velg en VPN-profil du vil forbli tilkoblet til. Nettverkstrafikk blir bare tillatt når du er tilkoblet denne VPN-en."</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"Ingen"</string>
@@ -2914,7 +2916,7 @@
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Utvidelsesinnstillinger for appen"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Berøringsbetaling"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Slik fungerer det"</string>
-    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Betal med telefonen din i butikker"</string>
+    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Betal med telefonen i butikker"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"Standardapp for betaling"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Ikke angitt"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> – <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Unntatt når en annen betalingsapp er åpen"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"På betalingsterminaler med berøringsfunksjonalitet vil du betale med"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Betaling ved terminaler"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Konfigurer en betalingsapp. Deretter holder du baksiden av telefonen din mot en terminal som har symbolet for kontaktløs betaling."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Konfigurer en betalingsapp. Deretter holder du baksiden av telefonen mot en terminal som har symbolet for kontaktløs betaling."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"Skjønner"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Mr"</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Angi som foretrukket?"</string>
@@ -3160,7 +3162,7 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Vibrasjoner"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Lyder ved oppstart"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"Liveteksting"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"Automatisk teksting av media"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"Automatisk medieteksting"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Aldri"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> er slått på</item>
diff --git a/tests/CarDeveloperOptions/res/values-ne-nokeys/strings.xml b/tests/CarDeveloperOptions/res/values-ne-nokeys/strings.xml
index 782928a..7f158d4 100644
--- a/tests/CarDeveloperOptions/res/values-ne-nokeys/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ne-nokeys/strings.xml
@@ -16,5 +16,5 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="applications_settings_summary" msgid="1051076839604862240">"अनुप्रयोगहरू प्रबन्ध गर्नुहोस्"</string>
+    <string name="applications_settings_summary" msgid="1051076839604862240">"एपहरू प्रबन्ध गर्नुहोस्"</string>
 </resources>
diff --git a/tests/CarDeveloperOptions/res/values-ne/arrays.xml b/tests/CarDeveloperOptions/res/values-ne/arrays.xml
index aad8f88..38867ec 100644
--- a/tests/CarDeveloperOptions/res/values-ne/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ne/arrays.xml
@@ -62,8 +62,8 @@
   <string-array name="entries_font_size">
     <item msgid="2340391964816059553">"सानो"</item>
     <item msgid="591935967183159581">"पूर्वनिर्धारित"</item>
-    <item msgid="1714184661981538355">"ठूलो"</item>
-    <item msgid="6195563047686707484">"सबैभन्दा ठूलो"</item>
+    <item msgid="1714184661981538355">"ठुलो"</item>
+    <item msgid="6195563047686707484">"सबैभन्दा ठुलो"</item>
   </string-array>
   <string-array name="wifi_status">
     <item msgid="1304883790721412351"></item>
@@ -85,7 +85,7 @@
     <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>सँग जडान हुँदै..."</item>
     <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>का साथ प्रमाणीकरण गर्दै..."</item>
     <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>बाट IP ठेगाना प्राप्त गर्दै..."</item>
-    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>सँग जडित"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> मा जोडिएको छ"</item>
     <item msgid="6600156231416890902">"निलम्बित"</item>
     <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>बाट विच्छेदन गर्दै..."</item>
     <item msgid="3980154971187953257">"जडान विच्छेद भयो"</item>
@@ -170,7 +170,7 @@
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"कुनै पनि होइन"</item>
     <item msgid="1464741437353223198">"म्यानुअल"</item>
-    <item msgid="5793600062487886090">"प्रोक्सी स्वतः समायोजन"</item>
+    <item msgid="5793600062487886090">"प्रोक्सी अटो-कन्फिगुरेसन"</item>
   </string-array>
   <string-array name="apn_auth_entries">
     <item msgid="7099647881902405997">"कुनै पनि होइन"</item>
@@ -256,8 +256,8 @@
     <item msgid="7565226799008076833">"मास्टर ध्वनि मात्रा"</item>
     <item msgid="5420704980305018295">"वाणी मात्रा"</item>
     <item msgid="5797363115508970204">"घन्टी मात्रा"</item>
-    <item msgid="8233154098550715999">"मिडियाको आवाजको मात्रा"</item>
-    <item msgid="5196715605078153950">"अलार्मको आवाजको मात्रा"</item>
+    <item msgid="8233154098550715999">"मिडियाको भोल्युम"</item>
+    <item msgid="5196715605078153950">"अलार्मको भोल्युम"</item>
     <item msgid="394030698764284577">"सूचना मात्रा"</item>
     <item msgid="8952898972491680178">"ब्लुटुथ मात्रा"</item>
     <item msgid="8506227454543690851">"जागा रहनुहोस्"</item>
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"पृष्ठभूमिमा सञ्चालन गर्नुहोस्"</item>
     <item msgid="6423861043647911030">"पहुँचको मात्रा"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"स्थान"</item>
+    <item msgid="6656077694190491067">"स्थान"</item>
+    <item msgid="8790228218278477369">"स्थान"</item>
+    <item msgid="7836406246005211990">"भाइब्रेट गर्नुहोस्"</item>
+    <item msgid="3951439024549922598">"सम्पर्कहरू पढ्नुहोस्"</item>
+    <item msgid="8802152411647068">"सम्पर्कहरू परिमार्जन गर्नुहोस्"</item>
+    <item msgid="229544934599698735">"कल लग पढ्नुहोस्"</item>
+    <item msgid="7396102294405899613">"कल लग परिमार्जन गर्नुहोस्"</item>
+    <item msgid="3597797992398484655">"पात्रो पढ्नुहोस्"</item>
+    <item msgid="2705975774250907343">"पात्रो परिमार्जन गर्नुहोस्"</item>
+    <item msgid="4668747371441932697">"स्थान"</item>
+    <item msgid="1487578921720243646">"सूचना पोस्ट गर्नुहोस्"</item>
+    <item msgid="4636080349724146638">"स्थान"</item>
+    <item msgid="673510900286463926">"कल फोन"</item>
+    <item msgid="542083422784609790">"SMS/MMS पढ्नुहोस्"</item>
+    <item msgid="1033780373029588436">"SMS/MMS लेख्नुहोस्"</item>
+    <item msgid="5647111115517787488">"SMS/MMS प्राप्त गर्नुहोस्"</item>
+    <item msgid="8591105601108455893">"SMS/MMS प्राप्त गर्नुहोस्"</item>
+    <item msgid="7730995008517841903">"SMS/MMS प्राप्त गर्नुहोस्"</item>
+    <item msgid="2613033109026626086">"SMS/MMS प्राप्त गर्नुहोस्"</item>
+    <item msgid="3037159047591081136">"SMS/MMS पठाउनुहोस्"</item>
+    <item msgid="4726682243833913568">"SMS/MMS पढ्नुहोस्"</item>
+    <item msgid="6555678522277865572">"SMS/MMS लेख्नुहोस्"</item>
+    <item msgid="6981734935578130884">"सेटिङ परिमार्जन गर्नुहोस्"</item>
+    <item msgid="8705854389991425629">"शीर्षमा कोर्नुहोस्"</item>
+    <item msgid="5861356020344153651">"सूचनाहरू पहुँच गर्नुहोस्"</item>
+    <item msgid="78432174621628659">"क्यामेरा"</item>
+    <item msgid="3986116419882154794">"अडियो रेकर्ड गर्नुहोस्"</item>
+    <item msgid="4516840825756409490">"अडियो बजाउनुहोस्"</item>
+    <item msgid="6811712502798183957">"क्लिपबोर्ड पढ्नुहोस्"</item>
+    <item msgid="2780369012602289114">"क्लिपबोर्ड परिमार्जन गर्नुहोस्"</item>
+    <item msgid="2331359440170850868">"मिडिया बटनहरू"</item>
+    <item msgid="6133599737122751231">"श्रब्य फोकस"</item>
+    <item msgid="6844485713404805301">"मास्टर ध्वनि मात्रा"</item>
+    <item msgid="1600379420669104929">"वाणीको मात्रा"</item>
+    <item msgid="6296768210470214866">"घन्टीको भोल्युम"</item>
+    <item msgid="510690696071629241">"मिडियाको भोल्युम"</item>
+    <item msgid="406861638631430109">"अलार्मको भोल्युम"</item>
+    <item msgid="4715864795872233884">"ध्वनी सूचना"</item>
+    <item msgid="2311478519251301183">"ब्लुटुथ भोल्युम"</item>
+    <item msgid="5133991377896747027">"जागा रहनुहोस्"</item>
+    <item msgid="2464189519136248621">"स्थान"</item>
+    <item msgid="2062677934050803037">"स्थान"</item>
+    <item msgid="1735171933192715957">"तथ्याङ्क उपयोग प्राप्त गर्नुहोस्"</item>
+    <item msgid="1014093788778383554">"माइक्रोफोनको आवाज बन्द्/खुला गर्नुहोस्"</item>
+    <item msgid="4199297950608622850">"टोस्ट देखाउनुहोस्"</item>
+    <item msgid="2527962435313398821">"मिडिया प्रोजेक्ट गर्नुहोस्"</item>
+    <item msgid="5117506254221861929">"VPN सक्रिय पार्नुहोस्"</item>
+    <item msgid="8291198322681891160">"वालपेपर लेख्नुहोस्"</item>
+    <item msgid="7106921284621230961">"संरचनालाई मद्दत गर्नुहोस्"</item>
+    <item msgid="4496533640894624799">"स्क्रिनसटलाई मद्दत गर्नुहोस्"</item>
+    <item msgid="2598847264853993611">"फोन अवस्था पढ्नुहोस्"</item>
+    <item msgid="9215610846802973353">"भ्वाइसमेल थप्नुहोस्"</item>
+    <item msgid="9186411956086478261">"SIP प्रयोग गर्नुहोस्"</item>
+    <item msgid="6884763100104539558">"बहिर्गमन कललाई प्रशोधन गर्नुहोस्"</item>
+    <item msgid="125513972170580692">"फिंगरप्रिन्ट"</item>
+    <item msgid="2556071024281275619">"शारीरिक सेन्सर"</item>
+    <item msgid="617168514928339387">"सेल प्रसारणहरू पढ्नुहोस्"</item>
+    <item msgid="7134693570516523585">"स्थानको नक्कल गर्नुहोस्"</item>
+    <item msgid="7224489175375229399">"भण्डारण पढ्नुहोस्"</item>
+    <item msgid="8472735063903258202">"भण्डारण लेख्नहोस्"</item>
+    <item msgid="4069276819909595110">"स्क्रिन सक्रिय गर्नुहोस्"</item>
+    <item msgid="1228338896751121025">"खाताहरू प्राप्त गर्नुहोस्"</item>
+    <item msgid="3181581793459233672">"पृष्ठभूमिमा सञ्चालन गर्नुहोस्"</item>
+    <item msgid="2340936043025374076">"पहुँचको मात्रा"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"छोटो"</item>
     <item msgid="4816511817309094890">"सामान्य"</item>
@@ -307,8 +373,8 @@
     <item msgid="1680223634161592855">"ज्यादै साना"</item>
     <item msgid="5091603983404027034">"सानो"</item>
     <item msgid="176844712416932112">"सामान्य"</item>
-    <item msgid="2784236342175159295">"ठूलो"</item>
-    <item msgid="218913203203160606">"ज्यादै ठूलो"</item>
+    <item msgid="2784236342175159295">"ठुलो"</item>
+    <item msgid="218913203203160606">"ज्यादै ठुलो"</item>
   </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"पूर्वनिर्धारित"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"कहिल्यै पनि अनुमति नदिनुहोस्"</item>
     <item msgid="8184570120217958741">"सधैँ अनुमति दिनुहोस्"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"मेमोरीको स्थिति सामान्य छ"</item>
+    <item msgid="5101233285497327432">"मध्यम"</item>
+    <item msgid="1555861583162930714">"न्यून"</item>
+    <item msgid="1719683776264798117">"चिन्ताजनक"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"सामान्य"</item>
+    <item msgid="6107138933849816768">"मध्यम"</item>
+    <item msgid="182695359839047859">"न्यून"</item>
+    <item msgid="8577246509202964244">"मेमोरी अत्यन्त कम छ"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"लगातार"</item>
     <item msgid="167418068739176448">"उच्च गतिविधि"</item>
@@ -385,9 +461,9 @@
     <item msgid="5642914536624000094">"रातो"</item>
   </string-array>
   <string-array name="automatic_storage_management_days">
-    <item msgid="2860293514533486236">"३० दिनभन्दा बढी पुरानो"</item>
-    <item msgid="8699273238891265610">"६० दिनभन्दा बढी पुरानो"</item>
-    <item msgid="8346279419423837266">"९० दिनभन्दा बढी पुरानो"</item>
+    <item msgid="2860293514533486236">"कम्तीमा ३० दिन पुरानो"</item>
+    <item msgid="8699273238891265610">"कम्तीमा ६० दिन पुरानो"</item>
+    <item msgid="8346279419423837266">"कम्तीमा ९० दिन पुरानो"</item>
   </string-array>
     <!-- no translation found for swipe_direction_titles:0 (6583090603341402282) -->
     <!-- no translation found for swipe_direction_titles:1 (4965730704403236310) -->
@@ -398,7 +474,7 @@
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"स्वतः पत्ता लगाउनुहोस्"</item>
     <item msgid="773943026484148895">"शुल्क लाग्ने वाइफाइका रूपमा लिनुहोस्"</item>
-    <item msgid="1008268820118852416">"मिटर नगरिएको रूपमा व्यवहार गर्नुहोस्"</item>
+    <item msgid="1008268820118852416">"नि:शुल्क वाइफाइको रूपमा व्यवहार गर्नुहोस्"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="6545683814310036454">"क्रमरहित MAC प्रयोग गर्नुहोस् (पूर्वनिर्धारित)"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ne/strings.xml b/tests/CarDeveloperOptions/res/values-ne/strings.xml
index 5764cb0..8478f54 100644
--- a/tests/CarDeveloperOptions/res/values-ne/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ne/strings.xml
@@ -80,11 +80,10 @@
     <string name="sdcard_format" product="default" msgid="4831611387627849108">"SD कार्ड मेटाउनुहोस्"</string>
     <string name="preview_pager_content_description" msgid="5731599395893090038">"पूर्वावलोकन"</string>
     <string name="preview_page_indicator_content_description" msgid="3192955679074998362">"पूर्वावलोकन, <xliff:g id="NUM_PAGES">%2$d</xliff:g> मध्ये पृष्ठ <xliff:g id="CURRENT_PAGE">%1$d</xliff:g>"</string>
-    <string name="font_size_summary" msgid="9120023206321191067">"स्क्रिनमा भएको पाठलाई अझै सानो वा ठूलो बनाउनुहोस्।"</string>
+    <string name="font_size_summary" msgid="9120023206321191067">"स्क्रिनमा भएको पाठलाई अझै सानो वा ठुलो बनाउनुहोस्।"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"अझ सानो बनाउनुहोस्"</string>
-    <string name="font_size_make_larger_desc" msgid="2907824418252785875">"अझ ठूलो बनाउनुहोस्"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_make_larger_desc" msgid="2907824418252785875">"अझ ठुलो बनाउनुहोस्"</string>
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"नमूना पाठ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"दि वन्डरफुल विजार्ड अफ ओज"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"अध्याय ११: दि वन्डरफुल एमरल्ड सिटी अफ ओज"</string>
@@ -128,28 +127,28 @@
     <string name="bluetooth_notif_title" msgid="5090288898529286011">"जोडी पार्ने अनुरोध"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>सँग जोड्न ट्याप गर्नुहोस्।"</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"प्राप्त गरिएका फाइलहरू"</string>
-    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"ब्लुटुथमार्फत फाइलहरू प्राप्त गरियो"</string>
+    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"ब्लुटुथमार्फत प्राप्त फाइलहरू"</string>
     <string name="device_picker" msgid="8345264486071697705">"ब्लुटुथ उपकरण छान्नुहोस्"</string>
     <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ सक्रिय गर्न चाहन्छ"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ निष्क्रिय पार्न चाहन्छ"</string>
-    <string name="bluetooth_ask_enablement_no_name" msgid="6105893027185475233">"एउटा अनुप्रयोग ब्लुटुथ सक्रिय गर्न चाहन्छ"</string>
-    <string name="bluetooth_ask_disablement_no_name" msgid="8648888502291681310">"एउटा अनुप्रयोग ब्लुटुथ निष्क्रिय पार्न चाहन्छ"</string>
+    <string name="bluetooth_ask_enablement_no_name" msgid="6105893027185475233">"एउटा एप ब्लुटुथ सक्रिय गर्न चाहन्छ"</string>
+    <string name="bluetooth_ask_disablement_no_name" msgid="8648888502291681310">"एउटा एप ब्लुटुथ निष्क्रिय पार्न चाहन्छ"</string>
     <string name="bluetooth_ask_discovery" product="tablet" msgid="6871595755186170115">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकेन्डसम्म अन्य ब्लुटुथ यन्त्रहरूले तपाईँको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ।"</string>
     <string name="bluetooth_ask_discovery" product="default" msgid="3388041479101348095">"<xliff:g id="APP_NAME">%1$s</xliff:g> <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकेन्डसम्म अन्य ब्लुटुथ यन्त्रहरूले तपाईँको फोन देख्न सक्ने बनाउन चाहन्छ।"</string>
-    <string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="1472358802231150345">"एउटा अनुप्रयोग <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य ब्लुटुथ यन्त्रहरूले तपाईँको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ।"</string>
-    <string name="bluetooth_ask_discovery_no_name" product="default" msgid="6195796094297507404">"एउटा अनुप्रयोग <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य ब्लुटुथ यन्त्रहरूले तपाईँको फोन देख्न सक्ने बनाउन चाहन्छ।"</string>
+    <string name="bluetooth_ask_discovery_no_name" product="tablet" msgid="1472358802231150345">"एउटा एप <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य ब्लुटुथ यन्त्रहरूले तपाईँको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ।"</string>
+    <string name="bluetooth_ask_discovery_no_name" product="default" msgid="6195796094297507404">"एउटा एप <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य ब्लुटुथ यन्त्रहरूले तपाईँको फोन देख्न सक्ने बनाउन चाहन्छ।"</string>
     <string name="bluetooth_ask_lasting_discovery" product="tablet" msgid="2702942027812132427">"<xliff:g id="APP_NAME">%1$s</xliff:g> अन्य ब्लुटुथ यन्त्रहरूले तपाईंको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_ask_lasting_discovery" product="default" msgid="7796723473397303412">"<xliff:g id="APP_NAME">%1$s</xliff:g> अन्य ब्लुटुथ यन्त्रहरूले तपाईंको फोन देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
-    <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="5961921359655434504">"एउटा अनुप्रयोग अन्य ब्लुटुथ यन्त्रहरूले तपाईंको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
-    <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="3585910858758443872">"एउटा अनुप्रयोग अन्य ब्लुटुथ यन्त्रहरूले तपाईंको फोन देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="bluetooth_ask_lasting_discovery_no_name" product="tablet" msgid="5961921359655434504">"एउटा एप अन्य ब्लुटुथ यन्त्रहरूले तपाईंको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="bluetooth_ask_lasting_discovery_no_name" product="default" msgid="3585910858758443872">"एउटा एप अन्य ब्लुटुथ यन्त्रहरूले तपाईंको फोन देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="tablet" msgid="5676466923424941153">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ सक्रिय गर्न र <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकेन्डसम्म अन्य यन्त्रहरूले तपाईँको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ।"</string>
     <string name="bluetooth_ask_enablement_and_discovery" product="default" msgid="507088376226791063">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ सक्रिय गर्न र <xliff:g id="TIMEOUT">%2$d</xliff:g> सेकेन्डसम्म अन्य यन्त्रहरूले तपाईँको फोन देख्न सक्ने बनाउन चाहन्छ।"</string>
-    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="1164681893121736219">"एउटा अनुप्रयोग ब्लुटुथ सक्रिय गर्न र <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य यन्त्रहरूले तपाईँको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ।"</string>
-    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="2542247690119921188">"एउटा अनुप्रयोग ब्लुटुथ सक्रिय गर्न र <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य यन्त्रहरूले तपाईँको फोन देख्न सक्ने बनाउन चाहन्छ।"</string>
+    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="tablet" msgid="1164681893121736219">"एउटा एप ब्लुटुथ सक्रिय गर्न र <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य यन्त्रहरूले तपाईँको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ।"</string>
+    <string name="bluetooth_ask_enablement_and_discovery_no_name" product="default" msgid="2542247690119921188">"एउटा एप ब्लुटुथ सक्रिय गर्न र <xliff:g id="TIMEOUT">%1$d</xliff:g> सेकेन्डसम्म अन्य यन्त्रहरूले तपाईँको फोन देख्न सक्ने बनाउन चाहन्छ।"</string>
     <string name="bluetooth_ask_enablement_and_lasting_discovery" product="tablet" msgid="7118362102769177771">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ सक्रिय गर्न र अन्य यन्त्रहरूले तपाईंको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_ask_enablement_and_lasting_discovery" product="default" msgid="2577488464813970727">"<xliff:g id="APP_NAME">%1$s</xliff:g> ब्लुटुथ सक्रिय गर्न र अन्य यन्त्रहरूले तपाईंको फोन देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="7083038132794842691">"एउटा अनुप्रयोग ब्लुटुथ सक्रिय गर्न र अन्य यन्त्रहरूले तपाईंको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
-    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="3541668604020109525">"एउटा अनुप्रयोग ब्लुटुथ सक्रिय गर्न र अन्य यन्त्रहरूले तपाईंको फोन देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="tablet" msgid="7083038132794842691">"एउटा एप ब्लुटुथ सक्रिय गर्न र अन्य यन्त्रहरूले तपाईंको ट्याब्लेट देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="bluetooth_ask_enablement_and_lasting_discovery_no_name" product="default" msgid="3541668604020109525">"एउटा एप ब्लुटुथ सक्रिय गर्न र अन्य यन्त्रहरूले तपाईंको फोन देख्न सक्ने बनाउन चाहन्छ। तपाईं पछि ब्लुटुथ सम्बन्धी सेटिङहरूमा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_turning_on" msgid="6935183036449748493">"ब्लुटुथ खुल्दै..."</string>
     <string name="bluetooth_turning_off" msgid="9214026723789756620">"ब्लुटुथ बन्द हुँदैछ..."</string>
     <string name="bluetooth_connection_permission_request" msgid="2382506002340643398">"ब्लुटुथ जडान अनुरोध"</string>
@@ -180,7 +179,7 @@
     <string name="connected_device_connected_title" msgid="6255107326608785482">"हाल जडान अवस्थामा छ"</string>
     <string name="connected_device_saved_title" msgid="8270136893488475163">"सुरक्षित गरिएका यन्त्रहरू"</string>
     <string name="connected_device_add_device_summary" msgid="7960491471270158891">"जोडा बनाउनका लागि ब्लुटुथ सक्रिय हुने छ"</string>
-    <string name="connected_device_connections_title" msgid="9205000271382018428">"जडानसम्बन्धी प्राथमिकताहरू"</string>
+    <string name="connected_device_connections_title" msgid="9205000271382018428">"कनेक्सनका प्राथमिकताहरू"</string>
     <string name="connected_device_previously_connected_title" msgid="225918223397410428">"यसअघि जडान भएका यन्त्रहरू"</string>
     <string name="connected_device_previously_connected_screen_title" msgid="2018789662358162716">"यसअघि जडान भएका यन्त्रहरू"</string>
     <string name="connected_device_bluetooth_turned_on_toast" msgid="4652326177920814476">"ब्लुटुथ सक्रिय गरियो"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"तपाईँले पोर्टक्षेत्र पूरा गर्नु जरुरी छ।"</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"यदि होस्ट फिल्ड खाली छ भने पोर्ट फिल्ड पनि खाली हुनु पर्छ।"</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"तपाईंले टाइप गर्नुभएको पोर्ट मान्य छैन।"</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP प्रोक्सी ब्राउजरद्वारा प्रयोग गरिन्छ तर अन्य अनुप्रयोगहरूद्वारा प्रयोग गर्न नसकिने पनि हुन सक्छ।"</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"ब्राउजरले HTTP प्रोक्सी प्रयोग गर्छ तर अन्य अनुप्रयोगले यसको प्रयोग नगर्न पनि सक्छन्।"</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL ब्यान्डविथ (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL व्यान्डविथ (kbps):"</string>
@@ -248,13 +247,13 @@
     <string name="band_mode_failed" msgid="8350123391471974137">"असफल"</string>
     <string name="band_mode_succeeded" msgid="5516613616395402809">"सफलता"</string>
     <string name="sdcard_changes_instructions" msgid="4138217393448114001">"जब USB तार पुन|जडित हुन्छ तब परिवर्तनहरू प्रभावकारी हुन्छन्।"</string>
-    <string name="sdcard_settings_screen_mass_storage_text" msgid="7486030250999007641">"USB ठूलो भण्डारण सक्रिय गर्नुहोस्"</string>
+    <string name="sdcard_settings_screen_mass_storage_text" msgid="7486030250999007641">"USB ठुलो भण्डारण सक्रिय गर्नुहोस्"</string>
     <string name="sdcard_settings_total_bytes_label" msgid="6461741874400909157">"कूल बाइट्स:"</string>
     <string name="sdcard_settings_not_present_status" product="nosdcard" msgid="5419085128792417589">"USB भण्डारण माउन्ट गरिएको छैन।"</string>
     <string name="sdcard_settings_not_present_status" product="default" msgid="5831286239151349794">"कुनै SD कार्ड छैन।"</string>
     <string name="sdcard_settings_available_bytes_label" msgid="2392868635606041278">"उपलब्ध बाइटहरू:"</string>
-    <string name="sdcard_settings_mass_storage_status" product="nosdcard" msgid="5888349723543445382">"USB भण्डारण एउटा ठूलो भण्डारण उपकरणको रूपमा प्रयोग भएको छ।"</string>
-    <string name="sdcard_settings_mass_storage_status" product="default" msgid="637014061735266364">"SD कार्डलाई एउटा ठूलो भण्डारण उपकरणको रूपमा प्रयोग गरिरहिएको छ।"</string>
+    <string name="sdcard_settings_mass_storage_status" product="nosdcard" msgid="5888349723543445382">"USB भण्डारण एउटा ठुलो भण्डारण उपकरणको रूपमा प्रयोग भएको छ।"</string>
+    <string name="sdcard_settings_mass_storage_status" product="default" msgid="637014061735266364">"SD कार्डलाई एउटा ठुलो भण्डारण उपकरणको रूपमा प्रयोग गरिरहिएको छ।"</string>
     <string name="sdcard_settings_unmounted_status" product="nosdcard" msgid="1489916516292644696">"अब USB भण्डारण मेटाउन सुरक्षित छ।"</string>
     <string name="sdcard_settings_unmounted_status" product="default" msgid="6250598657624241686">"अब SD कार्ड हटाउन सुरक्षित छ।"</string>
     <string name="sdcard_settings_bad_removal_status" product="nosdcard" msgid="4694941967864756404">"अझै प्रयोग भइरहेको बेलामा USB भण्डारण हटाइएयो।"</string>
@@ -296,7 +295,7 @@
     <string name="save" msgid="3418211178410498517">"सुरक्षित गर्नुहोस्"</string>
     <string name="done" msgid="5143229467535372339">"सम्पन्न भयो"</string>
     <string name="apply" msgid="951230399613164126">"लागू गर्नुहोस्"</string>
-    <string name="share" msgid="3567029787293158575">"आदान प्रदान गर्नुहोस्"</string>
+    <string name="share" msgid="3567029787293158575">"सेयर गर्नुहोस्"</string>
     <string name="add" msgid="903114118076816060">"थप्नुहोस्"</string>
     <string name="settings_label" msgid="7263237773415875813">"सेटिङहरू"</string>
     <string name="settings_label_launcher" msgid="500627679902923496">"सेटिङहरू"</string>
@@ -365,14 +364,14 @@
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"उदाहरण, Joe को Android।"</string>
     <string name="user_info_settings_title" msgid="1125111518759995748">"प्रयोगकर्ता जानकारी"</string>
-    <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"लक स्क्रिनमा प्रोफाइल जानकारी देखाउनुहोस्"</string>
-    <string name="profile_info_settings_title" msgid="4855892878512562551">"प्रोफाइल जानकारी"</string>
+    <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"लक स्क्रिनमा प्रोफाइलको जानकारी देखाउनुहोस्"</string>
+    <string name="profile_info_settings_title" msgid="4855892878512562551">"प्रोफाइलको जानकारी"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"खाताहरू"</string>
     <string name="location_settings_title" msgid="2707201457572301030">"स्थान"</string>
     <string name="location_settings_master_switch_title" msgid="3108016866082816733">"स्थान प्रयोग गर्नुहोस्"</string>
     <string name="location_settings_summary_location_off" msgid="5563530256978372978">"निष्क्रिय"</string>
     <plurals name="location_settings_summary_location_on" formatted="false" msgid="7893342914540884818">
-      <item quantity="other">सक्रिय - <xliff:g id="COUNT_1">%1$d</xliff:g> अनुप्रयोगहरूले स्थानमाथि पहुँच राख्न सक्छन्‌</item>
+      <item quantity="other">सक्रिय - <xliff:g id="COUNT_1">%1$d</xliff:g> एपहरूले स्थानमाथि पहुँच राख्न सक्छन्‌</item>
       <item quantity="one">सक्रिय - <xliff:g id="COUNT_0">%1$d</xliff:g> अनुप्रयोगले स्थानमाथि पहुँच राख्न सक्छ</item>
     </plurals>
     <string name="location_settings_loading_app_permission_stats" msgid="7818169326621327628">"लोड गर्दै…"</string>
@@ -471,7 +470,7 @@
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"औंला उठाई फेरि छुनुहोस्"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"तपाईंको फिंगरप्रिन्टका फरक-फरक भागहरू थप्न आफ्नो औंलालाई उठाउँदै राख्दै गर्नुहोस्"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"फिंगरप्रिन्ट थपियो"</string>
-    <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"तपाईंले यस आइकनलाई देख्नुहुँदा पहिचानका लागि वा खरिदहरूको अनुमोदन गर्न आफ्नो फिंगरप्रिन्ट प्रयोग गर्नुहोस्‌"</string>
+    <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"यो आइकन देख्दा आफ्नो पहिचान दिन वा खरिदहरूको अनुमोदन गर्न आफ्नो फिंगरप्रिन्ट प्रयोग गर्नुहोस्‌"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"यसलाई पछि गर्नुहोस्‌"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_title" msgid="2816424026528101690">"फिंगरप्रिन्ट सेटअप छोड्न चाहनुहुन्छ?"</string>
     <string name="setup_fingerprint_enroll_enrolling_skip_message" msgid="8139299964344809780">"तपाईँले आफ्नो फोन अनलक गर्ने एक तरिका रूपमा फिंगरप्रिन्ट छान्‍नुभएको छ। यदि तपाईँले अहिले छोड्नु भएमा पछि पुन: सेटअप गर्न पर्नेछ। सेटअप गर्न मात्र केहि मिनेट लाग्‍नेछ।"</string>
@@ -488,12 +487,12 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"सम्पन्न भयो"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"आच्यौं, त्यो सेन्सर होइन नि त"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"तपाईंको फोनको पछाडि भागमा रहेको सेन्सरमा छुनुहोस्। चोर औंला प्रयोग गर्नुहोस्‌।"</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"दर्ता पूर्ण भएको थिएन"</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"सेभ भइसकेको छैन"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"फिंगरप्रिन्ट दर्ताको समय सीमा पुग्यो। पुन: प्रयास गर्नुहोस्।"</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"फिंगरप्रिन्ट दर्ताले काम गरेन। पुन: प्रयास गर्नुहोस् वा अरू औँलाको प्रयोग गर्नुहोस्।"</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"अर्को थप्नुहोस्"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"अर्को"</string>
-    <string name="security_settings_fingerprint_enroll_disclaimer" msgid="5831834311961551423">"तपाईँले आफ्नो फोन खोल्नका अतिरिक्त खरिद र अनुप्रयोग पहुँच प्राधिकरण गर्नाका लागि पनि आफ्नो फिंगरप्रिन्ट प्रयोग गर्न सक्नुहुन्छ। "<annotation id="url">"थप जान्नुहोस्"</annotation></string>
+    <string name="security_settings_fingerprint_enroll_disclaimer" msgid="5831834311961551423">"तपाईँले आफ्नो फोन खोल्नका अतिरिक्त खरिद र एप पहुँच प्राधिकरण गर्नाका लागि पनि आफ्नो फिंगरप्रिन्ट प्रयोग गर्न सक्नुहुन्छ। "<annotation id="url">"थप जान्नुहोस्"</annotation></string>
     <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7954742554236652690">" स्क्रिन लकको विकल्प असक्षम पारिएको छ। थप जान्नलाई आफ्नो सङ्गठनको प्रशासकलाई सम्पर्क गर्नुहोस्। "<annotation id="admin_details">"थप विवरणहरू"</annotation>\n\n"तपाईं खरिदहरूलाई अधिकार दिन र अनुप्रयोगमाथि पहुँच पाउनका लागि आफ्नो फिंगरप्रिन्ट समेत प्रयोग गर्न सक्नुहुन्छ। "<annotation id="url">"थप जान्नुहोस्"</annotation></string>
     <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"औँला उठाई, फेरि सेंसर छुनुहोस्"</string>
     <string name="fingerprint_add_max" msgid="2939393314646115661">"तपाईं <xliff:g id="COUNT">%d</xliff:g> सम्म फिंगरप्रिन्टहरू थप्न सक्नुहुन्छ"</string>
@@ -502,15 +501,15 @@
     <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"सबै फिंगरप्रिन्टहरू हटाउने हो?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' हटाउनुहोस्‌"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"तपाईं यो फिंगरप्रिन्ट मेट्न चाहनुहुन्छ?"</string>
-    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"तपाईं फोन अनलक गर्न, खरिद अधिकार प्रदान गर्न वा तिनीहरूमार्फत अनुप्रयोगहरूमा साइन इन गर्नाका लागि तपाईं आफ्नो फिंगरप्रिन्टहरूको प्रयोग गर्न सक्षम हुनु हुने छैन।"</string>
+    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"फोन अनलक गर्न, खरिद अधिकार प्रदान गर्न वा अनुप्रयोगहरूमा साइन इन गर्न तपाईं आफ्ना फिंगरप्रिन्टहरूको प्रयोग गर्न सक्नु हुने छैन।"</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"तपाईं आफ्नो कार्य प्रोफाइल अनलक गर्न, खरिद गर्ने अनुमति दिन, वा कार्यसँग सम्बन्धित अनुप्रयोगहरूमा साइन इन गर्नाका लागि आफ्नो फिंगरप्रिन्ट प्रयोग गर्न सक्नुहुने छैन।"</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"हो, हटाउनुहोस्"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"एन्क्रिप्सन"</string>
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"इन्क्रिप्ट ट्याब्लेट"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="3110852053238357832">"फोन इन्क्रिप्ट गर्नुहोस्"</string>
     <string name="crypt_keeper_encrypted_summary" msgid="2438498691741626642">"इन्क्रिप्ट गरिएको"</string>
-    <string name="crypt_keeper_desc" product="tablet" msgid="9142792050252407734">"तपाईं आफ्नो खाताहरू, सेटिङहरू, डाउनलोड गरिएका अनुप्रयोगहरू र तिनीहरूको डेटा, मिडिया, र अन्य फाइलहरू इन्क्रिप्ट गर्न सक्नुहुन्छ। आफ्नो ट्याब्लेट इन्क्रिप्ट गरेपछि, स्क्रिन लक सेट गरिएको मानेर (यो कि, नमुना वा संख्यात्मक PIN वा पासवर्ड), तपाईंले संचालन गर्दा हरेक समय ट्याब्लेटको इन्क्रिप्ट उल्टाइ बन्द खोल्न आवश्यक छ। इन्क्रिप्ट उल्टाउने मात्र अन्य तरिका, आफ्नो सबै डेटा मेटाएर फ्याक्ट्री डेटा रिसेट गर्नुपर्छ।\n\nइन्क्रिप्ट गर्न एक घन्टा वा बढी समय लाग्छ। प्रक्रिया अवधिभरमा ट्याब्लेट तपाईंले चार्ज भएको ब्याट्रिको साथ सुरु गरि र प्लग इन गरिराख्नुपर्छ। यदि कार्यमा अवरोध भयो भने तपाईंले केही वा सबै डेटा गुमाउनुहुन्छ।"</string>
-    <string name="crypt_keeper_desc" product="default" msgid="1996334685607444282">"तपाईं आफ्नो खाताहरू, सेटिङहरू, डाउनलोड गरिएका अनुप्रयोगहरू र तिनीहरूको डेटा, मिडिया, र अन्य फाइलहरू इन्क्रिप्ट गर्न सक्नुहुन्छ। आफ्नो फोन इन्क्रिप्ट गरेपछि, स्क्रिन लक सेट गरिएको मानेर (यो कि, नमुना वा संख्यात्मक PIN वा पासवर्ड), तपाईंले संचालन गर्दा हरेक समय फोनको इन्क्रिप्ट उल्टाइ बन्द खोल्न आवश्यक छ। इन्क्रिप्ट उल्टाउने मात्र अन्य तरिका, आफ्नो सबै डेटा मेटाएर फ्याक्ट्री डेटा रिसेट गर्नुपर्छ।\n\nइन्क्रिप्ट गर्न एक घन्टा वा बढी समय लाग्छ। प्रक्रिया अवधिभरमा फोन तपाईंले चार्ज भएको ब्याट्रिको साथ सुरुगरि र प्लग इन गरि राख्नुपर्छ। यदि कार्यमा अवरोध भयो भने तपाईंले केही वा सबै डेटा गुमाउनुहुन्छ।"</string>
+    <string name="crypt_keeper_desc" product="tablet" msgid="9142792050252407734">"तपाईं आफ्नो खाताहरू, सेटिङहरू, डाउनलोड गरिएका एपहरू र तिनीहरूको डेटा, मिडिया, र अन्य फाइलहरू इन्क्रिप्ट गर्न सक्नुहुन्छ। आफ्नो ट्याब्लेट इन्क्रिप्ट गरेपछि, स्क्रिन लक सेट गरिएको मानेर (यो कि, नमुना वा संख्यात्मक PIN वा पासवर्ड), तपाईंले संचालन गर्दा हरेक समय ट्याब्लेटको इन्क्रिप्ट उल्टाइ बन्द खोल्न आवश्यक छ। इन्क्रिप्ट उल्टाउने मात्र अन्य तरिका, आफ्नो सबै डेटा मेटाएर फ्याक्ट्री डेटा रिसेट गर्नुपर्छ।\n\nइन्क्रिप्ट गर्न एक घन्टा वा बढी समय लाग्छ। प्रक्रिया अवधिभरमा ट्याब्लेट तपाईंले चार्ज भएको ब्याट्रिको साथ सुरु गरि र प्लग इन गरिराख्नुपर्छ। यदि कार्यमा अवरोध भयो भने तपाईंले केही वा सबै डेटा गुमाउनुहुन्छ।"</string>
+    <string name="crypt_keeper_desc" product="default" msgid="1996334685607444282">"तपाईं आफ्नो खाताहरू, सेटिङहरू, डाउनलोड गरिएका एपहरू र तिनीहरूको डेटा, मिडिया, र अन्य फाइलहरू इन्क्रिप्ट गर्न सक्नुहुन्छ। आफ्नो फोन इन्क्रिप्ट गरेपछि, स्क्रिन लक सेट गरिएको मानेर (यो कि, नमुना वा संख्यात्मक PIN वा पासवर्ड), तपाईंले संचालन गर्दा हरेक समय फोनको इन्क्रिप्ट उल्टाइ बन्द खोल्न आवश्यक छ। इन्क्रिप्ट उल्टाउने मात्र अन्य तरिका, आफ्नो सबै डेटा मेटाएर फ्याक्ट्री डेटा रिसेट गर्नुपर्छ।\n\nइन्क्रिप्ट गर्न एक घन्टा वा बढी समय लाग्छ। प्रक्रिया अवधिभरमा फोन तपाईंले चार्ज भएको ब्याट्रिको साथ सुरुगरि र प्लग इन गरि राख्नुपर्छ। यदि कार्यमा अवरोध भयो भने तपाईंले केही वा सबै डेटा गुमाउनुहुन्छ।"</string>
     <string name="crypt_keeper_button_text" product="tablet" msgid="7918671468758813824">"ट्याब्लेट इन्क्रिप्ट गर्नुहोस्"</string>
     <string name="crypt_keeper_button_text" product="default" msgid="8737394386627318489">"फोन इन्क्रिप्ट गर्नुहोस्"</string>
     <string name="crypt_keeper_low_charge_text" msgid="1422879728632636311">"तपाईँको ब्याट्री चार्ज गरी पुनःप्रयास गर्नुहोस्।"</string>
@@ -530,8 +529,8 @@
     <string name="crypt_keeper_warn_wipe" msgid="700814581500057050">"चेतावनी: खुला गर्न <xliff:g id="COUNT">^1</xliff:g> भन्दा बढी असफल प्रयासहरू पछि तपाईँको उपकरण पुछिने छ!"</string>
     <string name="crypt_keeper_enter_password" msgid="726933635335219421">"तपाईँको पासवर्ड टाइप गर्नुहोस्"</string>
     <string name="crypt_keeper_failed_title" msgid="1906382607060855782">"इन्क्रिप्सन असफल"</string>
-    <string name="crypt_keeper_failed_summary" product="tablet" msgid="7844833877734529625">"इन्क्रिप्सन अवरूद्ध भयो र पूरा हुन सक्दैन। परिणामस्वरूप तपाईंको ट्याब्लेटको डेटा अब पहुँचयोग्य हुँदैन।\n \n तपाईंको ट्याब्लेटको प्रयोग सुरु गर्नाका लागि तपाईंले कारखाना पुनःसेट गर्नु  पर्छ। जब पुनःसेट हुन्छ तब तपाईं ट्याब्लेट सेट गर्नुहुन्छ, तपाईंको Google खातामा जगेडा गरिएको कुनै पनि डेटा पुनर्स्थापना गर्ने अवसर तपाईंलाई हुने छ।"</string>
-    <string name="crypt_keeper_failed_summary" product="default" msgid="2895589681839090312">"एन्क्रिप्सन रोकिएको थियो र पूरा हुन सकेन। नतिजाको रूपमा तपाईंको फोनमा डेटा पहुँच यग्य छैन। \n\nतपाईंको फोनको उपयोग फरि सुरु गर्नको लागि तपाईंले एउटा फ्याक्ट्रि पुनःसेट गर्न जरुरी छ। जब तपाईं पुनःसेटपछि तपाईंको फोन सेटअप गर्नु हुन्छ भने  कुनै पनि डेटा जुन तपाईंको Google खातामा ब्याकअप गरिएको थियो तपाईंलाई पुनःप्राप्त गर्ने अवसर हुने छ।"</string>
+    <string name="crypt_keeper_failed_summary" product="tablet" msgid="7844833877734529625">"इन्क्रिप्सन अवरूद्ध भयो र पूरा हुन सक्दैन। परिणामस्वरूप तपाईंको ट्याब्लेटको डेटा अब पहुँचयोग्य हुँदैन।\n \n तपाईंको ट्याब्लेटको प्रयोग सुरु गर्नाका लागि तपाईंले कारखाना रिसेट गर्नु  पर्छ। जब रिसेट हुन्छ तब तपाईं ट्याब्लेट सेट गर्नुहुन्छ, तपाईंको Google खातामा जगेडा गरिएको कुनै पनि डेटा पुनर्स्थापना गर्ने अवसर तपाईंलाई हुने छ।"</string>
+    <string name="crypt_keeper_failed_summary" product="default" msgid="2895589681839090312">"एन्क्रिप्सन रोकिएको थियो र पूरा हुन सकेन। नतिजाको रूपमा तपाईंको फोनमा डेटा पहुँच यग्य छैन। \n\nतपाईंको फोनको उपयोग फरि सुरु गर्नको लागि तपाईंले एउटा फ्याक्ट्रि रिसेट गर्न जरुरी छ। जब तपाईं रिसेटपछि तपाईंको फोन सेटअप गर्नु हुन्छ भने  कुनै पनि डेटा जुन तपाईंको Google खातामा ब्याकअप गरिएको थियो तपाईंलाई पुनःप्राप्त गर्ने अवसर हुने छ।"</string>
     <string name="crypt_keeper_data_corrupt_title" msgid="6561535293845985713">"गुप्तिकरण उल्टाउन असफल"</string>
     <string name="crypt_keeper_data_corrupt_summary" product="tablet" msgid="7018748502706237323">"तपाईँले प्रविष्ट गर्नुभएको पासवर्ड ठिक छ, तर दुर्भाग्यबश तपाईँको डेटा बिग्रिएको छ।\n\n तपाईँको ट्याब्लेट पुन: प्रयोग गर्न फ्याक्ट्री रिसेट गर्न पर्छ। रिसेट गरे पश्चात जब तपाई आफ्नो ट्याब्लेट सेटअप गर्नुहुन्छ तपाईँले Google खातामा ब्याकअप भए सम्मका डेटा पुनर्स्थापना गर्ने अवसर प्राप्त गर्नु हुनेछ।"</string>
     <string name="crypt_keeper_data_corrupt_summary" product="default" msgid="5798580588985326937">"तपाईंले प्रविष्ट गर्नुभएको पासवर्ड ठिक छ, तर दुर्भाग्यबश तपाईंको डेटा बिग्रिएको छ।\n\n तपाईंको फोन पुन: प्रयोग गर्न फ्याक्ट्री रिसेट गर्न पर्छ। रिसेट गरे पश्चात जब तपाईं आफ्नो फोन सेटअप गर्नुहुन्छ तपाईंले Google खातामा ब्याकअप भए सम्मका डेटा पुनर्स्थापना गर्ने अवसर प्राप्त गर्नु हुनेछ।"</string>
@@ -684,7 +683,7 @@
     </plurals>
     <plurals name="lockpassword_password_requires_uppercase" formatted="false" msgid="6026476732572657588">
       <item quantity="other">कम्तीमा पनि <xliff:g id="COUNT">%d</xliff:g> वटा ठूला अक्षर हुनु अनिवार्य छ</item>
-      <item quantity="one">कम्तीमा पनि एउटा ठूलो अक्षर हुनु अनिवार्य छ</item>
+      <item quantity="one">कम्तीमा पनि एउटा ठुलो अक्षर हुनु अनिवार्य छ</item>
     </plurals>
     <plurals name="lockpassword_password_requires_numeric" formatted="false" msgid="5072581827825645338">
       <item quantity="other">कम्तीमा पनि <xliff:g id="COUNT">%d</xliff:g> वटा संख्यात्मक अङ्क हुनु अनिवार्य छ</item>
@@ -712,14 +711,14 @@
     <string name="lockpattern_tutorial_cancel_label" msgid="450401426127674369">"रद्द गर्नुहोस्"</string>
     <string name="lockpattern_tutorial_continue_label" msgid="8474690922559443018">"अर्को"</string>
     <string name="lock_setup" msgid="8710689848703935088">"सेटअप पूरा भयो।"</string>
-    <string name="manage_device_admin" msgid="322047441168191695">"यन्त्रका प्रशासकीय अनुप्रयोगहरू"</string>
-    <string name="number_of_device_admins_none" msgid="8519193548630223132">"कुनै सक्रिय अनुप्रयोगहरू छैनन्"</string>
+    <string name="manage_device_admin" msgid="322047441168191695">"यन्त्रका प्रशासकीय एपहरू"</string>
+    <string name="number_of_device_admins_none" msgid="8519193548630223132">"कुनै सक्रिय एपहरू छैनन्"</string>
     <plurals name="number_of_device_admins" formatted="false" msgid="6445613288828151224">
-      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> सक्रिय अनुप्रयोगहरू</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> सक्रिय अनुप्रयोग</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> सक्रिय एपहरू</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> सक्रिय एप</item>
     </plurals>
     <string name="manage_trust_agents" msgid="8129970926213142261">"विश्वसनीय प्रतिनिधि"</string>
-    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"प्रयोग गर्न, पहिले स्क्रिन लक सेट गर्नुहोस्"</string>
+    <string name="disabled_because_no_backup_security" msgid="8127039979909203528">"यो सेवा प्रयोग गर्न, पहिले स्क्रिन लक सेट गर्नुहोस्"</string>
     <string name="manage_trust_agents_summary" msgid="2023116850759962248">"कुनै पनि होइन"</string>
     <plurals name="manage_trust_agents_summary_on" formatted="false" msgid="5550538038916606097">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> वटा सक्रिय विश्वसनीय एजेन्ट</item>
@@ -767,8 +766,8 @@
     <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"जटिल"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"जटिल ब्लुटुथ"</string>
     <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"ब्लुटुथ खोलेको बेला तपाईँको उपकरणले नजिकैका अन्य ब्लुटुथ उपकरणहरूसँग संचार गर्न सक्छन्।"</string>
-    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"ब्लुटुथ सक्रिय गरिएको बेला तपाईंको यन्त्र वरपरका अन्य ब्लुटुथ यन्त्रहरूसँग सञ्चार गर्न सक्नुहुन्छ।, \n\nअनुभवमा सुधार गर्न अनुप्रयोग तथा सेवाहरू अझै पनि जुनसुकै बेला (ब्लुटुथ निष्क्रिय भएको बेलामा पनि) वरपरका यन्त्रहरू स्क्यान गर्न सक्छन्। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नका लागि प्रयोग गर्न सकिन्छ। तपाईं "<annotation id="link">"स्क्यानिङसम्बन्धी सेटिङहरू"</annotation>" मा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
-    <string name="ble_scan_notify_text" msgid="6290170236546386932">"स्थान पहिचान सामर्थ्यतामा सुधार गर्न, प्रणाली अनुप्रयोगहरू र सेवाहरूले अझै पनि ब्लुटुथ यन्त्रहरूलाई पहिचान गर्न सक्छन्। तपाईँले यसलाई  <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g> स्क्यानिङ सेटिङहरू <xliff:g id="LINK_END_1">LINK_END</xliff:g> मा परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"ब्लुटुथ सक्रिय गरिएको बेला तपाईंको यन्त्र वरपरका अन्य ब्लुटुथ यन्त्रहरूसँग सञ्चार गर्न सक्नुहुन्छ।, \n\nअनुभवमा सुधार गर्न एप तथा सेवाहरू अझै पनि जुनसुकै बेला (ब्लुटुथ निष्क्रिय भएको बेलामा पनि) वरपरका यन्त्रहरू स्क्यान गर्न सक्छन्। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नका लागि प्रयोग गर्न सकिन्छ। तपाईं "<annotation id="link">"स्क्यानिङसम्बन्धी सेटिङहरू"</annotation>" मा गई यसलाई परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="ble_scan_notify_text" msgid="6290170236546386932">"स्थान पहिचान सामर्थ्यतामा सुधार गर्न, प्रणाली एपहरू र सेवाहरूले अझै पनि ब्लुटुथ यन्त्रहरूलाई पहिचान गर्न सक्छन्। तपाईँले यसलाई  <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g> स्क्यानिङ सेटिङहरू <xliff:g id="LINK_END_1">LINK_END</xliff:g> मा परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"जडान गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"</string>
     <string name="device_details_title" msgid="726517818032923222">"यन्त्रसम्बन्धी विवरणहरू"</string>
     <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"यन्त्रको ब्लुटुथ ठेगाना: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
@@ -823,13 +822,13 @@
     <string name="art_verifier_for_debuggable_summary" msgid="2204242476996701111">"ART लाई डिबग गर्न मिल्ने अनुप्रयोगहरूको बाइटकोड पुष्टि गर्न दिनुहोस्"</string>
     <string name="nfc_quick_toggle_title" msgid="4990697912813795002">"NFC"</string>
     <string name="nfc_quick_toggle_summary" product="tablet" msgid="983451155092850657">"ट्याब्लेटले कुनै अन्य उपकरणलाई छुँदा डेटा विनिमयको अनुमति दिनुहोस्।"</string>
-    <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"फोनले अर्को उपकरणलाई छुँदा डेटा विनिमयलाई अनुमति दिनुहोस्"</string>
+    <string name="nfc_quick_toggle_summary" product="default" msgid="7141056939052895142">"फोनले अर्को उपकरणलाई छुँदा डेटा एक अर्कामा सर्ने अनुमति दिनुहोस्"</string>
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"NFC सक्रिय गर्नुहोस्"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC ले यो यन्त्र र भुक्तानीको टर्मिनल, पहुँच सम्बन्धी रिडर र अन्तरक्रियात्मक विज्ञापन वा ट्यागहरू जस्ता अन्य नजिकका यन्त्र वा लक्ष्यहरू बीच डेटा आदानप्रदान गर्छ।"</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"NFC सुरक्षित पार्नुहोस्"</string>
     <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"स्क्रिन अनलक भएका बेलामा मात्र NFC भुक्तानी र ट्रान्जिटको प्रयोगलाई अनुमति दिनुहोस्"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"एन्ड्रोइड बिम"</string>
-    <string name="android_beam_on_summary" msgid="8068287225180474199">"NFCको माध्यमबाट अनुप्रयोग सामग्री प्रसारित गर्नको लागि तयार"</string>
+    <string name="android_beam_on_summary" msgid="8068287225180474199">"NFCको माध्यमबाट एप सामग्री प्रसारित गर्नको लागि तयार"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"बन्द"</string>
     <string name="nfc_disabled_summary" msgid="2181777971122724361">"NFC निष्क्रिय पारिएका कारण उपलब्ध छैन"</string>
     <string name="android_beam_label" msgid="5340299879556025708">"एन्ड्रोइड बिम"</string>
@@ -858,11 +857,11 @@
     <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"Wi-Fi नेटवर्कमा राम्रो इन्टरनेट जडान उपलब्ध नभएसम्म प्रयोग नगर्नुहोस्"</string>
     <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"राम्रो इन्टरनेट जडान हुने नेटवर्क मात्र प्रयोग गर्नुहोस्"</string>
     <string name="use_open_wifi_automatically_title" msgid="3084513215481454350">"खुला नेटवर्कहरूमा जडान गर्नुहोस्"</string>
-    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"उच्च गुणस्तरको सार्वजनिक नेटवर्कहरूमा स्वतः जडान गर्नुहोस्"</string>
+    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"द्रूत इन्टरनेट भएका सार्वजनिक नेटवर्कहरूमा स्वतः कनेक्ट गर्नुहोस्"</string>
     <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"प्रयोग गर्न कुनै नेटवर्क मूल्याङ्कनसम्बन्धी प्रदायक चयन गर्नुहोस्"</string>
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"प्रयेाग गर्न कुनै उपयुक्त नेटवर्क मूल्याङ्कनसम्बन्धी प्रदायक चयन गर्नुहोस्"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"प्रमाणपत्रहरू स्थापना गर्नुहोस्"</string>
-    <string name="wifi_scan_notify_text" msgid="7614101215028336927">"स्थानको सटीकतामा सुधार गर्न, अनुप्रयोग तथा सेवाहरूले अझै पनि जुनसुकै बेला (Wi‑Fi निष्क्रिय भएको बेलामा पनि) Wi‑Fi नेटवर्क स्क्यान गर्न सक्छ। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरूमा सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ। तपाईं यसलाई <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्क्यानिङ सेटिङहरू<xliff:g id="LINK_END_1">LINK_END</xliff:g> मा परिवर्तन गर्न सक्नुहुन्छ।"</string>
+    <string name="wifi_scan_notify_text" msgid="7614101215028336927">"स्थानको सटीकतामा सुधार गर्न, एप तथा सेवाहरूले अझै पनि जुनसुकै बेला (Wi‑Fi निष्क्रिय भएको बेलामा पनि) Wi‑Fi नेटवर्क स्क्यान गर्न सक्छ। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरूमा सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ। तपाईं यसलाई <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्क्यानिङ सेटिङहरू<xliff:g id="LINK_END_1">LINK_END</xliff:g> मा परिवर्तन गर्न सक्नुहुन्छ।"</string>
     <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"स्थानसम्बन्धी सटीकतामा सुधार गर्न <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>स्क्यानिङ सम्बन्धी सेटिङहरू<xliff:g id="LINK_END_1">LINK_END</xliff:g> मा गई Wi-Fi स्क्यान गर्ने सेवालाई सक्रिय गर्नुहोस्।"</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"फेरि नदेखाउनुहोस्"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"सुतेको बेलामा Wi-Fi खुला राख्नुहोस्"</string>
@@ -881,7 +880,7 @@
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Wi‑Fi स्वत: पुनः सक्रिय हुँदैन"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"Wi-Fi नेटवर्कहरू"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"थप विकल्पहरू"</string>
-    <string name="wifi_menu_p2p" msgid="4945665601551289791">"Wi-Fi प्रत्यक्ष"</string>
+    <string name="wifi_menu_p2p" msgid="4945665601551289791">"Wi-fi Direct"</string>
     <string name="wifi_menu_scan" msgid="9082691677803181629">"स्क्यान"</string>
     <string name="wifi_menu_advanced" msgid="5984484498045511072">"जटिल"</string>
     <string name="wifi_menu_configure" msgid="52192491120701266">"कन्फिगर गर्नुहोस्"</string>
@@ -896,20 +895,20 @@
     <string name="wifi_setup_wps" msgid="6730131677695521321">"स्वचालित सेटअप (WPS)"</string>
     <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"Wi‑Fi स्क्यान गर्ने सुविधा सक्रिय गर्ने हो?"</string>
     <string name="wifi_settings_scanning_required_summary" msgid="7469610959462708782">"Wi‑Fi स्वतः सक्रिय गर्न तपाईंले सर्वप्रथम Wi‑Fi स्क्यान गर्ने सुविधालाई सक्रिय गर्नु पर्ने हुन्छ।"</string>
-    <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"Wi-Fi स्क्यान गर्ने सुविधाले अनुप्रयोग र सेवाहरूलाई Wi‑Fi निष्क्रिय भएको बेलालगायत जुनसुकै बेला वरपरका Wi-Fi नेटवर्कहरू स्क्यान गर्ने अनुमति दिन्छ। उदाहरणका लागि यसलाई स्थानमा आधारित सुविधा तथा सेवाहरूको सुधार गर्नका लागि प्रयोग गर्न सकिन्छ।"</string>
+    <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"Wi-Fi स्क्यान गर्ने सुविधाले एप र सेवाहरूलाई Wi‑Fi निष्क्रिय भएको बेलालगायत जुनसुकै बेला वरपरका Wi-Fi नेटवर्कहरू स्क्यान गर्ने अनुमति दिन्छ। उदाहरणका लागि यसलाई स्थानमा आधारित सुविधा तथा सेवाहरूको सुधार गर्नका लागि प्रयोग गर्न सकिन्छ।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="4327570180594277049">"सक्रिय गर्नुहोस्"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="3336102100425307040">"Wi‑Fi स्क्यान गर्ने सेवा सक्रिय छ"</string>
     <string name="wifi_show_advanced" msgid="8199779277168030597">"उन्नत विकल्पहरू"</string>
     <string name="wifi_advanced_toggle_description_expanded" msgid="1506697245302596510">"ड्रप डाउन सूचीका उन्नत विकल्पहरू। संक्षिप्त गर्न डबल-ट्याप गर्नुहोस्।"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3014965593695454879">"ड्रप डाउन सूचीका उन्नत विकल्पहरू। विस्तृत गर्न डबल-ट्याप गर्नुहोस्।"</string>
-    <string name="wifi_ssid" msgid="6746270925975522641">"सञ्जाल नाम"</string>
+    <string name="wifi_ssid" msgid="6746270925975522641">"नेटवर्कको नाम"</string>
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID प्रविष्टि गर्नुहोस्"</string>
     <string name="wifi_security" msgid="9136702039496152831">"सुरक्षा"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"लुकाइएको नेटवर्क"</string>
     <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"यदि तपाईंको राउटरले कुनै नेटवर्कको ID प्रसारण गरिरहेको छैन तर तपाईं भविष्यमा यसमा जडान गर्न चाहनुहुन्छ भने, तपाईं उक्त नेटवर्कलाई लुकाइएको रूपमा सेट गर्न सक्नुहुन्छ।\n\n तपाईंको फोनले नेटवर्क फेला पार्नका लागि नियमित रूपमा आफ्नो सिग्नल प्रसारण गर्ने हुँदा यसले सुरक्षासम्बन्धी जोखिम सिर्जना गर्न सक्छ।\n\nनेटवर्कलाई लुकाइएको रूपमा सेट गर्नुले तपाईंको राउटरको सेटिङ परिवर्तन गर्ने छैन।"</string>
-    <string name="wifi_signal" msgid="696548364467704808">"सङ्केत क्षमता"</string>
+    <string name="wifi_signal" msgid="696548364467704808">"सिग्नलको क्षमता"</string>
     <string name="wifi_status" msgid="3439931558930689940">"वस्तुस्थिति"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"लिंकको गति ट्रान्समिट गर्नुहोस्"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"लिंक पठाउने गति"</string>
     <string name="rx_wifi_speed" msgid="7392873246110937187">"लिंक प्राप्त गर्ने गति"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"आवृत्ति"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP ठेगाना"</string>
@@ -920,7 +919,7 @@
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA प्रमाणपत्र"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"डोमेन"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"प्रयोगकर्ता प्रमाणपत्र"</string>
-    <string name="wifi_eap_identity" msgid="5280457017705738773">"पहिचान गर्नुहोस्"</string>
+    <string name="wifi_eap_identity" msgid="5280457017705738773">"पहिचान"</string>
     <string name="wifi_eap_anonymous" msgid="6352344972490839958">"अज्ञात पहिचान"</string>
     <string name="wifi_password" msgid="6942983531275177771">"पासवर्ड:"</string>
     <string name="wifi_show_password" msgid="7878398590772942202">"पासवर्ड देखाउनुहोस्"</string>
@@ -928,7 +927,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"स्वतः निर्धारित"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"2.4 GHz ब्यान्ड"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"५.० GHz ब्यान्ड"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"५.० GHz ब्यान्ड रुचाइयो"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"५.० GHz ब्यान्ड भए राम्रो"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"२.४ GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"५.० GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Wi‑Fi हटस्पटका लागि कम्तीमा एक ब्यान्ड छनौट गर्नुहोस्:"</string>
@@ -936,12 +935,12 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"गोपनीयता"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"अनियमित MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"कुनै यन्त्र थप्नुहोस्"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"उक्त यन्त्रलाई “<xliff:g id="SSID">%1$s</xliff:g>” मा यन्त्र थप्न तलको QR कोडलाई मध्य भागमा राख्नुहोस्"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"उक्त यन्त्रलाई “<xliff:g id="SSID">%1$s</xliff:g>” मा थप्न तलको QR कोडलाई मध्य भागमा पार्नुहोस्"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"QR कोड स्क्यान गर्नुहोस्"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"“<xliff:g id="SSID">%1$s</xliff:g>” मा जडान गर्न तलको QR कोडलाई मध्य भागमा राख्नुहोस्"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"QR कोड स्क्यान गरी Wi‑Fi मा सामेल हुनुहोस्"</string>
-    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi साझा रूपमा प्रयोग गर्नुहोस्"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"“<xliff:g id="SSID">%1$s</xliff:g>” मा जडान गर्न यो QR कोड स्क्यान गर्नुहोस् र पासवर्ड आदान प्रदान गर्नुहोस्"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">" Wi‑Fi जोड्न QR कोड स्क्यान गर्नुहोस्"</string>
+    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Wi‑Fi सेयर गर्नुहोस्"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"“<xliff:g id="SSID">%1$s</xliff:g>” मा कनेक्ट गर्न र पासवर्ड सेयर गर्न यो QR कोड स्क्यान गर्नुहोस्"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"“<xliff:g id="SSID">%1$s</xliff:g>” मा जडान गर्न QR कोड स्क्यान गर्नुहोस्"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR कोड पढ्न सकिएन। कोडलाई पुनः केन्द्रमा ल्याउनुहोस् र फेरि प्रयास गर्नुहोस्"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"फेरि प्रयास गर्नुहोस्। समस्या यथावत् रहिरहेमा यन्त्रका निर्मातासँग सम्पर्क गर्नुहोस्"</string>
@@ -960,14 +959,14 @@
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"यन्त्र भेटियो"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"यो सेवामार्फत Wi‑Fi आदान प्रदान गर्दै…"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"जडान गर्दै…"</string>
-    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"हटस्पट आदान प्रदान गर्नुहोस्"</string>
+    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"हटस्पट सेयर गर्नुहोस्"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"यो तपाईं नै हो भन्ने पुष्टि गर्नुहोस्"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Wi-Fi को पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"हटस्पटको पासवर्ड: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_add_device" msgid="1347056725253936358">"यन्त्र थप्नुहोस्"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"कुनै QR कोड प्रयोग गरी यस नेटवर्कमा जोड्नुहोस्"</string>
     <string name="retry" msgid="8500839563577344702">"पुनः प्रयास गर्नु…"</string>
-    <string name="wifi_shared" msgid="5054256778276524960">"अन्य यन्त्र प्रयोगकर्ताहरूसँग साझेदारी गर्नुहोस्"</string>
+    <string name="wifi_shared" msgid="5054256778276524960">"अन्य यन्त्र प्रयोगकर्ताहरूसँग सेयर गर्नुहोस्"</string>
     <string name="wifi_unchanged" msgid="6804964646942333992">"(अपरिवर्तित)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"कृपया चयन गर्नुहोस्"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(बहु प्रमाणपत्रहरू थपिए)"</string>
@@ -976,7 +975,7 @@
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"प्रमाणित नगर्नुहोस्"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"कुनै प्रमाणपत्र निर्दिष्ट गरिएको छैन। तपाईंको जडान निजी हुने छैन।"</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"नेटवर्कको नाम धेरै लामो भयो।"</string>
-    <string name="wifi_no_domain_warning" msgid="735859919311067606">"डोमेन निर्दिष्ट गर्नुपर्छ"</string>
+    <string name="wifi_no_domain_warning" msgid="735859919311067606">"डोमेन तोक्नु पर्छ"</string>
     <string name="wifi_wps_available_first_item" msgid="3221671453930485243">"WPS उपलब्ध छ"</string>
     <string name="wifi_wps_available_second_item" msgid="5703265526619705185">" (WPS उपलब्ध)"</string>
     <string name="wifi_carrier_connect" msgid="7202618367339982884">"सेवा प्रदायकको Wi‑Fi नेटवर्क"</string>
@@ -989,9 +988,9 @@
     <string name="wifi_hotspot_message" msgid="6762452611090766607">"<xliff:g id="APP_NAME">%1$s</xliff:g> सञ्जाल जड्न पहिले अनलाइनमा हस्ताक्षर गर्न आवश्यक।"</string>
     <string name="wifi_hotspot_connect" msgid="409079339360849653">"CONNECT"</string>
     <string name="no_internet_access_text" msgid="7093326244145734504">"यो नेटवर्कसँग इन्टरनेटमाथि पहुँच छैन। जडान भइरहने हो?"</string>
-    <string name="partial_connectivity_text" msgid="2142157808079235684">"इन्टरनेट जडान सीमित हुँदा कतिपय अनुप्रयोग तथा सेवाहरूले काम नगर्न सक्छन्। अघि बढ्नुहोस्"</string>
+    <string name="partial_connectivity_text" msgid="2142157808079235684">"इन्टरनेट जडान सीमित हुँदा कतिपय एप तथा सेवाहरूले काम नगर्न सक्छन्। अघि बढ्नुहोस्"</string>
     <string name="no_internet_access_remember" msgid="1368137189939004202">"यस नेटवर्कको लागि फेरि नसोध्नुहोस्"</string>
-    <string name="lost_internet_access_title" msgid="1061916948695946130">"Wi-Fi इन्टरनेटमा जडान भएको छैन"</string>
+    <string name="lost_internet_access_title" msgid="1061916948695946130">"Wi-Fi इन्टरनेटमा कनेक्ट भएको छैन"</string>
     <string name="lost_internet_access_text" msgid="8962010031520731813">"Wi-Fi को जडान खराब हुँदा तपाईं मोबाइल नेटवर्कमा स्विच गर्न सक्नुहुन्छ। डेटा उपयोग शुल्कहरू लाग्न सक्छन्।"</string>
     <string name="lost_internet_access_switch" msgid="9218006455779873700">"मोबाइलमा स्विच गर्नुहोस्"</string>
     <string name="lost_internet_access_cancel" msgid="6577871064062518744">"Wi‑Fi मा कायम रहनुहोस्"</string>
@@ -1021,11 +1020,11 @@
     <string name="wifi_advanced_ssid_title" msgid="4229741334913894856">"SSID"</string>
     <string name="wifi_advanced_mac_address_title" msgid="1162782083754021737">"म्याक ठेगाना"</string>
     <string name="wifi_advanced_ip_address_title" msgid="2708185994512829071">"IP ठेगाना"</string>
-    <string name="wifi_details_title" msgid="2164042631550920157">"नेटवर्कसम्बन्धी विवरणहरू"</string>
+    <string name="wifi_details_title" msgid="2164042631550920157">"नेटवर्कको विवरण"</string>
     <string name="wifi_details_subnet_mask" msgid="53396707004763012">"सबनेट मास्क"</string>
     <string name="wifi_details_dns" msgid="1118251455740116559">"DNS"</string>
     <string name="wifi_details_ipv6_address_header" msgid="1642310137145363299">"IPv6 ठेगानाहरू"</string>
-    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"सुरक्षित सञ्जालहरू"</string>
+    <string name="wifi_saved_access_points_label" msgid="3790693285928292563">"सेभ गरिएका नेटवर्कहरू"</string>
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"सदस्यताहरू"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
@@ -1041,7 +1040,7 @@
     <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
     <string name="wifi_gateway" msgid="7455334454444443397">"गेटवे"</string>
     <string name="wifi_network_prefix_length" msgid="1941206966133010633">"नेटवर्क उपसर्ग लम्बाइ"</string>
-    <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi-Fi प्रत्यक्ष"</string>
+    <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi-fi Direct"</string>
     <string name="wifi_p2p_device_info" msgid="4717490498956029237">"उपकरण जानकारी"</string>
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"यस जडानलाई सम्झनुहोस्"</string>
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"उपकरणहरू खोजी गर्नुहोस्"</string>
@@ -1069,8 +1068,8 @@
     <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"हटस्पटको पासवर्ड"</string>
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"AP ब्यान्ड"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"आफ्ना अन्य यन्त्रहरूका लागि Wi‑Fi नेटवर्क सिर्जना गर्न हटस्पट प्रयोग गर्नुहोस्। हटस्पटले तपाईंको मोबाइल डेटा जडान प्रयोग गरेर इन्टरनेट प्रदान गर्दछ। अतिरिक्त मोबाइल डेटाको शुल्क लाग्न सक्छ।"</string>
-    <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"अनुप्रयोगहरूले नजिकैका यन्त्रहरूसँग सामग्री आदान प्रदान गर्न एउटा हटस्पट सिर्जना गर्न सक्छन्।"</string>
-    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Wi‑Fi हटस्पट स्वतः निष्क्रिय पार्नुहोस्"</string>
+    <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"एपहरूले नजिकैका यन्त्रहरूसँग सामग्री आदान प्रदान गर्न एउटा हटस्पट सिर्जना गर्न सक्छन्।"</string>
+    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"स्वतः Wi‑Fi हटस्पट अफ गर्नुहोस्"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"कुनै पनि यन्त्र जडान नहुँदा Wi‑Fi हटस्पट स्वतः निष्क्रिय हुनेछ"</string>
     <string name="wifi_tether_starting" msgid="7676952148471297900">"हटस्पट खुल्दै..."</string>
     <string name="wifi_tether_stopping" msgid="7478561853791953349">"हटस्पट बन्द गरिँदै..."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"मोबाइल"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi उपलब्ध छैन भने मोबाइल नेटवर्क प्रयोग गर्नुहोस्"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"मोबाइल नेटवर्क उपलब्ध नभएमा Wi‑Fi प्रयोग गर्नुहोस्"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi मार्फत कल गर्नुहोस्। Wi‑Fi नेटवर्कले काम गरेन भने सम्पर्क विच्छेद हुने छ।"</string>
@@ -1172,7 +1174,7 @@
     <string name="color_mode_title" msgid="8164858320869449142">"रङहरू"</string>
     <string name="color_mode_option_natural" msgid="1292837781836645320">"प्राकृतिक"</string>
     <string name="color_mode_option_boosted" msgid="453557938434778933">"बुस्ट गरिएको"</string>
-    <string name="color_mode_option_saturated" msgid="7758384943407859851">"परिपूर्ण पारिएको"</string>
+    <string name="color_mode_option_saturated" msgid="7758384943407859851">"स्याचुरेटेड"</string>
     <string name="color_mode_option_automatic" msgid="6572718611315165117">"अनुकूलनीय"</string>
     <string name="color_mode_summary_natural" msgid="1247153893843263340">"सही रङहरू मात्र प्रयोग गर्नुहोस्"</string>
     <string name="color_mode_summary_automatic" msgid="6066740785261330514">"स्पष्ट र सही रङहरूबीच समायोजन गर्नुहोस्"</string>
@@ -1227,7 +1229,7 @@
     <string name="night_display_summary_on_auto_mode_custom" msgid="2200631112239399233">"<xliff:g id="ID_1">%1$s</xliff:g> मा स्वतः निष्क्रिय हुनेछ"</string>
     <string name="night_display_summary_on_auto_mode_twilight" msgid="8386769601369289561">"सूर्योदयको बेला स्वतः निष्क्रिय हुनेछ"</string>
     <string name="night_display_activation_on_manual" msgid="8379477527072027346">"अहिले नै सक्रिय गर्नुहोस्"</string>
-    <string name="night_display_activation_off_manual" msgid="7776082151269794201">"अहिले नै निष्क्रिय पार्नुहोस्"</string>
+    <string name="night_display_activation_off_manual" msgid="7776082151269794201">"अहिले नै अफ गर्नुहोस्"</string>
     <string name="night_display_activation_on_twilight" msgid="5610294051700287249">"सूर्योदयसम्म सक्रिय गर्नुहोस्"</string>
     <string name="night_display_activation_off_twilight" msgid="6846727701281556110">"सूर्यास्तसम्म निष्क्रिय पार्नुहोस्"</string>
     <string name="night_display_activation_on_custom" msgid="4761140206778957611">"<xliff:g id="ID_1">%1$s</xliff:g> सम्म सक्रिय गर्नुहोस्"</string>
@@ -1247,7 +1249,7 @@
     <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"चार्ज वा डक गरिरहँदा"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"कुनै"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"चार्ज हुँदा"</string>
-    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"डक भएको बेला"</string>
+    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"डक गरिएको बेला"</string>
     <string name="screensaver_settings_summary_never" msgid="3995259444981620707">"कहिल्यै पनि होइन"</string>
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"बन्द"</string>
     <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"फोन डकमा र/वा शयन अवस्थामा हुँदा हुने कुरालाई नियन्त्रण गर्न स्क्रिन सेभरलाई सक्रिय गर्नुहोस्।"</string>
@@ -1264,7 +1266,7 @@
     <string name="doze_always_on_title" msgid="8555184965031789941">"सधैँ सक्रिय"</string>
     <string name="doze_always_on_summary" msgid="7654436900436328950">"समय, सूचनाका आइकनहरू र अन्य जानकारी देखाउनुहोस्। ब्याट्रीको बढेको उपयोग।"</string>
     <string name="title_font_size" msgid="5021464556860010851">"फन्ट आकार"</string>
-    <string name="short_summary_font_size" msgid="4141077908728522946">"पाठ सन्देश अझ ठूलो वा सानो पार्नुहोस्"</string>
+    <string name="short_summary_font_size" msgid="4141077908728522946">"पाठ सन्देश अझ ठुलो वा सानो पार्नुहोस्"</string>
     <string name="sim_lock_settings" msgid="1986924650622642189">"SIM कार्ड लक सेटिङहरू"</string>
     <string name="sim_lock_settings_category" msgid="1126759898277681516">"सिमकार्ड लक"</string>
     <string name="sim_lock_settings_summary_off" msgid="348656447968142307">"निष्क्रिय छ"</string>
@@ -1352,7 +1354,7 @@
     <string name="status_data_state" msgid="4538705798873861963">"मोबाइल सञ्जाल वस्तुस्थिति"</string>
     <string name="status_esim_id" msgid="9201767073386770286">"EID"</string>
     <string name="status_service_state" msgid="4406215321296496234">"सेवा स्थिति"</string>
-    <string name="status_signal_strength" msgid="4302597886933728789">"सङ्केत क्षमता"</string>
+    <string name="status_signal_strength" msgid="4302597886933728789">"सिग्नलको क्षमता"</string>
     <string name="status_roaming" msgid="5191044997355099561">"रोमिङ"</string>
     <string name="status_operator" msgid="6017986100643755390">"सञ्जाल"</string>
     <string name="status_wifi_mac_address" msgid="3868452167971295995">"Wi-Fi म्याक ठेगाना"</string>
@@ -1367,7 +1369,7 @@
     <string name="memory_available_read_only" msgid="9125440204248584531">"उपलब्ध (केवल पढ्नका लागि मात्र)"</string>
     <string name="memory_size" msgid="6637939229251056764">"जम्मा ठाउँ"</string>
     <string name="memory_calculating_size" msgid="8407591625479256510">"गणना गर्दै ..."</string>
-    <string name="memory_apps_usage" msgid="1886814780760368266">"अनुप्रयोग &amp; अनुप्रयोग डेटा"</string>
+    <string name="memory_apps_usage" msgid="1886814780760368266">"एप &amp; एप डेटा"</string>
     <string name="memory_media_usage" msgid="2744652206722240527">"मिडिया"</string>
     <string name="memory_downloads_usage" msgid="7039979723012065168">"डाउनलोडहरू"</string>
     <string name="memory_dcim_usage" msgid="599009211606524732">"तस्बिरहरू, भिडियोहरू"</string>
@@ -1387,14 +1389,14 @@
     <string name="sd_format" product="nosdcard" msgid="918370986254863144">"USB भण्डारण मेटाउनुहोस्"</string>
     <string name="sd_format" product="default" msgid="1346245995138883960">"SD कार्ड मेटाउनुहोस्"</string>
     <string name="sd_format_summary" product="nosdcard" msgid="1179857727779521920">"आन्तरिक USB भण्डारणमा सम्पूर्ण डेटाहरू मेटाउँछ, जस्तै सङ्गीत र तस्बिरहरू"</string>
-    <string name="sd_format_summary" product="default" msgid="4284028411908176234">"SD कार्डमा सबै डेटा जस्तै सङ्गीत र फोटाहरू मेटाउँछ"</string>
+    <string name="sd_format_summary" product="default" msgid="4284028411908176234">"SD कार्डमा सबै डेटा जस्तै सङ्गीत र फोटोहरू मेटाउँछ"</string>
     <string name="memory_clear_cache_title" msgid="4306793268129306684">"क्यास डेटा हटाउनु हुन्छ?"</string>
     <string name="memory_clear_cache_message" msgid="6723120398411410031">"यसले सबै अनुप्रयोगहरूको लागि केस गरिएको डेटा हटाउँछ।"</string>
     <string name="mtp_ptp_mode_summary" msgid="6074099855478444183">"MTP वा PTP प्रकार्य सक्रिय छ"</string>
     <string name="dlg_confirm_unmount_title" product="nosdcard" msgid="3843209947310774105">"USB भण्डारण अनमाउन्ट गर्ने हो?"</string>
     <string name="dlg_confirm_unmount_title" product="default" msgid="4400426555375434431">"SD कार्ड अनमाउन्ट गर्ने हो?"</string>
-    <string name="dlg_confirm_unmount_text" product="nosdcard" msgid="1423648405874813948">"यदि तपाईँले USB भण्डारण अनमाउन्ट गर्नु भयो भने फेरि तपाईँले USB भण्डारण पुनः माउन्ट नगरेसम्म  तपाईँले चलाउनु भएका केही अनुप्रयोगहरू अनुपलब्ध हुन सक्छन्।"</string>
-    <string name="dlg_confirm_unmount_text" product="default" msgid="4099391737780732622">"यदि तपाईँले SD कार्ड अनमाउन्ट गर्नु भयो भने फेरि तपाईँले SD कार्ड पुनःमाउन्ट नगरेसम्म  तपाईँले चलाउनु भएका केही अनुप्रयोगहरू अनुपलब्ध हुन सक्छन्।"</string>
+    <string name="dlg_confirm_unmount_text" product="nosdcard" msgid="1423648405874813948">"यदि तपाईँले USB भण्डारण अनमाउन्ट गर्नु भयो भने फेरि तपाईँले USB भण्डारण पुनः माउन्ट नगरेसम्म  तपाईँले चलाउनु भएका केही एपहरू अनुपलब्ध हुन सक्छन्।"</string>
+    <string name="dlg_confirm_unmount_text" product="default" msgid="4099391737780732622">"यदि तपाईँले SD कार्ड अनमाउन्ट गर्नु भयो भने फेरि तपाईँले SD कार्ड पुनःमाउन्ट नगरेसम्म  तपाईँले चलाउनु भएका केही एपहरू अनुपलब्ध हुन सक्छन्।"</string>
     <string name="dlg_error_unmount_title" product="nosdcard" msgid="3132640848329117857"></string>
     <string name="dlg_error_unmount_title" product="default" msgid="3132640848329117857"></string>
     <string name="dlg_error_unmount_text" product="nosdcard" msgid="4710773826053117136">"USB भण्डारण अनमाउन्ट गर्न सकेन। पछि फेरि प्रयास गर्नुहोस्।"</string>
@@ -1404,7 +1406,7 @@
     <string name="sd_ejecting_title" msgid="595074246815112145">"अनमाउन्ट गरिंदै"</string>
     <string name="sd_ejecting_summary" msgid="5708943172014003213">"अनमाउन्ट प्रगतिमा"</string>
     <string name="storage_low_title" msgid="6957178208426099592">"भण्डारण ठाउँ सकिँदै छ"</string>
-    <string name="storage_low_summary" msgid="4475275204869514141">"केही प्रणाली प्रकार्यहरू जस्तै सिंक गर्ने, ठिकसँग काम नगर्न सक्छ। वस्तुहरू जस्तै अनुप्रयोग वा मिडिया सामग्री मेटाएर वा पिन हटाएर ठाउँ खाली बनाउनुहोस् ।"</string>
+    <string name="storage_low_summary" msgid="4475275204869514141">"केही प्रणाली प्रकार्यहरू जस्तै सिंक गर्ने, ठिकसँग काम नगर्न सक्छ। वस्तुहरू जस्तै एप वा मिडिया सामग्री मेटाएर वा पिन हटाएर ठाउँ खाली बनाउनुहोस् ।"</string>
     <string name="storage_menu_rename" msgid="3731682449294417745">"पुन: नामाकरण गर्नुहोस्"</string>
     <string name="storage_menu_mount" msgid="6395893560780365473">"माउन्ट गर्नुहोस्"</string>
     <string name="storage_menu_unmount" msgid="5041360076873514189">"निकाल्नुहोस्"</string>
@@ -1422,7 +1424,7 @@
     <string name="usb_mtp_title" msgid="6893938968831995500">"मिडिया उपकरण (MTP)"</string>
     <string name="usb_mtp_summary" msgid="4427354560399094322">"तपाईँलाई विन्डोजमा मिडिया फाइलहरू सार्न वा म्याकमा एन्ड्रोइड फाइल सार्न अनुमति दिन्छ (हेर्नुहोस् (www.android.com/filetransfer)"</string>
     <string name="usb_ptp_title" msgid="6629335976394685361">"क्यामेरा (PTP)"</string>
-    <string name="usb_ptp_summary" msgid="460425275251168189">"तपाईँलाई क्यामेरा सफ्टवेयर प्रयोग गरेर फोटाहरू स्थानान्तरण गर्न, र MTP समर्थन नगर्ने कम्प्युटरमा कुनै पनि फाइलहरू स्थानान्तरण दिन्छ।"</string>
+    <string name="usb_ptp_summary" msgid="460425275251168189">"तपाईँलाई क्यामेरा सफ्टवेयर प्रयोग गरेर फोटोहरू स्थानान्तरण गर्न, र MTP समर्थन नगर्ने कम्प्युटरमा कुनै पनि फाइलहरू स्थानान्तरण दिन्छ।"</string>
     <string name="usb_midi_title" msgid="8626512517313340943">"MIDI"</string>
     <string name="usb_midi_summary" msgid="3607444815743771712">"MIDI द्वारा सक्रिय अनुप्रयोगहरूलाई तपाईंको कम्प्युटरमा USB मार्फत MIDI सफ्टवेयरसँग काम गर्न दिन्छ।"</string>
     <string name="storage_other_users" msgid="1055693465220962928">"अन्य प्रयोगकर्ताहरू"</string>
@@ -1442,12 +1444,12 @@
     <string name="storage_dialog_unmounted" msgid="515810851912430933">"यो <xliff:g id="NAME_0">^1</xliff:g> सुरक्षित रूपमा निकालियो, तर अझै पनि उपलब्ध छ। \n\n यो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्न, तपाईँले पहिला यो माउन्ट गर्नुपर्छ।"</string>
     <string name="storage_dialog_unmountable" msgid="7082856306456936054">"यो <xliff:g id="NAME_0">^1</xliff:g> बिग्रिएको छ। \n\n यो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्न, तपाईँले पहिले यसलाई सेटअप गर्नुहोस्।"</string>
     <string name="storage_dialog_unsupported" msgid="8274023677580782553">"यो यन्त्रले यो <xliff:g id="NAME_0">^1</xliff:g> लाई समर्थन गर्दैन। \n\n यस यन्त्रसँग यो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्न, तपाईँले पहिला यो सेटअप गर्नुपर्छ।"</string>
-    <string name="storage_internal_format_details" msgid="2780806013122012384">"ढाँचामा मिलाएपछि, तपाईँले यसलाई <xliff:g id="NAME_0">^1</xliff:g> अन्य यन्त्रहरूमा प्रयोग गर्न सक्नुहुन्छ। \n\nयसका <xliff:g id="NAME_1">^1</xliff:g> सबै डेटा मेटिनेछन्। पहिले ब्याकअप राख्ने बारे विचार गर्नुहोस्। \n\n"<b>"तस्बिर तथा अन्य मिडिया ब्याकअप गर्नुहोस्"</b>" \n यस यन्त्रमा वैकल्पिक भण्डारण गर्न आफ्नो मिडिया फाइलहरू सार्नुहोस्, वा USB केबल प्रयोग गरी कम्प्युटरको स्थानान्तरण गर्नुहोस्। \n\n"<b>"अनुप्रयोगहरू ब्याकअप गर्नुहोस्"</b>" \n यसमा <xliff:g id="NAME_6">^1</xliff:g> भण्डारित सबै अनुप्रयोगहरू हटाइने छन् र तिनका डेटा मेटिनेछन्। यी अनुप्रयोगहरू राख्न, यस यन्त्रमा वैकल्पिक भण्डारण गर्न तिनीहरूलाई सार्नुहोस्।"</string>
-    <string name="storage_internal_unmount_details" msgid="4667435317528624039"><b>"जब तपाईं <xliff:g id="NAME_0">^1</xliff:g> लाई निकाल्नुहुन्छ, यसमा भएका अनुप्रयोगहरू चल्न छोड्नेछन्, र पुनः नघुसाएसम्म त्यसमा भएका मिडिया फाइलहरू उपलब्ध हुने छैनन्।"</b>\n\n"यो <xliff:g id="NAME_1">^1</xliff:g> यस यन्त्रमा मात्र काम गर्ने हिसाबले फरम्याट गरिएको छ। यो अन्य कुनैमा काम गर्ने छैन।"</string>
-    <string name="storage_internal_forget_details" msgid="5655856574682184453">"<xliff:g id="NAME">^1</xliff:g> मा भएका अनुप्रयोगहरू, तस्बिरहरु, र डेटाको प्रयोग गर्न, यसलाई पुन: घुसाउनुहोस्।\n\nवैकल्पिक रूपमा, यन्त्र उपलब्ध नभएको खण्डमा यस भण्डारणलाई भुल्नको लागि रोज्न सक्नुहुनेछ।\n\nयदि तपाईँले भुल्ने विकल्प रोज्नु हुन्छ भने, यन्त्रमा भएका सम्पूर्ण डेटा सदाको लागि नष्ट हुनेछ।\n\nतपाईँले पछि पनि अनुप्रयोगहरू पुन: स्थापना गर्न सक्नुहुन्छ तर यस यन्त्रमा भण्डारण भएका डेटा नष्ट हुनेछ।"</string>
+    <string name="storage_internal_format_details" msgid="2780806013122012384">"ढाँचामा मिलाएपछि, तपाईँले यसलाई <xliff:g id="NAME_0">^1</xliff:g> अन्य यन्त्रहरूमा प्रयोग गर्न सक्नुहुन्छ। \n\nयसका <xliff:g id="NAME_1">^1</xliff:g> सबै डेटा मेटिनेछन्। पहिले ब्याकअप राख्ने बारे विचार गर्नुहोस्। \n\n"<b>"तस्बिर तथा अन्य मिडिया ब्याकअप गर्नुहोस्"</b>" \n यस यन्त्रमा वैकल्पिक भण्डारण गर्न आफ्नो मिडिया फाइलहरू सार्नुहोस्, वा USB केबल प्रयोग गरी कम्प्युटरको स्थानान्तरण गर्नुहोस्। \n\n"<b>"एपहरू ब्याकअप गर्नुहोस्"</b>" \n यसमा <xliff:g id="NAME_6">^1</xliff:g> भण्डारित सबै एपहरू हटाइने छन् र तिनका डेटा मेटिनेछन्। यी एपहरू राख्न, यस यन्त्रमा वैकल्पिक भण्डारण गर्न तिनीहरूलाई सार्नुहोस्।"</string>
+    <string name="storage_internal_unmount_details" msgid="4667435317528624039"><b>"जब तपाईं <xliff:g id="NAME_0">^1</xliff:g> लाई निकाल्नुहुन्छ, यसमा भएका एपहरू चल्न छोड्नेछन्, र पुनः नघुसाएसम्म त्यसमा भएका मिडिया फाइलहरू उपलब्ध हुने छैनन्।"</b>\n\n"यो <xliff:g id="NAME_1">^1</xliff:g> यस यन्त्रमा मात्र काम गर्ने हिसाबले फरम्याट गरिएको छ। यो अन्य कुनैमा काम गर्ने छैन।"</string>
+    <string name="storage_internal_forget_details" msgid="5655856574682184453">"<xliff:g id="NAME">^1</xliff:g> मा भएका एपहरू, तस्बिरहरु, र डेटाको प्रयोग गर्न, यसलाई पुन: घुसाउनुहोस्।\n\nवैकल्पिक रूपमा, यन्त्र उपलब्ध नभएको खण्डमा यस भण्डारणलाई भुल्नको लागि रोज्न सक्नुहुनेछ।\n\nयदि तपाईँले भुल्ने विकल्प रोज्नु हुन्छ भने, यन्त्रमा भएका सम्पूर्ण डेटा सदाको लागि नष्ट हुनेछ।\n\nतपाईँले पछि पनि एपहरू पुन: स्थापना गर्न सक्नुहुन्छ तर यस यन्त्रमा भण्डारण भएका डेटा नष्ट हुनेछ।"</string>
     <string name="storage_internal_forget_confirm_title" msgid="331032276130605241">"<xliff:g id="NAME">^1</xliff:g> भुल्नुभयो?"</string>
-    <string name="storage_internal_forget_confirm" msgid="3052483375203727176">"यो <xliff:g id="NAME">^1</xliff:g> मा भण्डारण गरिएका सबै अनुप्रयोगहरू, तस्बिरहरू, र डेटा सधैंका लागि नष्ट हुनेछन्।"</string>
-    <string name="storage_detail_apps" msgid="8154648512504196820">"अनुप्रयोगहरू"</string>
+    <string name="storage_internal_forget_confirm" msgid="3052483375203727176">"यो <xliff:g id="NAME">^1</xliff:g> मा भण्डारण गरिएका सबै एपहरू, तस्बिरहरू, र डेटा सधैंका लागि नष्ट हुनेछन्।"</string>
+    <string name="storage_detail_apps" msgid="8154648512504196820">"एपहरू"</string>
     <string name="storage_detail_images" msgid="6996202225684468964">"छविहरू"</string>
     <string name="storage_detail_videos" msgid="6030983354721080849">"भिडियोहरू"</string>
     <string name="storage_detail_audio" msgid="6011098436589663944">"अडियो"</string>
@@ -1455,14 +1457,14 @@
     <string name="storage_detail_other" msgid="9164851767437306618">"अन्य"</string>
     <string name="storage_detail_system" msgid="6784247618772153283">"प्रणाली"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"<xliff:g id="NAME">^1</xliff:g> अन्वेषण गर्नुहोस्"</string>
-    <string name="storage_detail_dialog_other" msgid="5073511663616043370">"अन्यमा अनुप्रयोगहरूले सुरक्षित गेरका साझा फाइल, इन्टरनेट वा ब्लुटुथबाट डाउनलोड गरिएका फाइल, Android का फाइलहरू र यस्तै थप कुराहरू पर्छन्। \n\nयो <xliff:g id="NAME">^1</xliff:g> का देख्न सकिने सामग्रीहरू हेर्न अन्वेषण गर्नुहोस् नामक विकल्पमा ट्याप गर्नुहोस्।"</string>
-    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Android संस्करण <xliff:g id="VERSION">%s</xliff:g> चलाउनका लागि प्रयोग भएका फाइलहरू प्रणालीमा समावेश छन्"</string>
-    <string name="storage_detail_dialog_user" msgid="1663117417635010371">"<xliff:g id="USER_0">^1</xliff:g> ले तस्बिर, सङ्गीत, अनुप्रयोग वा अन्य डेटा सुरक्षित गर्नुभएको हुनसक्छ, जसले <xliff:g id="SIZE">^2</xliff:g> भण्डारण ओगटिरहेको छ। \n\nविवरणहरू हेर्न <xliff:g id="USER_1">^1</xliff:g> मा स्विच गर्नुहोस्।"</string>
+    <string name="storage_detail_dialog_other" msgid="5073511663616043370">"अन्यमा एपहरूले सुरक्षित गेरका साझा फाइल, इन्टरनेट वा ब्लुटुथबाट डाउनलोड गरिएका फाइल, Android का फाइलहरू र यस्तै थप कुराहरू पर्छन्। \n\nयो <xliff:g id="NAME">^1</xliff:g> का देख्न सकिने सामग्रीहरू हेर्न अन्वेषण गर्नुहोस् नामक विकल्पमा ट्याप गर्नुहोस्।"</string>
+    <string name="storage_detail_dialog_system" msgid="1472572861360014226">"प्रणालीमा Android संस्करण <xliff:g id="VERSION">%s</xliff:g> चलाउनका लागि प्रयोग भएका फाइलहरू समावेश छन्"</string>
+    <string name="storage_detail_dialog_user" msgid="1663117417635010371">"<xliff:g id="USER_0">^1</xliff:g> ले तस्बिर, सङ्गीत, एप वा अन्य डेटा सुरक्षित गर्नुभएको हुनसक्छ, जसले <xliff:g id="SIZE">^2</xliff:g> भण्डारण ओगटिरहेको छ। \n\nविवरणहरू हेर्न <xliff:g id="USER_1">^1</xliff:g> मा स्विच गर्नुहोस्।"</string>
     <string name="storage_wizard_init_title" msgid="3407283236421089014">"तपाईँको <xliff:g id="NAME">^1</xliff:g> सेट गर्नुहोस्"</string>
     <string name="storage_wizard_init_external_title" msgid="6853250619674645478">"पोर्टेबल भण्डारणको रूपमा प्रयोग गर्नुहोस्"</string>
     <string name="storage_wizard_init_external_summary" msgid="6993815290050489327">"यन्त्रहरू बीच तस्बिर र अन्य मिडिया सार्नका लागि।"</string>
     <string name="storage_wizard_init_internal_title" msgid="8750856962785644870">"आन्तरिक भण्डारणको रूपमा प्रयोग गर्नुहोस्"</string>
-    <string name="storage_wizard_init_internal_summary" msgid="4510546464921608029">"यस यन्त्रमा मात्र कुनै पनि चिज, अनुप्रयोग र तस्बिरहरू  भण्डारण गर्नाका लागि। यसलाई ढाँचा मिलाउन आवश्यक हुन्छ जसले अर्का यन्त्रहरूसँग काम गर्नबाट रोक्छ।"</string>
+    <string name="storage_wizard_init_internal_summary" msgid="4510546464921608029">"यस यन्त्रमा मात्र कुनै पनि चिज, एप र तस्बिरहरू  भण्डारण गर्नाका लागि। यसलाई ढाँचा मिलाउन आवश्यक हुन्छ जसले अर्का यन्त्रहरूसँग काम गर्नबाट रोक्छ।"</string>
     <string name="storage_wizard_format_confirm_title" msgid="7785358616068633439">"आन्तरिक भण्डारणको रुपमा ढाँचा गर्नुहोस्"</string>
     <string name="storage_wizard_format_confirm_body" msgid="4107762933332992624">"यो सुरक्षित बनाउन यसलाई <xliff:g id="NAME_0">^1</xliff:g> ढाँचा बनाउन आवश्यकता छ। \n\nढाँचामा मिलाएपछि, यो यन्त्रमा यसले <xliff:g id="NAME_1">^1</xliff:g> मात्र काम गर्ने छ। \n\n"<b>" ढाँचा मिलाउँदा <xliff:g id="NAME_2">^1</xliff:g> मा हालैका भण्डारित सबै डेटा मेटिन्छ।"</b>" डेटा गुमाउनुपर्ने बाट जोगिन, यसको ब्याकअप राख्ने बारे विचार गर्नुहोस्।"</string>
     <string name="storage_wizard_format_confirm_public_title" msgid="5866830103788091426">"पोर्टेबल भण्डारणका रूपमा फरम्याट गर्नुहोस्"</string>
@@ -1471,30 +1473,30 @@
     <string name="storage_wizard_format_progress_title" msgid="6905902731208646436">"<xliff:g id="NAME">^1</xliff:g> ढाँचा मिलाइदै ..."</string>
     <string name="storage_wizard_format_progress_body" msgid="5346709539457190419">"<xliff:g id="NAME">^1</xliff:g> फर्म्याट भइरहेको बेला यसलाई नहटाउनुहोस्।"</string>
     <string name="storage_wizard_migrate_title" msgid="7440473364104826496">"नयाँ भण्डारणमा डेटा सार्नुहोस्"</string>
-    <string name="storage_wizard_migrate_body" msgid="4959356431201831339">"तपाईँले यो नयाँ <xliff:g id="NAME">^1</xliff:g>मा आफ्नो तस्बिरहरु, फाइलहरू र केही अनुप्रयोगहरू सार्न सक्नुहुन्छ। \n\n स्थानान्तरणले करिब <xliff:g id="TIME">^2</xliff:g> लिन्छ र आन्तरिक भण्डारणमा <xliff:g id="SIZE">^3</xliff:g> खाली गर्ने छ। यस क्रममा केही अनुप्रयोगहरूले काम गर्ने छैनन्।"</string>
+    <string name="storage_wizard_migrate_body" msgid="4959356431201831339">"तपाईँले यो नयाँ <xliff:g id="NAME">^1</xliff:g>मा आफ्नो तस्बिरहरु, फाइलहरू र केही एपहरू सार्न सक्नुहुन्छ। \n\n स्थानान्तरणले करिब <xliff:g id="TIME">^2</xliff:g> लिन्छ र आन्तरिक भण्डारणमा <xliff:g id="SIZE">^3</xliff:g> खाली गर्ने छ। यस क्रममा केही एपहरूले काम गर्ने छैनन्।"</string>
     <string name="storage_wizard_migrate_now" msgid="9004605853000689024">"अब सार्नुहोस्"</string>
     <string name="storage_wizard_migrate_later" msgid="5303070653970922924">"पछि सार्नुहोस्"</string>
     <string name="storage_wizard_migrate_confirm_title" msgid="5768497751644935313">"अब डेटा सार्नुहोस्"</string>
     <string name="storage_wizard_migrate_confirm_body" msgid="7297723787416643076"><b>"कार्यले करिब <xliff:g id="TIME">^1</xliff:g> लिन्छ। यसले <xliff:g id="NAME">^3</xliff:g> मा <xliff:g id="SIZE">^2</xliff:g> खाली गर्छ।"</b></string>
     <string name="storage_wizard_migrate_confirm_next" msgid="6539804689462991087">"सार्नुहोस्"</string>
     <string name="storage_wizard_migrate_progress_title" msgid="7542196688665109833">"डेटा सार्दै..."</string>
-    <string name="storage_wizard_migrate_details" msgid="4269509141637554985">"सार्दाको समयमा: \n• <xliff:g id="NAME">^1</xliff:g> नहटाउनुहोस्। \n• केही अनुप्रयोगहरूले सही काम गर्ने छैन। \n• यन्त्र चार्जमा राख्नुहोस्।"</string>
+    <string name="storage_wizard_migrate_details" msgid="4269509141637554985">"सार्दाको समयमा: \n• <xliff:g id="NAME">^1</xliff:g> नहटाउनुहोस्। \n• केही एपहरूले सही काम गर्ने छैन। \n• यन्त्र चार्जमा राख्नुहोस्।"</string>
     <string name="storage_wizard_ready_title" msgid="4905921139763520341">"तपाईंको <xliff:g id="NAME">^1</xliff:g> प्रयोगका लागि तयार छ"</string>
     <string name="storage_wizard_ready_external_body" msgid="8785407468656286236">"तपाईँको <xliff:g id="NAME">^1</xliff:g> तस्बिर र अन्य मिडिया प्रयोग गर्न सबै सेट छ।"</string>
-    <string name="storage_wizard_ready_internal_body" msgid="2258287496678469217">"तपाईँको नयाँ <xliff:g id="NAME">^1</xliff:g> ले काम गर्दैछ। \n\n यो यन्त्रमा तस्बिरहरू, फाइलहरू, र अनुप्रयोग डेटा सार्न, सेटिङ &amp;gt मा जानुहोस्; भण्डारण गर्नुहोस्।"</string>
+    <string name="storage_wizard_ready_internal_body" msgid="2258287496678469217">"तपाईँको नयाँ <xliff:g id="NAME">^1</xliff:g> ले काम गर्दैछ। \n\n यो यन्त्रमा तस्बिरहरू, फाइलहरू, र एप डेटा सार्न, सेटिङ &amp;gt मा जानुहोस्; भण्डारण गर्नुहोस्।"</string>
     <string name="storage_wizard_move_confirm_title" msgid="7362472162039287488">"सार्नुहोस् <xliff:g id="APP">^1</xliff:g>"</string>
-    <string name="storage_wizard_move_confirm_body" msgid="502315190416551319">"<xliff:g id="NAME_0">^2</xliff:g> मा <xliff:g id="APP">^1</xliff:g> र यसको डेटा सार्न केही बेर मात्र लिनेछ। तपाईं सार्ने क्रम पूरा नहुन्जेल अनुप्रयोग प्रयोग गर्न सक्नुहुने छैन। \n\n सार्ने क्रममा <xliff:g id="NAME_1">^2</xliff:g> नहटाउनुहोस्।"</string>
+    <string name="storage_wizard_move_confirm_body" msgid="502315190416551319">"<xliff:g id="NAME_0">^2</xliff:g> मा <xliff:g id="APP">^1</xliff:g> र यसको डेटा सार्न केही बेर मात्र लिनेछ। तपाईं सार्ने क्रम पूरा नहुन्जेल एप प्रयोग गर्न सक्नुहुने छैन। \n\n सार्ने क्रममा <xliff:g id="NAME_1">^2</xliff:g> नहटाउनुहोस्।"</string>
     <string name="storage_wizard_move_unlock" msgid="7978193904519827600">"डेटा सार्न तपाईंले प्रयोगकर्ताको <xliff:g id="APP">^1</xliff:g> अनलक गर्नु पर्ने हुन्छ।"</string>
     <string name="storage_wizard_move_progress_title" msgid="5250929161803336592">"सार्दै <xliff:g id="APP">^1</xliff:g>..."</string>
-    <string name="storage_wizard_move_progress_body" msgid="1713792142250410169">"सार्ने क्रममा <xliff:g id="NAME">^1</xliff:g> नहटाउनुहोस्। \n\nसार्ने क्रम पूरा नहुन्जेल सम्म यो यन्त्रको<xliff:g id="APP">^2</xliff:g> अनुप्रयोग उपलब्ध हुने छैन।"</string>
+    <string name="storage_wizard_move_progress_body" msgid="1713792142250410169">"सार्ने क्रममा <xliff:g id="NAME">^1</xliff:g> नहटाउनुहोस्। \n\nसार्ने क्रम पूरा नहुन्जेल सम्म यो यन्त्रको<xliff:g id="APP">^2</xliff:g> एप उपलब्ध हुने छैन।"</string>
     <string name="storage_wizard_move_progress_cancel" msgid="9047521329704060401">"सार्ने कार्य रद्द गर्नुहोस्"</string>
-    <string name="storage_wizard_slow_body" msgid="2307974936036261069">"यो <xliff:g id="NAME_0">^1</xliff:g> सुस्त जस्तो देखिन्छ। \n\n तपाईं जारी राख्न सक्नुहुन्छ, तर यस स्थानमा सारिएका अनुप्रयोगहरू अड्किन सक्छ र डेटा स्थानान्तरणले लामो समय लिन सक्छ। \n\nराम्रो प्रदर्शनको लागि थप छिटो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्ने विचार गर्नुहोस्।"</string>
+    <string name="storage_wizard_slow_body" msgid="2307974936036261069">"यो <xliff:g id="NAME_0">^1</xliff:g> सुस्त जस्तो देखिन्छ। \n\n तपाईं जारी राख्न सक्नुहुन्छ, तर यस स्थानमा सारिएका एपहरू अड्किन सक्छ र डेटा स्थानान्तरणले लामो समय लिन सक्छ। \n\nराम्रो प्रदर्शनको लागि थप छिटो <xliff:g id="NAME_1">^1</xliff:g> प्रयोग गर्ने विचार गर्नुहोस्।"</string>
     <string name="storage_wizard_init_v2_title" msgid="7408910177547901960">"तपाईं यो <xliff:g id="NAME">^1</xliff:g> कसरी प्रयोग गर्नुहुन्छ?"</string>
     <string name="storage_wizard_init_v2_internal_title" product="tablet" msgid="7948795312504302810">"ट्याब्लेटको अतिरिक्त भण्डारणका रूपमा प्रयोग गर्नुहोस्"</string>
-    <string name="storage_wizard_init_v2_internal_summary" product="tablet" msgid="6237770506398410172">"केवल यो ट्याब्लेटका अनुप्रयोग, फाइल तथा मिडियाका लागि"</string>
+    <string name="storage_wizard_init_v2_internal_summary" product="tablet" msgid="6237770506398410172">"केवल यो ट्याब्लेटका एप, फाइल तथा मिडियाका लागि"</string>
     <string name="storage_wizard_init_v2_internal_action" product="tablet" msgid="1016850267330050231">"ट्याब्लेटको भण्डारण"</string>
     <string name="storage_wizard_init_v2_internal_title" product="default" msgid="2782907833711627804">"फोनको अतिरिक्त भण्डारणका रूपमा प्रयोग गर्नुहोस्"</string>
-    <string name="storage_wizard_init_v2_internal_summary" product="default" msgid="6352521760027924000">"केवल यो फोनका अनुप्रयोग, फाइल तथा मिडियाका लागि"</string>
+    <string name="storage_wizard_init_v2_internal_summary" product="default" msgid="6352521760027924000">"केवल यो फोनका एप, फाइल तथा मिडियाका लागि"</string>
     <string name="storage_wizard_init_v2_internal_action" product="default" msgid="3383888882755852046">"फोनको भण्डारण"</string>
     <string name="storage_wizard_init_v2_or" msgid="883906565226069620">"वा"</string>
     <string name="storage_wizard_init_v2_external_title" msgid="7009571510941803101">"पोर्टेबल भण्डारणका रूपमा प्रयोग गर्नु…"</string>
@@ -1502,21 +1504,21 @@
     <string name="storage_wizard_init_v2_external_action" msgid="4649591913020218098">"पोर्टेबल भण्डारण"</string>
     <string name="storage_wizard_init_v2_later" msgid="2605006907172213466">"पछि सेटअप गर्नुहोस्"</string>
     <string name="storage_wizard_format_confirm_v2_title" msgid="1884699177320256159">"यो <xliff:g id="NAME">^1</xliff:g> फर्म्याट गर्ने हो?"</string>
-    <string name="storage_wizard_format_confirm_v2_body" msgid="977657376082074305">"अनुप्रयोग, फाइल तथा मिडिया भण्डारण गर्नका लागि यो <xliff:g id="NAME_0">^1</xliff:g> लाई फर्म्याट गर्नु पर्ने हुन्छ। \n\nफर्म्याट गर्नुले <xliff:g id="NAME_1">^2</xliff:g> मा हाल विद्यमान रहेका सामग्री मेट्नेछ। सामग्री गुमाउनबाट बच्न त्यसलाई कुनै अर्को <xliff:g id="NAME_2">^3</xliff:g> वा यन्त्रमा ब्याकअप गर्नुहोस्।"</string>
+    <string name="storage_wizard_format_confirm_v2_body" msgid="977657376082074305">"एप, फाइल तथा मिडिया भण्डारण गर्नका लागि यो <xliff:g id="NAME_0">^1</xliff:g> लाई फर्म्याट गर्नु पर्ने हुन्छ। \n\nफर्म्याट गर्नुले <xliff:g id="NAME_1">^2</xliff:g> मा हाल विद्यमान रहेका सामग्री मेट्नेछ। सामग्री गुमाउनबाट बच्न त्यसलाई कुनै अर्को <xliff:g id="NAME_2">^3</xliff:g> वा यन्त्रमा ब्याकअप गर्नुहोस्।"</string>
     <string name="storage_wizard_format_confirm_v2_action" msgid="5576917958786300415">"<xliff:g id="NAME">^1</xliff:g> फर्म्याट गर्नु…"</string>
     <string name="storage_wizard_migrate_v2_title" msgid="6728034411587320249">"सामग्रीलाई <xliff:g id="NAME">^1</xliff:g> मा सार्ने हो?"</string>
-    <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="6943007011251294950">"तपाईं यो <xliff:g id="NAME">^1</xliff:g> मा फाइल, मिडिया र निश्चित अनुप्रयोगहरू सार्न सक्नुहुन्छ। \n\nयस कार्यले तपाईंको ट्याब्लेटको भण्डारणबाट <xliff:g id="SIZE">^2</xliff:g> खाली गर्ने छ र यसो गर्न लगभग <xliff:g id="DURATION">^3</xliff:g> लाग्छ।"</string>
-    <string name="storage_wizard_migrate_v2_body" product="default" msgid="3211214309775524554">"तपाईं यो <xliff:g id="NAME">^1</xliff:g> मा फाइल, मिडिया र निश्चित अनुप्रयोगहरू सार्न सक्नुहुन्छ। \n\nयस कार्यले तपाईंको फोनको भण्डारणबाट <xliff:g id="SIZE">^2</xliff:g> खाली गर्ने छ र यसो गर्न लगभग <xliff:g id="DURATION">^3</xliff:g> लाग्छ।"</string>
+    <string name="storage_wizard_migrate_v2_body" product="tablet" msgid="6943007011251294950">"तपाईं यो <xliff:g id="NAME">^1</xliff:g> मा फाइल, मिडिया र निश्चित एपहरू सार्न सक्नुहुन्छ। \n\nयस कार्यले तपाईंको ट्याब्लेटको भण्डारणबाट <xliff:g id="SIZE">^2</xliff:g> खाली गर्ने छ र यसो गर्न लगभग <xliff:g id="DURATION">^3</xliff:g> लाग्छ।"</string>
+    <string name="storage_wizard_migrate_v2_body" product="default" msgid="3211214309775524554">"तपाईं यो <xliff:g id="NAME">^1</xliff:g> मा फाइल, मिडिया र निश्चित एपहरू सार्न सक्नुहुन्छ। \n\nयस कार्यले तपाईंको फोनको भण्डारणबाट <xliff:g id="SIZE">^2</xliff:g> खाली गर्ने छ र यसो गर्न लगभग <xliff:g id="DURATION">^3</xliff:g> लाग्छ।"</string>
     <string name="storage_wizard_migrate_v2_checklist" msgid="6283777617014793600">"सार्ने क्रममा:"</string>
     <string name="storage_wizard_migrate_v2_checklist_media" msgid="4626548613088549096">"<xliff:g id="NAME">^1</xliff:g> लाई नहटाउनुहोस्"</string>
-    <string name="storage_wizard_migrate_v2_checklist_apps" msgid="6041914027863793837">"केही अनुप्रयोगहरूले काम गर्ने छैनन"</string>
+    <string name="storage_wizard_migrate_v2_checklist_apps" msgid="6041914027863793837">"केही एपहरूले काम गर्ने छैनन"</string>
     <string name="storage_wizard_migrate_v2_checklist_battery" product="tablet" msgid="5086689918108465503">"यो ट्याब्लेटलाई चार्जमा राख्नुहोस्"</string>
     <string name="storage_wizard_migrate_v2_checklist_battery" product="default" msgid="7801835366851130972">"यो फोनलाई चार्जमा राख्नुहोस्"</string>
     <string name="storage_wizard_migrate_v2_now" msgid="6818811520564682413">"सामग्री सार्नुहोस्"</string>
     <string name="storage_wizard_migrate_v2_later" msgid="4909412563144649085">"सामग्री पछि सार्नुहोस्"</string>
     <string name="storage_wizard_migrate_progress_v2_title" msgid="1796255772658203586">"सामग्री सार्दै…"</string>
     <string name="storage_wizard_slow_v2_title" msgid="4662009769135525740">"<xliff:g id="NAME">^1</xliff:g> ढिलो छ"</string>
-    <string name="storage_wizard_slow_v2_body" msgid="4443996335261861797">"तपाईं अझै यो <xliff:g id="NAME_0">^1</xliff:g> प्रयोग गर्न सक्नुहुन्छ तर यो निकै ढिलो हुन सक्छ। \n\nयो <xliff:g id="NAME_1">^2</xliff:g> मा सुरक्षित गरिएका अनुप्रयोगहरूले राम्ररी काम नगर्न सक्छन् र सामग्री स्थानान्तरण गर्दा लामो समय लाग्न सक्छ। \n\nकुनै अझ छिटो <xliff:g id="NAME_2">^3</xliff:g> प्रयोग गरी हेर्नुहोस् वा पोर्टेबल भण्डारणका लागि यसको साटो <xliff:g id="NAME_3">^4</xliff:g> प्रयोग गर्नुहोस्।"</string>
+    <string name="storage_wizard_slow_v2_body" msgid="4443996335261861797">"तपाईं अझै यो <xliff:g id="NAME_0">^1</xliff:g> प्रयोग गर्न सक्नुहुन्छ तर यो निकै ढिलो हुन सक्छ। \n\nयो <xliff:g id="NAME_1">^2</xliff:g> मा सुरक्षित गरिएका एपहरूले राम्ररी काम नगर्न सक्छन् र सामग्री स्थानान्तरण गर्दा लामो समय लाग्न सक्छ। \n\nकुनै अझ छिटो <xliff:g id="NAME_2">^3</xliff:g> प्रयोग गरी हेर्नुहोस् वा पोर्टेबल भण्डारणका लागि यसको साटो <xliff:g id="NAME_3">^4</xliff:g> प्रयोग गर्नुहोस्।"</string>
     <string name="storage_wizard_slow_v2_start_over" msgid="1686964124972424100">"फेरि सुरु गर्नुहोस्"</string>
     <string name="storage_wizard_slow_v2_continue" msgid="2320238517431613392">"जारी राख्नुहोस्"</string>
     <string name="storage_wizard_ready_v2_external_body" msgid="5803422587027895664">"तपाईं सामग्रीलाई <xliff:g id="NAME">^1</xliff:g> मा सार्न सक्नुहुन्छ"</string>
@@ -1564,14 +1566,14 @@
     <string name="error_mnc_not23" msgid="6738398924368729180">"MNC क्षेत्रमा २ वा ३ अंकहरू हुनुपर्दछ"</string>
     <string name="error_adding_apn_type" msgid="671634520340569678">"सेवा प्रदायकले %s प्रकारका APN हरू थप्ने अनुमति दिँदैन।"</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"पूर्वनिर्धारित APN सेटिङहरू पुनःप्राप्त गर्दै।"</string>
-    <string name="menu_restore" msgid="3799288817317293115">"पूर्वनिर्धारितमा पुनःसेट गर्नुहोस्"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"पूर्वनिर्धारित APN सेटिङहरू पुनःसेट पुरा भयो।"</string>
+    <string name="menu_restore" msgid="3799288817317293115">"पूर्वनिर्धारितमा रिसेट गर्नुहोस्"</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"पूर्वनिर्धारित APN सेटिङहरू रिसेट पुरा भयो।"</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"रिसेटका विकल्पहरू"</string>
-    <string name="reset_dashboard_summary" msgid="8778383341461126642">"नेटवर्क, अनुप्रयोगहरू वा यन्त्रलाई रिसेट गर्न सकिन्छ"</string>
+    <string name="reset_dashboard_summary" msgid="8778383341461126642">"नेटवर्क, एपहरू वा यन्त्रलाई रिसेट गर्न सकिन्छ"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Wi-Fi, मोबाइल र ब्लुटुथ रिसेट गर्नुहोस्"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"यसले निम्न सेटिङहरू लगायत सम्पूर्ण नेटवर्क सम्बन्धी सेटिहरूलाई रिसेट गर्ने छ:\n\n"<li>"Wi‑Fi"</li>\n<li>"मोबाइल डेटा"</li>\n<li>"ब्लुटुथ"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"डाउनलोड गरिएका SIM हरू मेट्नुहोस्"</string>
-    <string name="reset_esim_desc" msgid="433226911566802">"प्रतिस्थापनका लागि SIM हरू डाउनलोड गर्न आफ्ना सेवा प्रदायकसँग सम्पर्क गर्नुहोस्। यसले मोबाइल सेवासम्बन्धी कुनै पनि योजना रद्द गर्ने छैन।"</string>
+    <string name="reset_esim_desc" msgid="433226911566802">"प्रतिस्थापनका लागि SIM हरू डाउनलोड गर्न आफ्ना सेवा प्रदायकसँग सम्पर्क गर्नुहोस्। यसले मोबाइल सेवाको कुनै पनि योजना रद्द गर्ने छैन।"</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"सेटिङहरू रिसेट गर्नुहोस्"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"नेटवर्कसम्बन्धी सबै सेटिङहरू रिसेट गर्ने हो? तपाईं यो कार्य उल्टाउन सक्नुहुन्न।"</string>
     <string name="reset_network_final_desc_esim" msgid="4676436976372555750">"नेटवर्कसम्बन्धी सबै सेटिङहरू रिसेट गर्ने र डाउनलोड गरिएका SIM हरू मेटाउने हो? तपाईं यस कार्यलाई अन्डू गर्न सक्नुहुन्न!"</string>
@@ -1583,8 +1585,8 @@
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"कुनै त्रुटि भएका कारण डाउनलोड गरिएका SIM हरू मेटाउन सकिएन।\n\nआफ्नो यन्त्र पुनः सुरु गरी फेरि प्रयास गर्नुहोस्।"</string>
     <string name="master_clear_title" msgid="1560712943955904673">"सबै डेटा मेटाउनुहोस् (फ्याक्ट्री रिसेट गर्नुहोस्)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"सबै डेटा मेटाउनुहोस् (फ्याक्ट्री रिसेट गर्नुहोस्)"</string>
-    <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"यसले निम्नलगायतका सबै डेटा तपाईंको "<b>"आन्तरिक भण्डारणबाट मेटाउँदछ"</b>":\n\n"<li>"तपाईंको Google खाता"</li>\n<li>"प्रणाली र अनुप्रयोग डेटा र सेटिङहरू"</li>\n<li>"डाउनलोड गरिएका अनुप्रयोगहरू"</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"यस कार्यले तपाईंको यन्त्रको "<b>"आन्तरिक भण्डारण"</b>" बाट सम्पूर्ण डेटा मेटाउँछ, जसमा निम्न कुराहरू पर्दछन्:\n\n"<li>"तपाईंको Google खाता"</li>\n<li>"प्रणाली र अनुप्रयोगका डेटा तथा सेटिङहरू"</li>\n<li>"डाउनलोड गरिएका अनुप्रयोगहरू"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"यसले निम्नलगायतका सबै डेटा तपाईंको "<b>"आन्तरिक भण्डारणबाट मेटाउँदछ"</b>":\n\n"<li>"तपाईंको Google खाता"</li>\n<li>"प्रणाली र एप डेटा र सेटिङहरू"</li>\n<li>"डाउनलोड गरिएका एपहरू"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"यस कार्यले तपाईंको यन्त्रको "<b>"आन्तरिक भण्डारण"</b>" बाट सम्पूर्ण डेटा मेटाउँछ, जसमा निम्न कुराहरू पर्दछन्:\n\n"<li>"तपाईंको Google खाता"</li>\n<li>"प्रणाली र अनुप्रयोगका डेटा तथा सेटिङहरू"</li>\n<li>"डाउनलोड गरिएका एपहरू"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n" \nतपाईं अहिले निम्न खाताहरूमा साइन इन हुनुहुन्छ:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n" यस यन्त्रमा हाल अन्य प्रयोगकर्ताहरु छन्। \n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"संगीत"</li>\n<li>"तस्बिरहरू"</li>\n<li>"अन्य उपयोगकर्ता डेटा"</li></string>
@@ -1594,16 +1596,16 @@
     <string name="master_clear_desc_erase_external_storage" product="default" msgid="9003555775524798797">\n" \n सङ्गीत, तस्वीरहरू, र अन्य प्रयोगकर्ता डेटा मेटाउनका लागि, "<b>" SD कार्ड "</b>" मेटाउनु पर्छ।"</string>
     <string name="erase_external_storage" product="nosdcard" msgid="8989746770347525207">"USB भण्डारण मेटाउनुहोस्"</string>
     <string name="erase_external_storage" product="default" msgid="194249742376770215">"SD कार्ड मेटाउनुहोस्"</string>
-    <string name="erase_external_storage_description" product="nosdcard" msgid="8020275102431496261">"आन्तरिक USB भण्डारणमा सबै डेटा मेटाउनुहोस्, जस्तै सङ्गीत वा फोटाहरू"</string>
-    <string name="erase_external_storage_description" product="default" msgid="5029355708082861798">"SD कार्डबाट सबै डाटाहरू जस्तै सङ्गीत वा फोटाहरू मेटाउनुहोस्"</string>
+    <string name="erase_external_storage_description" product="nosdcard" msgid="8020275102431496261">"आन्तरिक USB भण्डारणमा सबै डेटा मेटाउनुहोस्, जस्तै सङ्गीत वा फोटोहरू"</string>
+    <string name="erase_external_storage_description" product="default" msgid="5029355708082861798">"SD कार्डबाट सबै डाटाहरू जस्तै सङ्गीत वा फोटोहरू मेटाउनुहोस्"</string>
     <string name="master_clear_button_text" product="tablet" msgid="8000547818499182920">"सबै डेटा मेट्नुहोस्"</string>
     <string name="master_clear_button_text" product="default" msgid="8000547818499182920">"सबै डेटा मेट्नुहोस्"</string>
-    <string name="master_clear_final_desc" msgid="5189365498015339294">"तपाईंका सबै व्यक्तिगत जानकारी र डाउनलोड गरिएका अनुप्रयोगहरू मेटिने छन्। तपाईं यस कार्यलाई अन्डू गर्न सक्नुहुन्न!"</string>
-    <string name="master_clear_final_desc_esim" msgid="3058919823436953662">"तपाईंका डाउनलोड गरिएका अनुप्रयोग तथा SIM हरू लगायत सबै निजी जानकारी मेटाइने छन्। तपाईं यस कार्यलाई अन्डू गर्न सक्नुहुन्न!"</string>
+    <string name="master_clear_final_desc" msgid="5189365498015339294">"तपाईंका सबै व्यक्तिगत जानकारी र डाउनलोड गरिएका एपहरू मेटिने छन्। तपाईं यस कार्यलाई अन्डू गर्न सक्नुहुन्न!"</string>
+    <string name="master_clear_final_desc_esim" msgid="3058919823436953662">"तपाईंका डाउनलोड गरिएका एप तथा SIM हरू लगायत सबै निजी जानकारी मेटाइने छन्। तपाईं यस कार्यलाई अन्डू गर्न सक्नुहुन्न!"</string>
     <string name="master_clear_final_button_text" msgid="866772743886027768">"सबै मेटाउनुहोस्"</string>
-    <string name="master_clear_failed" msgid="7588397453984229892">"कुनै पुनःसेट हुन सकेन किनभने सिस्टम क्लिएर सेवा उपलब्ध छैन।"</string>
+    <string name="master_clear_failed" msgid="7588397453984229892">"कुनै रिसेट हुन सकेन किनभने सिस्टम क्लिएर सेवा उपलब्ध छैन।"</string>
     <string name="master_clear_confirm_title" msgid="698328669893512402">"सबै डेटा मेट्ने हो?"</string>
-    <string name="master_clear_not_available" msgid="4676613348163652454">"यस प्रयोगकर्ताको लागि कारखाना पुनःसेट गर्ने उपलब्ध छैन"</string>
+    <string name="master_clear_not_available" msgid="4676613348163652454">"यस प्रयोगकर्ताको लागि कारखाना रिसेट गर्ने उपलब्ध छैन"</string>
     <string name="master_clear_progress_title" msgid="378953167274114857">"मेटाउँदै"</string>
     <string name="master_clear_progress_text" msgid="5418958116008976218">"कृपया प्रतीक्षा गर्नुहोला..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"कल सेटिङहरू"</string>
@@ -1619,20 +1621,20 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"डेटा सेभर अन हुँदा टेदरिङ वा पोर्टेबल हटस्पटहरूको प्रयोग गर्न सक्दैन"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB टेदर गर्दै"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"USB मार्फत फोनको इन्टरनेट जडान साझा गर्नुहोस्"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"USB मार्फत फोनको इन्टरनेट सेयर गर्नुहोस्"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"USB मार्फत ट्याब्लेटको इन्टरनेट जडान साझा गर्नुहोस्"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"ब्लुटुथ टेथर गर्दै"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"ब्लुटुथमार्फत ट्याब्लेटको इन्टरनेट जडान सझा गर्नुहोस्‌"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"ब्लुटुथमार्फत फोनको इन्टरनेट जडान साझा गर्नुहोस्‌"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"ब्लुटुथमार्फत फोनको इन्टरनेट सेयर गर्नुहोस्‌"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"ब्लुटुथमार्फत यो <xliff:g id="DEVICE_NAME">%1$d</xliff:g> को इन्टरनेट जडान साझा गर्दै"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"<xliff:g id="MAXCONNECTION">%1$d</xliff:g> उपकरणहरूभन्दा बढीसँग टेदर गर्न सक्दैन।"</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> अनटेथर गरिने छ।"</string>
-    <string name="tethering_footer_info" msgid="8019555174339154124">"आफ्नो मोबाइल डेटा जडानमार्फत अन्य यन्त्रहरूलाई इन्टरनेट उपलब्ध गराउन हटस्पट र टेदरिङ प्रयोग गर्नुहोस्। नजिकैका यन्त्रहरूसँग सामग्री आदान प्रदान गर्नाका निम्ति अनुप्रयोगहरूले हटस्पट सिर्जना गर्न पनि सक्छन्।"</string>
+    <string name="tethering_footer_info" msgid="8019555174339154124">"आफ्नो मोबाइल डेटा जडानमार्फत अन्य यन्त्रहरूलाई इन्टरनेट उपलब्ध गराउन हटस्पट र टेदरिङ प्रयोग गर्नुहोस्। नजिकैका यन्त्रहरूसँग सामग्री आदान प्रदान गर्नाका निम्ति एपहरूले हटस्पट सिर्जना गर्न पनि सक्छन्।"</string>
     <string name="tethering_help_button_text" msgid="7653022000284543996">"मद्दत"</string>
     <string name="network_settings_title" msgid="8516526011407061679">"मोबाइल नेटवर्क"</string>
     <string name="manage_mobile_plan_title" msgid="3312016665522553062">"मोबाईल योजना"</string>
-    <string name="sms_application_title" msgid="7815840568119334679">"SMS अनुप्रयोग"</string>
-    <string name="sms_change_default_dialog_title" msgid="6301260161969667578">"SMS अनुप्रयोग परिवर्तन गर्ने हो?"</string>
+    <string name="sms_application_title" msgid="7815840568119334679">"SMS एप"</string>
+    <string name="sms_change_default_dialog_title" msgid="6301260161969667578">"SMS एप परिवर्तन गर्ने हो?"</string>
     <string name="sms_change_default_dialog_text" msgid="8275088077930942680">"तपाईँको <xliff:g id="CURRENT_APP">%2$s</xliff:g> SMS अनुप्रयोगको सट्टामा <xliff:g id="NEW_APP">%1$s</xliff:g> प्रयोग गर्नुहुन्छ?"</string>
     <string name="sms_change_default_no_previous_dialog_text" msgid="4680224695080527907">"<xliff:g id="NEW_APP">%s</xliff:g>लाई SMS अनुप्रयोगको रूपमा प्रयोग गर्नुहुन्छ?"</string>
     <string name="network_scorer_picker_title" msgid="1691073966560952916">"नेटवर्कको दर्जा प्रदायक"</string>
@@ -1654,22 +1656,22 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"हालसालै राखिएको स्थानमाथिको पहुँच"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"विवरणहरू हेर्नुहोस्"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"हाल कुनै पनि अनुप्रयोगहरूले स्थान अनुरोध गरिएका छैनन्"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"अहिले कुनै पनि एपहरूले स्थानको जानकारी मागेका छैनन्"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"कुनै पनि अनुप्रयोगले हाल स्थानमाथि पहुँच गरेको छैन"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"उच्च ब्याट्री प्रयोग"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"कम ब्याट्री प्रयोग"</string>
     <string name="location_scanning_screen_title" msgid="7663329319689413454">"Wi‑Fi तथा ब्लुटुथ स्क्यान गर्दै"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Wi-Fi स्क्यान गर्दै"</string>
-    <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"अनुप्रयोग र सेवाहरूलाई जुनसुकै बेला (Wi‑Fi निष्क्रिय भएको बेलामा पनि) वरपरका Wi-Fi नेटवर्कहरू स्क्यान गर्न अनुमति दिनुहोस्। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ।"</string>
+    <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"एप र सेवाहरूलाई जुनसुकै बेला (Wi‑Fi निष्क्रिय भएको बेलामा पनि) वरपरका Wi-Fi नेटवर्कहरू स्क्यान गर्न अनुमति दिनुहोस्। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ।"</string>
     <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"ब्लुटुथ स्क्यान हुँदै"</string>
-    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"अनुप्रयोग तथा सेवाहरूलाई जुनसुकै बेला (ब्लुटुथ निष्क्रिय भएको बेलामा पनि) वरपरका यन्त्रहरू स्क्यान गर्न अनुमति दिनुहोस्‌। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ।"</string>
+    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"एप तथा सेवाहरूलाई जुनसुकै बेला (ब्लुटुथ निष्क्रिय भएको बेलामा पनि) वरपरका यन्त्रहरू स्क्यान गर्न अनुमति दिनुहोस्‌। यसलाई स्थानमा आधारित सुविधा तथा सेवाहरू सुधार गर्ने जस्ता कार्यहरू गर्नाका लागि प्रयोग गर्न सकिन्छ।"</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"कार्यस्थलका स्थानसम्बन्धी सेवाहरू"</string>
     <string name="location_network_based" msgid="1535812159327454835">"Wi-Fi; मोबाइल नेटवर्क स्थान"</string>
     <string name="location_neighborhood_level" msgid="8459352741296587916">"तपाईँको स्थानलाई सीघ्र अनुमान गर्न अनुप्रयोगहरूलाई Google स्थान सेवा प्रयोग गर्न अनुमति दिनुहोस्। बेनामी स्थान डेटा भेला गरिने छ र Googleमा पठाइने छ।"</string>
     <string name="location_neighborhood_level_wifi" msgid="6120133551482003840">"वाइ-फाइद्वारा निर्धारित स्थान"</string>
     <string name="location_gps" msgid="688049341158297763">"GPS सेटेलाइट"</string>
-    <string name="location_street_level" product="tablet" msgid="4459804798444296650">"तपाईँको स्थान इङ्गित गर्नको लागि तपाईँको ट्याब्लेटमा अनुप्रयोगलाई GPS को प्रयोग गर्न दिनुहोस्"</string>
-    <string name="location_street_level" product="default" msgid="7407688345675450051">"तपाईँको स्थान इङ्गित गर्नको लागि तपाईँको फोनमा अनुप्रयोगलाई GPS को प्रयोग गर्न दिनुहोस्"</string>
+    <string name="location_street_level" product="tablet" msgid="4459804798444296650">"तपाईँको स्थान इङ्गित गर्नको लागि तपाईँको ट्याब्लेटमा एपलाई GPS को प्रयोग गर्न दिनुहोस्"</string>
+    <string name="location_street_level" product="default" msgid="7407688345675450051">"तपाईँको स्थान इङ्गित गर्नको लागि तपाईँको फोनमा एपलाई GPS को प्रयोग गर्न दिनुहोस्"</string>
     <string name="assisted_gps" msgid="5411780261117055175">"सहायोगी GPSको प्रयोग गर्नुहोस्"</string>
     <string name="assisted_gps_enabled" msgid="2561022181775725369">"GPS लाई सहयोग पुर्‍याउन सर्भरको प्रयोग गर्नुहोस् (सञ्जाल प्रयोग घटाउन अनचेक गर्नुहोस्)"</string>
     <string name="assisted_gps_disabled" msgid="6448758788217415937">"GPS लाई मद्दत पुर्याउन सर्भर प्रयोग गर्नुहोस् (GPS कार्यसम्पादन सुधार्न अनचेक गर्नुहोस्)"</string>
@@ -1707,16 +1709,16 @@
     <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"स्क्रिन लक सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"सुरक्षाका लागि पासवर्ड सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"फिंगरप्रिन्ट प्रयोग गर्न पासवर्ड सेट गर्नुहोस्"</string>
-    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"फिंगरप्रिन्ट प्रयोग गर्न ढाँचा सेट गर्नुहोस्"</string>
+    <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"फिंगरप्रिन्ट प्रयोग गर्न प्याटर्न सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"सुरक्षाका ला‍गि PIN सेट गर्नुहोस्"</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"फिंगरप्रिन्ट प्रयोग गर्न PIN सेट गर्नुहोस्"</string>
-    <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"सुरक्षाका लागि ढाँचा सेट गर्नुहोस्"</string>
+    <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"सुरक्षाका लागि प्याटर्न सेट गर्नुहोस्"</string>
     <string name="lockpassword_confirm_your_password_header" msgid="9055242184126838887">"आफ्नो पासवर्ड पुन: प्रविष्टि गर्नुहोस्"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"तपाईँको ढाँचा निश्चित गर्नुहोस्"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"आफ्नो PIN पुन: प्रविष्टि गर्नुहोस्"</string>
     <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"पासवर्ड मेल खाँदैन"</string>
     <string name="lockpassword_confirm_pins_dont_match" msgid="5444357293637748942">"PIN मिल्दैन"</string>
-    <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"आफ्नो ढाँचा फेरि कोर्नुहोस्‌"</string>
+    <string name="lockpassword_draw_your_pattern_again_header" msgid="9017394036814402348">"प्याटर्न फेरि बनाउनुहोस्"</string>
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"चयन अनलक गर्नुहोस्"</string>
     <string name="lockpassword_password_set_toast" msgid="601928982984489868">"पासवर्ड सेट भएको छ"</string>
     <string name="lockpassword_pin_set_toast" msgid="172594825722240059">"PIN सेट भएको छ।"</string>
@@ -1744,17 +1746,17 @@
     <string name="lockpassword_confirm_your_password_header_frp" msgid="7326670978891793470">"पासवर्ड पुष्टि गर्नुहोस्"</string>
     <string name="lockpassword_invalid_pin" msgid="3059022215815900137">"गलत PIN"</string>
     <string name="lockpassword_invalid_password" msgid="8374331995318204099">"गलत पासवर्ड"</string>
-    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"गलत ढाँचा"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"प्याटर्न मिलेन"</string>
     <string name="lock_settings_title" msgid="233657584969886812">"यन्त्र सुरक्षा"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="333149762562581510">"अनलक ढाँचा परिवर्तन गर्नुहोस्"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"PIN अनलक बदल्नुहोस्"</string>
-    <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"एउटा अनलक ढाँचा कोर्नुहोस्"</string>
+    <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"अनलक प्याटर्न बनाउनुहोस्"</string>
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"मद्दतका लागि मेनुमा थिच्नुहोस्।"</string>
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"सकिएपछि औँला उचाल्नुहोस्।"</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"कम्तीमा <xliff:g id="NUMBER">%d</xliff:g>वटा थोप्लाहरू जोड्नुहोस्। फेरि प्रयास गर्नुहोस्:"</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"ढाँचा रेकर्ड भयो।"</string>
-    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"पुष्टि गर्नको लागि ढाँचा पुन: कोर्नुहोस्"</string>
-    <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"तपाईँको नयाँ अनलक ढाँचा:"</string>
+    <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"पुष्टि गर्न प्याटर्न फेरि बनाउनुहोस्"</string>
+    <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"नयाँ अनलक प्याटर्न:"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"निश्चित गर्नुहोस्"</string>
     <string name="lockpattern_restart_button_text" msgid="4322968353922529868">"पुनःचित्रण गर्नुहोस्"</string>
     <string name="lockpattern_retry_button_text" msgid="5473976578241534298">"खाली गर्नुहोस्"</string>
@@ -1766,12 +1768,12 @@
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"प्रोफाइलको ढाँचालाई देखिने बनाउनुहोस्"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"ट्याप गर्दा भाइब्रेट गर्नुहोस्"</string>
     <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"पावर बटनले तुरुन्त लक गर्दछ"</string>
-    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> द्वारा जब अनलक गर्ने बाहेक"</string>
+    <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"<xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> जे अनलक अवस्थामा राखेका बेला बाहेक"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"अनलक ढाँचा सेट गर्नुहोस्"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"अनलक ढाँचा बदल्नुहोस्"</string>
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"अनलक ढाँचा कसरी कोर्ने?"</string>
     <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="3043127997770535921">"अत्यन्तै धेरै गलत प्रयास। <xliff:g id="NUMBER">%d</xliff:g> सेकेन्ड पछि पुन: प्रयास गर्नुहोस्।"</string>
-    <string name="activity_not_found" msgid="3492413375341165453">"अनुप्रयोग तपाईँको फोनमा स्थापना गरिएको छैन।"</string>
+    <string name="activity_not_found" msgid="3492413375341165453">"एप तपाईँको फोनमा स्थापना गरिएको छैन।"</string>
     <string name="lock_settings_profile_title" msgid="3928992050074556160">"कार्य प्रोफाइलको सुरक्षा"</string>
     <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"कार्य प्रोफाइलको स्क्रिन लक"</string>
     <string name="lock_settings_profile_unification_title" msgid="2629698644191935287">"एउटै लकको प्रयोग गर्नुहोस्"</string>
@@ -1782,21 +1784,21 @@
     <string name="lock_settings_profile_unification_dialog_confirm" msgid="888942752619181804">"एउटै लकको प्रयोग गर्नुहोस्"</string>
     <string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8046452284593057185">"एउटै लकको प्रयोग गर्नुहोस्"</string>
     <string name="lock_settings_profile_unified_summary" msgid="5347244550751740962">"यन्त्रको स्क्रिन लक जस्तै"</string>
-    <string name="manageapplications_settings_title" msgid="6876782217962262376">"अनुप्रयोगहरू व्यवस्थापन गर्नुहोस्"</string>
-    <string name="manageapplications_settings_summary" msgid="5092964799412478962">"स्थापित अनुप्रयोगहरू प्रबन्ध गर्नुहोस् र हटाउनुहोस्"</string>
+    <string name="manageapplications_settings_title" msgid="6876782217962262376">"एपहरू व्यवस्थापन गर्नुहोस्"</string>
+    <string name="manageapplications_settings_summary" msgid="5092964799412478962">"स्थापित एपहरू प्रबन्ध गर्नुहोस् र हटाउनुहोस्"</string>
     <string name="applications_settings" msgid="368331725658793179">"अनुप्रयोगको जानकारी"</string>
-    <string name="applications_settings_summary" msgid="8888258399577123906">"अनुप्रयोगहरू प्रबन्ध गर्नुहोस्, छिटो लन्च सर्टकटहरू सेटअप गर्नुहोस्"</string>
-    <string name="applications_settings_header" msgid="3766501606045211098">"अनुप्रयोग सेटिङहरू"</string>
+    <string name="applications_settings_summary" msgid="8888258399577123906">"एपहरू प्रबन्ध गर्नुहोस्, छिटो लन्च सर्टकटहरू सेटअप गर्नुहोस्"</string>
+    <string name="applications_settings_header" msgid="3766501606045211098">"एप सेटिङहरू"</string>
     <string name="install_applications" msgid="7745902974984889179">"अज्ञात स्रोतहरू"</string>
-    <string name="install_applications_title" msgid="8164828577588659496">"सबै अनुप्रयोग स्रोतहरू अनुमति"</string>
-    <string name="recent_app_category_title" msgid="7688788038277126727">"हालै खोलिएका अनुप्रयोगहरू"</string>
-    <string name="see_all_apps_title" msgid="6435061912110347474">"सबै <xliff:g id="COUNT">%1$d</xliff:g> अनुप्रयोगहरू हेर्नुहोस्"</string>
+    <string name="install_applications_title" msgid="8164828577588659496">"सबै एप स्रोतहरू अनुमति"</string>
+    <string name="recent_app_category_title" msgid="7688788038277126727">"हालै खोलिएका एपहरू"</string>
+    <string name="see_all_apps_title" msgid="6435061912110347474">"सबै <xliff:g id="COUNT">%1$d</xliff:g> एपहरू हेर्नुहोस्"</string>
     <string name="install_all_warning" product="tablet" msgid="4580699862358542727">"तपाईंको ट्याब्लेट र व्यक्तिगत डेटा अज्ञात अनुप्रयोगहरूबाट हुने आक्रमणमा पर्न सक्ने जोखिम अझ बढी हुन्छ। यो स्रोतबाट प्राप्त हुने अनुप्रयोगहरूको स्थापना गरेर, तिनीहरूको प्रयोगबाट तपाईंको ट्याब्लेटमा हुनसक्ने क्षति वा डेटाको नोक्सानीको जिम्मेवार तपाईं आफैँ हुनुहुन्छ भन्ने कुरामा तपाईं सहमत हुनुहुन्छ।"</string>
     <string name="install_all_warning" product="default" msgid="7445839116997296358">"तपाईंको फोन र व्यक्तिगत डेटा अज्ञात अनुप्रयोगहरूबाट हुने आक्रमणमा पर्न सक्ने जोखिम अझ बढी हुन्छ। यो स्रोतबाट प्राप्त हुने अनुप्रयोगहरूको स्थापना गरेर, तिनीहरूको प्रयोगबाट तपाईंको फोनमा हुनसक्ने क्षति वा डेटाको नोक्सानीको जिम्मेवार तपाईं आफैँ हुनुहुन्छ भन्ने कुरामा तपाईं सहमत हुनुहुन्छ।"</string>
     <string name="install_all_warning" product="device" msgid="9141585291103603515">"तपाईंको यन्त्र र व्यक्तिगत डेटा अज्ञात अनुप्रयोगहरूबाट हुने आक्रमणमा पर्न सक्ने जोखिम अझ बढी हुन्छ। यो स्रोतबाट प्राप्त हुने अनुप्रयोगहरूको स्थापना गरेर, तिनीहरूको प्रयोगबाट फोनमा हुनसक्ने क्षति वा डेटाको नोक्सानीको जिम्मेवार तपाईं आफैँ हुनुहुन्छ भन्ने कुरामा तपाईं सहमत हुनुहुन्छ।"</string>
     <string name="advanced_settings" msgid="6282069364060968122">"जटिल सेटिङहरू"</string>
     <string name="advanced_settings_summary" msgid="5912237062506771716">"थप सेटिङ विकल्पहरू सक्षम पार्नुहोस्"</string>
-    <string name="application_info_label" msgid="3886253474964599105">"अनुप्रयोग जानकारी"</string>
+    <string name="application_info_label" msgid="3886253474964599105">"अनुप्रयोगको जानकारी"</string>
     <string name="storage_label" msgid="1109537840103290384">"भण्डारण"</string>
     <string name="auto_launch_label" msgid="47089737922907379">"पूर्वनिर्धारितद्वारा खोल्नुहोस्"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"पूर्वनिर्धारितहरू"</string>
@@ -1814,7 +1816,7 @@
     <string name="force_stop" msgid="9213858124674772386">"जबरजस्ती रोक्नुहोस्"</string>
     <string name="total_size_label" msgid="3929917501176594692">"कूल"</string>
     <string name="application_size_label" msgid="175357855490253032">"अनुप्रयोगको आकार"</string>
-    <string name="external_code_size_label" msgid="3434421216268309411">"USB भण्डारण अनुप्रयोग"</string>
+    <string name="external_code_size_label" msgid="3434421216268309411">"USB भण्डारण एप"</string>
     <string name="data_size_label" msgid="7790201846922671662">"प्रयोगकर्ताको डेटा"</string>
     <string name="external_data_size_label" product="nosdcard" msgid="8004991551882573479">"USB भण्डारण डेटा"</string>
     <string name="external_data_size_label" product="default" msgid="1097584278225902734">"SD कार्ड"</string>
@@ -1825,45 +1827,45 @@
     <string name="enable_text" msgid="7179141636849225884">"सक्रिय गर्नुहोस्"</string>
     <string name="clear_user_data_text" msgid="8894073247302821764">"भण्डारण खाली गर्नुहोस्"</string>
     <string name="app_factory_reset" msgid="8718986000278776272">"अद्यावधिकहरू अस्थापना गर्नुहोस्"</string>
-    <string name="auto_launch_enable_text" msgid="3372898942144027341">"केही कारवाहीका लागि पूर्वनिर्धारतिबाट यो अनुप्रयोग सुरु गर्न तपाईँले छान्नु भयो।"</string>
-    <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"तपाईंले यो अनुप्रयोगलाई विजेटहरू सिर्जना गर्न र तिनीहरूको डेटा पहुँच गर्न अनुमतिको लागि छान्नुभयो।"</string>
+    <string name="auto_launch_enable_text" msgid="3372898942144027341">"केही कारवाहीका लागि पूर्वनिर्धारतिबाट यो एप सुरु गर्न तपाईँले छान्नु भयो।"</string>
+    <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"तपाईंले यो एपलाई विजेटहरू सिर्जना गर्न र तिनीहरूको डेटा पहुँच गर्न अनुमतिको लागि छान्नुभयो।"</string>
     <string name="auto_launch_disable_text" msgid="8560921288036801416">"कुनै पूर्वनिर्धारित सेट गरिएको छैन।"</string>
     <string name="clear_activities" msgid="2068014972549235347">"पूर्वनिर्धारितहरू मेटाउनुहोस्"</string>
-    <string name="screen_compatibility_text" msgid="1768064020294301496">"तपाईंको स्क्रिनका लागि यस अनुप्रयोग डिजाइन नहुन सक्छ। तपाईंको स्क्रिनमा कसरी मिल्छ तपाईं यहाँ नियन्त्रण गर्न सक्नु हुन्छ।"</string>
+    <string name="screen_compatibility_text" msgid="1768064020294301496">"तपाईंको स्क्रिनका लागि यस एप डिजाइन नहुन सक्छ। तपाईंको स्क्रिनमा कसरी मिल्छ तपाईं यहाँ नियन्त्रण गर्न सक्नु हुन्छ।"</string>
     <string name="ask_compatibility" msgid="6687958195768084807">"सुरु भइसकेपछि सोध्नुहोस्"</string>
-    <string name="enable_compatibility" msgid="1754177974320410195">"स्केल अनुप्रयोग"</string>
+    <string name="enable_compatibility" msgid="1754177974320410195">"स्केल एप"</string>
     <string name="unknown" msgid="2780743426415501227">"अज्ञात"</string>
     <string name="sort_order_alpha" msgid="6689698854460261212">"नामबाट क्रमबद्ध गर्नुहोस्"</string>
     <string name="sort_order_size" msgid="3167376197248713027">"आकारद्वारा क्रमबद्ध गर्नुहोस्"</string>
-    <string name="sort_order_recent_notification" msgid="5592496977404445941">"सबैभन्दा हालसालैका"</string>
-    <string name="sort_order_frequent_notification" msgid="5640245013098010347">"प्रायः"</string>
+    <string name="sort_order_recent_notification" msgid="5592496977404445941">"नवीनतम"</string>
+    <string name="sort_order_frequent_notification" msgid="5640245013098010347">"प्रायःजसो प्रयोग हुने"</string>
     <string name="show_running_services" msgid="1895994322704667543">"चालु सेवाहरू देखाउनुहोस्"</string>
     <string name="show_background_processes" msgid="88012264528093617">"केस गरिएका प्रक्रियाहरू"</string>
-    <string name="default_emergency_app" msgid="286530070173495823">"आपतकालीन अनुप्रयोग"</string>
-    <string name="reset_app_preferences" msgid="1426500030595212077">"अनुप्रयोग प्राथमिकताहरू पुनःसेट गर्नुहोस्"</string>
-    <string name="reset_app_preferences_title" msgid="792909865493673598">"अनुप्रयोगका प्राथमिकताहरू पुनःसेट गर्ने हो?"</string>
-    <string name="reset_app_preferences_desc" msgid="7935273005301096031">"यसले सबै  प्राथमिकताहरूलाई पुनःसेट गर्ने छ:\n\n "<li>"असक्षम पारिएका अनुप्रयोगहरू"</li>\n" "<li>"असक्षम पारिएका अनुप्रयोग सूचनाहरू"</li>\n" "<li>"कार्यका लागि पूर्वनिर्धारित अनुप्रयोगहरू"</li>\n" "<li>"अनुप्रयोगहरूको लागि पृष्ठभूमि डेटा प्रतिबन्धहरू"</li>\n" "<li>"कुनै अनुमति प्रतिबन्धहरू"</li>\n\n" तपाईँले कुनै पनि अनुप्रयोग डेटा गुमाउनु हुने छैन।"</string>
-    <string name="reset_app_preferences_button" msgid="2041894727477934656">"अनुप्रयोगहरू पुनःसेट गर्नुहोस्"</string>
+    <string name="default_emergency_app" msgid="286530070173495823">"आपतकालीन एप"</string>
+    <string name="reset_app_preferences" msgid="1426500030595212077">"अनुप्रयोगका प्राथमिकताहरू रिसेट गर्नुहोस् रिसेट गर्नुहोस्"</string>
+    <string name="reset_app_preferences_title" msgid="792909865493673598">"अनुप्रयोगका अनुप्रयोगका प्राथमिकताहरू रिसेट गर्ने हो?"</string>
+    <string name="reset_app_preferences_desc" msgid="7935273005301096031">"यसले सबै  प्राथमिकताहरूलाई रिसेट गर्ने छ:\n\n "<li>"असक्षम पारिएका एपहरू"</li>\n" "<li>"असक्षम पारिएका एप सूचनाहरू"</li>\n" "<li>"कार्यका लागि पूर्वनिर्धारित एपहरू"</li>\n" "<li>"एपहरूको लागि पृष्ठभूमि डेटा प्रतिबन्धहरू"</li>\n" "<li>"कुनै अनुमति प्रतिबन्धहरू"</li>\n\n" तपाईँले कुनै पनि एप डेटा गुमाउनु हुने छैन।"</string>
+    <string name="reset_app_preferences_button" msgid="2041894727477934656">"एपहरू रिसेट गर्नुहोस्"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"ठाउँको प्रबन्ध गर्नुहोस्"</string>
     <string name="filter" msgid="2426943916212457962">"फिल्टर गर्नुहोस्"</string>
     <string name="filter_dlg_title" msgid="115313222190512670">"फिल्टर विकल्पहरू छान्नुहोस्"</string>
-    <string name="filter_apps_all" msgid="3938077534861382701">"सबै अनुप्रयोगहरू"</string>
-    <string name="filter_apps_disabled" msgid="5394488790555678117">"असक्षम पारिएका अनुप्रयोगहरू"</string>
+    <string name="filter_apps_all" msgid="3938077534861382701">"सबै एपहरू"</string>
+    <string name="filter_apps_disabled" msgid="5394488790555678117">"असक्षम पारिएका एपहरू"</string>
     <string name="filter_apps_third_party" msgid="3985794876813232322">"डाउनलोड गरियो"</string>
     <string name="filter_apps_running" msgid="6852975378502426359">"चालु"</string>
     <string name="filter_apps_onsdcard" product="nosdcard" msgid="3501701148760911442">"USB भण्डारण"</string>
     <string name="filter_apps_onsdcard" product="default" msgid="135989136394672864">"SD कार्डमा"</string>
     <string name="not_installed" msgid="6432131218496140253">"यो प्रयोगकर्ताको लागि स्थापित गरिएको छैन"</string>
     <string name="installed" msgid="4824212968888080451">"स्थापना गरियो"</string>
-    <string name="no_applications" msgid="6811396016303576024">"कुनै अनुप्रयोगहरू छैनन्"</string>
+    <string name="no_applications" msgid="6811396016303576024">"कुनै एपहरू छैनन्"</string>
     <string name="internal_storage" msgid="7392373600013294853">"आन्तरिक भण्डारण"</string>
     <string name="recompute_size" msgid="4290692197892743928">"आकार पुनःगणना गर्दै ..."</string>
-    <string name="clear_data_dlg_title" msgid="7388024498687029597">"अनुप्रयोग डेटा मेटाउन चाहनुहुन्छ?"</string>
+    <string name="clear_data_dlg_title" msgid="7388024498687029597">"एप डेटा मेटाउन चाहनुहुन्छ?"</string>
     <string name="clear_data_dlg_text" msgid="6849657743695013414">"यस अनुप्रयोगका सम्पूर्ण डेटाहरू स्थायी रूपमा मेटाइने छ। यसमा सम्पूर्ण फाइल, सेटिङ, खाताहरू, डेटाबेस आदि पर्दछन्।"</string>
     <string name="dlg_ok" msgid="4666570206507476557">"ठिक छ"</string>
     <string name="dlg_cancel" msgid="2434951039156262467">"रद्द गर्नुहोस्"</string>
     <string name="app_not_found_dlg_title" msgid="394147475018718483"></string>
-    <string name="app_not_found_dlg_text" msgid="8807428608938210212">"स्थापित अनुप्रयोगको सूचीमा अनुप्रयोग भेटिएन।"</string>
+    <string name="app_not_found_dlg_text" msgid="8807428608938210212">"स्थापित एपको सूचीमा एप भेटिएन।"</string>
     <string name="clear_failed_dlg_text" msgid="8072859778950498232">"अनुप्रयोगका लागि भण्डारण खाली गर्न सकिएन।"</string>
     <string name="join_two_items" msgid="3833831843199356403">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g> र <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
     <string name="join_two_unrelated_items" msgid="8257688498236358394">"<xliff:g id="FIRST_ITEM">%1$s</xliff:g>, <xliff:g id="SECOND_ITEM">%2$s</xliff:g>"</string>
@@ -1877,24 +1879,24 @@
     <string name="move_app_to_sdcard" product="default" msgid="2348845109583354505">"SD कार्डमा सार्नुहोस्"</string>
     <string name="another_migration_already_in_progress" msgid="3159694008286196454">"अर्को माइग्रेसन पहिलेदेखि नै जारी छ।"</string>
     <string name="insufficient_storage" msgid="7089626244018569405">"पर्याप्त भण्डारण ठाउँ छैन।"</string>
-    <string name="does_not_exist" msgid="4821267479183197109">"अनुप्रयोग छैन"</string>
+    <string name="does_not_exist" msgid="4821267479183197109">"एप छैन"</string>
     <string name="invalid_location" msgid="8057409982223429673">"स्थापना स्थान वैध छैन।"</string>
     <string name="system_package" msgid="1824541892695233351">"प्रणाली अपडेटहरू बाह्य मिडियामा स्थापित गर्न सकिँदैनन्।"</string>
-    <string name="move_error_device_admin" msgid="6640501923867066901">"बाह्य मिडियामा यन्त्र प्रशासक अनुप्रयोगलाई स्थापना गर्न सकिँदैन"</string>
+    <string name="move_error_device_admin" msgid="6640501923867066901">"बाह्य मिडियामा यन्त्र प्रशासक एपलाई स्थापना गर्न सकिँदैन"</string>
     <string name="force_stop_dlg_title" msgid="8822779487097246675">"बलपूर्वक रोक्ने हो?"</string>
-    <string name="force_stop_dlg_text" msgid="7435245769456493398">"यदि तपाईँले अनुप्रयोगलाई जबर्जस्ती रोक्नु भएको खण्डमा त्यसले चाहेअनुसार काम नगर्न सक्छ।"</string>
+    <string name="force_stop_dlg_text" msgid="7435245769456493398">"यदि तपाईँले एपलाई जबर्जस्ती रोक्नु भएको खण्डमा त्यसले चाहेअनुसार काम नगर्न सक्छ।"</string>
     <string name="app_install_location_title" msgid="5121617802063021720">"मन परेको स्थापना स्थान"</string>
     <string name="app_install_location_summary" msgid="109719780117187797">"नयाँ अनुप्रयोगका लागि रुचाइएको स्थापना स्थान बदल्नुहोस्"</string>
-    <string name="app_disable_dlg_positive" msgid="5508828271100168073">"अनुप्रयोग असक्षम गर्नुहोस्"</string>
-    <string name="app_disable_dlg_text" msgid="9221864774943530281">"तपाईंले यो अनुप्रयोगलाई असक्षम पार्नुभयो भने Android र अन्य अनुप्रयोगहरूले अब उप्रान्त अपेक्षाअनुसार कार्य नगर्न सक्छन्। स्मरण रहोस्, तपाईं यो अनुप्रयोग तपाईंको यन्त्रसँग पहिल्यै स्थापना भएर आएको हुँदा तपाईं यसलाई मेट्न सक्नुहुन्न। यो अनुप्रयोग असक्षम पारेर, तपाईं यसलाई निष्क्रिय पार्नुहुन्छ र यसलाई आफ्नो यन्त्रमा लुकाउनुहुन्छ।"</string>
+    <string name="app_disable_dlg_positive" msgid="5508828271100168073">"एप असक्षम गर्नुहोस्"</string>
+    <string name="app_disable_dlg_text" msgid="9221864774943530281">"तपाईंले यो एपलाई असक्षम पार्नुभयो भने Android र अन्य एपहरूले अब उप्रान्त अपेक्षाअनुसार कार्य नगर्न सक्छन्। स्मरण रहोस्, तपाईं यो एप तपाईंको यन्त्रसँग पहिल्यै स्थापना भएर आएको हुँदा तपाईं यसलाई मेट्न सक्नुहुन्न। यो एप असक्षम पारेर, तपाईं यसलाई निष्क्रिय पार्नुहुन्छ र यसलाई आफ्नो यन्त्रमा लुकाउनुहुन्छ।"</string>
     <string name="app_disable_notifications_dlg_title" msgid="699530661413553928">"सूचनाहरू बन्द गर्नुहोस्?"</string>
     <string name="app_install_details_group_title" msgid="2909597319422976921">"स्टोर"</string>
-    <string name="app_install_details_title" msgid="6954953384372934881">"अनुप्रयोग बारे विवरणहरू"</string>
-    <string name="app_install_details_summary" msgid="6612222941121363940">"<xliff:g id="APP_STORE">%1$s</xliff:g> बाट स्थापना गरिएको अनुप्रयोग"</string>
+    <string name="app_install_details_title" msgid="6954953384372934881">"एप बारे विवरणहरू"</string>
+    <string name="app_install_details_summary" msgid="6612222941121363940">"<xliff:g id="APP_STORE">%1$s</xliff:g> बाट स्थापना गरिएको एप"</string>
     <string name="instant_app_details_summary" msgid="6384264315914966114">"<xliff:g id="APP_STORE">%1$s</xliff:g> मा थप जानकारी छ"</string>
     <string name="app_ops_running" msgid="6378418969742957805">"चालु भइरहेको"</string>
     <string name="app_ops_never_used" msgid="8305262378162525813">"(कहिल्यै प्रयोग नभएको)"</string>
-    <string name="no_default_apps" msgid="4519038578011412532">"कुनै पूर्वनिर्धारित अनुप्रयोगहरू छैनन्"</string>
+    <string name="no_default_apps" msgid="4519038578011412532">"कुनै पूर्वनिर्धारित एपहरू छैनन्"</string>
     <string name="storageuse_settings_title" msgid="3390798597982116048">"भण्डारण प्रयोग"</string>
     <string name="storageuse_settings_summary" msgid="3013328092465903687">"अनुप्रयोगद्वारा प्रयोग गरिएको भण्डारण हेर्नुहोस्"</string>
     <string name="service_restarting" msgid="1190995225643385568">"पुनःसुरु हुँदै"</string>
@@ -1915,22 +1917,22 @@
     <string name="running_processes_item_description_p_s" msgid="707216865096533078">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> प्रक्रियाहरू र <xliff:g id="NUMSERVICES">%2$d</xliff:g> सेवा"</string>
     <string name="running_processes_item_description_p_p" msgid="8039478314818162001">"<xliff:g id="NUMPROCESS">%1$d</xliff:g> प्रक्रियाहरू र <xliff:g id="NUMSERVICES">%2$d</xliff:g> सेवाहरू"</string>
     <string name="running_processes_header_title" msgid="6505983796524910467">"यन्त्रको मेमोरी"</string>
-    <string name="running_processes_header_footer" msgid="6365963816942632771">"अनुप्रयोग RAM उपयोग"</string>
+    <string name="running_processes_header_footer" msgid="6365963816942632771">"एप RAM उपयोग"</string>
     <string name="running_processes_header_system_prefix" msgid="3812089317725567449">"प्रणाली"</string>
-    <string name="running_processes_header_apps_prefix" msgid="4024980745400903746">"अनुप्रयोगहरू"</string>
+    <string name="running_processes_header_apps_prefix" msgid="4024980745400903746">"एपहरू"</string>
     <string name="running_processes_header_free_prefix" msgid="1092348393136753031">"नि:शुल्क"</string>
     <string name="running_processes_header_used_prefix" msgid="2984090414986096084">"प्रयोग भयो"</string>
     <string name="running_processes_header_cached_prefix" msgid="8398315634778729026">"क्यास्ड"</string>
     <string name="running_processes_header_ram" msgid="3867954556214535588">"RAM को <xliff:g id="RAM_0">%1$s</xliff:g>"</string>
-    <string name="runningservicedetails_settings_title" msgid="7075556369123578372">"चालु अनुप्रयोग"</string>
+    <string name="runningservicedetails_settings_title" msgid="7075556369123578372">"चालु एप"</string>
     <string name="no_services" msgid="2085012960886321920">"सक्रिय छैन"</string>
     <string name="runningservicedetails_services_title" msgid="5890094559748633615">"सेवाहरू"</string>
     <string name="runningservicedetails_processes_title" msgid="5496507383850423763">"प्रक्रियाहरू"</string>
     <string name="service_stop" msgid="8812777462903125191">"रोक्नुहोस्"</string>
     <string name="service_manage" msgid="7045214643721276662">"सेटिङहरू"</string>
-    <string name="service_stop_description" msgid="4184180745938573707">"सेवा यसको अनुप्रयोगले सुरु गरेको हो। यसलाई रोक्दा अनुप्रयोग विफल हुन सक्छ।"</string>
-    <string name="heavy_weight_stop_description" msgid="7444148811046611463">"यो अनुप्रयोग सुरक्षित तरिकाले रोक्न मिल्दैन। यदि तपाईंले यसलाई रोक्नुभयो भने तपाईंले हालको केही काम हराउन सक्नु हुने छ"</string>
-    <string name="background_process_stop_description" msgid="8971810208873038109">"यो पुरानो अनुप्रयोग प्रक्रिया हो जुन अझैं चलिरहेको छ, यो कुनै पनि बेला चाहिन सक्छ। सामान्यतया: यसलाई रोक्नु पर्ने कुनै कारण छैन।"</string>
+    <string name="service_stop_description" msgid="4184180745938573707">"सेवा यसको एपले सुरु गरेको हो। यसलाई रोक्दा एप विफल हुन सक्छ।"</string>
+    <string name="heavy_weight_stop_description" msgid="7444148811046611463">"यो एप सुरक्षित तरिकाले रोक्न मिल्दैन। यदि तपाईंले यसलाई रोक्नुभयो भने तपाईंले हालको केही काम हराउन सक्नु हुने छ"</string>
+    <string name="background_process_stop_description" msgid="8971810208873038109">"यो पुरानो एप प्रक्रिया हो जुन अझैं चलिरहेको छ, यो कुनै पनि बेला चाहिन सक्छ। सामान्यतया: यसलाई रोक्नु पर्ने कुनै कारण छैन।"</string>
     <string name="service_manage_description" msgid="8058123524402833082">"<xliff:g id="CLIENT_NAME">%1$s</xliff:g>: अहिले प्रयोगमा छ। यसलाई नियन्त्रण गर्न सेटिङमा ट्याप गर्नुहोस्।"</string>
     <string name="main_running_process_description" msgid="7733268956566861797">"मुख्य प्रक्रिया प्रयोगमा।"</string>
     <string name="process_service_in_use_description" msgid="2253782391122637651">"सेवा <xliff:g id="COMP_NAME">%1$s</xliff:g> प्रयोगमा छ।"</string>
@@ -1952,7 +1954,7 @@
     <string name="auto_replace" msgid="4908063993127848521">"स्वतः परिवर्तन"</string>
     <string name="auto_replace_summary" msgid="5484123340142696252">"गलत टाइप गरिएका शब्दहरू सच्याउनुहोस्"</string>
     <string name="auto_caps" msgid="5566082723106296847">"स्वतः क्यापटिल"</string>
-    <string name="auto_caps_summary" msgid="8505254799874525084">"वाक्यहरूको पहिलो अक्षर ठूलो पार्नुहोस्"</string>
+    <string name="auto_caps_summary" msgid="8505254799874525084">"वाक्यहरूको पहिलो अक्षर ठुलो पार्नुहोस्"</string>
     <string name="auto_punctuate" msgid="8386007107100525931">"अटो-पङ्चुएट"</string>
     <string name="hardkeyboard_category" msgid="5937171470391551627">"वास्तविक किबोर्ड सेटिङहरू"</string>
     <string name="auto_punctuate_summary" msgid="245694025030386370">"\".\" सम्मिलित गर्न दुई पटक स्पेस कुञ्जी थिच्नुहोस्"</string>
@@ -2029,7 +2031,7 @@
     <string name="usage_stats_label" msgid="3128999956478977035">"उपयोग तथ्याङ्क"</string>
     <string name="testing_usage_stats" msgid="704965692323956976">"प्रयोग तथ्याङ्क"</string>
     <string name="display_order_text" msgid="2973620313510295873">"बाट क्रमबद्घ:"</string>
-    <string name="app_name_label" msgid="2258469951312794816">"अनुप्रयोग"</string>
+    <string name="app_name_label" msgid="2258469951312794816">"एप"</string>
     <string name="last_time_used_label" msgid="1119322667349666930">"पछिल्लो समय प्रयोग गरिएको"</string>
     <string name="usage_time_label" msgid="5615725415876461039">"उपयोग समय"</string>
     <string name="accessibility_settings" msgid="9140621093888234485">"पहुँच"</string>
@@ -2047,7 +2049,7 @@
     <string name="feature_flags_dashboard_title" msgid="3153034144122754381">"विशेष फ्ल्यागहरू"</string>
     <string name="talkback_title" msgid="3717960404234260050">"Talkback"</string>
     <string name="talkback_summary" msgid="6602857105831641574">"मुख्तया दृष्टिविहीन र कम दृष्टि भएका व्यक्तिहरूको लागि स्क्रिन रिडर"</string>
-    <string name="select_to_speak_summary" msgid="7514180457557735421">"ठूलो आवाजमा सुन्न आफ्नो स्क्रिनमा भएका वस्तुहरूमा ट्याप गर्नुहोस्"</string>
+    <string name="select_to_speak_summary" msgid="7514180457557735421">"ठुलो आवाजमा सुन्न आफ्नो स्क्रिनमा भएका वस्तुहरूमा ट्याप गर्नुहोस्"</string>
     <string name="accessibility_captioning_title" msgid="5878371993023439642">"क्याप्सन"</string>
     <string name="accessibility_screen_magnification_title" msgid="7250949681883917360">"म्याग्निफिकेसन"</string>
     <string name="accessibility_screen_magnification_gestures_title" msgid="9199287875401817974">"तीन ट्यापमा म्याग्निफाइ गर्नुहोस्"</string>
@@ -2063,11 +2065,11 @@
     <string name="accessibility_shortcut_service_title" msgid="3516052294376744060">"सर्टकट सेवा"</string>
     <string name="accessibility_shortcut_service_on_lock_screen_title" msgid="1279441617927949980">"लक स्क्रिनबाट अनुमति दिनुहोस्"</string>
     <string name="accessibility_shortcut_description" msgid="1427049334225166395">"सर्टकट सक्रिय हुँदा पहुँचसम्बन्धी सुविधा सुरु गर्न तपाईं दुवै भोल्युम कुञ्जीहरूलाई ३ सेकेन्डसम्म थिच्न सक्नुहुन्छ।"</string>
-    <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="5652244684961877255">"उच्च विपरीत पाठ"</string>
+    <string name="accessibility_toggle_high_text_contrast_preference_title" msgid="5652244684961877255">"हाइ कन्ट्रास्ट पाठ"</string>
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_title" msgid="2466317284195934003">"स्क्रिन आवर्धन स्वतः अद्यावधिक गर्नुहोस्"</string>
-    <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="6625473745911276917">"अनुप्रयोग ट्रान्जिसनहरूमा स्क्रिन आवर्धन अद्यावधिक गर्नुहोस्"</string>
+    <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="6625473745911276917">"एप ट्रान्जिसनहरूमा स्क्रिन आवर्धन अद्यावधिक गर्नुहोस्"</string>
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6172987104538172869">"पावर बटनले कल समाप्त गर्दछ"</string>
-    <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"ठूलो माउस पोइन्टर"</string>
+    <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"ठुलो माउस पोइन्टर"</string>
     <string name="accessibility_disable_animations" msgid="8378441317115710009">"एनिमेसनहरू हटाउनुहोस्"</string>
     <string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"मोनो अडियो"</string>
     <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"अडियो प्ले गर्दा च्यानलहरूलाई संयोजन गर्नुहोस्"</string>
@@ -2082,9 +2084,9 @@
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"पढ्ने समय"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"कारबाही गर्ने समय"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"तपाईंले पढ्नु पर्ने तर अस्थायी रूपमा मात्र देखिने सन्देशहरू देखाइने समय छनौट गर्नुहोस्।\n\nयो सेटिङले सबै अनुप्रयोगहरूमा काम गर्दैन।"</string>
-    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"तपाईंलाई कारबाही गर्न लगाउने तर अस्थायी रूपमा मात्र देखिने सन्देशहरू देखाइने समय छनौट गर्नुहोस्।\n\nसबै अनुप्रयोगहरूले यो सेटिङ समर्थन गर्दैनन्।"</string>
-    <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"छुनुहोस् र केहीबेर समाउनुहोस्"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"रंग इन्भर्सन"</string>
+    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"तपाईंलाई कारबाही गर्न लगाउँदै अस्थायी रूपमा देखिने सन्देशहरू कति बेर देखाइनु पर्छ भन्ने कुरा छान्नुहोस्।\n\nयो सेटिङले सबै अनुप्रयोगमा काम गर्दैन।"</string>
+    <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"टच एण्ड होल्डको ढिलाइ"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"रङ्ग उल्टाउनुहोस्"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"कार्यसम्पादनमा असर पार्न सक्छ"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"कुनै वस्तुमा कर्सर रहने अवधि"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"तपाईं माउस प्रयोग गर्दै हुनुहुन्छ भने कुनै स्थानमा निश्चित अवधिसम्मका लागि रोकिएको कर्सर स्वत: चल्न थाल्ने गरी सेट गर्न सक्नुहुन्छ।"</string>
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"कम्पनसहितको घन्टी"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"छुवाइसम्बन्धी कम्पन"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"सुविधा प्रयोग गर्नुहोस्"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"रङ सुधार गर्ने सुविधा प्रयोग गर्नुहोस्"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"रङ्ग सुधार गर्ने सुविधा प्रयोग गर्नुहोस्"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"क्याप्सनहरू प्रयोग गर्नुहोस्"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"जारी राख्नुहोस्"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"श्रवण यन्त्रहरू"</string>
@@ -2190,11 +2192,11 @@
     <string name="accessibility_no_service_selected" msgid="3909390566736834080">"कुनै पनि सेवा चयन गरिएको छैन"</string>
     <string name="accessibility_service_default_description" msgid="857921874644864502">"वर्णन प्रदान गरिएको छैन।"</string>
     <string name="settings_button" msgid="8557747862035866953">"सेटिङहरू"</string>
-    <string name="print_settings" msgid="7886184656544483072">"मुद्रण"</string>
+    <string name="print_settings" msgid="7886184656544483072">"प्रिन्टिङ"</string>
     <string name="print_settings_summary_no_service" msgid="634173687975841526">"निष्क्रिय छ"</string>
     <plurals name="print_settings_summary" formatted="false" msgid="7580293760281445137">
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> वटा छाप्ने सेवा खुला छन्</item>
-      <item quantity="one">१ वटा छाप्ने सेवा खुला छ</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> वटा प्रिन्टर खुला छन्</item>
+      <item quantity="one">१ वटा प्रिन्टर खुला छ</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="6180308415569432845">
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> छपाइ कार्यहरू</item>
@@ -2232,18 +2234,18 @@
     <string name="power_discharge_remaining" msgid="3461915627093471868">"<xliff:g id="REMAIN">%1$s</xliff:g> बाँकी"</string>
     <string name="power_charge_remaining" msgid="2730510256218879651">"<xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> चार्जमा"</string>
     <string name="background_activity_title" msgid="7207836362312111483">"पृष्ठभूमिको प्रतिबन्ध"</string>
-    <string name="background_activity_summary" msgid="582372194738538145">"अनुप्रयोगलाई पृष्ठभूमिमा चल्न अनुमति दिनुहोस्"</string>
-    <string name="background_activity_summary_disabled" msgid="457944930942085876">"अनुप्रयोगलाई पृष्ठभूमिमा चल्न दिइएको छैन"</string>
+    <string name="background_activity_summary" msgid="582372194738538145">"एपलाई पृष्ठभूमिमा चल्न अनुमति दिनुहोस्"</string>
+    <string name="background_activity_summary_disabled" msgid="457944930942085876">"एपलाई पृष्ठभूमिमा चल्न दिइएको छैन"</string>
     <string name="background_activity_summary_whitelisted" msgid="4713321059375873828">"पृष्ठभूमिको प्रयोगमा प्रतिबन्ध लगाउन सकिँदैन"</string>
     <string name="background_activity_warning_dialog_title" msgid="2170790412855899678">"पृष्ठभूमिको गतिविधिलाई सीमित गर्ने हो?"</string>
     <string name="background_activity_warning_dialog_text" msgid="8242749826732375096">"तपाईंले कुनै अनुप्रयोगको पृष्ठभूमिको गतिविधिलाई सीमित गर्नुभयो भने यसले सही तरिकाले काम नगर्न सक्छ"</string>
-    <string name="background_activity_disabled_dialog_text" msgid="4234598000779459640">"यो अनुप्रयोगलाई ब्याट्री अप्टिमाइज गर्न भनी सेट नगरिएको हुनाले तपाईं यसमा बन्देज लगाउन सक्नुहुन्न।\n\nअनुप्रयोगमा बन्देज लगाउन पहिले ब्याट्री अप्टिमाइजेसन सुविधा सक्रिय गर्नुहोस्।"</string>
+    <string name="background_activity_disabled_dialog_text" msgid="4234598000779459640">"यो एपलाई ब्याट्री अप्टिमाइज गर्न भनी सेट नगरिएको हुनाले तपाईं यसमा बन्देज लगाउन सक्नुहुन्न।\n\nअनुप्रयोगमा बन्देज लगाउन पहिले ब्याट्री अप्टिमाइजेसन सुविधा सक्रिय गर्नुहोस्।"</string>
     <string name="device_screen_usage" msgid="4470485475363132750">"पूर्ण चार्ज भएदेखि स्क्रिनको प्रयोग"</string>
     <string name="power_usage_list_summary" msgid="4314438658308211057">"पूर्ण चार्ज भएदेखि ब्याट्रीको प्रयोग"</string>
     <string name="screen_usage_summary" msgid="263396144684078341">"पूर्ण चार्ज भएदेखि स्क्रिन सक्रिय रहेको समय"</string>
     <string name="device_usage_list_summary" msgid="8299017481332816368">"पूर्ण चार्ज भएदेखि यन्त्रको प्रयोग"</string>
     <string name="battery_since_unplugged" msgid="6486555910264026856">"अनप्लग भएदेखि ब्याट्री प्रयोग"</string>
-    <string name="battery_since_reset" msgid="4747587791838336661">"पुनःसेट गरेदेखि ब्याट्री प्रयोग"</string>
+    <string name="battery_since_reset" msgid="4747587791838336661">"रिसेट गरेदेखि ब्याट्री प्रयोग"</string>
     <string name="battery_stats_on_battery" msgid="2644055304085279716">"<xliff:g id="TIME">%1$s</xliff:g> ब्याट्रिमा"</string>
     <string name="battery_stats_duration" msgid="4867858933068728005">"<xliff:g id="TIME">%1$s</xliff:g> प्लग छुटाइएपछि"</string>
     <string name="battery_stats_charging_label" msgid="3156586822576998231">"चार्ज हुँदै"</string>
@@ -2265,10 +2267,10 @@
     <string name="details_subtitle" msgid="7279638828004951382">"विवरणहरू प्रयोग गर्नुहोस्"</string>
     <string name="controls_subtitle" msgid="6920199888882834620">"उर्जा प्रयोग मिलाउनुहोस्"</string>
     <string name="packages_subtitle" msgid="6506269487892204413">"सम्मिलित प्याकेजहरू"</string>
-    <string name="battery_tip_summary_title" msgid="2750922152518825526">"अनुप्रयोगहरू सामान्य रूपमा चलिरहेका छन्"</string>
-    <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"फोनले पृष्ठभूमिमा ब्याट्री सामान्य खपत गरेको छ"</string>
-    <string name="battery_tip_summary_summary" product="tablet" msgid="5280099016800644130">"ट्याब्लेटले पृष्ठभूमिमा ब्याट्री सामान्य खपत गरेको छ"</string>
-    <string name="battery_tip_summary_summary" product="device" msgid="4459840492610842705">"यन्त्रले पृष्ठभूमिमा ब्याट्री सामान्य खपत गरेको छ"</string>
+    <string name="battery_tip_summary_title" msgid="2750922152518825526">"एपहरू सामान्य रूपमा चलिरहेका छन्"</string>
+    <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"फोनले पृष्ठभूमिमा सदाको जति नै ब्याट्री खपत गरेको छ"</string>
+    <string name="battery_tip_summary_summary" product="tablet" msgid="5280099016800644130">"ट्याब्लेटले पृष्ठभूमिमा सदाको जति नै ब्याट्री खपत गरेको छ"</string>
+    <string name="battery_tip_summary_summary" product="device" msgid="4459840492610842705">"यन्त्रले पृष्ठभूमिमा सदाको जति नै ब्याट्री खपत गरेको छ"</string>
     <string name="battery_tip_low_battery_title" msgid="6784043681672161175">"ब्याट्रीको कम चार्ज क्षमता"</string>
     <string name="battery_tip_low_battery_summary" msgid="9151355911381188604">"ब्याट्रीको चार्ज स्तर बढी समयसम्म कायम रहन सक्दैन"</string>
     <string name="battery_tip_smart_battery_title" product="default" msgid="5517122075918038665">"आफ्नो फोनको ब्याट्रीको आयुमा सुधार गर्नुहोस्"</string>
@@ -2277,15 +2279,15 @@
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"ब्याट्री प्रबन्धकलाई सक्रिय गर्नुहोस्‌"</string>
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"ब्याट्री सेभर सक्रिय गर्नुहोस्"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"ब्याट्री सामान्यभन्दा पहिले सकिन सक्छ"</string>
-    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"ब्याट्री सेभर सक्रिय छ"</string>
+    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"ब्याट्री सेभर अन छ"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"केही सुविधाहरू सीमित हुन सक्छन्‌"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"फोन सामान्यभन्दा बढी प्रयोग भयो"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"ट्याब्लेट सामान्यभन्दा बढी प्रयोग भयो"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"यन्त्रलाई सामान्यभन्दा बढी प्रयोग भयो"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"ब्याट्री अरू बेलाभन्दा छिटै सकिन सक्छ"</string>
-    <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"तपाईंको फोन असामान्य ढङ्गले धेरै पटक प्रयोग गरिएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिने छ।\n \n चार्ज पूरा भएपछि सबैभन्दा बढी प्रयोग गरिएका अनुप्रयोगहरू:"</string>
-    <string name="battery_tip_dialog_message" product="tablet" msgid="6489981050645444068">"तपाईंको ट्याब्लेट असामान्य ढङ्गले धेरै पटक प्रयोग गरिएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिने छ।\n \n चार्ज पूरा भएपछि सबैभन्दा बढी प्रयोग गरिएका अनुप्रयोगहरू:"</string>
-    <string name="battery_tip_dialog_message" product="device" msgid="6348123094674390337">"तपाईंको यन्त्र असामान्य ढङ्गले धेरै पटक प्रयोग गरिएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिने छ।\n \n चार्ज पूरा भएपछि सबैभन्दा बढी प्रयोग गरिएका अनुप्रयोगहरू:"</string>
+    <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"तपाईंको फोन असामान्य ढङ्गले धेरै पटक प्रयोग गरिएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिने छ।\n \n चार्ज पूरा भएपछि सबैभन्दा बढी प्रयोग गरिएका एपहरू:"</string>
+    <string name="battery_tip_dialog_message" product="tablet" msgid="6489981050645444068">"तपाईंको ट्याब्लेट असामान्य ढङ्गले धेरै पटक प्रयोग गरिएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिने छ।\n \n चार्ज पूरा भएपछि सबैभन्दा बढी प्रयोग गरिएका एपहरू:"</string>
+    <string name="battery_tip_dialog_message" product="device" msgid="6348123094674390337">"तपाईंको यन्त्र असामान्य ढङ्गले धेरै पटक प्रयोग गरिएको छ। तपाईंको ब्याट्रीको चार्ज अपेक्षा गरिएभन्दा चाँडो सकिने छ।\n \n चार्ज पूरा भएपछि सबैभन्दा बढी प्रयोग गरिएका एपहरू:"</string>
     <string name="battery_tip_dialog_message_footer" msgid="1118827395267487197">"यसले उच्च क्षमतायुक्त पृष्ठभूमिको गतिविधि समावेश गर्दछ"</string>
     <plurals name="battery_tip_restrict_title" formatted="false" msgid="7140926804142734420">
       <item quantity="other">%1$d अनुप्रयोगहरूमाथि बन्देज लगाउनुहोस्</item>
@@ -2296,67 +2298,67 @@
       <item quantity="one">%1$s माथि हालसालै बन्देज लगाइयो</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="other">%2$d अनुप्रयोगहरूले पृष्ठभूमिमा धेरै ब्याट्री खपत गरेको छ</item>
+      <item quantity="other">%2$d एपहरूले पृष्ठभूमिमा धेरै ब्याट्री खपत गरेको छ</item>
       <item quantity="one">%1$s ले पृष्ठभूमिमा धेरै ब्याट्री खपत गरेको छ</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
-      <item quantity="other">यी अनुप्रयोगहरू पृष्ठभूमिमा चल्न सक्दैनन्</item>
-      <item quantity="one">यो अनुप्रयोग पृष्ठभूमिमा चल्न सक्दैन</item>
+      <item quantity="other">यी एपहरू पृष्ठभूमिमा चल्न सक्दैनन्</item>
+      <item quantity="one">यो एप पृष्ठभूमिमा चल्न सक्दैन</item>
     </plurals>
     <plurals name="battery_tip_restrict_app_dialog_title" formatted="false" msgid="3042021435866172168">
       <item quantity="other">%1$d अनुप्रयोगमाथि बन्देज लगाउने हो?</item>
       <item quantity="one">अनुप्रयोगमाथि बन्देज लगाउने हो?</item>
     </plurals>
     <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"ब्याट्री जोगाउन, <xliff:g id="APP">%1$s</xliff:g> लाई पृष्ठभूमिमा ब्याट्री प्रयोग गर्नबाट रोक्नुहोस्। यो अनुप्रयोगले सही किसिमले काम नगर्न सक्छ र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।"</string>
-    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"ब्याट्री जोगाउन, यी अनुप्रयोगहरूलाई पृष्ठभूमिमा ब्याट्री प्रयोग गर्नबाट रोक्नुहोस्। प्रतिबन्ध लगाइएका अनुप्रयोगहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।\n\nअनुप्रयोगहरू:"</string>
-    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"ब्याट्री जोगाउन, यी अनुप्रयोगहरूलाई पृष्ठभूमिमा ब्याट्री प्रयोग गर्नबाट रोक्नुहोस्। प्रतिबन्ध लगाइएका अनुप्रयोगहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।\n\nअनुप्रयोगहरू:\n<xliff:g id="APP_LIST">%1$s</xliff:g>।"</string>
+    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"ब्याट्री जोगाउन, यी एपहरूलाई पृष्ठभूमिमा ब्याट्री प्रयोग गर्नबाट रोक्नुहोस्। प्रतिबन्ध लगाइएका एपहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।\n\nएपहरू:"</string>
+    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"ब्याट्री जोगाउन, यी एपहरूलाई पृष्ठभूमिमा ब्याट्री प्रयोग गर्नबाट रोक्नुहोस्। प्रतिबन्ध लगाइएका एपहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।\n\nएपहरू:\n<xliff:g id="APP_LIST">%1$s</xliff:g>।"</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"बन्देज लगाउनुहोस्"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"प्रतिबन्ध हटाउने हो?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"यो अनुप्रयोग पृष्ठभूमिमा ब्याट्रीको प्रयोग गर्न सक्षम हुने छ। तपाईंको ब्याट्री अपेक्षा गरेभन्दा चाँडै सकिन सक्छ।"</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"यो एप पृष्ठभूमिमा ब्याट्रीको प्रयोग गर्न सक्षम हुने छ। तपाईंको ब्याट्री अपेक्षा गरेभन्दा चाँडै सकिन सक्छ।"</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"हटाउनुहोस्"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"रद्द गर्नुहोस्"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"तपाईंका अनुप्रयोगहरूले सामान्य मात्रामा ब्याट्रीको प्रयोग गर्दै छन्‌। अनुप्रयोगहरूले अत्यन्त धेरै ब्याट्रीको प्रयोग गरेको खण्डमा तपाईंको फोनले कारबाहीको सुझाव दिन्छ। \n\nतपाईंको ब्याट्री कम हुँदै गएको छ भने तपाईंले सधैँ ब्याट्री सेभर सक्रिय पार्न सक्नुहुन्छ।"</string>
-    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"तपाईंका अनुप्रयोगहरूले सामान्य मात्रामा ब्याट्रीको प्रयोग गर्दै छन्‌। अनुप्रयोगहरूले अत्यन्त धेरै ब्याट्रीको प्रयोग गरेको खण्डमा तपाईंको ट्याब्लेटले कारबाहीको सुझाव दिन्छ। \n\nतपाईंको ब्याट्री कम हुँदै गएको छ भने तपाईंले सधैँ ब्याट्री सेभर सक्रिय पार्न सक्नुहुन्छ।"</string>
-    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"तपाईंका अनुप्रयोगहरूले सामान्य मात्रामा ब्याट्रीको प्रयोग गर्दै छन्‌। अनुप्रयोगहरूले अत्यन्त धेरै ब्याट्रीको प्रयोग गरेको खण्डमा तपाईंको यन्त्रले कारबाहीको सुझाव दिन्छ। \n\nतपाईंको ब्याट्री कम हुँदै गएको छ भने तपाईंले सधैँ ब्याट्री सेभर सक्रिय पार्न सक्नुहुन्छ।"</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"तपाईंका एपहरूले सामान्य मात्रामा ब्याट्रीको प्रयोग गर्दै छन्‌। एपहरूले अत्यन्त धेरै ब्याट्रीको प्रयोग गरेको खण्डमा तपाईंको फोनले कारबाहीको सुझाव दिन्छ। \n\nतपाईंको ब्याट्री कम हुँदै गएको छ भने तपाईंले सधैँ ब्याट्री सेभर सक्रिय पार्न सक्नुहुन्छ।"</string>
+    <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"तपाईंका एपहरूले सामान्य मात्रामा ब्याट्रीको प्रयोग गर्दै छन्‌। एपहरूले अत्यन्त धेरै ब्याट्रीको प्रयोग गरेको खण्डमा तपाईंको ट्याब्लेटले कारबाहीको सुझाव दिन्छ। \n\nतपाईंको ब्याट्री कम हुँदै गएको छ भने तपाईंले सधैँ ब्याट्री सेभर सक्रिय पार्न सक्नुहुन्छ।"</string>
+    <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"तपाईंका एपहरूले सामान्य मात्रामा ब्याट्रीको प्रयोग गर्दै छन्‌। एपहरूले अत्यन्त धेरै ब्याट्रीको प्रयोग गरेको खण्डमा तपाईंको यन्त्रले कारबाहीको सुझाव दिन्छ। \n\nतपाईंको ब्याट्री कम हुँदै गएको छ भने तपाईंले सधैँ ब्याट्री सेभर सक्रिय पार्न सक्नुहुन्छ।"</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"ब्याट्री प्रबन्धक"</string>
     <string name="smart_battery_title" msgid="4919670408532804351">"अनुप्रयोगहरूलाई स्वतः व्यवस्थित गर्नुहोस्"</string>
     <string name="smart_battery_summary" msgid="640027046471198174">"तपाईंले प्रायः प्रयोग नगर्ने अनुप्रयोगहरूमा ब्याट्री सीमित गर्नुहोस्"</string>
-    <string name="smart_battery_footer" product="default" msgid="3971715848890205632">"ब्याट्री प्रबन्धकले अनुप्रयोगहरूले ब्याट्री खर्च गरिरहेको पता लगाउँदा, तपाईंसँग यी अनुप्रयोगहरूलाई प्रतिबन्धित गर्ने विकल्प हुन्छ। प्रतिबन्धित अनुप्रयोगहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आउन ढिलाइ हुन सक्छ।"</string>
-    <string name="smart_battery_footer" product="tablet" msgid="3971715848890205632">"ब्याट्री प्रबन्धकले अनुप्रयोगहरूले ब्याट्री खर्च गरिरहेको पता लगाउँदा, तपाईंसँग यी अनुप्रयोगहरूलाई प्रतिबन्धित गर्ने विकल्प हुन्छ। प्रतिबन्धित अनुप्रयोगहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आउन ढिलाइ हुन सक्छ।"</string>
-    <string name="smart_battery_footer" product="device" msgid="3971715848890205632">"ब्याट्री प्रबन्धकले अनुप्रयोगहरूले ब्याट्री खर्च गरिरहेको पता लगाउँदा, तपाईंसँग यी अनुप्रयोगहरूलाई प्रतिबन्धित गर्ने विकल्प हुन्छ। प्रतिबन्धित अनुप्रयोगहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आउन ढिलाइ हुन सक्छ।"</string>
-    <string name="restricted_app_title" msgid="4957644700640127606">"प्रतिबन्धित अनुप्रयोगहरू"</string>
+    <string name="smart_battery_footer" product="default" msgid="3971715848890205632">"ब्याट्री प्रबन्धकले एपहरूले ब्याट्री खर्च गरिरहेको पता लगाउँदा, तपाईंसँग यी अनुप्रयोगहरूलाई प्रतिबन्धित गर्ने विकल्प हुन्छ। प्रतिबन्धित एपहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आउन ढिलाइ हुन सक्छ।"</string>
+    <string name="smart_battery_footer" product="tablet" msgid="3971715848890205632">"ब्याट्री प्रबन्धकले एपहरूले ब्याट्री खर्च गरिरहेको पता लगाउँदा, तपाईंसँग यी अनुप्रयोगहरूलाई प्रतिबन्धित गर्ने विकल्प हुन्छ। प्रतिबन्धित एपहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आउन ढिलाइ हुन सक्छ।"</string>
+    <string name="smart_battery_footer" product="device" msgid="3971715848890205632">"ब्याट्री प्रबन्धकले एपहरूले ब्याट्री खर्च गरिरहेको पता लगाउँदा, तपाईंसँग यी अनुप्रयोगहरूलाई प्रतिबन्धित गर्ने विकल्प हुन्छ। प्रतिबन्धित एपहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आउन ढिलाइ हुन सक्छ।"</string>
+    <string name="restricted_app_title" msgid="4957644700640127606">"प्रतिबन्धित एपहरू"</string>
     <plurals name="restricted_app_summary" formatted="false" msgid="7609538735465186040">
       <item quantity="other">ब्याट्रीको प्रयोग %1$d अनुप्रयोगहरूमा सीमित पार्दै</item>
       <item quantity="one">ब्याट्रीको प्रयोग %1$d अनुप्रयोगहरूमा सीमित पार्दै</item>
     </plurals>
     <string name="restricted_app_time_summary" msgid="5205881852523135226">"<xliff:g id="TIME">%1$s</xliff:g> बजे बन्देज लगाइएको"</string>
-    <string name="restricted_app_detail_footer" msgid="482460517275754465">"यी अनुप्रयोगहरूले पृष्ठभूमिमा ब्याट्री प्रयोग गरिरहेका छन्‌। प्रतिबन्ध लगाइएका अनुप्रयोगहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।"</string>
+    <string name="restricted_app_detail_footer" msgid="482460517275754465">"यी एपहरूले पृष्ठभूमिमा ब्याट्री प्रयोग गरिरहेका छन्‌। प्रतिबन्ध लगाइएका एपहरूले सही किसिमले काम नगर्न सक्छन् र सूचनाहरू आइपुग्न ढिलाइ हुन सक्छ।"</string>
     <string name="battery_auto_restriction_title" msgid="488905332794794076">"ब्याट्री प्रबन्धकको प्रयोग गर्नुहोस्"</string>
-    <string name="battery_auto_restriction_summary" msgid="1638072655581821837">"अनुप्रयोगहरूले ब्याट्रीको चार्ज घटाउँदा थाहा पाउनुहोस्"</string>
-    <string name="battery_manager_on" msgid="5626982529932239656">"सक्रिय छ / अनुप्रयोगहरूले ब्याट्रीको चार्ज घटाउने समय पत्ता लगाउँदै"</string>
+    <string name="battery_auto_restriction_summary" msgid="1638072655581821837">"एपहरूले ब्याट्रीको चार्ज घटाउँदा थाहा पाउनुहोस्"</string>
+    <string name="battery_manager_on" msgid="5626982529932239656">"सक्रिय छ / एपहरूले ब्याट्रीको चार्ज घटाउने समय पत्ता लगाउँदै"</string>
     <string name="battery_manager_off" msgid="9114027524232450371">"निष्क्रिय छ"</string>
     <plurals name="battery_manager_app_restricted" formatted="false" msgid="6721813588142691216">
       <item quantity="other">%1$d अनुप्रयोगहरूमा प्रतिबन्ध लगाइयो</item>
       <item quantity="one">%1$d अनुप्रयोगमा प्रतिबन्ध लगाइयो</item>
     </plurals>
     <string name="battery_header_title_alternate" msgid="1161081105263761743">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">%</xliff:g>"</font></small>""</string>
-    <string name="dialog_stop_title" msgid="4354544579084434590">"अनुप्रयोगलाई रोक्ने हो?"</string>
-    <string name="dialog_stop_message" product="default" msgid="1361660290824872555">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंको फोनलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्ने प्रयास गर्न तपाईं उक्त अनुप्रयोगलाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
-    <string name="dialog_stop_message" product="tablet" msgid="8948358625588034303">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंको ट्याब्लेटलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्ने प्रयास गर्न तपाईं उक्त अनुप्रयोगलाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
-    <string name="dialog_stop_message" product="device" msgid="3550459274584461359">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंको यन्त्रलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्ने प्रयास गर्न तपाईं उक्त अनुप्रयोगलाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
+    <string name="dialog_stop_title" msgid="4354544579084434590">"एपलाई रोक्ने हो?"</string>
+    <string name="dialog_stop_message" product="default" msgid="1361660290824872555">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंको फोनलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्ने प्रयास गर्न तपाईं उक्त एपलाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
+    <string name="dialog_stop_message" product="tablet" msgid="8948358625588034303">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंको ट्याब्लेटलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्ने प्रयास गर्न तपाईं उक्त एपलाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
+    <string name="dialog_stop_message" product="device" msgid="3550459274584461359">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईंको यन्त्रलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्ने प्रयास गर्न तपाईं उक्त एपलाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
     <string name="dialog_stop_message_wakeup_alarm" product="default" msgid="5361295199859282104">"<xliff:g id="APP_0">%1$s</xliff:g>ले तपाईंको फोनलाई सक्रिय गरिरहने हुनाले तपाईंको फोनले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्या समाधान गर्ने प्रयास गर्न तपाईं <xliff:g id="APP_1">%1$s</xliff:g>लाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
     <string name="dialog_stop_message_wakeup_alarm" product="tablet" msgid="3270887403788487776">"<xliff:g id="APP_0">%1$s</xliff:g>ले तपाईंको ट्याब्लेटलाई सक्रिय गरिरहने हुनाले तपाईंको ट्याब्लेटले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्या समाधान गर्ने प्रयास गर्न तपाईं <xliff:g id="APP_1">%1$s</xliff:g>लाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
     <string name="dialog_stop_message_wakeup_alarm" product="device" msgid="6577512995315373362">"<xliff:g id="APP_0">%1$s</xliff:g>ले तपाईंको यन्त्रलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्या समाधान गर्ने प्रयास गर्न तपाईं <xliff:g id="APP_1">%1$s</xliff:g>लाई रोक्न सक्नुहुन्छ।\n\nयो समस्या भइरहेमा ब्याट्रीको कार्यसम्पादनमा सुधार गर्न तपाईंले उक्त अनुप्रयोगको स्थापना रद्द गर्नु पर्ने हुन सक्छ।"</string>
-    <string name="dialog_stop_ok" msgid="5809052504018242928">"अनुप्रयोगलाई रोक्नुहोस्"</string>
-    <string name="dialog_background_check_title" msgid="6289139150963983470">"पृष्ठभूमिको प्रयोग निष्क्रिय पार्ने र अनुप्रयोगलाई रोक्ने हो?"</string>
+    <string name="dialog_stop_ok" msgid="5809052504018242928">"एपलाई रोक्नुहोस्"</string>
+    <string name="dialog_background_check_title" msgid="6289139150963983470">"पृष्ठभूमिको प्रयोग निष्क्रिय पार्ने र एपलाई रोक्ने हो?"</string>
     <string name="dialog_background_check_message" product="default" msgid="944264053032952679">"<xliff:g id="APP_0">%1$s</xliff:g> ले तपाईंको फोनलाई सक्रिय गरिरहने हुनाले तपाईंको फोनले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्या समाधान गर्ने प्रयासस्वरूप तपाईं <xliff:g id="APP_1">%1$s</xliff:g> लाई रोक्न र यसलाई पृष्ठभूमिमा चल्नबाट रोक्न सक्नुहुन्छ।"</string>
     <string name="dialog_background_check_message" product="tablet" msgid="5246650726585461386">"<xliff:g id="APP_0">%1$s</xliff:g> ले तपाईंको ट्याब्लेटलाई सक्रिय गरिरहने हुनाले तपाईंको ट्याब्लेटले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्या समाधान गर्ने प्रयासस्वरूप, तपाईं <xliff:g id="APP_1">%1$s</xliff:g> लाई रोक्न र यसलाई पृष्ठभूमिमा चल्नबाट रोक्न सक्नुहुन्छ।"</string>
     <string name="dialog_background_check_message" product="device" msgid="2746413739802588979">"<xliff:g id="APP_0">%1$s</xliff:g> ले तपाईंको यन्त्रलाई सक्रिय गरिरहने हुनाले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्या समाधान गर्ने प्रयासस्वरूप तपाईं <xliff:g id="APP_1">%1$s</xliff:g> लाई रोक्न र यसलाई पृष्ठभूमिमा चल्नबाट रोक्न सक्नुहुन्छ।"</string>
     <string name="dialog_background_check_ok" msgid="6916102434734525591">"निष्क्रिय पार्नुहोस्"</string>
     <string name="dialog_location_title" msgid="8070185060438751995">"स्थानसम्बन्धी जानकारीलाई निष्क्रिय पार्ने हो?"</string>
-    <string name="dialog_location_message" product="default" msgid="2445581202508387558">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईं उक्त अनुप्रयोग प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न अनुरोध गरिरहने भएकोले तपाईंको फोनले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस फोनको स्थानसम्बन्धी जानकारी नामक विकल्पलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
-    <string name="dialog_location_message" product="tablet" msgid="4012891295493865096">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईं उक्त अनुप्रयोग प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न अनुरोध गरिरहने भएकोले तपाईंको ट्याब्लेटले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस ट्याब्लेटको स्थानसम्बन्धी जानकारी नामक विकल्पलाई निष्क्रिय पार्नसक्नुहुन्छ।"</string>
-    <string name="dialog_location_message" product="device" msgid="1454451610289205965">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईं उक्त अनुप्रयोग प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न अनुरोध गरिरहने भएकोले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस यन्त्रको स्थानसम्बन्धी जानकारी नामक विकल्पलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
+    <string name="dialog_location_message" product="default" msgid="2445581202508387558">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईं उक्त एप प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न अनुरोध गरिरहने भएकोले तपाईंको फोनले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस फोनको स्थानसम्बन्धी जानकारी नामक विकल्पलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
+    <string name="dialog_location_message" product="tablet" msgid="4012891295493865096">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईं उक्त एप प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न अनुरोध गरिरहने भएकोले तपाईंको ट्याब्लेटले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस ट्याब्लेटको स्थानसम्बन्धी जानकारी नामक विकल्पलाई निष्क्रिय पार्नसक्नुहुन्छ।"</string>
+    <string name="dialog_location_message" product="device" msgid="1454451610289205965">"<xliff:g id="APP">%1$s</xliff:g> ले तपाईं उक्त एप प्रयोग नगरिरहनुभएको बेलामा पनि स्थानसम्बन्धी जानकारी प्राप्त गर्न अनुरोध गरिरहने भएकोले तपाईंको यन्त्रले सामान्य रूपमा ब्याट्रीको व्यवस्थापन गर्न सक्दैन।\n\nयो समस्याको समाधान गर्न तपाईं यस यन्त्रको स्थानसम्बन्धी जानकारी नामक विकल्पलाई निष्क्रिय पार्न सक्नुहुन्छ।"</string>
     <string name="dialog_location_ok" msgid="1893773880878134342">"निष्क्रिय पार्नुहोस्"</string>
     <string name="power_screen" msgid="8581228752332223154">"स्क्रिन"</string>
     <string name="power_flashlight" msgid="6939780588882301575">"फ्ल्यासलाइट"</string>
@@ -2392,7 +2394,7 @@
     <string name="usage_type_actual_power" msgid="8067253427718526111">"शक्ति प्रयोग अवलोकन गरियो"</string>
     <string name="battery_action_stop" msgid="1866624019460630143">"जबरजस्ती रोक्नुहोस्"</string>
     <string name="battery_action_app_details" msgid="1077011181969550402">"अनुप्रयोगको जानकारी"</string>
-    <string name="battery_action_app_settings" msgid="587998773852488539">"अनुप्रयोग सेटिङहरू"</string>
+    <string name="battery_action_app_settings" msgid="587998773852488539">"एप सेटिङहरू"</string>
     <string name="battery_action_display" msgid="4887913003634317465">"स्क्रिन सेटिङहरू"</string>
     <string name="battery_action_wifi" msgid="7123520587925323824">"Wi-Fi सेटिङहरू"</string>
     <string name="battery_action_bluetooth" msgid="718594420017519807">"ब्लुटुथ सेटिङहरू"</string>
@@ -2411,7 +2413,7 @@
     <string name="battery_sugg_bluetooth_basic" msgid="6353294067057749310">"तपाईँले प्रयोग नगर्दा ब्लुटुथ बन्द गर्नुहोस्"</string>
     <string name="battery_sugg_bluetooth_headset" msgid="2421931037149315202">"एउटा फरक ब्लुटुथ उपकरणसँग जोड्ने प्रयास गर्नुहोस्"</string>
     <string name="battery_desc_apps" msgid="6826726880149226823">"अनुप्रयोगद्वारा प्रयोग गरिएको ब्याट्री"</string>
-    <string name="battery_sugg_apps_info" msgid="9175761965559743977">"अनुप्रयोग बन्द गर्नुहोस् वा स्थापना रद्द गर्नुहोस्"</string>
+    <string name="battery_sugg_apps_info" msgid="9175761965559743977">"एप बन्द गर्नुहोस् वा स्थापना रद्द गर्नुहोस्"</string>
     <string name="battery_sugg_apps_gps" msgid="489694612870772770">"ब्याट्री बचत मोड चयन गर्नुहोस्"</string>
     <string name="battery_sugg_apps_settings" msgid="20465932930350295">"अनुप्रयोगले ब्याट्रिको प्रयोग कम गर्नाका लागि सेटिङहरू प्रस्ताव गर्न सक्छ"</string>
     <string name="battery_desc_users" msgid="3736510265433457165">"प्रयोगकर्ताद्वारा प्रयोग गरिको ब्याट्री"</string>
@@ -2443,19 +2445,19 @@
     <string name="menu_stats_refresh" msgid="9017362786647223203">"पुनःताजा गर्नुहोस्"</string>
     <string name="process_kernel_label" msgid="4175060316414593760">"एन्ड्रोइड OS"</string>
     <string name="process_mediaserver_label" msgid="8591722404282619153">"मिडिया सर्भर"</string>
-    <string name="process_dex2oat_label" msgid="8249082119748556085">"अनुप्रयोग आफू अनुकूल"</string>
+    <string name="process_dex2oat_label" msgid="8249082119748556085">"एप आफू अनुकूल"</string>
     <string name="battery_saver" msgid="3989710213758938398">"ब्याट्री सेभर"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"स्वतः सक्रिय गर्नुहोस्"</string>
     <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"कुनै पनि समयतालिका छैन"</string>
-    <string name="battery_saver_auto_routine" msgid="886514412067906980">"तपाईंको दिनचर्यामा आधारित"</string>
+    <string name="battery_saver_auto_routine" msgid="886514412067906980">"तपाईंको दिनचर्याको आधारमा"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"प्रतिशतमा आधारित"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"तपाईंले सामान्यतया ब्याट्री चार्ज गर्ने आगामी समयअगावै ब्याट्री सकिने सम्भावना भएमा ब्याट्री सेभर सुविधा सक्रिय हुन्छ"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g> हुँदा सक्रिय हुने छ"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"समयतालिका सेट गर्नुहोस्‌"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"चार्ज पूरा भएपछि निष्क्रिय पार्नुहोस्"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"तपाईंको फोन <xliff:g id="PERCENT">%1$s</xliff:g> भएपछि ब्याट्री सेभर निष्क्रिय हुन्छ"</string>
-    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"तपाईंको ट्याब्लेटको चार्ज <xliff:g id="PERCENT">%1$s</xliff:g> भएपछि ब्याट्री सेभर निष्क्रिय हुन्छ"</string>
-    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"तपाईंको यन्त्र <xliff:g id="PERCENT">%1$s</xliff:g> भएपछि ब्याट्री सेभर निष्क्रिय हुन्छ"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"तपाईंको फोन <xliff:g id="PERCENT">%1$s</xliff:g> भएपछि ब्याट्री सेभर अफ हुन्छ"</string>
+    <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"तपाईंको ट्याब्लेटको चार्ज <xliff:g id="PERCENT">%1$s</xliff:g> भएपछि ब्याट्री सेभर अफ हुन्छ"</string>
+    <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"तपाईंको यन्त्र <xliff:g id="PERCENT">%1$s</xliff:g> भएपछि ब्याट्री सेभर अफ हुन्छ"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
     <skip />
     <string name="battery_saver_seekbar_title_placeholder" msgid="2321082163892561703">"सक्रिय गर्नुहोस्"</string>
@@ -2464,7 +2466,7 @@
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"कहिले पनि होइन"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"<xliff:g id="PERCENT">%1$s</xliff:g> ब्याट्री हुँदा"</string>
     <string name="battery_percentage" msgid="7782252476471033843">"ब्याट्रीको प्रतिशत"</string>
-    <string name="battery_percentage_description" msgid="9219875229166700610">"वस्तुस्थिति पट्टीमा ब्याट्रीको प्रतिशत देखाउनुहोस्"</string>
+    <string name="battery_percentage_description" msgid="9219875229166700610">"स्टाटस बारमा ब्याट्रीको प्रतिशत देखाउनुहोस्"</string>
     <string name="process_stats_summary_title" msgid="9189588417488537954">"प्रक्रिया तथ्याङ्क"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"चालु रहने प्रक्रियाहरूको बारेको geeky तथ्याङ्क"</string>
     <string name="app_memory_use" msgid="5126237308545653706">"मेमोरी प्रयोग"</string>
@@ -2515,9 +2517,9 @@
     <string name="tts_spoken_language" msgid="8057256621711361944">"बोलीचालीको भाषा"</string>
     <string name="tts_install_voices_title" msgid="363811937643579286">"आवाजहरू स्थापना गर्नुहोस्"</string>
     <string name="tts_install_voices_text" msgid="7464832428439739995">"आवाजहरू स्थापना गर्न  <xliff:g id="TTS_APP_NAME">%s</xliff:g> अनुप्रयोगतर्फ अघि बढिरहनुहोस्"</string>
-    <string name="tts_install_voices_open" msgid="686776451008134790">"अनुप्रयोग खोल्नुहोस्"</string>
+    <string name="tts_install_voices_open" msgid="686776451008134790">"एप खोल्नुहोस्"</string>
     <string name="tts_install_voices_cancel" msgid="1622512922523479646">"रद्द गर्नुहोस्"</string>
-    <string name="tts_reset" msgid="8864073594540705579">"पुनःसेट गर्नुहोस्"</string>
+    <string name="tts_reset" msgid="8864073594540705579">"रिसेट गर्नुहोस्"</string>
     <string name="tts_play" msgid="9023430029380675514">"प्ले गर्नुहोस्"</string>
     <string name="vpn_settings_title" msgid="7008219502396889192">"VPN"</string>
     <string name="credentials_title" msgid="7119207354982673965">"प्रमाण संग्रहण"</string>
@@ -2541,7 +2543,7 @@
     <string name="credentials_reset_hint" msgid="3484350477764088169">"सम्पूर्ण सामग्री हटाउने हो?"</string>
     <string name="credentials_erased" msgid="7287088033523869085">"प्रमाण संग्रहण मेटियो।"</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"प्रामाणिक डेटा भण्डारण मेटाउन सकिएन।"</string>
-    <string name="usage_access_title" msgid="7981321142726540574">"उपयोग पहुँचसहितका अनुप्रयोग"</string>
+    <string name="usage_access_title" msgid="7981321142726540574">"उपयोग पहुँचसहितका एप"</string>
     <string name="emergency_tone_title" msgid="130211364025984428">"इमर्जेन्सी डाइलिङसम्बन्धी सङ्केत"</string>
     <string name="emergency_tone_summary" msgid="8035940153401622240">"आपातकालीन कल राखिएको बेलाको व्यवहार सेट गर्नुहोस्"</string>
     <string name="privacy_settings_title" msgid="3573891462732375772">"ब्याकअप"</string>
@@ -2550,37 +2552,37 @@
     <string name="backup_section_title" msgid="8177209731777904656">"ब्याकअप र पुनःस्थापना गर्नुहोस्"</string>
     <string name="personal_data_section_title" msgid="9161854418510071558">"व्यक्तिगत डेटा"</string>
     <string name="backup_data_title" msgid="4461508563849583624">"मेरो डेटा ब्याकअप गर्नुहोस्।"</string>
-    <string name="backup_data_summary" msgid="555459891017933746">"अनुप्रयोग डेटा, Wi-Fi पासवर्डहरू र Google सर्भरहरूका अन्य सेटिङहरूको ब्याकअप गर्नुहोस्"</string>
+    <string name="backup_data_summary" msgid="555459891017933746">"एप डेटा, Wi-Fi पासवर्डहरू र Google सर्भरहरूका अन्य सेटिङहरूको ब्याकअप गर्नुहोस्"</string>
     <string name="backup_configure_account_title" msgid="1534734650559070294">"ब्याकअप खाता"</string>
     <string name="backup_data_management_title" msgid="6299288795610243508">"ब्याकअप खाता व्यवस्थित गर्नुहोस्"</string>
-    <string name="include_app_data_title" msgid="6117211611131913293">"अनुप्रयोग डेटा समावेश"</string>
+    <string name="include_app_data_title" msgid="6117211611131913293">"एप डेटा समावेश"</string>
     <string name="auto_restore_title" msgid="8367486774010915221">"स्वतः पुनःप्राप्त"</string>
-    <string name="auto_restore_summary" msgid="1941047568966428377">"जब अनुप्रयोग पुनर्स्थापित गर्दा ब्याक अप गरिएका सेटिङहरू र डेटा पुनःप्राप्त गर्नुहोस्"</string>
+    <string name="auto_restore_summary" msgid="1941047568966428377">"जब एप पुनर्स्थापित गर्दा ब्याक अप गरिएका सेटिङहरू र डेटा पुनःप्राप्त गर्नुहोस्"</string>
     <string name="backup_inactive_title" msgid="5513496915638307750">"ब्याकअप सेवा सक्रिय छैन"</string>
     <string name="backup_configure_account_default_summary" msgid="5718298066335006412">"कुनै पनि खाताले ब्याकअप गरिएका डेटा हाल भण्डारण गरिरहेको छैन"</string>
     <string name="backup_erase_dialog_title" msgid="8178424339104463014"></string>
-    <string name="backup_erase_dialog_message" msgid="8767843355330070902">"तपाईँको Wi-Fi पासवर्डहरू, बुकमार्क, अन्य सेटिङहरू, र अनुप्रयोग डेटाको जगेडा राख्न बन्द गर्ने र Google सर्भरबाट सम्पूर्ण प्रतिलिपिहरू मेटाउने हो?"</string>
-    <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"के यन्त्र डेटा (जस्तै Wi-Fi पासवर्डहरू र इतिहास कल) र अनुप्रयोग डेटा (जस्तै अनुप्रयोगहरू द्वारा भण्डारण सेटिङहरू र फाइलहरू) को ब्याकअपलाई रोक्ने, र थप रिमोट सर्भरहरूमा सबै प्रतिलिपिहरू मेटाउन चाहनु हुन्छ?"</string>
-    <string name="fullbackup_data_summary" msgid="406274198094268556">"यन्त्र डेटा (जस्तै Wi-Fi पासवर्डहरू र कल इतिहास) र अनुप्रयोग डेटा (जस्तै अनुप्रयोगहरूद्वारा भण्डारित सेटिङहरू र फाइलहरू) टाढाबाट स्वचालित रुपमा ब्याकअप गर्नुहोस्। \n\nजब तपाईं स्वचालित ब्याकअप यन्त्र सक्षम गर्नुहुन्छ, यन्त्र र अनुप्रयोग डेटा आवधिक रूपमा टाढाबाट सुरक्षित गरिएको छ। सम्पर्क, सन्देशहरू, र तस्बिरहरू जस्तै सम्भावित संवेदनशील डेटा सहित, अनुप्रयोग डेटा कुनै पनि डेटा हुनसक्छ जुन अनुप्रयोगले (विकासकर्ता सेटिङहरूमा आधारित) सुरक्षित गरेको छ।"</string>
+    <string name="backup_erase_dialog_message" msgid="8767843355330070902">"तपाईँको Wi-Fi पासवर्डहरू, बुकमार्क, अन्य सेटिङहरू, र एप डेटाको जगेडा राख्न बन्द गर्ने र Google सर्भरबाट सम्पूर्ण प्रतिलिपिहरू मेटाउने हो?"</string>
+    <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"के यन्त्र डेटा (जस्तै Wi-Fi पासवर्डहरू र इतिहास कल) र एप डेटा (जस्तै एपहरू द्वारा भण्डारण सेटिङहरू र फाइलहरू) को ब्याकअपलाई रोक्ने, र थप रिमोट सर्भरहरूमा सबै प्रतिलिपिहरू मेटाउन चाहनु हुन्छ?"</string>
+    <string name="fullbackup_data_summary" msgid="406274198094268556">"यन्त्र डेटा (जस्तै Wi-Fi पासवर्डहरू र कल इतिहास) र एप डेटा (जस्तै एपहरूद्वारा भण्डारित सेटिङहरू र फाइलहरू) टाढाबाट स्वचालित रुपमा ब्याकअप गर्नुहोस्। \n\nजब तपाईं स्वचालित ब्याकअप यन्त्र सक्षम गर्नुहुन्छ, यन्त्र र एप डेटा आवधिक रूपमा टाढाबाट सुरक्षित गरिएको छ। सम्पर्क, सन्देशहरू, र तस्बिरहरू जस्तै सम्भावित संवेदनशील डेटा सहित, एप डेटा कुनै पनि डेटा हुनसक्छ जुन एपले (विकासकर्ता सेटिङहरूमा आधारित) सुरक्षित गरेको छ।"</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"यन्त्रका प्रशासक सम्बन्धी सेटिङहरू"</string>
-    <string name="active_device_admin_msg" msgid="6929247869516924549">"यन्त्रको प्रशासन सम्बन्धी अनुप्रयोग"</string>
-    <string name="remove_device_admin" msgid="4413438593788336400">"यो यन्त्रको प्रशासकीय अनुप्रयोगलाई निष्क्रिय पार्नुहोस्"</string>
+    <string name="active_device_admin_msg" msgid="6929247869516924549">"यन्त्रको प्रशासन सम्बन्धी एप"</string>
+    <string name="remove_device_admin" msgid="4413438593788336400">"यो यन्त्रको प्रशासकीय एपलाई निष्क्रिय पार्नुहोस्"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"अनुप्रयोगको स्थापना रद्द गर्नुहोस्"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"निष्क्रिय पार्नुहोस् तथा स्थापना रद्द गर्नुहोस्"</string>
-    <string name="select_device_admin_msg" msgid="4173769638399075387">"यन्त्रका प्रशासकीय अनुप्रयोगहरू"</string>
-    <string name="no_device_admins" msgid="4129231900385977460">"यन्त्रका प्रशासकीय अनुप्रयोगहरू उपलब्ध छैनन्"</string>
+    <string name="select_device_admin_msg" msgid="4173769638399075387">"यन्त्रका प्रशासकीय एपहरू"</string>
+    <string name="no_device_admins" msgid="4129231900385977460">"यन्त्रका प्रशासकीय एपहरू उपलब्ध छैनन्"</string>
     <string name="personal_device_admin_title" msgid="759440849188565661">"व्यक्तिगत"</string>
     <string name="managed_device_admin_title" msgid="8021522755492551726">"काम"</string>
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"Restrict SMS तथा कलका लगहरूमाथिका पहुँचमा प्रतिबन्ध लगाउनुहोस्‌"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"पूर्वनिर्धारित फोन र सन्देश अनुप्रयोगहरूसँग मात्र SMS र कल लग अनुमति हुन्छ"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"विश्वस्त प्रतिनिधि उपलब्ध छैन"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"यन्त्रको प्रशासन सम्बन्धी अनुप्रयोगलाई सक्रिय गर्ने हो?"</string>
-    <string name="add_device_admin" msgid="1621152410207260584">"यन्त्रको प्रशासन सम्बन्धी यो अनुप्रयोगलाई सक्रिय गर्नुहोस्"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"यन्त्रको प्रशासन सम्बन्धी एपलाई सक्रिय गर्ने हो?"</string>
+    <string name="add_device_admin" msgid="1621152410207260584">"यन्त्रको प्रशासन सम्बन्धी यो एपलाई सक्रिय गर्नुहोस्"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"यन्त्रको प्रशासक"</string>
-    <string name="device_admin_warning" msgid="4421817419326480449">"यस प्रशासक अनुप्रयोगलाई सक्रिय गर्नुले अनुप्रयोग <xliff:g id="APP_NAME">%1$s</xliff:g> लाई निम्न कार्यहरू गर्न दिनेछ:"</string>
-    <string name="device_admin_status" msgid="5424944611789040723">"यो प्रशासक सक्रिय छ र अनुप्रयोग <xliff:g id="APP_NAME">%1$s</xliff:g> लाई  निम्न कार्यहरू गर्न दिन्छ:"</string>
+    <string name="device_admin_warning" msgid="4421817419326480449">"यस प्रशासक एपलाई सक्रिय गर्नुले एप <xliff:g id="APP_NAME">%1$s</xliff:g> लाई निम्न कार्यहरू गर्न दिनेछ:"</string>
+    <string name="device_admin_status" msgid="5424944611789040723">"यो प्रशासक सक्रिय छ र एप <xliff:g id="APP_NAME">%1$s</xliff:g> लाई  निम्न कार्यहरू गर्न दिन्छ:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"प्रोफाइल प्रबन्धक सक्रिय गर्नुहुन्छ?"</string>
-    <string name="adding_profile_owner_warning" msgid="1284541194547382194">"अगाडि बढेर, तपाईंको प्रयोगकर्तालाई तपाईंको प्रशासकले व्यवस्थित गर्ने छ, जसले तपाईंको व्यक्तिगत डेटाका साथै सम्बन्धित डेटा समेत भण्डारण गर्न सक्छ।\n\nतपाईंको प्रशासकसँग यो प्रयोगकर्तासँग सम्बन्धित सेटिङ, पहुँच, अनुप्रयोग, र डेटाका साथै नेटवर्क गतिविधि र तपाईंको यन्त्रका स्थानसम्बन्धी जानकारीहरूको अनुगमन र व्यवस्थापन गर्ने क्षमता छ।"</string>
+    <string name="adding_profile_owner_warning" msgid="1284541194547382194">"अगाडि बढेर, तपाईंको प्रयोगकर्तालाई तपाईंको प्रशासकले व्यवस्थित गर्ने छ, जसले तपाईंको व्यक्तिगत डेटाका साथै सम्बन्धित डेटा समेत भण्डारण गर्न सक्छ।\n\nतपाईंको प्रशासकसँग यो प्रयोगकर्तासँग सम्बन्धित सेटिङ, पहुँच, एप, र डेटाका साथै नेटवर्क गतिविधि र तपाईंको यन्त्रका स्थानसम्बन्धी जानकारीहरूको अनुगमन र व्यवस्थापन गर्ने क्षमता छ।"</string>
     <string name="admin_disabled_other_options" msgid="8097063307730025707">"अन्य विकल्पहरूलाई तपाईंको प्रशासकले असक्षम पार्नुभएको छ"</string>
     <string name="admin_more_details" msgid="1719819589822345585">"थप विवरणहरू"</string>
     <string name="notification_log_title" msgid="4200467765474474753">"अधिसूचना लग"</string>
@@ -2598,13 +2600,13 @@
     <string name="managed_profile_not_available_label" msgid="8784246681719821917">"कार्य प्रोफाइल अझै उपलब्ध भएको छैन"</string>
     <string name="work_mode_label" msgid="6845849194740195757">"कार्य प्रोफाइल"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"तपाईंको सङ्गठनले व्यवस्थापन गरेको"</string>
-    <string name="work_mode_off_summary" msgid="1688885392211178315">"अनुप्रयोग तथा सूचनाहरू निष्क्रिय छन्‌"</string>
-    <string name="remove_managed_profile_label" msgid="4625542553784793536">"कार्य प्रोफाइल हटाउनुहोस्"</string>
+    <string name="work_mode_off_summary" msgid="1688885392211178315">"एप तथा सूचनाहरू निष्क्रिय छन्‌"</string>
+    <string name="remove_managed_profile_label" msgid="4625542553784793536">"कार्यालयसम्बन्धी प्रोफाइल हटाउनुहोस्"</string>
     <string name="background_data" msgid="8275750862371471171">"पृष्ठभूमि डेटा"</string>
-    <string name="background_data_summary" msgid="799640633948841990">"अनुप्रयोगहरूले कुनै पनि समयमा डेटा सिंक गर्न पठाउन र प्राप्त गर्न सक्दछन्"</string>
+    <string name="background_data_summary" msgid="799640633948841990">"एपहरूले कुनै पनि समयमा डेटा सिंक गर्न पठाउन र प्राप्त गर्न सक्दछन्"</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"पृष्ठभूमि डेटा असक्षम पार्ने हो?"</string>
-    <string name="background_data_dialog_message" msgid="8126774244911656527">"पृष्ठभूमि डेटा असक्षम पार्नाले ब्याट्रिको जीवनकाल बढाउदछ र डेटाको प्रयोग घटाउदछ, केही अनुप्रयोगहरूले अझैं पनि पृष्ठभूमि डेटा जडान प्रयोग गर्न सक्छ।"</string>
-    <string name="sync_automatically" msgid="5746117156896468099">"अटो-सिंक अनुप्रयोग डेटा"</string>
+    <string name="background_data_dialog_message" msgid="8126774244911656527">"पृष्ठभूमि डेटा असक्षम पार्नाले ब्याट्रिको जीवनकाल बढाउदछ र डेटाको प्रयोग घटाउदछ, केही एपहरूले अझैं पनि पृष्ठभूमि डेटा जडान प्रयोग गर्न सक्छ।"</string>
+    <string name="sync_automatically" msgid="5746117156896468099">"अटो-सिंक एप डेटा"</string>
     <string name="sync_enabled" msgid="535172627223336983">"सिंक खुला छ"</string>
     <string name="sync_disabled" msgid="713721807204805062">"सिंक बन्द छ"</string>
     <string name="sync_error" msgid="988155155932442765">"सिंक त्रुटि"</string>
@@ -2620,7 +2622,7 @@
     <string name="sync_calendar" msgid="6573708019827519372">"पात्रो"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"सम्पर्कहरू"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google सिंकमा स्वागत छ!"</font>\n" तपाईंका सम्पर्कहरू, भेट्ने समयहरू, र तपाईं जहाँ भए पनि अरू बढी पहुँच दिनको लागि डेटा सिंक गर्न अनुमतिका लागि एउटा Google दृष्टिकोण।"</string>
-    <string name="header_application_sync_settings" msgid="4581847153669774489">"अनुप्रयोग सिंक सेटिङहरू"</string>
+    <string name="header_application_sync_settings" msgid="4581847153669774489">"एप सिंक सेटिङहरू"</string>
     <string name="header_data_and_synchronization" msgid="400831816068697286">"डेटा र सिङ्क्रोनाइजेसन"</string>
     <string name="preference_change_password_title" msgid="7243527448378789274">"पासवर्ड बदल्नुहोस्"</string>
     <string name="header_account_settings" msgid="8586173964125512219">"खाता सेटिङहरू"</string>
@@ -2636,7 +2638,7 @@
     <string name="enter_password" msgid="2963496904625715235">"Android सुरु गर्न, आफ्नो पासवर्ड प्रविष्टि गर्नुहोस्"</string>
     <string name="enter_pin" msgid="7140938268709546890">"Android सुरु गर्न, आफ्नो पिन प्रविष्टि गर्नुहोस्"</string>
     <string name="enter_pattern" msgid="1653841963422825336">"Android सुरु गर्न, आफ्नो ढाँचा कोर्नुहोस्"</string>
-    <string name="cryptkeeper_wrong_pattern" msgid="4580105105385125467">"गलत ढाँचा"</string>
+    <string name="cryptkeeper_wrong_pattern" msgid="4580105105385125467">"प्याटर्न मिलेन"</string>
     <string name="cryptkeeper_wrong_password" msgid="1709534330303983166">"गलत पासवर्ड"</string>
     <string name="cryptkeeper_wrong_pin" msgid="857757190077859245">"गलत PIN"</string>
     <string name="checking_decryption" msgid="5927759912073053101">"जाँच गर्दै..."</string>
@@ -2649,12 +2651,12 @@
     <string name="data_usage_summary_title" msgid="7288431048564861043">"डेटाको प्रयोग"</string>
     <string name="data_usage_app_summary_title" msgid="8277327968906074983">"मोबाइल डेटा तथा Wi‑Fi"</string>
     <string name="data_usage_accounting" msgid="4681642832010140640">"वाहक डेटा लेखा तपाईँको उपकरणबाट फरक हुन सक्छ।"</string>
-    <string name="data_usage_app" msgid="4995297799363021198">"अनुप्रयोग उपयोग"</string>
+    <string name="data_usage_app" msgid="4995297799363021198">"एप उपयोग"</string>
     <string name="data_usage_app_info_label" msgid="5358288895158910477">"APP INFO"</string>
     <string name="data_usage_cellular_data" msgid="3509117353455285808">"मोबाइल डेटा"</string>
     <string name="data_usage_data_limit" msgid="4070740691087063670">"डेटा सीमा सेट गर्नुहोस्"</string>
     <string name="data_usage_cycle" msgid="1877235461828192940">"डेटाको प्रयोग चक्र"</string>
-    <string name="data_usage_app_items_header_text" msgid="5396134508509913851">"अनुप्रयोग उपयोग"</string>
+    <string name="data_usage_app_items_header_text" msgid="5396134508509913851">"एप उपयोग"</string>
     <string name="data_usage_menu_roaming" msgid="6933555994416977198">"डेटा रोमिङ"</string>
     <string name="data_usage_menu_restrict_background" msgid="3539289148113800518">"पृष्ठभूमि डेटा प्रतिबन्धि गर्नुहोस्"</string>
     <string name="data_usage_menu_allow_background" msgid="2874898501715368528">"पृष्ठभूमि डेटालाई अनुमति"</string>
@@ -2668,10 +2670,10 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"SIM कार्डहरू"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"सीमामा रोकिएको"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"डेटा स्वत: सिंक गर्नुहोस्"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"व्यक्तिगत डेटा स्वचालित सिंक"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"कार्य डेटा स्वचालित सिंक"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"व्यक्तिगत डेटा स्वतः सिंक गरियोस् सिंक"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"कार्यालयको डेटाको अटोसिंक सिंक"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"साइकल परिवर्तन गर्नुहोस्..."</string>
-    <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"महिनाको दिनमा डेटाको प्रयोग चक्र पुनःसेट गर्ने:"</string>
+    <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"महिनाको दिनमा डेटाको प्रयोग चक्र रिसेट गर्ने:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"यस समयमा कुनै अनुप्रयोगले डेटाको प्रयोग गरेन।"</string>
     <string name="data_usage_label_foreground" msgid="2471091128648754601">"अग्रभूमि"</string>
     <string name="data_usage_label_background" msgid="1618794447370396845">"पृष्ठभूमि"</string>
@@ -2694,19 +2696,19 @@
     <string name="data_roaming_enable_mobile" msgid="5886394350890765947">"रोमिङ"</string>
     <string name="data_usage_forground_label" msgid="8992577451178005406">"अग्रभूमि:"</string>
     <string name="data_usage_background_label" msgid="8460891123904985128">"पृष्ठभूमि:"</string>
-    <string name="data_usage_app_settings" msgid="3276444867375694809">"अनुप्रयोग सेटिङहरू"</string>
+    <string name="data_usage_app_settings" msgid="3276444867375694809">"एप सेटिङहरू"</string>
     <string name="data_usage_app_restrict_background" msgid="649167881583859169">"पृष्ठभूमि डेटा"</string>
     <string name="data_usage_app_restrict_background_summary" msgid="2703967920234671881">"पृष्ठभूमिमा मोबाइल डेटाको उपयोग सक्षम गर्नुहोस्"</string>
-    <string name="data_usage_app_restrict_background_summary_disabled" msgid="7211921499365814638">"यस अनुप्रयोगलाई पृष्ठभूमि डेटामा सीमित गराउन पहिले मोबाइल डेटा सीमा सेट गर्नुहोस्।"</string>
+    <string name="data_usage_app_restrict_background_summary_disabled" msgid="7211921499365814638">"यस एपलाई पृष्ठभूमि डेटामा सीमित गराउन पहिले मोबाइल डेटा सीमा सेट गर्नुहोस्।"</string>
     <string name="data_usage_app_restrict_dialog_title" msgid="750037964591673167">"पृष्ठभूमि डेटा प्रतिबन्ध गर्ने हो?"</string>
-    <string name="data_usage_app_restrict_dialog" msgid="4022530391896478031">"यस फिचरले पृष्ठभूमि डेटामा निर्भर अनुप्रयोगलाई मोबाइल सञ्जाल उपलब्ध हुने समयमा मात्र काम नगर्ने बनाउन सक्छ। \n \n यस अनुप्रयोग भित्रको सेटिङमा तपाईँले थप उपयुक्त डेटाको प्रयोग नियन्त्रणहरू भेट्टाउन सक्नुहुन्छ।"</string>
+    <string name="data_usage_app_restrict_dialog" msgid="4022530391896478031">"यस फिचरले पृष्ठभूमि डेटामा निर्भर एपलाई मोबाइल सञ्जाल उपलब्ध हुने समयमा मात्र काम नगर्ने बनाउन सक्छ। \n \n यस एप भित्रको सेटिङमा तपाईँले थप उपयुक्त डेटाको प्रयोग नियन्त्रणहरू भेट्टाउन सक्नुहुन्छ।"</string>
     <string name="data_usage_restrict_denied_dialog" msgid="18928292832775805">"तपाईंले मोबाइल डेटाको सीमा सेट गर्नुभएको बेलामा मात्र पृष्ठभूमिको डेटालाई सीमित गर्न सम्भव हुन्छ।"</string>
     <string name="data_usage_auto_sync_on_dialog_title" msgid="2342323408229702005">"डेटा स्वचालित सिंक खोल्ने हो?"</string>
     <string name="data_usage_auto_sync_on_dialog" product="tablet" msgid="4935430284683238901">"तपाईंले वेबमा आफ्नो खातामा गर्न हुने कुनै पनि परिवर्तनहरू स्वचालित रूपमा तपाईँको ट्याब्लेटमा प्रतिलिपि गरिने छ।\n\nकेही खाता पनि स्वचालित वेब ट्याब्लेटमा तपाईंले बनाउने कुनै पनि परिवर्तनहरू प्रतिलिपि हुनसक्छ। Google खाताले यसरी कार्य गर्दछ।"</string>
     <string name="data_usage_auto_sync_on_dialog" product="default" msgid="5004823486046340090">"तपाईंले वेबमा आफ्नो खातामा गर्न हुने कुनै पनि परिवर्तनहरू स्वचालित रूपमा तपाईँको फोनमा प्रतिलिपि गरिने छ।\n\nकेही खाता पनि स्वचालित वेब फोनमा तपाईंले बनाउने कुनै पनि परिवर्तनहरू प्रतिलिपि हुनसक्छ। Google खाताले यसरी कार्य गर्दछ।"</string>
     <string name="data_usage_auto_sync_off_dialog_title" msgid="7105334544291643305">"डेटा स्वतः सिंक हुने कार्य बन्द गर्ने हो?"</string>
     <string name="data_usage_auto_sync_off_dialog" msgid="4057984234450947964">"यस कार्यले डेटा र ब्याट्री प्रयोगको बचत गर्दछ, तर तपाईंले प्रत्येक खाता म्यानुअल तरिकाले हालसालको जानकारी भेला पार्नु पर्ने हुन्छ। र तपाईंले अद्यावधिक हुने बेलामा सूचना प्राप्त गर्नु हुन्न।"</string>
-    <string name="data_usage_cycle_editor_title" msgid="4967309390043599889">"प्रयोग चक्र पुनःसेट गर्ने मिति"</string>
+    <string name="data_usage_cycle_editor_title" msgid="4967309390043599889">"प्रयोग चक्र रिसेट गर्ने मिति"</string>
     <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"प्रत्येक महिनाको मिति:"</string>
     <string name="data_usage_cycle_editor_positive" msgid="9155752056537811646">"सेट गर्नुहोस्"</string>
     <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"डेटा उपयोगबारे चेतावनी सेट गर्नुहोस्"</string>
@@ -2715,24 +2717,24 @@
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"तपाईंको ट्याब्लेट तपाईंले सेट गर्नुभएको अधिकतम डेटा प्रयोगको सीमामा पुगेपछि यसले मोबाइल डेटालाई निष्क्रिय पार्नेछ।\n\nतपाईंको ट्याब्लेटले र तपाईंको सेवा प्रदायकले फरक तरिकाले डेटा प्रयोगको मापन गर्न सक्ने हुनाले विवेकपूर्ण तरिकाले यसको सीमा सेट गर्ने बारे विचार गर्नुहोस्।"</string>
     <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"तपाईंको फोन तपाईंले सेट गर्नुभएको अधिकतम डेटा प्रयोगको सीमामा पुगेपछि यसले मोबाइल डेटालाई निष्क्रिय पार्नेछ।\n\nतपाईंको फोनले र तपाईंको सेवा प्रदायकले फरक तरिकाले डेटा प्रयोगको मापन गर्न सक्ने हुनाले विवेकपूर्ण तरिकाले यसको सीमा सेट गर्ने बारे विचार गर्नुहोस्।"</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"पृष्ठभूमि डेटा प्रतिबन्ध गर्न चाहनुहुन्छ?"</string>
-    <string name="data_usage_restrict_background" msgid="995811034744808575">"तपाईंले पृष्ठभूमिको मोबाइल डेटालाई सीमित गर्नुहुन्छ भने केही अनुप्रयोग र सेवाहरूले तपाईं Wi‑Fi मा जडान नहुँदासम्म काम गर्ने छैनन्।"</string>
-    <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"तपाईंले पृष्ठभूमिको मोबाइल डेटालाई सीमित गर्नुहुन्छ भने केही अनुप्रयोग र सेवाहरूले तपाईं Wi‑Fi मा जडान नहुँदासम्म काम गर्ने छैनन्।\n\nयस सेटिङले यस ट्याब्लेटमा भएका सबै प्रयोगकर्ताहरूलाई प्रभाव पार्दछ।"</string>
-    <string name="data_usage_restrict_background_multiuser" product="default" msgid="6846901756455789858">"तपाईंले पृष्ठभूमिको मोबाइल डेटालाई सीमित गर्नुहुन्छ भने केही अनुप्रयोग र सेवाहरूले तपाईं Wi‑Fi मा जडान नहुँदासम्म काम गर्ने छैनन्।\n\nयस सेटिङले यस फोनमा भएका सबै प्रयोगकर्ताहरूलाई प्रभाव पार्दछ।"</string>
+    <string name="data_usage_restrict_background" msgid="995811034744808575">"तपाईंले पृष्ठभूमिको मोबाइल डेटालाई सीमित गर्नुहुन्छ भने केही एप र सेवाहरूले तपाईं Wi‑Fi मा जडान नहुँदासम्म काम गर्ने छैनन्।"</string>
+    <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"तपाईंले पृष्ठभूमिको मोबाइल डेटालाई सीमित गर्नुहुन्छ भने केही एप र सेवाहरूले तपाईं Wi‑Fi मा जडान नहुँदासम्म काम गर्ने छैनन्।\n\nयस सेटिङले यस ट्याब्लेटमा भएका सबै प्रयोगकर्ताहरूलाई प्रभाव पार्दछ।"</string>
+    <string name="data_usage_restrict_background_multiuser" product="default" msgid="6846901756455789858">"तपाईंले पृष्ठभूमिको मोबाइल डेटालाई सीमित गर्नुहुन्छ भने केही एप र सेवाहरूले तपाईं Wi‑Fi मा जडान नहुँदासम्म काम गर्ने छैनन्।\n\nयस सेटिङले यस फोनमा भएका सबै प्रयोगकर्ताहरूलाई प्रभाव पार्दछ।"</string>
     <string name="data_usage_sweep_warning" msgid="4646401408698778092"><font size="18">" <xliff:g id="NUMBER">^1</xliff:g> "</font>" "<font size="9">" <xliff:g id="UNIT">^2</xliff:g> "</font>" \n "<font size="12">" चेतावनी "</font></string>
     <string name="data_usage_sweep_limit" msgid="6101105504557548269"><font size="18">" <xliff:g id="NUMBER">^1</xliff:g> "</font>" "<font size="9">" <xliff:g id="UNIT">^2</xliff:g> "</font>" \n "<font size="12">" सीमा "</font></string>
-    <string name="data_usage_uninstalled_apps" msgid="4152786786140875769">"हटाइएका अनुप्रयोगहरू"</string>
-    <string name="data_usage_uninstalled_apps_users" msgid="61092462416505112">"अनुप्रयोगहरू र प्रयोगकर्ताहरू हटाइयो।"</string>
+    <string name="data_usage_uninstalled_apps" msgid="4152786786140875769">"हटाइएका एपहरू"</string>
+    <string name="data_usage_uninstalled_apps_users" msgid="61092462416505112">"एपहरू र प्रयोगकर्ताहरू हटाइयो।"</string>
     <string name="data_usage_received_sent" msgid="5532467049487334656">"<xliff:g id="RECEIVED">%1$s</xliff:g> प्राप्त गरियो, <xliff:g id="SENT">%2$s</xliff:g> पठाइयो"</string>
     <string name="data_usage_total_during_range" msgid="7307562900020512747">"<xliff:g id="RANGE">%2$s</xliff:g>: करिब <xliff:g id="TOTAL">%1$s</xliff:g> प्रयोग भएको।"</string>
     <string name="data_usage_total_during_range_mobile" product="tablet" msgid="366118962920532455">"<xliff:g id="RANGE">%2$s</xliff:g>: को बारेमा <xliff:g id="TOTAL">%1$s</xliff:g> तपाईँको ट्याब्लेटले नापे जस्तो रूपमा प्रयोग भयो। तपाईँको ढुवानीको डेटा उपयोग लेखा सायद भिन्न हुन सक्छ।"</string>
     <string name="data_usage_total_during_range_mobile" product="default" msgid="3504412681869806383">"<xliff:g id="RANGE">%2$s</xliff:g>: करिब<xliff:g id="TOTAL">%1$s</xliff:g> प्रयोग भएको, तपाईँको फोनले मापन गरेअनुसार। तपाईँको डेटाको प्रयोग बाहकको खाता अनुसार फरक पर्न सक्छ।"</string>
     <string name="data_usage_metered_title" msgid="6827619643999794429">"सञ्जाल प्रतिबन्धहरू"</string>
-    <string name="data_usage_metered_body" msgid="1342905101297753439">"पृष्ठभूमिको डेटा सीमित गरिएको बेला सीमित नेटवर्कहरूलाई मोबाइल डेटा जस्तै मानिन्छ। ठूला फाइलहरू डाउनलोड गर्नाका लागि यी नेटवर्कहरूको प्रयोग गर्नुअघि अनुप्रयोगहरूले चेतावनी दिन सक्छन्।"</string>
+    <string name="data_usage_metered_body" msgid="1342905101297753439">"पृष्ठभूमिको डेटा सीमित गरिएको बेला सीमित नेटवर्कहरूलाई मोबाइल डेटा जस्तै मानिन्छ। ठूला फाइलहरू डाउनलोड गर्नाका लागि यी नेटवर्कहरूको प्रयोग गर्नुअघि एपहरूले चेतावनी दिन सक्छन्।"</string>
     <string name="data_usage_metered_mobile" msgid="3675591449158207593">"मोबाइल नेटवर्क"</string>
     <string name="data_usage_metered_wifi" msgid="2955256408132426720">"मिटर राखिएका Wi-Fi सञ्जालहरू"</string>
     <string name="data_usage_metered_wifi_disabled" msgid="5771083253782103415">"मिटर राखिएका सञ्जालहरू चयन गर्न, Wi-Fi खोल्नुहोस्।"</string>
     <string name="data_usage_metered_auto" msgid="7924116401382629319">"स्वचालित"</string>
-    <string name="data_usage_metered_yes" msgid="7333744880035386073">"मिटर चल्ने बनाइएको छ"</string>
+    <string name="data_usage_metered_yes" msgid="7333744880035386073">"शुल्क लाग्ने"</string>
     <string name="data_usage_metered_no" msgid="1961524615778610008">"शुल्क लाग्ने प्रावधान तय नगरिसकिएको"</string>
     <string name="data_usage_disclaimer" msgid="4683321532922590425">"वाहक डेटा लेखाकृत गर्ने तपाईँको उपकरणबाट फरक हुन सक्छ।"</string>
     <string name="cryptkeeper_emergency_call" msgid="4625420047524693116">"आपतकालीन कल"</string>
@@ -2833,27 +2835,27 @@
       <item quantity="one">प्रमाणपत्रलाई विश्वास गर्नुहोस् वा हटाउनुहोस्</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message_device_owner" formatted="false" msgid="9046046586061880100">
-      <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> ले तपाईँको यन्त्रमा प्रमाणपत्र अख्तियारीहरूलाई स्थापना गरेको छ जसले त्यसलाई इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू लगायत तपाईँको यन्त्रको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयी प्रमाणपत्रहरू बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
-      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> ले तपाईँको यन्त्रमा प्रमाणपत्र अख्तियारीलाई स्थापना गरेको छ जसले त्यसलाई इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू लगायत तपाईँको यन्त्रको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयस प्रमाणपत्र बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
+      <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> ले तपाईँको यन्त्रमा प्रमाणपत्र अख्तियारीहरूलाई स्थापना गरेको छ जसले त्यसलाई इमेल, एप र सुरक्षित वेबसाइटहरू लगायत तपाईँको यन्त्रको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयी प्रमाणपत्रहरू बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
+      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> ले तपाईँको यन्त्रमा प्रमाणपत्र अख्तियारीलाई स्थापना गरेको छ जसले त्यसलाई इमेल, एप र सुरक्षित वेबसाइटहरू लगायत तपाईँको यन्त्रको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयस प्रमाणपत्र बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message" formatted="false" msgid="8271858091418779584">
-      <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> ले तपाईँको कार्य प्रोफाइलका लागि प्रमाणपत्र अख्तियारीहरूलाई स्थापना गरेको छ जसले त्यसलाई इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू लगायत कार्य प्रोफाइलको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयी प्रमाणपत्रहरू बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
-      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> ले तपाईँको कार्य प्रोफाइलका लागि प्रमाणपत्र अख्तियारीलाई स्थापना गरेको छ जसले त्यसलाई इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू लगायत कार्य प्रोफाइलको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयस प्रमाणपत्र बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
+      <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> ले तपाईँको कार्य प्रोफाइलका लागि प्रमाणपत्र अख्तियारीहरूलाई स्थापना गरेको छ जसले त्यसलाई इमेल, एप र सुरक्षित वेबसाइटहरू लगायत कार्य प्रोफाइलको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयी प्रमाणपत्रहरू बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
+      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_0">%s</xliff:g> ले तपाईँको कार्य प्रोफाइलका लागि प्रमाणपत्र अख्तियारीलाई स्थापना गरेको छ जसले त्यसलाई इमेल, एप र सुरक्षित वेबसाइटहरू लगायत कार्य प्रोफाइलको नेटवर्क सम्बन्धी गतिविधिलाई अनुगमन गर्न अनुमति दिन सक्छ।\n\nयस प्रमाणपत्र बारे थप जानकारीका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।</item>
     </plurals>
-    <string name="ssl_ca_cert_warning_message" msgid="8692156828262606685">"तपाईँको सञ्जाल गतिविधिको साथ इमेल, अनुप्रयोग र सुरक्षित वेबसाइटहरू सहितको अनुगमन गर्न तेस्रो पक्ष सक्षम छ। \n \n तपाईँको उपकरणमा स्थापित भएको बिश्वस्त गोप्य डेटाले गर्दा यो सम्भव भएको हो।"</string>
+    <string name="ssl_ca_cert_warning_message" msgid="8692156828262606685">"तपाईँको सञ्जाल गतिविधिको साथ इमेल, एप र सुरक्षित वेबसाइटहरू सहितको अनुगमन गर्न तेस्रो पक्ष सक्षम छ। \n \n तपाईँको उपकरणमा स्थापित भएको बिश्वस्त गोप्य डेटाले गर्दा यो सम्भव भएको हो।"</string>
     <plurals name="ssl_ca_cert_settings_button" formatted="false" msgid="3227175122066058245">
       <item quantity="other">प्रमाणपत्रहरूलाई जाँच गर्नुहोस्</item>
       <item quantity="one">प्रमाणपत्रलाई जाँच गर्नुहोस्</item>
     </plurals>
     <string name="user_settings_title" msgid="7917598650933179545">"बहु प्रयोगकर्ताहरू"</string>
-    <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"नयाँ प्रयोगकर्ताहरू थपेर आफ्नो यन्त्र आदान प्रदान गर्नुहोस्। प्रत्येक प्रयोगकर्तासँग आफू अनुकूल गृह स्क्रिन, खाता, अनुप्रयोग, सेटिङ र थप कुराहरूका लागि तपाईंको यन्त्रमा व्यक्तिगत स्थान हुन्छ।"</string>
-    <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"नयाँ प्रयोगकर्ताहरू थपेर आफ्नो ट्याब्लेट आदान प्रदान गर्नुहोस्। प्रत्येक प्रयोगकर्तासँग आफू अनुकूल गृह स्क्रिन, खाता, अनुप्रयोग, सेटिङ र थप कुराहरूका लागि तपाईंको ट्याब्लेटमा व्यक्तिगत स्थान हुन्छ।"</string>
-    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"नयाँ प्रयोगकर्ताहरू थपेर आफ्नो फोनआदान प्रदान गर्नुहोस्। प्रत्येक प्रयोगकर्तासँग आफू अनुकूल गृह स्क्रिन, खाता, अनुप्रयोग, सेटिङ र थप कुराहरूका लागि तपाईंको फोनमा व्यक्तिगत स्थान हुन्छ।"</string>
+    <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"नयाँ प्रयोगकर्ताहरू थपेर आफ्नो यन्त्र सेयर गर्नुहोस्। प्रत्येक प्रयोगकर्तासँग आफू अनुकूल गृह स्क्रिन, खाता, एप, सेटिङ र थप कुराहरूका लागि तपाईंको यन्त्रमा व्यक्तिगत स्थान हुन्छ।"</string>
+    <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"नयाँ प्रयोगकर्ताहरू थपेर आफ्नो ट्याब्लेट सेयर गर्नुहोस्। प्रत्येक प्रयोगकर्तासँग आफू अनुकूल गृह स्क्रिन, खाता, एप, सेटिङ र थप कुराहरूका लागि तपाईंको ट्याब्लेटमा व्यक्तिगत स्थान हुन्छ।"</string>
+    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"नयाँ प्रयोगकर्ताहरू थपेर आफ्नो फोन सेयर गर्नुहोस्। प्रत्येक प्रयोगकर्तासँग आफू अनुकूल गृह स्क्रिन, खाता, एप, सेटिङ र थप कुराहरूका लागि तपाईंको फोनमा व्यक्तिगत स्थान हुन्छ।"</string>
     <string name="user_list_title" msgid="6670258645246192324">"प्रयोगकर्ता र प्रोफाइलहरू"</string>
     <string name="user_add_user_or_profile_menu" msgid="4220679989900149336">"प्रयोगकर्ता वा प्रोफाइल थप गर्नुहोस्"</string>
     <string name="user_add_user_menu" msgid="9006572936456324794">"प्रयोगकर्ता थप्नुहोस्"</string>
     <string name="user_summary_restricted_profile" msgid="5214838615043574917">"निषेध गरिएको प्रोफाइल"</string>
-    <string name="user_need_lock_message" msgid="3421243467724322311">"निषेधयुक्त प्रोफाइल बनाउनु अघि तपाईँको अनुप्रयोग र व्यक्तिगत डेटा सुरक्षा गर्नाका लागि तपाईँले स्क्रिन लक सेटअप गर्नु पर्दछ ।"</string>
+    <string name="user_need_lock_message" msgid="3421243467724322311">"निषेधयुक्त प्रोफाइल बनाउनु अघि तपाईँको एप र व्यक्तिगत डेटा सुरक्षा गर्नाका लागि तपाईँले स्क्रिन लक सेटअप गर्नु पर्दछ ।"</string>
     <string name="user_set_lock_button" msgid="4660971133148866612">"लक सेट गर्नुहोस्"</string>
     <string name="user_summary_not_set_up" msgid="6436691939044332679">"सेटअप छैन"</string>
     <string name="user_summary_restricted_not_set_up" msgid="896552290436689508">"सेट भएको छैन - सीमित प्रोफाइल"</string>
@@ -2863,15 +2865,15 @@
     <string name="user_nickname" msgid="1088216221559125529">"उपनाम"</string>
     <string name="user_add_user_type_title" msgid="8672326434351387845">"थप्नुहोस्"</string>
     <string name="user_add_max_count" msgid="4524573950126500416">"तपाईँले <xliff:g id="USER_COUNT">%1$d</xliff:g> जना प्रयोगकर्ता सम्म थप्न सक्नुहुनेछ"</string>
-    <string name="user_add_user_item_summary" msgid="6114355152711455716">"प्रयोगकर्ताहरूसँग आफ्नै अनुप्रयोगहरू र सामग्री हुन्छ"</string>
-    <string name="user_add_profile_item_summary" msgid="6386283837789573755">"तपाईं आफ्नो खाताबाट अनुप्रयोगहरू र सामग्रीहरूको पहुँचलाई प्रतिबन्ध गर्न सक्नुहुन्छ"</string>
+    <string name="user_add_user_item_summary" msgid="6114355152711455716">"प्रयोगकर्ताहरूसँग आफ्नै एपहरू र सामग्री हुन्छ"</string>
+    <string name="user_add_profile_item_summary" msgid="6386283837789573755">"तपाईं आफ्नो खाताबाट एपहरू र सामग्रीहरूको पहुँचलाई प्रतिबन्ध गर्न सक्नुहुन्छ"</string>
     <string name="user_add_user_item_title" msgid="6835385073795492410">"प्रयोगकर्ता"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"प्रतिबन्धित प्रोफाइल"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"नयाँ प्रयोगकर्ता थप्ने हो?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"तपाईं थप प्रयोगकर्ताहरू सिर्जना गरेर यो यन्त्र अन्य मान्छेहरूसँग साझा रूपमा प्रयोग गर्न सक्नुहुन्छ। हरेक प्रयोगकर्ताको आफ्नै ठाउँ हुन्छ, जसलाई उनीहरू अनुप्रयोग, वालपेपर इत्यादिमार्फत आफू अनुकूल पार्न सक्छन्। प्रयोगकर्ताहरू सबैजनालाई असर पार्ने Wi-Fi जस्ता यन्त्रका सेटिङहरू पनि समायोजन गर्न सक्छन्।\n\nतपाईंले नयाँ प्रयोगकर्ता थप्दा उक्त व्यक्तिले आफ्नो ठाउँ सेटअप गर्नु पर्ने हुन्छ।\n\nकुनै पनि प्रयोगकर्ताले अन्य सबै प्रयोगकर्ताहरूका लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्छन्। पहुँचसम्बन्धी सेटिङ तथा सेवाहरू नयाँ प्रयोगकर्तामा स्थानान्तरण नहुन सक्छन्।"</string>
-    <string name="user_add_user_message_short" msgid="1802594476285458254">"जब तपाईंले नयाँ प्रयोगकर्ता थप्नुहुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेट गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूका लागि अनुप्रयोगहरू अद्यावधिक गर्न सक्छन्।"</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"तपाईं थप प्रयोगकर्ताहरू सिर्जना गरेर ती प्रयोगकर्तालाई यो यन्त्र प्रयोग गर्न दिन सक्नुहुन्छ। हरेक प्रयोगकर्ताको आफ्नै ठाउँ हुन्छ। उनीहरू यो ठाउँमा आफ्नै एप, वालपेपर आदिका लागि प्रयोग गर्न सक्छन्। उनीहरू सबैजनालाई असर पार्ने Wi-Fi जस्ता यन्त्रका सेटिङहरू पनि परिवर्तन गर्न सक्छन्।\n\nतपाईंले नयाँ प्रयोगकर्ता थप्दा उक्त व्यक्तिले आफ्नो ठाउँ सेटअप गर्नु पर्ने हुन्छ।\n\nसबै प्रयोगकर्ता अन्य सबै प्रयोगकर्ताले प्रयोग गर्ने एपहरू अद्यावधिक गर्न सक्छन्। तर पहुँचसम्बन्धी सेटिङ तथा सेवाहरू नयाँ प्रयोगकर्तामा नसर्न सक्छ।"</string>
+    <string name="user_add_user_message_short" msgid="1802594476285458254">"जब तपाईंले नयाँ प्रयोगकर्ता थप्नुहुन्छ, त्यो व्यक्तिले आफ्नो ठाउँ सेट गर्न आवश्यक छ।\n\nकुनै पनि प्रयोगकर्ताले सबै अन्य प्रयोगकर्ताहरूका लागि एपहरू अद्यावधिक गर्न सक्छन्।"</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"अहिले प्रयोगकर्ता सेटअप गर्ने हो?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"यन्त्र लिन र आफ्नो ठाउँ बनाउन व्यक्ति उपलब्ध छ भन्ने कुराको निश्चित गर्नुहोस्"</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"यी व्यक्ति यन्त्र यो यन्त्र चलाउन र आफ्नो ठाउँ सेट गर्न उपलब्ध छन् भन्ने कुरा सुनिश्चित गर्नुहोस्"</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"अहिले प्रोफाइल सेटअप गर्ने हो?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"अब सेटअप गर्नुहोस्"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"अहिले होइन"</string>
@@ -2889,18 +2891,18 @@
     <string name="work_profile_confirm_remove_title" msgid="3168910958076735800">"कार्य प्रोफाइल हटाउने?"</string>
     <string name="user_confirm_remove_self_message" product="tablet" msgid="2889456786320157545">"तपाईं यस ट्याब्लेटमा आफ्नो ठाउँ र डेटा हराउनु हुने छ। तपाईं यो कार्यलाई अन्डु गर्न सक्नुहुन्न।"</string>
     <string name="user_confirm_remove_self_message" product="default" msgid="8441729423565705183">"तपाईं यस फोनमा आफ्नो ठाउँ र डेटा गुमाउनु हुनेछ। तपाईं यो कार्य पूर्ववत गर्न हुन्न।"</string>
-    <string name="user_confirm_remove_message" msgid="5202150470271756013">"सबै अनुप्रयोगहरू र डेटा मेटाइनेछन्।"</string>
-    <string name="work_profile_confirm_remove_message" msgid="1220672284385083128">"यदि तपाईँले जारी राख्नुभयो भने यो प्रोफाइलका सबै अनुप्रयोगहरू र डेटा मेटाइने छन्।"</string>
-    <string name="user_profile_confirm_remove_message" msgid="8376289888144561545">"सबै अनुप्रयोगहरू र डेटा मेटाइने छन्।"</string>
+    <string name="user_confirm_remove_message" msgid="5202150470271756013">"सबै एपहरू र डेटा मेटाइनेछन्।"</string>
+    <string name="work_profile_confirm_remove_message" msgid="1220672284385083128">"यदि तपाईँले जारी राख्नुभयो भने यो प्रोफाइलका सबै एपहरू र डेटा मेटाइने छन्।"</string>
+    <string name="user_profile_confirm_remove_message" msgid="8376289888144561545">"सबै एपहरू र डेटा मेटाइने छन्।"</string>
     <string name="user_adding_new_user" msgid="381717945749193417">"नयाँ प्रयोगकर्ता थप गरिँदै..."</string>
     <string name="user_delete_user_description" msgid="3627684990761268859">"प्रयोगकर्ता मेटाउनुहोस्"</string>
     <string name="user_delete_button" msgid="6747802570634772774">"मेट्नुहोस्"</string>
     <string name="user_guest" msgid="6226240869459683235">"अतिथि"</string>
     <string name="user_exit_guest_title" msgid="7279886200373071797">"अतिथि हटाउनुहोस्"</string>
     <string name="user_exit_guest_confirm_title" msgid="4767911571671099844">"अतिथि हटाउने हो?"</string>
-    <string name="user_exit_guest_confirm_message" msgid="6955182181145748919">"यस सत्रमा सबै अनुप्रयोगहरू र डेटा मेटाइनेछ।"</string>
+    <string name="user_exit_guest_confirm_message" msgid="6955182181145748919">"यस सत्रमा सबै एपहरू र डेटा मेटाइनेछ।"</string>
     <string name="user_exit_guest_dialog_remove" msgid="1878866060881115716">"हटाउनुहोस्"</string>
-    <string name="user_enable_calling" msgid="864760054792249503">"फोन कलहरू सक्षम पार्नुहोस्"</string>
+    <string name="user_enable_calling" msgid="864760054792249503">"फोन गर्ने सेवा सक्रिय गर्नुहोस्"</string>
     <string name="user_enable_calling_sms" msgid="3450252891736718793">"फोन कल तथा SMS सक्षम पार्नुहोस्"</string>
     <string name="user_remove_user" msgid="3687544420125911166">"प्रयोगकर्ता मेटाउनुहोस्"</string>
     <string name="user_enable_calling_confirm_title" msgid="1141612415529158542">"फोन कलहरू सक्षम गर्ने हो?"</string>
@@ -2909,21 +2911,21 @@
     <string name="user_enable_calling_and_sms_confirm_message" msgid="3278802798876095734">"कल र SMS इतिहास यो प्रयोगकर्तासँग साझेदारी गरिने छ।"</string>
     <string name="emergency_info_title" msgid="1522609271881425375">"आपतकालीन सूचना"</string>
     <string name="emergency_info_summary" msgid="7280464759837387342">"<xliff:g id="USER_NAME">%1$s</xliff:g> का बारेमा जानकारी र सम्पर्क ठेगानाहरू"</string>
-    <string name="application_restrictions" msgid="6871981013736536763">"अनुप्रयोगहरू र सामग्री अनुमति दिनुहोस्"</string>
-    <string name="apps_with_restrictions_header" msgid="8656739605673756176">"प्रतिबन्धको साथ अनुप्रयोगहरू"</string>
+    <string name="application_restrictions" msgid="6871981013736536763">"एपहरू र सामग्री अनुमति दिनुहोस्"</string>
+    <string name="apps_with_restrictions_header" msgid="8656739605673756176">"प्रतिबन्धको साथ एपहरू"</string>
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"अनुप्रयोगको लागि सेटिङहरू विस्तार गर्नुहोस्"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"ट्याप गरी भुक्तानी गर्नुहोस्"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"यसले कसरी काम गर्दछ"</string>
     <string name="nfc_payment_no_apps" msgid="8844440783395420860">"स्टोरहरूमा तपाईँको फोनमार्फत भुक्तानी गर्नुहोस्।"</string>
-    <string name="nfc_payment_default" msgid="7869273092463612271">"पूर्वनिर्धारित भुक्तानी"</string>
+    <string name="nfc_payment_default" msgid="7869273092463612271">"पूर्वनिर्धारित भुक्तानी विधि"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"सेट गरिएको छैन"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
-    <string name="nfc_payment_use_default" msgid="3098724195746409476">"पूर्वनिर्धारित प्रयोग गर्नुहोस्"</string>
+    <string name="nfc_payment_use_default" msgid="3098724195746409476">"पूर्वनिर्धारित विधि प्रयोग गर्नुहोस्"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"सधैँ"</string>
-    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"अर्को भुक्तानी अनुप्रयोग खुला भएको बेला बाहेक"</string>
+    <string name="nfc_payment_favor_open" msgid="3739055715000436749">"अर्को भुक्तानी एप खुला भएको बेला बाहेक"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"ट्याप गरेर भुक्तानी गर्ने टर्मिनलमा यसमार्फत भुक्तानी गर्नुहोस्:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"टर्मिनलमा भुक्तानी"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"एउटा भुक्तानी अनुप्रयोग सेटअप गर्नुहोस्। त्यसपछि तपाईँको फोनको पछाडिको भाग सम्पर्कविहीन सङ्केतमार्फत कुनै टर्मिनलमा होल्ड गर्नुहोस्।"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"एउटा भुक्तानी एप सेटअप गर्नुहोस्। त्यसपछि आफ्नो फोनको पछाडिको भाग कन्ट्याक्टलेस सङ्केतभएको कुनै टर्मिनलले पहिचान गर्ने गरी होल्ड गर्नुहोस्।"</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"बुझेँ"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"थप..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"तपाईँको प्राथमिकताको रूपमा सेट गर्ने हो?"</string>
@@ -2960,9 +2962,9 @@
     <string name="preferred_network_type_title" msgid="1980819233332592332">"सञ्जाल प्रकार रुचाइएको"</string>
     <string name="preferred_network_type_summary" msgid="8828375904939960006">"LTE (सिफारिस गरिएको)"</string>
     <string name="work_sim_title" msgid="2885654516046971985">"कार्य SIM"</string>
-    <string name="user_restrictions_title" msgid="6454305007320972740">"अनुप्रयोग र सामग्री पहुँच"</string>
+    <string name="user_restrictions_title" msgid="6454305007320972740">"एप र सामग्री पहुँच"</string>
     <string name="user_rename" msgid="5624446289379780361">"पुनःनामाकरण गर्नुहोस्"</string>
-    <string name="app_restrictions_custom_label" msgid="8791627858467265176">"अनुप्रयोग प्रतिबन्धहरू सेट गर्नुहोस्"</string>
+    <string name="app_restrictions_custom_label" msgid="8791627858467265176">"एप प्रतिबन्धहरू सेट गर्नुहोस्"</string>
     <string name="user_restrictions_controlled_by" msgid="3442508299902131033">"<xliff:g id="APP">%1$s</xliff:g>द्वारा नियन्त्रित"</string>
     <string name="app_sees_restricted_accounts" msgid="2210750497683265281">"यो अनुप्रयोगले तपाईंको खाताहरू पहुँच गर्न सक्दैन।"</string>
     <string name="app_sees_restricted_accounts_and_controlled_by" msgid="5028333644657350816">"यो अनुप्रयोगले तपाईंका खाताहरू पहुँच गर्न सक्छ। <xliff:g id="APP">%1$s</xliff:g> द्वारा नियन्त्रित"</string>
@@ -2972,8 +2974,8 @@
     <string name="restriction_bluetooth_config_summary" msgid="5304900222614952895">"ब्लुटुथ जोडा बाँध्ने कार्य र सेटिङहरूलाई अनुमति दिनुहोस्।"</string>
     <string name="restriction_nfc_enable_title" msgid="5146674482590550598">"NFC"</string>
     <string name="restriction_nfc_enable_summary_config" msgid="405349698260328073">"जब यो <xliff:g id="DEVICE_NAME">%1$s</xliff:g> अर्को NFC उपकरणले छुन्छ डेटा विनिमयको अनुमति दिनुहोस्"</string>
-    <string name="restriction_nfc_enable_summary" product="tablet" msgid="3292205836938064931">"ट्याब्लेटले अर्को उपकरण छुँदा डेटा विनिमयलाई अनुमति दिनुहोस्"</string>
-    <string name="restriction_nfc_enable_summary" product="default" msgid="226439584043333608">"फोनले अर्को उपकरण छुँदा डेटा विनिमयलाई अनुमति दिनुहोस्"</string>
+    <string name="restriction_nfc_enable_summary" product="tablet" msgid="3292205836938064931">"ट्याब्लेटले अर्को उपकरण छुँदा डेटा एक अर्कामा सर्ने अनुमति दिनुहोस्"</string>
+    <string name="restriction_nfc_enable_summary" product="default" msgid="226439584043333608">"फोनले अर्को उपकरण छुँदा डेटा एक अर्कामा सर्ने अनुमति दिनुहोस्"</string>
     <string name="restriction_location_enable_title" msgid="358506740636434856">"स्थान"</string>
     <string name="restriction_location_enable_summary" msgid="4159500201124004463">"अनुप्रयोगहरुलाई तपाईँको स्थान जानकारी प्रयोग गर्न दिनुहोस्"</string>
     <string name="wizard_back" msgid="223654213898117594">"पछाडि जानुहोस्"</string>
@@ -3003,7 +3005,7 @@
     <string name="sim_editor_title" msgid="2303147682835318920">"SIM स्लट %1$d"</string>
     <string name="sim_editor_carrier" msgid="8860370077829961512">"वाहक"</string>
     <string name="sim_editor_number" msgid="1757338150165234970">"संख्या"</string>
-    <string name="sim_editor_color" msgid="373059962306191123">"SIM रङ"</string>
+    <string name="sim_editor_color" msgid="373059962306191123">"SIM रङ्ग"</string>
     <string name="sim_card_select_title" msgid="4925862525985187946">"सिम कार्ड चयन गर्नुहोस्"</string>
     <string name="color_orange" msgid="3159707916066563431">"ओरेन्ज"</string>
     <string name="color_purple" msgid="4391440966734810713">"बैजनी"</string>
@@ -3014,9 +3016,9 @@
     <string name="sim_outgoing_call_title" msgid="4683645160838507363">"बहिर्गमन कलको लागि SIM"</string>
     <string name="sim_other_call_settings" msgid="5656672788293240519">"अन्य कल सेटिङहरू"</string>
     <string name="preferred_network_offload_title" msgid="341815233467695133">"सञ्जाल अफलोड गर्न रुचाइयो"</string>
-    <string name="preferred_network_offload_header" msgid="7101507079686660843">"सञ्जाल नाम प्रसारण असक्षम"</string>
-    <string name="preferred_network_offload_footer" msgid="7454087782004987490">"आफ्नो सञ्जाल जानकारी तेस्रो दलको पहुँचबाट सञ्जाल नाम प्रसारण जोगाउने कार्य असक्षम पार्नुहोस्।"</string>
-    <string name="preferred_network_offload_popup" msgid="204626698006378960">"सञ्जाल नाम प्रसारणले लुकेका सञ्जालहरू स्वचालित जडान हुनमा रोक्ने असक्षम पार्दै।"</string>
+    <string name="preferred_network_offload_header" msgid="7101507079686660843">"नेटवर्कको नाम प्रसारण असक्षम"</string>
+    <string name="preferred_network_offload_footer" msgid="7454087782004987490">"आफ्नो सञ्जाल जानकारी तेस्रो दलको पहुँचबाट नेटवर्कको नाम प्रसारण जोगाउने कार्य असक्षम पार्नुहोस्।"</string>
+    <string name="preferred_network_offload_popup" msgid="204626698006378960">"नेटवर्कको नाम प्रसारणले लुकेका सञ्जालहरू स्वचालित जडान हुनमा रोक्ने असक्षम पार्दै।"</string>
     <string name="sim_signal_strength" msgid="6426261068520364170">"<xliff:g id="DBM">%1$d</xliff:g> dBm <xliff:g id="ASU">%2$d</xliff:g> asu"</string>
     <string name="sim_notification_title" msgid="2457890173055955672">"SIM कार्डहरू परिवर्तन गरिए।"</string>
     <string name="sim_notification_summary" msgid="6421556454979313850">"सेटअप गर्न ट्याप गर्नुहोस्"</string>
@@ -3033,17 +3035,17 @@
     <string name="network_dashboard_summary_mobile" msgid="5560545061217580626">"मोबाइल"</string>
     <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"डेटाको प्रयोग"</string>
     <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"हटस्पट"</string>
-    <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"जडान गरिएका यन्त्रहरू"</string>
+    <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"जोडिएका यन्त्रहरू"</string>
     <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"ब्लुटुथ, ड्राइभिङ मोड, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"ब्लुटुथ, ड्राइभिङ मोड"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"ब्लुटुथ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"ब्लुटुथ"</string>
-    <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"अनुप्रयोग तथा सूचनाहरू"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"सहायक, हालैका अनुप्रयोगहरू, पूर्वनिर्धारित अनुप्रयोगहरू"</string>
+    <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"एप तथा सूचनाहरू"</string>
+    <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"सहायक, हालैका एपहरू, पूर्वनिर्धारित एपहरू"</string>
     <string name="notification_settings_work_profile" msgid="7190550347842400029">"कार्य प्रोफाइलका अनुप्रयोगहरूको सूचनामाथि पहुँच छैन।"</string>
     <string name="account_dashboard_title" msgid="4734300939532555885">"खाताहरू"</string>
     <string name="account_dashboard_default_summary" msgid="6822549669771936206">"कुनै पनि खाता थप गरिएन"</string>
-    <string name="app_default_dashboard_title" msgid="6575301028225232193">"पूर्वनिर्धारित अनुप्रयोगहरू"</string>
+    <string name="app_default_dashboard_title" msgid="6575301028225232193">"पूर्वनिर्धारित एपहरू"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"भाषाहरू, इसाराहरू, समय, ब्याकअप"</string>
     <string name="search_results_title" msgid="4160717656435503940">"सेटिङहरू"</string>
     <string name="keywords_wifi" msgid="8477688080895466846">"wifi, wi-fi, नेटवर्क जडान, इन्टरनेट, वायरलेस, डेटा, wi fi"</string>
@@ -3053,7 +3055,7 @@
     <string name="keywords_time_format" msgid="8265826377023617424">"२४-घन्टे ढाँचा प्रयोग गर्नुहोस्"</string>
     <string name="keywords_storage_files" msgid="1995055540202216399">"डाउनलोड"</string>
     <string name="keywords_app_default" msgid="1265502485415708667">"निम्नमार्फत खोल्नुहोस्"</string>
-    <string name="keywords_applications_settings" msgid="2078776051110952597">"अनुप्रयोगहरू"</string>
+    <string name="keywords_applications_settings" msgid="2078776051110952597">"एपहरू"</string>
     <string name="keywords_time_zone" msgid="1571973084865023954">"समय क्षेत्र"</string>
     <string name="keywords_draw_overlay" msgid="3855954419750744775">"कुराकानीको हेड"</string>
     <string name="keywords_flashlight" msgid="7733996050628473024">"फ्ल्यासलाइट, बत्ती, टर्च"</string>
@@ -3062,7 +3064,7 @@
     <string name="keywords_wifi_calling" msgid="3554052148729818521">"wifi, wi-fi, कल गर्नुहोस्, कल गर्दै"</string>
     <string name="keywords_display" msgid="355147521915213375">"स्क्रिन, टचस्क्रिन"</string>
     <string name="keywords_display_brightness_level" msgid="7649410848561920512">"मधुरो स्क्रिन, टचस्क्रिन, ब्याट्री, चहकिलो"</string>
-    <string name="keywords_display_night_display" msgid="3647370193110044967">"मधुरो स्क्रिन, रात, टिन्ट, रात्रि ड्युटी, उज्यालोपन, स्क्रिनको रङ, रङ"</string>
+    <string name="keywords_display_night_display" msgid="3647370193110044967">"मधुरो स्क्रिन, रात, टिन्ट, रात्रि ड्युटी, उज्यालोपन, स्क्रिनको रङ्ग, रङ्ग"</string>
     <string name="keywords_display_wallpaper" msgid="1202089324795933197">"पृष्ठभूमि, निजीकृत गर्नुहोस्, प्रदर्शन आफू अनुकूल गर्नुहोस्"</string>
     <string name="keywords_display_font_size" msgid="1496431330244040196">"पाठको आकार"</string>
     <string name="keywords_display_cast_screen" msgid="5744566533025100355">"परियोजना, कास्ट, स्क्रिनको प्रतिविम्ब बनाउने, स्क्रिन आदान प्रदान गर्ने, प्रतिविम्ब बनाउने, स्क्रिन आदान प्रदान, स्क्रिन कास्टिङ"</string>
@@ -3083,12 +3085,12 @@
     <string name="keywords_users" msgid="5880705776023155640">"प्रतिबन्ध, प्रतिबन्ध लगाउनुहोस्, प्रतिबन्धित"</string>
     <string name="keywords_keyboard_and_ime" msgid="3327265741354129990">"पाठ सच्याइ, सही, ध्वनि, कम्पन, स्वतः, भाषा, इसारा, सुझाव दिनु, सुझाव, विषयवस्तु, अपमानजनक, शब्द, प्रकार, इमोजी, अन्तर्राष्ट्रिय"</string>
     <string name="keywords_reset_apps" msgid="2645701455052020435">"रिसेट गर्नुहोस्, प्राथमिकताहरू, पूर्वनिर्धारित"</string>
-    <string name="keywords_all_apps" msgid="846444448435698930">"अनुप्रयोगहरू, डाउनलोड, अनुप्रयोगहरू, प्रणाली"</string>
-    <string name="keywords_app_permissions" msgid="8539841019997048500">"अनुप्रयोगहरू, अनुमतिहरू, सुरक्षा"</string>
-    <string name="keywords_default_apps" msgid="7435952699323965532">"अनुप्रयोगहरू, पूर्वनिर्धारित"</string>
-    <string name="keywords_ignore_optimizations" msgid="9127632532176249438">"अनुकूलनहरूलाई बेवास्ता गर्नुहोस्, डोज, अनुप्रयोग स्ट्यान्डबाइ"</string>
-    <string name="keywords_color_mode" msgid="8893345199519181751">"चम्किलो RGB, sRGB, रङ, प्राकृतिक, मानक"</string>
-    <string name="keywords_color_temperature" msgid="2255253972992035046">"रङ, तापक्रम, D65, D73, सेतो, पहेँलो, नीलो, न्यानो, शीतल"</string>
+    <string name="keywords_all_apps" msgid="846444448435698930">"एपहरू, डाउनलोड, एपहरू, प्रणाली"</string>
+    <string name="keywords_app_permissions" msgid="8539841019997048500">"एपहरू, अनुमतिहरू, सुरक्षा"</string>
+    <string name="keywords_default_apps" msgid="7435952699323965532">"एपहरू, पूर्वनिर्धारित"</string>
+    <string name="keywords_ignore_optimizations" msgid="9127632532176249438">"अनुकूलनहरूलाई बेवास्ता गर्नुहोस्, डोज, एप स्ट्यान्डबाइ"</string>
+    <string name="keywords_color_mode" msgid="8893345199519181751">"चम्किलो RGB, sRGB, रङ्ग, प्राकृतिक, मानक"</string>
+    <string name="keywords_color_temperature" msgid="2255253972992035046">"रङ्ग, तापक्रम, D65, D73, सेतो, पहेँलो, नीलो, न्यानो, शीतल"</string>
     <string name="keywords_lockscreen" msgid="4936846554280830394">"अनलक गर्न स्लाइड गर्नुहोस्, पासवर्ड, ढाँचा, PIN"</string>
     <string name="keywords_profile_challenge" msgid="8653718001253979611">"कार्य चुनौती, कार्य, प्रोफाइल"</string>
     <string name="keywords_unification" msgid="2020759909366983593">"कार्यको प्रोफाइल, व्यवस्थापन गरिएको प्रोफाइल, एकरूपता ल्याउनु, एकरूपता, कार्य, प्रोफाइल"</string>
@@ -3102,8 +3104,8 @@
     <string name="keywords_model_and_hardware" msgid="2743197096210895251">"क्रम संख्या, हार्डवेयरको संस्करण"</string>
     <string name="keywords_android_version" msgid="4842749998088987740">"android को सुरक्षासम्बन्धी प्याचको स्तर, बेसब्यान्ड संस्करण, कर्नेल संस्करण"</string>
     <string name="keywords_dark_ui_mode" msgid="1027966176887770318">"विषयवस्तु, उज्यालो, अँध्यारो, मोड"</string>
-    <string name="keywords_financial_apps_sms_access" msgid="3236014691838121857">"वित्तीय अनुप्रयोग, sms, अनुमति"</string>
-    <string name="keywords_systemui_theme" msgid="9150908170417305866">"अँध्यारो विषयवस्तु"</string>
+    <string name="keywords_financial_apps_sms_access" msgid="3236014691838121857">"वित्तीय एप, sms, अनुमति"</string>
+    <string name="keywords_systemui_theme" msgid="9150908170417305866">"अँध्यारो थिम"</string>
     <string name="keywords_device_feedback" msgid="6948977907405738490">"बग"</string>
     <string name="keywords_ambient_display_screen" msgid="5873935693887583428">"परिवेशको प्रदर्शन, लक स्क्रिनको प्रदर्शन"</string>
     <string name="keywords_lock_screen_notif" msgid="4914337222856805463">"लक स्क्रिनसम्बन्धी सूचना, सूचनाहरू"</string>
@@ -3132,11 +3134,11 @@
     <string name="sound_settings_summary_vibrate" msgid="2194491116884798590">"घन्टी बजाउनेलाई कम्पनमा सेट गरिएको छ"</string>
     <string name="sound_settings_summary_silent" msgid="899823817462768876">"घन्टी बजाउनेलाई मौनमा सेट गरिएको छ"</string>
     <string name="sound_settings_example_summary" msgid="2091822107298841827">"८०% मा सेट गरिँदा घन्टीको भोल्युम"</string>
-    <string name="media_volume_option_title" msgid="3553411883305505682">"मिडियाको आवाजको मात्रा"</string>
+    <string name="media_volume_option_title" msgid="3553411883305505682">"मिडियाको भोल्युम"</string>
     <string name="remote_media_volume_option_title" msgid="6355710054191873836">"भोल्युम cast गर्नुहोस्"</string>
     <string name="call_volume_option_title" msgid="5028003296631037334">"कलको भोल्युम"</string>
-    <string name="alarm_volume_option_title" msgid="3184076022438477047">"अलार्मको आवाजको मात्रा"</string>
-    <string name="ring_volume_option_title" msgid="2038924918468372264">"घन्टीको आवाजको मात्रा"</string>
+    <string name="alarm_volume_option_title" msgid="3184076022438477047">"अलार्मको भोल्युम"</string>
+    <string name="ring_volume_option_title" msgid="2038924918468372264">"घन्टीको भोल्युम"</string>
     <string name="notification_volume_option_title" msgid="1358512611511348260">"ध्वनी सूचना"</string>
     <string name="ringtone_title" msgid="1409086028485922583">"फोनको रिङटोन"</string>
     <string name="notification_ringtone_title" msgid="2932960620843976285">"सूचना सम्बन्धी पूर्वनिर्धारित ध्वनि"</string>
@@ -3160,7 +3162,7 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"कम्पनहरू"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"यन्त्र सक्रिय हुँदाका ध्वनिहरू"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"लाइभ क्याप्सन"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"स्वचालित क्याप्सनहरूसम्बन्धी मिडिया"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"मिडियाको स्वत: क्याप्सन बनाउनुहोस्"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"कहिल्यै होइन"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> समयतालिकाहरू सक्षम पारिए</item>
@@ -3194,28 +3196,28 @@
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6608239691864638854">"सङ्केतहरूलाई देखिन दिनुहोस्"</string>
     <string name="zen_mode_settings_category" msgid="5601680733422424922">"जब बाधा नपुर्‍याउनुहोस् सक्रिय छ"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="7486753018073540477">"सूचनाहरूलाई प्रतिबन्ध लगाउनुहोस्"</string>
-    <string name="zen_mode_restrict_notifications_mute" msgid="2673665450311184875">"सूचनाहरूको कुनै पनि ध्वनि छैन"</string>
+    <string name="zen_mode_restrict_notifications_mute" msgid="2673665450311184875">"सूचना आउँदा साउन्ड नआओस्"</string>
     <string name="zen_mode_restrict_notifications_mute_summary" msgid="1696217042353376674">"तपाईं आफ्नो स्क्रिनमा सूचनाहरू देख्नु हुने छ"</string>
     <string name="zen_mode_restrict_notifications_mute_footer" msgid="3049522809520549054">"सूचनाहरू आउँदा तपाईंको फोनले आवाज निकाल्ने वा कम्पन गर्ने छैन।"</string>
-    <string name="zen_mode_restrict_notifications_hide" msgid="3296933643539682552">"सूचनाहरूको कुनै पनि भिजुअल वा ध्वनि छैन"</string>
+    <string name="zen_mode_restrict_notifications_hide" msgid="3296933643539682552">" सूचना आउँदा भिजुअल वा साउन्ड नआओस्"</string>
     <string name="zen_mode_restrict_notifications_hide_summary" msgid="1449301153755270168">"तपाईं सूचनाहरू देख्न वा सुन्न सक्नु हुने छैन।"</string>
     <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"तपाईंको फोनले नयाँ वा विद्यमान सूचनाहरूका हकमा उक्त सूचना देखाउने, कम्पन गर्ने वा घन्टी बजाउने कार्य गर्ने छैन। फोनको क्रियाकलाप वा स्थितिसम्बन्धी महत्त्वपूर्ण सूचनाहरू देखिने क्रम भने जारी नै रहने छ भन्ने कुरा ख्याल गर्नुहोस्।\n\nतपाईंले बाधा नपुऱ्याउनुहोस् नामक सुविधा निष्क्रिय पार्नुभएका बेला आफ्नो स्क्रिनको सिरानबाट फेदतर्फ स्क्रोल गरी छुटेका सूचनाहरू फेला पार्न सक्नुहुन्छ।"</string>
     <string name="zen_mode_restrict_notifications_custom" msgid="3167252482570424133">"आफू अनुकूल"</string>
     <string name="zen_mode_restrict_notifications_enable_custom" msgid="6376983315529894440">"आफू अनुकूल सेटिङ सक्षम पार्नुहोस्‌"</string>
     <string name="zen_mode_restrict_notifications_disable_custom" msgid="8004212081465043044">"आफू अनुकूल सेटिङ हटाउनुहोस्‌"</string>
-    <string name="zen_mode_restrict_notifications_summary_muted" msgid="1075196788469381282">"सूचनाहरूको कुनै पनि ध्वनि छैन"</string>
+    <string name="zen_mode_restrict_notifications_summary_muted" msgid="1075196788469381282">"सूचना आउँदा साउन्ड नआओस्"</string>
     <string name="zen_mode_restrict_notifications_summary_custom" msgid="4982187708274505748">"आंशिक रूपमा लुकेको"</string>
-    <string name="zen_mode_restrict_notifications_summary_hidden" msgid="7637206880685474111">"सूचनाहरूको कुनै पनि भिजुअल वा ध्वनि छैन"</string>
+    <string name="zen_mode_restrict_notifications_summary_hidden" msgid="7637206880685474111">" सूचना आउँदा भिजुअल वा साउन्ड नआओस्"</string>
     <string name="zen_mode_what_to_block_title" msgid="2142809942549840800">"आफू अनुकूल बन्देजहरू"</string>
     <string name="zen_mode_block_effects_screen_on" msgid="1042489123800404560">"स्क्रिन सक्रिय रहेको अवस्थामा"</string>
     <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"स्क्रिन निष्क्रिय रहेको अवस्थामा"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"ध्वनि र कम्पनलाई म्यूट गर्नुहोस्"</string>
     <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"स्क्रिन सक्रिय नगर्नुहोस्‌"</string>
     <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"बत्तीलाई धिपधिपाउन नदिनुहोस्"</string>
-    <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"स्क्रिनमा सूचनाहरू पप गर्न नदिनुहोस्"</string>
+    <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"स्क्रिनमा सूचनाहरू  स्क्रिनमा सूचनाहरू देखिन नदिनुहोस्"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"स्क्रीनको शीर्षमा वस्तुस्थिति पट्टीका आइकनहरू लुकाउनुहोस्"</string>
-    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"अनुप्रयोग आइकनमा सूचनाको प्रतीक जनाउने थोप्लो लुकाउनुहोस्‌"</string>
-    <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"सूचनाहरूका लागि सक्रिय नगर्नुहोस्‌"</string>
+    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"एप आइकनमा सूचनाको प्रतीक जनाउने थोप्लो लुकाउनुहोस्‌"</string>
+    <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"सूचना आउँदा सक्रिय नहोस्‌"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"सूचनाको सूचीबाट लुकाउनुहोस्"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"कहिल्यै होइन"</string>
     <string name="zen_mode_block_effect_summary_screen_off" msgid="2985086455557755722">"स्क्रिन निष्क्रिय रहेको अवस्थामा"</string>
@@ -3223,17 +3225,17 @@
     <string name="zen_mode_block_effect_summary_sound" msgid="4907185880913861880">"ध्वनि र कम्पन"</string>
     <string name="zen_mode_block_effect_summary_some" msgid="6035118904496072665">"सुचनाहरूका ध्वनि, कम्पन र केही भिजुअल संकेतहरू"</string>
     <string name="zen_mode_block_effect_summary_all" msgid="2830443565687247759">"सुचनाहरूका ध्वनि, कम्पन र भिजुअल संकेतहरू"</string>
-    <string name="zen_mode_blocked_effects_footer" msgid="4375156159613413924">"सामान्य फोन गतिविधिको सूचना आवश्यक हुन्छ र स्थिति कहिल्यै लुक्ने छैन"</string>
+    <string name="zen_mode_blocked_effects_footer" msgid="4375156159613413924">"फोन सामान्य रूपले चल्न आवश्यक क्रियाकलाप र स्टाटस कहिलै पनि लुकाइँदैन"</string>
     <string name="zen_mode_no_exceptions" msgid="3099578343994492857">"कुनै पनि होइन"</string>
     <string name="zen_mode_other_options" msgid="7216192179063769057">"अन्य विकल्पहरू"</string>
     <string name="zen_mode_add" msgid="2533484377786927366">"थप्नुहोस्"</string>
     <string name="zen_mode_enable_dialog_turn_on" msgid="6396050543542026184">"सक्रिय गर्नुहोस्"</string>
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"अहिले नै सक्रिय गर्नुहोस्"</string>
-    <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"अहिले नै निष्क्रिय पार्नुहोस्"</string>
+    <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"अहिले नै अफ गर्नुहोस्"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"<xliff:g id="FORMATTED_TIME">%s</xliff:g> सम्म बाधा नपुर्‍याउनुहोस् नामक मोड सक्रिय हुन्छ"</string>
     <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"तपाईंले निष्क्रिय नपारेसम्म बाधा नपुर्‍याउनुहोस् नामक मोड सक्रिय रहनेछ"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"(<xliff:g id="RULE_NAME">%s</xliff:g>) नामक समयतालिकाले बाधा नपुर्‍याउनुहोस् नामक मोडलाई स्वतः सक्रिय गरेको थियो"</string>
-    <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"कुनै अनुप्रयोग <xliff:g id="APP_NAME">%s</xliff:g> ले बाधा नपुर्‍याउनुहोस् नामक मोडलाई स्वतः सक्रिय गर्‍यो"</string>
+    <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"कुनै एप <xliff:g id="APP_NAME">%s</xliff:g> ले बाधा नपुर्‍याउनुहोस् नामक मोडलाई स्वतः सक्रिय गर्‍यो"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"बाधा नपुऱ्याउनुहोस् नामक मोड आफू अनुकूल सेटिङहरू भएका <xliff:g id="RULE_NAMES">%s</xliff:g> का लागि सक्रिय छ।"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer_link" msgid="4007974052885089379"><annotation id="link">" आफू अनुकूल सेटिङहरू हेर्नुहोस्"</annotation></string>
     <string name="zen_interruption_level_priority" msgid="9178419297408319234">"प्राथमिकता मात्र"</string>
@@ -3273,8 +3275,8 @@
     <string name="zen_msg_event_reminder_footer" msgid="164400918479831580">"बाधा नपुर्‍याउनुहोस् मोड सक्रिय भएका बेला तपाईंले माथि अनुमति दिनुभएका वस्तुहरूबाहेक सन्देश, रिमाइन्डर तथा कार्यक्रमहरूलाई म्युट गरिने छ। तपाईं आफ्ना साथीभाइ, परिवारजन वा अन्य सम्पर्कहरूलाई आफूसँग सम्पर्क राख्न दिने गरी सन्देशसम्बन्धी सेटिङहरू समायोजन गर्न सक्नुहुन्छ।"</string>
     <string name="zen_onboarding_ok" msgid="6403635918125323678">"सम्पन्न भयो"</string>
     <string name="zen_onboarding_settings" msgid="1416466597876383322">"सेटिङहरू"</string>
-    <string name="zen_onboarding_new_setting_title" msgid="3622673375041304362">"सूचनाहरूको कुनै पनि भिजुअल वा ध्वनि छैन"</string>
-    <string name="zen_onboarding_current_setting_title" msgid="2560330551761407563">"सूचनाहरूको कुनै पनि ध्वनि छैन"</string>
+    <string name="zen_onboarding_new_setting_title" msgid="3622673375041304362">" सूचना आउँदा भिजुअल वा साउन्ड नआओस्"</string>
+    <string name="zen_onboarding_current_setting_title" msgid="2560330551761407563">"सूचना आउँदा साउन्ड नआओस्"</string>
     <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"तपाईं सूचनाहरू देख्न वा सुन्न सक्नु हुने छैन। ताराङ्कित सम्पर्क ठेगाना तथा बारम्बार कल गर्ने व्यक्तिका कलहरू।"</string>
     <string name="zen_onboarding_current_setting_summary" msgid="3569246708507270821">"(हालको सेटिङ)"</string>
     <string name="zen_onboarding_dnd_visual_disturbances_header" msgid="7584229011611927613">"बाधा नपुर्याउनुहोस् नामक मोडका सूचनासम्बन्धी सेटिङहरू बदल्ने हो?"</string>
@@ -3293,7 +3295,7 @@
     <string name="ringtones_category_preference_title" msgid="4491932700769815470">"रिङटोनहरू"</string>
     <string name="other_sound_category_preference_title" msgid="2045757472469840859">"ध्वनि र कम्पन सम्बन्धी अन्य कुराहरू"</string>
     <string name="configure_notification_settings" msgid="291914315140851270">"सूचनाहरू"</string>
-    <string name="recent_notifications" msgid="8125865995065032049">"हालै पठाइएका अनुप्रयोगहरू"</string>
+    <string name="recent_notifications" msgid="8125865995065032049">"हालै पठाइएका एपहरू"</string>
     <string name="recent_notifications_see_all_title" msgid="4089007770442871469">"विगत ७ दिनयताका सबै हेर्नुहोस्"</string>
     <string name="advanced_section_header" msgid="984680389373090015">"उन्‍नत"</string>
     <string name="profile_section_header" msgid="5471479005472037417">"कार्यका सूचनाहरू"</string>
@@ -3302,7 +3304,7 @@
     <string name="asst_capabilities_actions_replies_title" msgid="3929395108744251338">"स्मार्ट कारबाही र जवाफहरू"</string>
     <string name="asst_capabilities_actions_replies_summary" msgid="5647029698181357902">"सान्दर्भिक सूचनासम्बन्धी कार्यहरू र सूचनाका द्रुत जवाफहरू स्वतः थप्नुहोस्"</string>
     <string name="hide_silent_icons_title" msgid="1070905516921542662">"मौन सूचनाको स्थितिका आइकनहरू लुकाउनुहोस्"</string>
-    <string name="hide_silent_icons_summary" msgid="2624346914488256888">"वस्तुस्थिति पट्टीमा मौन सूचनाका आइकनहरू लुकाउनुहोस्"</string>
+    <string name="hide_silent_icons_summary" msgid="2624346914488256888">"स्टाटस बारमा मौन सूचनाका आइकनहरू लुकाउनुहोस्"</string>
     <string name="notification_badging_title" msgid="6311699476970264712">"सूचनाको प्रतीक जनाउने थोप्लोहरूलाई अनुमति दिनुहोस्"</string>
     <string name="notification_bubbles_title" msgid="9196562435741861317">"बबलहरू"</string>
     <string name="notification_bubbles_summary" msgid="4624512775901949578">"तैरने सर्टकटहरूको प्रयोग गरी अनुप्रयोगका सामग्रीमाथि जुनसुकै ठाउँबाट द्रुत पहुँच राख्नुहोस्"</string>
@@ -3319,7 +3321,7 @@
     <string name="notification_pulse_title" msgid="4861418327614907116">"झिम झिम गर्ने बत्ती"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"लक स्क्रिनमा"</string>
     <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"कार्य प्रोफाइल लक हुँदा"</string>
-    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"सबै सूचना सामग्री देखाउनुहोस्"</string>
+    <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"सबै सूचना देखाउनुहोस्"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"संवेदनशील सामग्री लुकाउनुहोस्"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"कुनै सूचनाहरू नदेखाउनुहोस्"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"तपाईंको उपकरण बन्द हुँदा, तपाईं कसरी सूचनाहरू देखाउन चाहनुहुन्छ?"</string>
@@ -3348,7 +3350,7 @@
     <string name="notification_silence_title" msgid="6959637402003838093">"मौन रूपमा देखाउनुहोस्"</string>
     <string name="notification_alert_title" msgid="750683027055192648">"अलर्ट"</string>
     <string name="allow_interruption" msgid="3548841026410702850">"अवरोधहरूहरूलाई अनुमति दिनुहोस्"</string>
-    <string name="allow_interruption_summary" msgid="5207637026831135377">"अनुप्रयोगलाई बज्न, कम्पन गर्न र/वा स्क्रिनमा सूचनाहरू पप गर्न दिनुहोस्"</string>
+    <string name="allow_interruption_summary" msgid="5207637026831135377">"एपलाई बज्न, कम्पन गर्न र/वा स्क्रिनमा सूचनाहरू पप गर्न दिनुहोस्"</string>
     <string name="notification_channel_summary_min" msgid="8646305539478179811">"न्यून महत्त्वको सूचना"</string>
     <string name="notification_channel_summary_low" msgid="7753266237705850510">"सामान्य महत्वको सूचना"</string>
     <string name="notification_channel_summary_default" msgid="7529537115678964164">"उच्च महत्त्वको सूचना"</string>
@@ -3360,38 +3362,38 @@
     <string name="notifications_sent_never" msgid="237997329598144638">"कहिल्यै होइन"</string>
     <string name="manage_notification_access_title" msgid="5348743662189787547">"सूचनासम्बन्धी पहुँच"</string>
     <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"कार्य प्रोफाइलमाथिका पहुँच सम्बन्धी सूचनाहरूलाई बन्द गरिएको छ"</string>
-    <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"अनुप्रयोगहरूले सूचनाहरू पढ्न सक्दैन"</string>
+    <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"एपहरूले सूचनाहरू पढ्न सक्दैन"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="8496218948429646792">
-      <item quantity="other">%d अनुप्रयोगहरूले सूचनाहरू पढ्न सक्छन्</item>
+      <item quantity="other">%d एपहरूले सूचनाहरू पढ्न सक्छन्</item>
       <item quantity="one">%d अनुप्रयोगले सूचनाहरू पढ्न सक्छ</item>
     </plurals>
     <string name="notification_assistant_title" msgid="8216604031352764011">"सूचनासम्बन्धी सहायक सेवा"</string>
     <string name="no_notification_assistant" msgid="9140123568386413264">"सहायकसम्बन्धी कुनै सेवा छैन"</string>
-    <string name="no_notification_listeners" msgid="1366386609506834717">"कुनै स्थापित अनुप्रयोगहरूले सूचना पहुँच अनुरोध गरेका छैनन्।"</string>
+    <string name="no_notification_listeners" msgid="1366386609506834717">"कुनै स्थापित एपहरूले सूचना पहुँच अनुरोध गरेका छैनन्।"</string>
     <string name="notification_assistant_security_warning_title" msgid="4190584438086738496">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई सूचनामाथि पहुँच राख्ने अनुमति दिने हो?"</string>
-    <string name="notification_assistant_security_warning_summary" msgid="6924513399671031930">"<xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> ले सम्पर्कको नाम र तपाईंले प्राप्त गर्नुभएका पाठ सन्देशहरू जस्ता व्यक्तिगत जानकारीलगायत सबै सूचनाहरू पढ्न सक्ने छ। यसले सूचनाहरू परिमार्जन गर्न वा खारेज गर्न वा तिनमा रहेका कारबाहीमूलक बटनहरू ट्रिगर गर्न पनि सक्ने छ। \n\nयसले उक्त अनुप्रयोगलाई बाधा नपुऱ्याउनुहोस् नामक मोड सक्रिय गर्ने वा निष्क्रिय पार्ने र सम्बन्धित सेटिङहरू परिवर्तन गर्ने क्षमता पनि प्रदान गर्ने छ।"</string>
+    <string name="notification_assistant_security_warning_summary" msgid="6924513399671031930">"<xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> ले सम्पर्कको नाम र तपाईंले प्राप्त गर्नुभएका पाठ सन्देशहरू जस्ता व्यक्तिगत जानकारीलगायत सबै सूचनाहरू पढ्न सक्ने छ। यसले सूचनाहरू परिमार्जन गर्न वा खारेज गर्न वा तिनमा रहेका कारबाहीमूलक बटनहरू ट्रिगर गर्न पनि सक्ने छ। \n\nयसले उक्त एपलाई बाधा नपुऱ्याउनुहोस् नामक मोड सक्रिय गर्ने वा निष्क्रिय पार्ने र सम्बन्धित सेटिङहरू परिवर्तन गर्ने क्षमता पनि प्रदान गर्ने छ।"</string>
     <string name="notification_listener_security_warning_title" msgid="4902253246428777797">"<xliff:g id="SERVICE">%1$s</xliff:g> का लागि सूचना पहुँच अनुमति दिने हो?"</string>
-    <string name="notification_listener_security_warning_summary" msgid="4454702907350100288">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> तपाईँले पाउनुहुने सन्देशहरूका सम्पर्कका नाम र पाठ जस्ता व्यक्तिगत जानकारी लगायत सबै सूचनाहरूलाई पढ्न सक्षम हुनेछ। यसले सूचनाहरूलाई खारेज गर्न वा तिनीहरूमा रहेका कारबाही सम्बन्धी बटनहरूलाई ट्रिगर गर्न पनि सक्नेछ। \n\nयसले अनुप्रयोगलाई बाधा नपुर्याउनुहोस् मोडलाई सक्रिय वा निष्क्रिय पार्ने र सम्बन्धित सेटिङहरूलाई परिवर्तन गर्ने क्षमता पनि दिनेछ।"</string>
+    <string name="notification_listener_security_warning_summary" msgid="4454702907350100288">"<xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> तपाईँले पाउनुहुने सन्देशहरूका सम्पर्कका नाम र पाठ जस्ता व्यक्तिगत जानकारी लगायत सबै सूचनाहरूलाई पढ्न सक्षम हुनेछ। यसले सूचनाहरूलाई खारेज गर्न वा तिनीहरूमा रहेका कारबाही सम्बन्धी बटनहरूलाई ट्रिगर गर्न पनि सक्नेछ। \n\nयसले एपलाई बाधा नपुर्याउनुहोस् मोडलाई सक्रिय वा निष्क्रिय पार्ने र सम्बन्धित सेटिङहरूलाई परिवर्तन गर्ने क्षमता पनि दिनेछ।"</string>
     <string name="notification_listener_disable_warning_summary" msgid="162165151519082978">"यदि तपाईं <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> का लागि सूचना सम्बन्धी पहुँचलाई निष्क्रिय पार्नुहुन्छ भने बाधा नपुर्याउनुहोस् सम्बन्धी पहुँच पनि निष्क्रिय हुन सक्छ।"</string>
     <string name="notification_listener_disable_warning_confirm" msgid="7863495391671154188">"निष्क्रिय पार्नुहोस्"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="6264631825225298458">"रद्द गर्नुहोस्"</string>
     <string name="vr_listeners_title" msgid="511483902408792832">"VR का सहायक सेवाहरू"</string>
-    <string name="no_vr_listeners" msgid="7675484190394450979">"कुनै पनि स्थापित अनुप्रयोगहरूले VR का सहायक सेवाहरूको रूपमा चल्नका लागि अनुरोध गरेका छैनन्।"</string>
+    <string name="no_vr_listeners" msgid="7675484190394450979">"कुनै पनि स्थापित एपहरूले VR का सहायक सेवाहरूको रूपमा चल्नका लागि अनुरोध गरेका छैनन्।"</string>
     <string name="vr_listener_security_warning_title" msgid="7019322246707645361">"<xliff:g id="SERVICE">%1$s</xliff:g> लाई VR को सेवामा पहुँचका लागि अनुमति दिने हो?"</string>
     <string name="vr_listener_security_warning_summary" msgid="5093225583584522067">"तपाईँले अनुप्रयोगहरूलाई भर्चुअल रियालिटी मोडमा प्रयोग गरिरहेको बेला <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> चल्नका लागि सक्षम हुनेछ।"</string>
     <string name="display_vr_pref_title" msgid="1088464812293416981">"यन्त्र VR मा हुँदा"</string>
     <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"अस्पष्टता कम पार्नुहोस् (सिफारिस गरिएको)"</string>
     <string name="display_vr_pref_off" msgid="4681320968818852691">"स्क्रिन झिलमिलाउने प्रभाव कम गर्नुहोस्"</string>
     <string name="picture_in_picture_title" msgid="4960733106166035448">"Picture-in-picture"</string>
-    <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"स्थापना गरिएका कुनै पनि अनुप्रयोगहरूले Picture-in-picture मोडलाई समर्थन गर्दैनन्"</string>
+    <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"स्थापना गरिएका कुनै पनि एपहरूले Picture-in-picture मोडलाई समर्थन गर्दैनन्"</string>
     <string name="picture_in_picture_keywords" msgid="7326958702002259262">"तस्बिरमा तस्बिर मोडमा तस्बिर"</string>
     <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"Picture-in-picture"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"Picture-in-picture लाई अनुमति दिनुहोस्"</string>
-    <string name="picture_in_picture_app_detail_summary" msgid="918632751775525347">"यो अनुप्रयोग खुला रहेको अवस्थामा वा तपाईंले यसलाई छाड्नुभएपछि (उदाहरणका लागि, भिडियो हेर्ने कार्य जारी राख्न) यस अनुप्रयोगलाई picture-in-picture विन्डो सिर्जना गर्न अनुमति दिनुहोस्। यो विन्डो तपाईंले प्रयोग गरिरहनुभएका अन्य अनुप्रयोगहरूको शीर्ष भागमा देखिन्छ।"</string>
-    <string name="manage_zen_access_title" msgid="3058206309728524196">"पहुँचमा बाधा नपुर्‍यानुहोस्"</string>
+    <string name="picture_in_picture_app_detail_summary" msgid="918632751775525347">"यो एप खुला रहेको अवस्थामा वा तपाईंले यसलाई छाड्नुभएपछि (उदाहरणका लागि, भिडियो हेर्ने कार्य जारी राख्न) यस एपलाई picture-in-picture विन्डो सिर्जना गर्न अनुमति दिनुहोस्। यो विन्डो तपाईंले प्रयोग गरिरहनुभएका अन्य एपहरूको शीर्ष भागमा देखिन्छ।"</string>
+    <string name="manage_zen_access_title" msgid="3058206309728524196">"बाधा नपुर्‍यानुहोस् पहुँच"</string>
     <string name="zen_access_detail_switch" msgid="8706332327904974500">"बाधा नपुर्‍याउनुहोस् नामक सुविधा सक्रिय गर्ने अनुमति दिनुहोस्"</string>
-    <string name="zen_access_empty_text" msgid="7667538993781607731">"कुनै पनि स्थापित अनुप्रयोगहरू द्वारा पहुँचमा बाधा नपुर्‍यानुहोस् को माग गरेका छैनन्"</string>
-    <string name="loading_notification_apps" msgid="1978345231934072091">"अनुप्रयोगहरू लोड हुँदै..."</string>
+    <string name="zen_access_empty_text" msgid="7667538993781607731">"कुनै पनि स्थापित एपहरू द्वारा बाधा नपुर्‍यानुहोस् पहुँच को माग गरेका छैनन्"</string>
+    <string name="loading_notification_apps" msgid="1978345231934072091">"एपहरू लोड हुँदै..."</string>
     <string name="app_notifications_off_desc" msgid="3904090905748895146">"तपाईंको अनुरोधबमोजिम Android ले यस अनुप्रयोगका सूचनाहरूलाई यो यन्त्रमा देखाउन दिइरहेको छैन"</string>
     <string name="channel_notifications_off_desc" msgid="8005444443218306611">"तपाईंको अनुरोधबमोजिम Android ले सूचनाहरूको यस कोटिलाई यो यन्त्रमा देखिन दिइरहेको छैन"</string>
     <string name="channel_group_notifications_off_desc" msgid="7154205544298672850">"तपाईंको अनुरोधबमोजिम Android ले सूचनाहरूको यस समूहलाई यो यन्त्रमा देखाउन दिइरहेको छैन"</string>
@@ -3487,7 +3489,7 @@
     <string name="zen_mode_messages" msgid="2908722562188394107">"पाठ सन्देशलाई अनुमति दिनुहोस्‌"</string>
     <string name="zen_mode_messages_footer" msgid="5048951937714668561">"अनुमति दिइएका सन्देशहरू आउँदा घन्टी बज्छ भन्ने कुरा सुनिश्चित गर्न आफ्नो यन्त्रलाई घन्टी बज्ने, कम्पन हुने वा मौन रहनेमध्ये कुन चाहिँ विकल्पमा सेट गरिएको छ भन्ने कुरा जाँच गर्नुहोस्।"</string>
     <string name="zen_mode_custom_messages_footer" msgid="5566007423100361691">"‘<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>’ का आगमन पाठ सन्देशहरूलाई रोक लगाइएको छ। तपाईं आफ्ना साथीभाइ, परिवारजन वा अन्य सम्पर्कहरूलाई आफूसँग सम्पर्क राख्न दिने गरी सेटिङहरू समायोजन गर्न सक्नुहुन्छ।"</string>
-    <string name="zen_mode_messages_title" msgid="786261471294055181">"SMS, MMS र सन्देश प्रवाह गर्ने अनुप्रयोग"</string>
+    <string name="zen_mode_messages_title" msgid="786261471294055181">"SMS, MMS र सन्देश प्रवाह गर्ने एप"</string>
     <string name="zen_mode_from_anyone" msgid="7778836826814131083">"कसैबाट"</string>
     <string name="zen_mode_from_contacts" msgid="267034158294332688">"मात्र सम्पर्कहरूबाट"</string>
     <string name="zen_mode_from_starred" msgid="7349984569117392260">"ताराङ्कित सम्पर्कहरूबाट मात्र"</string>
@@ -3502,12 +3504,12 @@
     <string name="zen_mode_media" msgid="3701280649874724055">"मिडियाका ध्वनिहरू प्ले गर्नुहोस्"</string>
     <string name="zen_mode_media_list" msgid="509327580522287125">"मिडिया"</string>
     <string name="zen_mode_system" msgid="597437265986355038">"छुवाइसम्बन्धी ध्वनि अनुमति दिनुहोस्‌"</string>
-    <string name="zen_mode_system_list" msgid="480192458506838077">"छुवाइसम्बन्धी ध्वनि"</string>
+    <string name="zen_mode_system_list" msgid="480192458506838077">"टच गर्दा आउने आवाज"</string>
     <string name="zen_mode_reminders" msgid="7560664194610054038">"रिमाइन्डरहरूलाई अनुमति दिनुहोस्"</string>
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"रिमाइन्डरहरू"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"कार्यक्रमहरूलाई अनुमति दिनुहोस्"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"अनुप्रयोगहरूलाई ओभरराइड गर्ने अनुमति दिनुहोस्"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"अनुप्रयोगका अपवादहरू"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"यो सेटिङ लागू हुने एप"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="other"><xliff:g id="NUMBER">%1$d</xliff:g> अनुप्रयोगका सूचनाहरूले बाधा नपुऱ्याउनुहोस्‌ नामक मोडलाई ओभरराइड गर्न सक्छन्</item>
       <item quantity="one">१ अनुप्रयोगका सूचनाहरूले बाधा नपुऱ्याउनुहोस्‌ नामक मोडलाई ओभरराइड गर्न सक्छन्</item>
@@ -3517,8 +3519,8 @@
     <string name="zen_mode_contacts_callers" msgid="3116829245339716399">"सम्पर्क ठेगानाहरू"</string>
     <string name="zen_mode_starred_callers" msgid="1317376207713013472">"ताराङ्कित सम्पर्कहरू"</string>
     <string name="zen_mode_repeat_callers" msgid="1435309867554692340">"कलरहरू दोरोर्‍याउनुहोस्"</string>
-    <string name="zen_mode_repeat_callers_list" msgid="2750270907597457279">"कलरहरू दोहोर्‍याउनुहोस्"</string>
-    <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"दोहोरिएका कल गर्ने व्यक्तिहरूलाई अनुमति दिनुहोस्"</string>
+    <string name="zen_mode_repeat_callers_list" msgid="2750270907597457279">"धेरै कल गर्ने व्यक्तिहरू"</string>
+    <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"धेरै कल गर्ने व्यक्तिहरू"</string>
     <string name="zen_mode_calls_summary_one" msgid="8327371053236689649">"<xliff:g id="CALLER_TYPE">%1$s</xliff:g> का कललाई अनुमति दिनुहोस्‌"</string>
     <string name="zen_mode_calls_summary_two" msgid="9017678770532673578">"<xliff:g id="CALLER_TYPE">%1$s</xliff:g> र <xliff:g id="CALLERT_TPYE">%2$s</xliff:g> का कललाई अनुमति दिनुहोस्‌"</string>
     <string name="zen_mode_repeat_callers_summary" msgid="1752513516040525545">"एउटै व्यक्तिले <xliff:g id="MINUTES">%d</xliff:g> मिनेटको अवधिमा दोस्रो पटक कल गरेको खण्डमा"</string>
@@ -3553,7 +3555,7 @@
     <string name="switch_on_text" msgid="7100491749799298324">"सक्रिय"</string>
     <string name="switch_off_text" msgid="3539551289454353555">"निष्क्रिय"</string>
     <string name="screen_pinning_title" msgid="578020318289781102">"पर्दा पिन गर्दै"</string>
-    <string name="screen_pinning_description" msgid="3814537379086412278">"यो सेटिङ सक्रिय गर्दा, हालको स्क्रिनलाई तपाईंले अनपिन नगरुन्जेल दृश्य अवस्थामा राख्न स्क्रिन पिनिङ प्रयोग गर्न सक्नुहुन्छ।\n\nस्क्रिन पिनिङ सुविधा प्रयोग गर्न:\n\n१. स्क्रिन पिनिङ सक्रिय रहेको सुनिश्चित गर्नुहोस् \n\n२. ओभरभ्यू खोल्नुहोस्\n\n३. स्क्रिनको सिरानमा रहेको अनुप्रयोग आइकनमा ट्याप गरी  पिनमा ट्याप गर्नुहोस्"</string>
+    <string name="screen_pinning_description" msgid="3814537379086412278">"यो सेटिङ सक्रिय गर्दा, हालको स्क्रिनलाई तपाईंले अनपिन नगरुन्जेल दृश्य अवस्थामा राख्न स्क्रिन पिनिङ प्रयोग गर्न सक्नुहुन्छ।\n\nस्क्रिन पिनिङ सुविधा प्रयोग गर्न:\n\n१. स्क्रिन पिनिङ सक्रिय रहेको सुनिश्चित गर्नुहोस् \n\n२. ओभरभ्यू खोल्नुहोस्\n\n३. स्क्रिनको सिरानमा रहेको एप आइकनमा ट्याप गरी  पिनमा ट्याप गर्नुहोस्"</string>
     <string name="screen_pinning_unlock_pattern" msgid="1060334707088339444">"पिन निकाल्नुअघि खोल्ने ढाँचा सोध्नुहोस्"</string>
     <string name="screen_pinning_unlock_pin" msgid="1441705536015645023">"पिन निकाल्नुअघि PIN सोध्नुहोस्"</string>
     <string name="screen_pinning_unlock_password" msgid="1017776884000170841">"पिन निकाल्नुअघि पासवर्ड सोध्नुहोस्"</string>
@@ -3582,7 +3584,7 @@
     <string name="encrypt_talkback_dialog_message_pin" msgid="1912533826818077891">"यो उपकरण सुरु गर्न जब तपाईँले आफ्नो PIN प्रविष्टि गर्नुहुन्छ, पहुँच सेवा जस्तै <xliff:g id="SERVICE">%1$s</xliff:g> अझै उपलब्ध हुने छैन।"</string>
     <string name="encrypt_talkback_dialog_message_pattern" msgid="4415837749933863432">"यो उपकरण सुरु गर्न जब तपाईँले आफ्नो ढाँचा प्रविष्टि गर्नुहुन्छ, पहुँच सेवा जस्तै <xliff:g id="SERVICE">%1$s</xliff:g> अझै उपलब्ध हुने छैन।"</string>
     <string name="encrypt_talkback_dialog_message_password" msgid="4276703366120881008">"यो उपकरण सुरु गर्न जब तपाईँले आफ्नो पासवर्ड प्रविष्टि गर्नुहुन्छ, पहुँच सेवा <xliff:g id="SERVICE">%1$s</xliff:g> जस्तो अझै उपलब्ध हुने छैन।"</string>
-    <string name="direct_boot_unaware_dialog_message" msgid="5253248227337914350">"टिपोट: तपाईंले आफ्नो फोन पुनः सुरु गर्नुभयो र त्यसमा स्क्रिन लक सेट गरिएको छ भने तपाईंले आफ्नो फोन अनलक नगरून्जेल यो अनुप्रयोग सुरु हुन सक्दैन"</string>
+    <string name="direct_boot_unaware_dialog_message" msgid="5253248227337914350">"टिपोट: तपाईंले आफ्नो फोन पुनः सुरु गर्नुभयो र त्यसमा स्क्रिन लक सेट गरिएको छ भने तपाईंले आफ्नो फोन अनलक नगरून्जेल यो एप सुरु हुन सक्दैन"</string>
     <string name="imei_information_title" msgid="7666097743700170757">"IMEI जानकारी"</string>
     <string name="imei_information_summary" msgid="716516316022275083">"IMEI सान्दर्भिक जानकारी"</string>
     <string name="slot_number" msgid="785422579177068698">"(घेरा<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
@@ -3629,29 +3631,29 @@
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"कुनै अनुमतिहरू प्रदान गरिएको छैन"</string>
     <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"कुनै अनुमतिहरू अनुरोध गरिएको छैन"</string>
-    <string name="filter_all_apps" msgid="4042756539846043675">"सबै अनुप्रयोगहरू"</string>
-    <string name="filter_enabled_apps" msgid="5888459261768538489">"स्थापना गरिएका अनुप्रयोगहरू"</string>
-    <string name="filter_instant_apps" msgid="8087483282854072366">"तात्कालिक अनुप्रयोगहरू"</string>
+    <string name="filter_all_apps" msgid="4042756539846043675">"सबै एपहरू"</string>
+    <string name="filter_enabled_apps" msgid="5888459261768538489">"स्थापना गरिएका एपहरू"</string>
+    <string name="filter_instant_apps" msgid="8087483282854072366">"तात्कालिक एपहरू"</string>
     <string name="filter_personal_apps" msgid="3473268022652904457">"व्यक्तिगत"</string>
     <string name="filter_work_apps" msgid="4202483998339465542">"कार्य"</string>
-    <string name="filter_notif_all_apps" msgid="1862666327228804896">"अनुप्रयोगहरू: सबै"</string>
+    <string name="filter_notif_all_apps" msgid="1862666327228804896">"एपहरू: सबै"</string>
     <string name="filter_notif_blocked_apps" msgid="5694956954776028202">"निष्क्रिय पारियो"</string>
     <string name="filter_notif_urgent_channels" msgid="5000735867167027148">"प्रकारहरू: अत्यन्तै महत्त्वका"</string>
     <string name="filter_notif_low_channels" msgid="6859599463135775287">"प्रकारहरू: कम महत्त्वका"</string>
     <string name="filter_notif_blocked_channels" msgid="6110799550327612670">"प्रकारहरू: निष्क्रिय पारिएका"</string>
     <string name="filter_notif_dnd_channels" msgid="3251570137256371092">"प्रकारहरू: बाधा नपुर्‍याउनुहोस् मोडलाई ओभरराइड गर्ने"</string>
     <string name="advanced_apps" msgid="6643869089344883537">"उन्नत"</string>
-    <string name="configure_apps" msgid="4066683118857400943">"अनुप्रयोगहरू कन्फिगर गर्नुहोस्"</string>
-    <string name="unknown_app" msgid="2312052973570376877">"अज्ञात अनुप्रयोग"</string>
+    <string name="configure_apps" msgid="4066683118857400943">"एपहरू कन्फिगर गर्नुहोस्"</string>
+    <string name="unknown_app" msgid="2312052973570376877">"अज्ञात एप"</string>
     <string name="app_permissions" msgid="3215958256821756086">"अनुमतिका प्रबन्धक"</string>
-    <string name="app_permissions_summary" msgid="8785798165776061594">"<xliff:g id="APPS">%1$s</xliff:g> प्रयोग गरिरहेका अनुप्रयोगहरू"</string>
+    <string name="app_permissions_summary" msgid="8785798165776061594">"<xliff:g id="APPS">%1$s</xliff:g> प्रयोग गरिरहेका एपहरू"</string>
     <string name="tap_to_wake" msgid="1902991239401652323">"सक्रिय पार्न ट्याप गर्नुहोस्"</string>
     <string name="tap_to_wake_summary" msgid="8485222120721006793">"यन्त्र सक्रिय पार्न स्क्रिनको जहाँसुकै दुई पटक ट्याप गर्नुहोस्"</string>
     <string name="domain_urls_title" msgid="7939209950373945367">"लिंकहरू खोल्दै"</string>
     <string name="domain_urls_summary_none" msgid="5401203416941265109">"समर्थित लिंकहरू नखोल्नुहोस्"</string>
     <string name="domain_urls_summary_one" msgid="3893975485064803435">"<xliff:g id="DOMAIN">%s</xliff:g> खोल्नुहोस्"</string>
     <string name="domain_urls_summary_some" msgid="2130534984153210797">"<xliff:g id="DOMAIN">%s</xliff:g> र अन्य URL हरूलाई खोल्नुहोस्"</string>
-    <string name="domain_urls_apps_summary_off" msgid="1110203970617922543">"समर्थित लिंकहरू खोल्न सक्ने अनुप्रयोग छैन"</string>
+    <string name="domain_urls_apps_summary_off" msgid="1110203970617922543">"समर्थित लिंकहरू खोल्न सक्ने एप छैन"</string>
     <plurals name="domain_urls_apps_summary_on" formatted="false" msgid="3571309605151815405">
       <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> अनुप्रयोगले समर्थित लिंकहरू खोल्न सक्छन्</item>
       <item quantity="one">एउटा अनुप्रयोगले समर्थित लिंकहरू खोल्न सक्छ</item>
@@ -3662,25 +3664,25 @@
     <string name="default_apps_title" msgid="3848048391400989931">"पूर्वनिर्धारित"</string>
     <string name="default_for_work" msgid="7290411716804495366">"कार्यका लागि पूर्वनिर्धारित"</string>
     <string name="assist_and_voice_input_title" msgid="324148194703846130">"सहायक तथा आवाजको इनपुट"</string>
-    <string name="default_assist_title" msgid="2060846994203235317">"सहायक अनुप्रयोग"</string>
+    <string name="default_assist_title" msgid="2060846994203235317">"सहायक एप"</string>
     <string name="assistant_security_warning_title" msgid="8014460924169723059">"<xliff:g id="ASSISTANT_APP_NAME">%s</xliff:g>लाई आफ्नो सहायक बनाउन चाहनुहुन्छ?"</string>
-    <string name="assistant_security_warning" msgid="1304057692847069938">"तपाईँको स्क्रिनमा देखिने वा अनुप्रयोगहरू भित्र पहुँचयोग्य जानकारी लगायत यो सहायकले तपाईँको प्रणालीमा प्रयोगमा रहेका अनुप्रयोगहरूकाबारे जानकारी पढ्न सक्षम हुनेछ।"</string>
+    <string name="assistant_security_warning" msgid="1304057692847069938">"तपाईँको स्क्रिनमा देखिने वा एपहरू भित्र पहुँचयोग्य जानकारी लगायत यो सहायकले तपाईँको प्रणालीमा प्रयोगमा रहेका एपहरूकाबारे जानकारी पढ्न सक्षम हुनेछ।"</string>
     <string name="assistant_security_warning_agree" msgid="5105692801460137289">"सहमत छु"</string>
     <string name="assistant_security_warning_disagree" msgid="4217490999193100459">"असहमत छु"</string>
     <string name="choose_voice_input_title" msgid="5369311838580756359">"आवाज इनपुट रोज्नुहोस्"</string>
-    <string name="default_browser_title" msgid="4933937500898014977">"ब्राउजर अनुप्रयोग"</string>
+    <string name="default_browser_title" msgid="4933937500898014977">"ब्राउजर एप"</string>
     <string name="default_browser_title_none" msgid="46431244274747124">"कुनै पूर्वनिर्धारित ब्राउजर छैन"</string>
-    <string name="default_phone_title" msgid="6038690021912575740">"फोन अनुप्रयोग"</string>
+    <string name="default_phone_title" msgid="6038690021912575740">"फोन एप"</string>
     <string name="roles_title" msgid="2825063787446244357">"भूमिकाहरू"</string>
     <string name="default_app" msgid="8861276008866619872">"(पूर्वनिर्धारित)"</string>
     <string name="system_app" msgid="4111402206594443265">"(प्रणाली)"</string>
     <string name="system_default_app" msgid="1454719098589351197">"(प्रणालीको पूर्वनिर्धारित)"</string>
-    <string name="apps_storage" msgid="5658466038269046038">"अनुप्रयोग भण्डारण"</string>
+    <string name="apps_storage" msgid="5658466038269046038">"एप भण्डारण"</string>
     <string name="usage_access" msgid="2023443456361489516">"प्रयोगसम्बन्धी पहुँच"</string>
     <string name="permit_usage_access" msgid="3321727608629752758">"प्रयोग पहुँचलाई अनुमति दिनुहोस्"</string>
-    <string name="app_usage_preference" msgid="5691545073101551727">"अनुप्रयोग प्रयोग प्राथमिकताहरू"</string>
+    <string name="app_usage_preference" msgid="5691545073101551727">"एप प्रयोग प्राथमिकताहरू"</string>
     <string name="time_spent_in_app_pref_title" msgid="2803186835902798451">"यन्त्रमा हेरेर बिताउने समय"</string>
-    <string name="usage_access_description" msgid="2178083292760305207">"प्रयोग पहुँचले अनुप्रयोगलाई तपाईंले तपाईँको वाहक, भाषा सेटिङहरू, र अन्य विवरणहरू सहित के अन्य अनुप्रयोगहरू प्रयोग गरिरहनु भएको छ र कत्तिको गर्नुभएको छ भनेर ट्र्याक गर्न अनुमति दिन्छ।"</string>
+    <string name="usage_access_description" msgid="2178083292760305207">"प्रयोग पहुँचले एपलाई तपाईंले तपाईँको वाहक, भाषा सेटिङहरू, र अन्य विवरणहरू सहित के अन्य एपहरू प्रयोग गरिरहनु भएको छ र कत्तिको गर्नुभएको छ भनेर ट्र्याक गर्न अनुमति दिन्छ।"</string>
     <string name="memory_settings_title" msgid="7867148522014070721">"मेमोरी"</string>
     <string name="memory_details_title" msgid="6364825184513396865">"मेमोरीका विवरणहरू"</string>
     <string name="always_running" msgid="5320183445080208766">"सधैं चलिरहेको (<xliff:g id="PERCENTAGE">%s</xliff:g>)"</string>
@@ -3697,7 +3699,7 @@
     <string name="show_all_apps" msgid="5442552004569634846">"यन्त्रको पूर्ण प्रयोग देखाउनुहोस्"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"अनुप्रयोगको प्रयोग देखाउनुहोस्"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
-      <item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> अनुप्रयोगहरूले असामान्य व्यवहार देखाउँदैछन्</item>
+      <item quantity="other"><xliff:g id="NUMBER">%2$d</xliff:g> एपहरूले असामान्य व्यवहार देखाउँदैछन्</item>
       <item quantity="one"><xliff:g id="APP">%1$s</xliff:g> ले असामान्य व्यवहार देखाउँदैछ</item>
     </plurals>
     <plurals name="power_high_usage_title" formatted="false" msgid="63134064262760835">
@@ -3709,20 +3711,20 @@
     <string name="high_power_off" msgid="5906679734326490426">"ब्याट्री प्रयोग आफू अनुकूल गर्दै"</string>
     <string name="high_power_system" msgid="739584574711292753">"ब्याट्री आफू अनुकूल उपलब्ध छैन"</string>
     <string name="high_power_desc" msgid="333756885680362741">"ब्याट्री आफू अनुकूल लागू नगर्नुहोस्। तपाईँको ब्याट्री निकै छिटो सिध्याउन सक्छ।"</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"अनुप्रयोगलाई सधैँ पृष्ठभूमिमा चल्न दिने हो?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> लाई सधैँ पृष्ठभूमिमा चल्न दिनुले ब्याट्रीको आयु घट्न सक्छ। \n\nयसलाई तपाईं पछि सेटिङ&gt; अनुप्रयोगहरू&gt; सूचनाहरूबाट हटाउन सक्नुहुन्छ।"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"एपलाई सधैँ पृष्ठभूमिमा चल्न दिने हो?"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> लाई सधैँ पृष्ठभूमिका चल्न दिनुभयो भने ब्याट्रीको आयु घट्न सक्छ। \n\nयसलाई तपाईं पछि सेटिङ&gt; एपहरू&gt; सूचनाहरूबाट हटाउन सक्नुहुन्छ।"</string>
     <string name="battery_summary" msgid="4345690800899981339">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> पछिल्‍लो पटक पूरा चार्ज भएदेखिको प्रयोग"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"पावर व्यवस्थापन"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"पछिल्लो पूरा चार्ज देखि ब्याट्रीको प्रयोग गरिएको छैन"</string>
-    <string name="app_notification_preferences" msgid="5154466638524523201">"अनुप्रयोग सेटिङहरू"</string>
+    <string name="app_notification_preferences" msgid="5154466638524523201">"एप सेटिङहरू"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"SystemUI Tuner देखाउनुहोस्"</string>
     <string name="additional_permissions" msgid="3142290772324571654">"अतिरिक्त अनुमतिहरू"</string>
     <string name="additional_permissions_more" msgid="714264060348056246">"<xliff:g id="COUNT">%1$d</xliff:g> थप"</string>
     <string name="share_remote_bugreport_dialog_title" msgid="1390719492733882678">"बग रिपोर्टलाई साझेदारी गर्ने हो?"</string>
-    <string name="share_remote_bugreport_dialog_message_finished" msgid="5133489230646384192">"तपाईँको IT प्रशासकले यस यन्त्रको समस्या निवारण गर्नमा मद्दत गर्न बग रिपोर्टका लागि अनुरोध गर्नुभएको छ। अनुप्रयोग र डेटा साझेदारी हुन सक्छ।"</string>
-    <string name="share_remote_bugreport_dialog_message" msgid="6680361103125933760">"तपाईँको IT प्रशासकले यस यन्त्रको समस्या निवारण गर्नमा मद्दत गर्न बग रिपोर्टका लागि अनुरोध गर्नुभएको छ। अनुप्रयोग र डेटा साझेदारी हुन सक्छ र तपाईँको यन्त्र अस्थायी रूपमा सुस्त हुन सक्छ।"</string>
+    <string name="share_remote_bugreport_dialog_message_finished" msgid="5133489230646384192">"तपाईँको IT एडमिनले यस यन्त्रको समस्या निवारण गर्नमा मद्दत गर्न बग रिपोर्टका लागि अनुरोध गर्नुभएको छ। एप र डेटा साझेदारी हुन सक्छ।"</string>
+    <string name="share_remote_bugreport_dialog_message" msgid="6680361103125933760">"तपाईँको IT एडमिनले यस यन्त्रको समस्या निवारण गर्नमा मद्दत गर्न बग रिपोर्टका लागि अनुरोध गर्नुभएको छ। एप र डेटा साझेदारी हुन सक्छ र तपाईँको यन्त्र अस्थायी रूपमा सुस्त हुन सक्छ।"</string>
     <string name="sharing_remote_bugreport_dialog_message" msgid="3814787466701526359">"यो बग रिपोर्ट तपाईँको IT प्रशासकसँग साझेदारी भइरहेको छ। थप विवरणहरूका लागि प्रशासकलाई सम्पर्क गर्नुहोस्।"</string>
-    <string name="share_remote_bugreport_action" msgid="8600797271670537888">"साझेदारी गर्नुहोस्"</string>
+    <string name="share_remote_bugreport_action" msgid="8600797271670537888">"सेयर गर्नुहोस्"</string>
     <string name="decline_remote_bugreport_action" msgid="706319275774199033">"अस्वीकार गर्नुहोस्"</string>
     <string name="usb_use_charging_only" msgid="2344625733377110164">"डेटा स्थानान्तरण गरिँदैन"</string>
     <string name="usb_use_charging_only_desc" msgid="3283518562582478950">"केवल यो यन्त्र चार्ज गर्नुहोस्"</string>
@@ -3756,17 +3758,17 @@
     <string name="usb_summary_MIDI_power" msgid="7685597621357005180">"MIDI र विद्युत् आपूर्ति"</string>
     <string name="background_check_pref" msgid="664081406854758392">"पृष्ठभूमि जाँच"</string>
     <string name="background_check_title" msgid="4136736684290307970">"पूर्ण पृष्ठभूमि पहुँच"</string>
-    <string name="assist_access_context_title" msgid="2274614501747710439">"स्क्रिनबाट पाठ प्रयोग गर्नुहोस्"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"स्क्रिन सामग्रीहरूलाई पाठको रूपमा पहुँच गर्न सहायक अनुप्रयोगलाई अनुमति दिनुहोस्"</string>
+    <string name="assist_access_context_title" msgid="2274614501747710439">"स्क्रिनको पाठ प्रयोग गर्नुहोस्"</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"स्क्रिन सामग्रीहरूलाई पाठको रूपमा प्रयोग गर्न सहायक एपलाई अनुमति दिनुहोस्"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"स्क्रिसट प्रयोग गर्नुहोस्"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"स्क्रिनको एउटा छवि पहुँच गर्न सहायक अनुप्रयोगलाई अनुमति दिनुहोस्"</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"स्क्रिनको एउटा सट लिन सहायक एपलाई अनुमति दिनुहोस्"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"स्क्रिन झिमझिम पार्नुहोस्"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"सहायक अनुप्रयोगले स्क्रिन वा स्क्रिनसटबाट पाठमाथि पहुँच राख्दा स्क्रिनका किनाराहरू झिमझिम पार्नुहोस्"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"सहायक अनुप्रयोगहरूले तपाईंले हेर्दै गर्नुभएको स्क्रिनबाट प्राप्त जानकारीमा आधारित भई तपाईंलाई मद्दत गर्न सक्छन्।केही अनुप्रयोगहरूले तपाईंलाई एकीकृत सहायता दिन दुवै लन्चर र आवाज संलग्न इनपुट सेवाहरूलाई समर्थन गर्दछन्।"</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"सहायक अनुप्रयोगले स्क्रिन वा स्क्रिनसटबाट पाठ प्रयोग गर्दा स्क्रिनका किनाराहरू झिमझिम पार्नुहोस्"</string>
+    <string name="assist_footer" msgid="7030121180457472165">"सहायक एपहरूले तपाईंले हेर्दै गर्नुभएको स्क्रिनबाट प्राप्त जानकारीमा आधारित भई तपाईंलाई मद्दत गर्न सक्छन्।केही एपहरूले तपाईंलाई एकीकृत सहायता दिन दुवै लन्चर र आवाज संलग्न इनपुट सेवाहरूलाई समर्थन गर्दछन्।"</string>
     <string name="average_memory_use" msgid="5333366040118953945">"औसत मेमोरी प्रयोग"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"अधिकतम मेमोरी प्रयोग"</string>
     <string name="memory_usage" msgid="7963253555330830906">"मेमोरी प्रयोग"</string>
-    <string name="app_list_memory_use" msgid="356095943215944031">"अनुप्रयोग उपयोग"</string>
+    <string name="app_list_memory_use" msgid="356095943215944031">"एप उपयोग"</string>
     <string name="memory_details" msgid="5165105904103664110">"विवरणहरू"</string>
     <string name="memory_use_summary" msgid="7676311343819965850">"पछिल्लो ३ घण्टामा <xliff:g id="SIZE">%1$s</xliff:g> औसत मेमोरी प्रयोग गरियो"</string>
     <string name="no_memory_use_summary" msgid="3966550113388917978">"पछिल्लो ३ घण्टामा कुनै मेमोरी प्रयोग गरिएन"</string>
@@ -3778,7 +3780,7 @@
     <string name="free_memory" msgid="4758919141048544927">"उपलब्ध"</string>
     <string name="memory_usage_apps" msgid="2839241373381152354">"अनुप्रयोगहरूद्वारा प्रयोग गरिएको मेमोरी"</string>
     <plurals name="memory_usage_apps_summary" formatted="false" msgid="1235024908546944704">
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> अनुप्रयोगहरूले पछिल्लो <xliff:g id="DURATION_1">%2$s</xliff:g> मा मेमोरी प्रयोग गर्‍यो</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> एपहरूले पछिल्लो <xliff:g id="DURATION_1">%2$s</xliff:g> मा मेमोरी प्रयोग गर्‍यो</item>
       <item quantity="one">१ अनुप्रयोगले पछिल्लो <xliff:g id="DURATION_0">%2$s</xliff:g> मा मेमोरी प्रयोग गर्‍यो</item>
     </plurals>
     <string name="running_frequency" msgid="7545170806968474449">"आवृत्ति"</string>
@@ -3791,50 +3793,50 @@
     <string name="zen_access_revoke_warning_dialog_summary" msgid="3487422193181311403">"यस अनुप्रयोगले बनाएका सबै बाधा नपुर्याउनुहोस् नियम हटाइने छ।"</string>
     <string name="ignore_optimizations_on" msgid="4373971641328943551">"आफू अनुकूल नगर्नुहोस्"</string>
     <string name="ignore_optimizations_off" msgid="4372289432580282870">"अनुकुलन गर्नुहोस्"</string>
-    <string name="ignore_optimizations_on_desc" msgid="2904484569799521559">"यसले तपाईंको ब्याट्रीको चार्ज चाँडै घटाउन सक्छ। अनुप्रयोगलाई अब उप्रान्त पृष्ठभूमिमा ब्याट्री प्रयोग गर्न प्रतिबन्ध लगाइने छैन।"</string>
+    <string name="ignore_optimizations_on_desc" msgid="2904484569799521559">"यसले तपाईंको ब्याट्रीको चार्ज चाँडै घटाउन सक्छ। एपलाई अब उप्रान्त पृष्ठभूमिमा ब्याट्री प्रयोग गर्न प्रतिबन्ध लगाइने छैन।"</string>
     <string name="ignore_optimizations_off_desc" msgid="5598702251817814289">"अझ टिकाउयुक्त ब्याट्रीका लागि सिफारिस गरिएको"</string>
     <string name="ignore_optimizations_title" msgid="7924345545276166305">"<xliff:g id="APP">%s</xliff:g> लाई ब्याट्री आफू अनुकूल बेवास्ता गर्नै अनुमति दिने हो?"</string>
     <string name="app_list_preference_none" msgid="7100409177446935028">"कुनै पनि होइन"</string>
     <string name="work_profile_usage_access_warning" msgid="403208064382097510">"यो अनुप्रयोगको प्रयोगको पहुँचलाई निष्क्रिय पार्नुले तपाईंको प्रशासकलाई तपाईंको कार्य प्रोफाइलमा रहेका अनुप्रयोगहरूको डेटा प्रयोगलाई ट्र्याक गर्नबाट रोक्दैन"</string>
     <string name="accessibility_lock_screen_progress" msgid="8242917828598820049">"<xliff:g id="COUNT_1">%2$d</xliff:g> को <xliff:g id="COUNT_0">%1$d</xliff:g> वर्णहरू प्रयोग गरिए"</string>
     <string name="draw_overlay" msgid="2878665072530660668">"अन्य एपहरूको माथिपट्टि देखाउनु"</string>
-    <string name="system_alert_window_settings" msgid="3024330223417646567">"अन्य अनुप्रयोगहरूको माथिपट्टि देखाउनुहोस्"</string>
-    <string name="system_alert_window_apps_title" msgid="9188448296493699566">"अनुप्रयोगहरू"</string>
-    <string name="system_alert_window_access_title" msgid="5187343732185369675">"अन्य अनुप्रयोगहरूको माथिपट्टि देखाउनुहोस्"</string>
-    <string name="permit_draw_overlay" msgid="9039092257052422344">"अन्य एपहरूको माथिपट्टि देखिने अनुमति दिनुहोस्"</string>
-    <string name="allow_overlay_description" msgid="6669524816705082807">"यो अनुप्रयोगलाई तपाईंले प्रयोग गरिरहनुभएका अन्य अनुप्रयोगहरूको माथिपट्टि देखिन अनुमति दिनुहोस्। यसले तपाईंले गर्ने ती अनुप्रयोगहरूको प्रयोगमा हस्तक्षेप गर्न वा तिनीहरू देखा पर्ने वा तिनीहरूले काम गर्ने तरिकालाई परिवर्तन गर्न सक्छ।"</string>
+    <string name="system_alert_window_settings" msgid="3024330223417646567">"अन्य अनुप्रयोगमा देखाउनुहोस्"</string>
+    <string name="system_alert_window_apps_title" msgid="9188448296493699566">"एपहरू"</string>
+    <string name="system_alert_window_access_title" msgid="5187343732185369675">"अन्य अनुप्रयोगमा देखाउनुहोस्"</string>
+    <string name="permit_draw_overlay" msgid="9039092257052422344">"अन्य एपहरूमा देखिने अनुमति दिनुहोस्"</string>
+    <string name="allow_overlay_description" msgid="6669524816705082807">"यो एपलाई तपाईंले प्रयोग गरिरहनुभएका अन्य अनुप्रयोगहरूको माथिपट्टि देखिन अनुमति दिनुहोस्। यसले तपाईंले गर्ने ती अनुप्रयोगहरूको प्रयोगमा हस्तक्षेप गर्न वा तिनीहरू देखा पर्ने वा तिनीहरूले काम गर्ने तरिकालाई परिवर्तन गर्न सक्छ।"</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr भर्चुअल रियालिटी श्रोता स्टेरियो सहायक सेवा"</string>
-    <string name="keywords_system_alert_window" msgid="3936658600272194599">"प्रणाली अलर्ट विन्डो संवाद माथिपट्टि देखिने अन्य अनुप्रयोगहरू"</string>
+    <string name="keywords_system_alert_window" msgid="3936658600272194599">"प्रणाली अलर्ट विन्डो संवाद माथिपट्टि देखिने अन्य एपहरू"</string>
     <string name="overlay_settings" msgid="3325154759946433666">"अन्य एपहरूको माथिपट्टि देखाउनु"</string>
     <string name="system_alert_window_summary" msgid="7703582115861844158">"<xliff:g id="COUNT_1">%2$d</xliff:g> मध्ये <xliff:g id="COUNT_0">%1$d</xliff:g> एपहरूलाई अन्य एपको माथिपट्टि देखिने अनुमति दिइएको छ"</string>
-    <string name="filter_overlay_apps" msgid="6336897660213304743">"अनुमतिसहित अनुप्रयोगहरू"</string>
+    <string name="filter_overlay_apps" msgid="6336897660213304743">"अनुमतिसहित एपहरू"</string>
     <string name="app_permission_summary_allowed" msgid="6458476982015518778">"अनुमति छ"</string>
     <string name="app_permission_summary_not_allowed" msgid="1171642541675462584">"अनुमति छैन"</string>
-    <string name="keywords_install_other_apps" msgid="5383559540695847668">"अज्ञात स्रोतहरूबाट प्राप्त हुने अनुप्रयोगहरू स्थापना गर्नुहोस्‌"</string>
-    <string name="write_settings" msgid="9009040811145552108">"प्रणाली सेटिङहरू परिमार्जन"</string>
+    <string name="keywords_install_other_apps" msgid="5383559540695847668">"अज्ञात स्रोतहरूबाट प्राप्त हुने एपहरू स्थापना गर्नुहोस्‌"</string>
+    <string name="write_settings" msgid="9009040811145552108">"प्रणालीका सेटिङ बदल्नुहोस्"</string>
     <string name="keywords_write_settings" msgid="3450405263390246293">"परिमार्जन प्रणाली सेटिङहरू लेख्नुहोस्"</string>
-    <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_1">%2$d</xliff:g> मा <xliff:g id="COUNT_0">%1$d</xliff:g> अनुप्रयोगलाई प्रणाली सेटिङहरू परिमार्जन गर्न अनुमति छ"</string>
+    <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_1">%2$d</xliff:g> मा <xliff:g id="COUNT_0">%1$d</xliff:g> एपलाई प्रणाली सेटिङहरू परिमार्जन गर्न अनुमति छ"</string>
     <string name="financial_apps_sms_access_title" msgid="3422655018008259655">"वित्तीय अनुप्रयोगको Sms माथिको पहुँच"</string>
-    <string name="filter_install_sources_apps" msgid="4519839764020866701">"अन्य अनुप्रयोगहरू स्थापना गर्न सक्छ"</string>
+    <string name="filter_install_sources_apps" msgid="4519839764020866701">"अन्य एपहरू स्थापना गर्न सक्छ"</string>
     <string name="filter_write_settings_apps" msgid="6864144615530081121">"प्रणाली सेटिङहरू परिमार्जन गर्न सक्ने"</string>
     <string name="write_settings_title" msgid="5852614614193830632">"प्रणाली सेटिङहरू परिमार्जन गर्न सक्ने"</string>
     <string name="write_system_settings" msgid="20450765210832463">"प्रणाली सेटिङहरू परिमार्जन गर्नुहोस्"</string>
     <string name="permit_write_settings" msgid="4198491281216818756">"प्रणालीका सेटिङहरू परिमार्जन गर्न दिनुहोस्"</string>
-    <string name="write_settings_description" msgid="2536706293042882500">"यस अनुमतिले अनुप्रयोगलाई प्रणाली सेटिङहरू परिमार्जन गर्न दिन्छ।"</string>
+    <string name="write_settings_description" msgid="2536706293042882500">"यस अनुमतिले एपलाई प्रणाली सेटिङहरू परिमार्जन गर्न दिन्छ।"</string>
     <string name="write_settings_on" msgid="7328986337962635118">"हो"</string>
     <string name="write_settings_off" msgid="5708257434958406202">"होइन"</string>
     <string name="external_source_switch_title" msgid="5947220058496373178">"यो स्रोतबाट अनुमति दिनुहोस्‌"</string>
     <string name="camera_gesture_title" msgid="899403310746415135">"क्यामेराका लागि दुई पटक बटार्नुहोस्"</string>
-    <string name="camera_gesture_desc" msgid="7751841175916789527">"दुई पटक आफ्नो नारी बटारेर क्यामेरा अनुप्रयोग खोल्नुहोस्"</string>
+    <string name="camera_gesture_desc" msgid="7751841175916789527">"दुई पटक आफ्नो नारी बटारेर क्यामेरा एप खोल्नुहोस्"</string>
     <string name="camera_double_tap_power_gesture_title" msgid="8874747801078147525">"क्यामेराका लागि दुई पटक पावर बटन थिच्नुहोस्"</string>
     <string name="camera_double_tap_power_gesture_desc" msgid="6166349645433682873">"स्क्रिन अनलक नगरी क्यामेरा चाँडै खोल्नुहोस्"</string>
     <string name="screen_zoom_title" msgid="164369086350486104">"प्रदर्शन हुने आकार"</string>
-    <string name="screen_zoom_short_summary" msgid="5508079362742276703">"स्क्रिनमा भएको वस्तुहरूलाई अझ ठूलो वा सानो पार्नुहोस्"</string>
+    <string name="screen_zoom_short_summary" msgid="5508079362742276703">"स्क्रिनमा भएको वस्तुहरूलाई अझ ठुलो वा सानो पार्नुहोस्"</string>
     <string name="screen_zoom_keywords" msgid="8358462497896524092">"घनत्व प्रदर्शन गर्नुहोस्, स्क्रिन जुम, स्केल, स्केलिङ"</string>
-    <string name="screen_zoom_summary" msgid="5294003755961312560">"तपाईंको स्क्रिनमा भएको वस्तुहरूलाई अझ सानो वा ठूलो पार्नुहोस्। तपाईंको स्क्रिनमा भएको केही अनुप्रयोगहरूको स्थिति परिवर्तन हुनसक्छ।"</string>
+    <string name="screen_zoom_summary" msgid="5294003755961312560">"तपाईंको स्क्रिनमा भएको वस्तुहरूलाई अझ सानो वा ठुलो पार्नुहोस्। तपाईंको स्क्रिनमा भएको केही अनुप्रयोगहरूको स्थिति परिवर्तन हुनसक्छ।"</string>
     <string name="screen_zoom_preview_title" msgid="2924312934036753091">"पूर्वावलोकन"</string>
     <string name="screen_zoom_make_smaller_desc" msgid="1374501139722916729">"सानो बनाउनुहोस्"</string>
-    <string name="screen_zoom_make_larger_desc" msgid="5306684807895846141">"ठूलो बनाउनुहोस्"</string>
+    <string name="screen_zoom_make_larger_desc" msgid="5306684807895846141">"ठुलो बनाउनुहोस्"</string>
     <string name="screen_zoom_conversation_icon_alex" msgid="2733983340094411661">"A"</string>
     <string name="screen_zoom_conversation_icon_pete" msgid="4990733893088820204">"P"</string>
     <string name="screen_zoom_conversation_message_1" msgid="7215516160541988278">"नमस्कार पिट!"</string>
@@ -3845,8 +3847,8 @@
     <string name="screen_zoom_conversation_timestamp_2" msgid="816265985618121370">"मंगलबार बेलुका ६.०१ बजे"</string>
     <string name="screen_zoom_conversation_timestamp_3" msgid="7346540212221792932">"मंगलबार बेलुका ६.०२ बजे"</string>
     <string name="screen_zoom_conversation_timestamp_4" msgid="1452374487089625022">"मंगलबार बेलुका ६.०३ बजे"</string>
-    <string name="disconnected" msgid="4088439352761747084">"जडान भएको छैन"</string>
-    <string name="keyboard_disconnected" msgid="3068615097201531871">"जडान भएको छैन"</string>
+    <string name="disconnected" msgid="4088439352761747084">"कनेक्ट भएको छैन"</string>
+    <string name="keyboard_disconnected" msgid="3068615097201531871">"कनेक्ट भएको छैन"</string>
     <string name="data_usage_summary_format" msgid="7788095271598602797">"डेटाको <xliff:g id="AMOUNT">%1$s</xliff:g> प्रयोग गरियो"</string>
     <string name="data_usage_wifi_format" msgid="9028934101966264710">"Wi‑Fi मा प्रयोग भएको <xliff:g id="AMOUNT">^1</xliff:g>"</string>
     <plurals name="notification_summary" formatted="false" msgid="761061343339229103">
@@ -3854,8 +3856,8 @@
       <item quantity="one">१ अनुप्रयोगका लागि निष्क्रिय पारिएको छ</item>
     </plurals>
     <string name="notification_summary_none" msgid="5003043219430054784">"सबै अनुप्रयोगहरूका लागि खुला"</string>
-    <string name="apps_summary" msgid="8355759446490212195">"<xliff:g id="COUNT">%1$d</xliff:g> अनुप्रयोगहरू स्थापना गरियो"</string>
-    <string name="apps_summary_example" msgid="3011143598675185269">"२४ अनुप्रयोगहरू स्थापित गरियो"</string>
+    <string name="apps_summary" msgid="8355759446490212195">"<xliff:g id="COUNT">%1$d</xliff:g> एपहरू स्थापना गरियो"</string>
+    <string name="apps_summary_example" msgid="3011143598675185269">"२४ एपहरू स्थापित गरियो"</string>
     <string name="storage_summary" msgid="4835916510511133784">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> प्रयोग भएको - खाली <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
     <string name="storage_summary_with_sdcard" msgid="8742907204848352697">"आन्तरिक भण्डारण: <xliff:g id="PERCENTAGE">%1$s</xliff:g> प्रयोग गरिएको - <xliff:g id="FREE_SPACE">%2$s</xliff:g> खाली"</string>
     <string name="display_summary" msgid="5725269449657325797">"<xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> को निष्क्रियता पछिको शयन"</string>
@@ -3869,18 +3871,18 @@
     <string name="backup_disabled" msgid="6941165814784765643">"ब्याकअप असक्षम गरियो"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"Android <xliff:g id="VERSION">%1$s</xliff:g> मा अद्यावधिक गरियो"</string>
     <string name="android_version_pending_update_summary" msgid="3554543810520655076">"अद्यावधिक उपलब्ध छ"</string>
-    <string name="disabled_by_policy_title" msgid="1238318274952958846">"कार्यलाई अनुमति छैन"</string>
+    <string name="disabled_by_policy_title" msgid="1238318274952958846">"यो कार्य गर्न मिल्दैन"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7094547090629203316">"भोल्युम परिवर्तन गर्न सकिँदैन"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="3805836913095496278">"कल गर्न अनुमति छैन"</string>
     <string name="disabled_by_policy_title_sms" msgid="1453236584236681105">"SMS लाई अनुमति छैन"</string>
     <string name="disabled_by_policy_title_camera" msgid="3741138901926111197">"यो क्यामेरालाई अनुमति छैन"</string>
     <string name="disabled_by_policy_title_screen_capture" msgid="1856835333536274665">"स्क्रिनसटलाई अनुमति छैन"</string>
-    <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"यो अनुप्रयोग खोल्न सकिँदैन"</string>
+    <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"यो एप खोल्न सकिँदैन"</string>
     <string name="default_admin_support_msg" msgid="5789424433689798637">"तपाईंसँग प्रश्नहरू छन् भने आफ्नो IT प्रशासकलाई सम्पर्क गर्नुहोस्"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"थप विवरणहरु"</string>
-    <string name="admin_profile_owner_message" msgid="3199544166281052845">"तपाईंको प्रशासकले तपाईंको कार्य प्रोफाइलसँग सम्बन्धित अनुप्रयोग र डेटाका साथै सेटिङ। अनुमति, संस्थागत पहुँच, नेटवर्क सम्बन्धी गतिविधि र यस यन्त्रको स्थानसम्बन्धी जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।"</string>
-    <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"तपाईंको प्रशासकले यस प्रयोगकर्तासँग सम्बन्धित अनुप्रयोग तथा डेटाका साथै सेटिङ, अनुमति, संस्थागत पहुँच, नेटवर्क सम्बन्धी गतिविधि र यस यन्त्रको स्थानसम्बन्धी जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।"</string>
-    <string name="admin_device_owner_message" msgid="1823477572459610869">"तपाईंको प्रशासकले यस यन्त्रसँग सम्बन्धित अनुप्रयोग र डेटाका साथै सेटिङ, अनुमति, संस्थागत पहुँच, नेटवर्क सम्बन्धी गतिविधि, र यस यन्त्रको स्थानसम्बन्धी जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।"</string>
+    <string name="admin_profile_owner_message" msgid="3199544166281052845">"तपाईंको प्रशासकले तपाईंको कार्य प्रोफाइलसँग सम्बन्धित एप र डेटाका साथै सेटिङ। अनुमति, संस्थागत पहुँच, नेटवर्क सम्बन्धी गतिविधि र यस यन्त्रको स्थानसम्बन्धी जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।"</string>
+    <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"तपाईंको प्रशासकले यस प्रयोगकर्तासँग सम्बन्धित एप तथा डेटाका साथै सेटिङ, अनुमति, संस्थागत पहुँच, नेटवर्क सम्बन्धी गतिविधि र यस यन्त्रको स्थानसम्बन्धी जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।"</string>
+    <string name="admin_device_owner_message" msgid="1823477572459610869">"तपाईंको प्रशासकले यस यन्त्रसँग सम्बन्धित एप र डेटाका साथै सेटिङ, अनुमति, संस्थागत पहुँच, नेटवर्क सम्बन्धी गतिविधि, र यस यन्त्रको स्थानसम्बन्धी जानकारीको अनुगमन र व्यवस्थापन गर्न सक्छ।"</string>
     <string name="condition_turn_off" msgid="4395150881365143558">"बन्द गर्नुहोस्"</string>
     <string name="condition_turn_on" msgid="1699088245481841159">"सक्रिय गर्नुहोस्"</string>
     <string name="condition_expand_show" msgid="4118818022763913777">"देखाउनुहोस्"</string>
@@ -3898,16 +3900,16 @@
     <string name="condition_bg_data_title" msgid="184684435298857712">"डेटा सेभर"</string>
     <string name="condition_bg_data_summary" msgid="5194942860807136682">"सुविधाहरूलाई बन्देज लगाइएका छन्"</string>
     <string name="condition_work_title" msgid="9046811302347490371">"कार्यको प्रोफाइल बन्द छ"</string>
-    <string name="condition_work_summary" msgid="5586134491975748565">"अनुप्रयोग तथा सूचनाहरूका लागि"</string>
+    <string name="condition_work_summary" msgid="5586134491975748565">"एप तथा सूचनाहरूका लागि"</string>
     <string name="condition_device_muted_action_turn_on_sound" msgid="5849285946804815263">"आवाज सक्रिय गर्नुहोस्"</string>
     <string name="condition_device_muted_title" msgid="3930542786434609976">"रिङ्गर म्युट गरियो"</string>
     <string name="condition_device_muted_summary" msgid="3101055117680109021">"कल तथा सूचनाहरूका लागि"</string>
     <string name="condition_device_vibrate_title" msgid="5712659354868872338">"कम्पन मात्र"</string>
     <string name="condition_device_vibrate_summary" msgid="9073880731894828604">"कल तथा सूचनाहरूका लागि"</string>
     <string name="night_display_suggestion_title" msgid="4222839610992282188">"रात्रि प्रकाशको समय तालिका सेट गर्नुहोस्"</string>
-    <string name="night_display_suggestion_summary" msgid="1754361016383576916">"प्रत्येक रात स्क्रिनको रङ स्वतः परिवर्तन गर्नुहोस्‌"</string>
+    <string name="night_display_suggestion_summary" msgid="1754361016383576916">"प्रत्येक रात स्क्रिनको रङ्ग स्वतः परिवर्तन गर्नुहोस्‌"</string>
     <string name="condition_night_display_title" msgid="9171491784857160135">"रात्रिको प्रकाश सक्रिय छ"</string>
-    <string name="condition_night_display_summary" msgid="7885776986937527558">"स्क्रिन रङ मधुरो गरियो"</string>
+    <string name="condition_night_display_summary" msgid="7885776986937527558">"स्क्रिन रङ्ग मधुरो गरियो"</string>
     <string name="condition_grayscale_title" msgid="1226351649203551299">"ग्रेस्केल"</string>
     <string name="condition_grayscale_summary" msgid="749172886527349546">"खरानी रङमा मात्र प्रदर्शन गर्नुहोस्"</string>
     <string name="homepage_condition_footer_content_description" msgid="3563606465924396342">"संक्षिप्त गर्नुहोस्"</string>
@@ -3951,7 +3953,7 @@
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> वटा बन्देजहरू</item>
       <item quantity="one">१ वटा बन्देज</item>
     </plurals>
-    <string name="operator_warning" msgid="4676042739221117031">"वाहकको डेटाको हिसाब-किताब राख्ने कार्य तपाईँको यन्त्रको हिसाब-किताब राख्ने कार्य भन्दा फरक हुन सक्छ"</string>
+    <string name="operator_warning" msgid="4676042739221117031">"डेटाको प्रयोगसम्बन्धी वाहकले राखेको हिसाब-किताब र तपाईंको यन्त्रले राखेको हिसाब-किताब फरक हुन सक्छ"</string>
     <string name="data_used_template" msgid="761605393453849477">"<xliff:g id="ID_1">%1$s</xliff:g> प्रयोग गरियो"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"डेटाबारे चेतावनी सेट गर्नुहोस्"</string>
     <string name="data_warning" msgid="2699207195535036240">"डेटाबारे चेतावनी"</string>
@@ -3960,10 +3962,10 @@
     <string name="data_limit" msgid="5793521160051596228">"डेटाको सीमा"</string>
     <string name="data_usage_template" msgid="6848274347956096882">"<xliff:g id="ID_2">%2$s</xliff:g> सम्म <xliff:g id="ID_1">%1$s</xliff:g> प्रयोग गरियो"</string>
     <string name="configure" msgid="8232696842838580549">"कन्फिगर गर्नुहोस्"</string>
-    <string name="data_usage_other_apps" msgid="7002491980141402084">"प्रयोगमा समावेश गरिएका अन्य अनुप्रयोगहरू"</string>
+    <string name="data_usage_other_apps" msgid="7002491980141402084">"प्रयोगमा समावेश गरिएका अन्य एपहरू"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
       <item quantity="other">डेटा सेभर अन हुँदा <xliff:g id="COUNT">%1$d</xliff:g> अनुप्रयोगहरूलाई असीमित डेटाको प्रयोग गर्न अनुमति दिइयो</item>
-      <item quantity="one">डेटा सेभर अन हुँदा १ अनुप्रयोगलाई असीमित डेटाको प्रयोग गर्न अनुमति दिइयो</item>
+      <item quantity="one">डेटा सेभर अन हुँदा १ एपलाई असीमित डेटाको प्रयोग गर्न अनुमति दिइयो</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"प्राथमिक डेटा"</string>
     <string name="data_usage_wifi_title" msgid="7161828479387766556">"Wi‑Fi डेटा"</string>
@@ -3991,7 +3993,7 @@
     <string name="data_saver_switch_title" msgid="8244008132112735207">"डेटा सेभर प्रयोग गर्नुहोस्"</string>
     <string name="unrestricted_app_title" msgid="4390661122069905122">"असीमित डेटाको प्रयोग"</string>
     <string name="unrestricted_app_summary" msgid="2829141815077800483">"डेटा सेभर अन हुँदा असीमित डेटाको पहुँचलाई अनुमति दिनुहोस्"</string>
-    <string name="home_app" msgid="3695063566006954160">"घरेलु अनुप्रयोग"</string>
+    <string name="home_app" msgid="3695063566006954160">"घरेलु एप"</string>
     <string name="no_default_home" msgid="1518949210961918497">"पूर्वनिर्धारित गृहपृष्ठ छैन"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="63693894094570367">"स्टार्ट-अप सुरक्षित गर्नुहोस्"</string>
     <string name="lockpattern_settings_require_pattern_before_startup_summary" msgid="2330543541999937953">"तपाईंको यन्त्रलाई सुरुवात गर्न ढाँचा आवश्यक छ। यन्त्र बन्द हुँदा, यसले कल, सन्देश, सूचना, वा अलार्महरू प्राप्त गर्न सक्दैन।"</string>
@@ -4000,10 +4002,10 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"अर्को फिंगरप्रिन्ट थप्नुहोस्"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"अर्को औँलाको प्रयोग गरी अनलक गर्नुहोस्"</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"सक्रिय"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> मा सक्रिय हुने छ"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"<xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g> मा अन हुने छ"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"निष्क्रिय"</string>
     <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"अहिले नै सक्रिय गर्नुहोस्"</string>
-    <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"अहिले नै निष्क्रिय पार्नुहोस्"</string>
+    <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"अहिले नै अफ गर्नुहोस्"</string>
     <string name="not_battery_optimizing" msgid="2616044774307734160">"ब्याट्री आफू अनुकूल प्रयोग गरिएको छैन"</string>
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"यदि यन्त्रलाई लक गरिएको छ भने सूचनाहरूमा जवाफ वा अन्य पाठ टाइप गर्न रोक लगाउनुहोस्"</string>
     <string name="default_spell_checker" msgid="8636661093243189533">"पूर्वनिर्धारित हिज्जे परीक्षक"</string>
@@ -4042,7 +4044,7 @@
     <string name="notification_log_details_ranking_null" msgid="3907234749871463339">"वर्गीकरण सम्बन्धी वस्तु उपलब्ध छैन।"</string>
     <string name="notification_log_details_ranking_none" msgid="3687243721168608404">"वर्गीकरण सम्बन्धी वस्तुमा यो साँचो छैन।"</string>
     <string name="theme_customization_category" msgid="4043457940936660368">"विषयवस्तु"</string>
-    <string name="theme_customization_accent_color_title" msgid="3949108608589133216">"एक्सेन्टको रङ"</string>
+    <string name="theme_customization_accent_color_title" msgid="3949108608589133216">"एक्सेन्टको रङ्ग"</string>
     <string name="theme_customization_font_title" msgid="309728559821356597">"शीर्षक / मुख्य भागको फन्ट"</string>
     <string name="theme_customization_icon_shape_title" msgid="4603248388639328322">"आइकनको आकार"</string>
     <string name="theme_customization_device_default" msgid="7188874258500934312">"पूर्वनिर्धारित यन्त्र"</string>
@@ -4065,21 +4067,21 @@
     <string name="page_tab_title_summary" msgid="4824744863994538006">"सबै"</string>
     <string name="page_tab_title_support" msgid="5569262185010367870">"सुझाव तथा सहायता"</string>
     <string name="developer_smallest_width" msgid="2603134476228805075">"सबैभन्दा सानो चौडाइ"</string>
-    <string name="premium_sms_none" msgid="940723020871007898">"स्थापना गरिएका कुनै पनि अनुप्रयोगहरूले प्रिमियम SMS माथि पहुँचका लागि अनुरोध गरेका छैनन्"</string>
+    <string name="premium_sms_none" msgid="940723020871007898">"स्थापना गरिएका कुनै पनि एपहरूले प्रिमियम SMS माथि पहुँचका लागि अनुरोध गरेका छैनन्"</string>
     <string name="premium_sms_warning" msgid="7604011651486294515">"प्रिमियम SMS सक्रिय गर्नाले तपाईंलाई पैसा लाग्न सक्छ र उक्त रकम तपाईंको वाहकलाई तिर्नु पर्ने बिलमा जोडिनेछ। यदि तपाईं अनुप्रयोगको लागि अनुमति सक्रिय गर्नुहुन्छ भने तपाईं त्यस अनुप्रयोगको प्रयोग गरेर प्रिमियम SMS पठाउन सक्नुहुनेछ।"</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"प्रिमियम SMS माथि पहुँच"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"निष्क्रिय छ"</string>
-    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g> मा जडान गरियो"</string>
+    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g> मा कनेक्ट गरियो"</string>
     <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"धेरै यन्त्रहरूमा जडान गरियो"</string>
     <string name="demo_mode" msgid="3831081808592541104">"प्रणालीको UI को प्रदर्शन मोड"</string>
     <string name="dark_ui_mode" msgid="703844190192599217">"विषयवस्तु"</string>
     <string name="dark_ui_mode_title" msgid="8774932716427742413">"विषयवस्तु छनौट गर्नुहोस्"</string>
     <string name="dark_ui_settings_light_summary" msgid="5219102347744462812">"यो सेटिङ अनुप्रयोगहरूमा पनि लागू हुन्छ"</string>
-    <string name="dark_ui_settings_dark_summary" msgid="7042737828943784289">"समर्थन गरिएका अनुप्रयोगहरू पनि बदलिएर गाढा विषयवस्तुमा जाने छन्"</string>
+    <string name="dark_ui_settings_dark_summary" msgid="7042737828943784289">"समर्थन गरिएका एपहरू पनि बदलिएर गाढा विषयवस्तुमा जाने छन्"</string>
     <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"द्रुत सेटिङहरू सम्बन्धी विकासकर्ताका टाइलहरू"</string>
     <string name="winscope_trace_quick_settings_title" msgid="940971040388411374">"Winscope को ट्रेस"</string>
     <string name="sensors_off_quick_settings_title" msgid="3655699045300438902">"सेन्सरहरू निष्क्रिय पार्नु…"</string>
-    <string name="managed_profile_settings_title" msgid="4340409321523532402">"कार्य प्रोफाइलका सेटिङहरू"</string>
+    <string name="managed_profile_settings_title" msgid="4340409321523532402">"कार्यालयसम्बन्धी प्रोफाइलका सेटिङ"</string>
     <string name="managed_profile_contact_search_title" msgid="7337225196804457095">"सम्पर्कको खोजी"</string>
     <string name="managed_profile_contact_search_summary" msgid="7278267480246726951">"कलर र सम्पर्कहरूको पहिचान गर्न तपाईँको संगठन अनुसार गरिने सम्पर्कका खोजीहरूलाई अनुमति दिनुहोस्"</string>
     <string name="cross_profile_calendar_title" msgid="2351605904015067145">"अन्तरप्रोफाइल पात्रो"</string>
@@ -4115,25 +4117,25 @@
     <string name="double_twist_for_camera_mode_title" msgid="2606032140297556018">"क्यामेरा फ्लिप गर्ने"</string>
     <string name="double_twist_for_camera_mode_summary" msgid="8979914206876018137"></string>
     <string name="double_twist_for_camera_suggestion_title" msgid="5932411386316771246">"अझ छिटो सेल्फी लिनुहोस्‌"</string>
-    <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"अनुप्रयोगहरू बदल्न, गृह बटनमा माथि स्वाइप गर्नुहोस्। सबै अनुप्रयोगहरू हेर्न फेरि माथि स्वाइप गर्नुहोस्। कुनै पनि स्क्रिनबाट काम गर्छ। अब उप्रान्त तपाईंको स्क्रिनको तल्लो भागको दायाँमा परिदृश्य बटन हुने छैन।"</string>
+    <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"एपहरू बदल्न, गृह बटनमा माथि स्वाइप गर्नुहोस्। सबै एपहरू हेर्न फेरि माथि स्वाइप गर्नुहोस्। कुनै पनि स्क्रिनबाट काम गर्छ। अब उप्रान्त तपाईंको स्क्रिनको तल्लो भागको दायाँमा परिदृश्य बटन हुने छैन।"</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"नयाँ गृह बटन प्रयास गर्नुहोस्‌"</string>
-    <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"अनुप्रयोगहरू बदल्न नयाँ इसारा सक्रिय गर्नुहोस्‌"</string>
+    <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"एपहरू बदल्न नयाँ इसारा सक्रिय गर्नुहोस्‌"</string>
     <string name="ambient_display_title" product="default" msgid="6785677099744344088">"फोनको जाँच गर्न डबल-ट्याप गर्नुहोस्"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"ट्याब्लेटको जाँच गर्न डबल-ट्याप गर्नुहोस्"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"यन्त्रको जाँच गर्न डबल-ट्याप गर्नुहोस्"</string>
-    <string name="ambient_display_summary" msgid="4882910328216411109">"समय, सूचना र अन्य जानकारीको जाँच गर्न आफ्नो यन्त्रको स्क्रिनमा डबल ट्याप गर्नुहोस्।"</string>
+    <string name="ambient_display_summary" msgid="4882910328216411109">"समय, सूचना र अन्य जानकारी हेर्न आफ्नो यन्त्रको स्क्रिनमा डबल ट्याप गर्नुहोस्।"</string>
     <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"फोनको जाँच गर्न उठाउनुहोस्"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"ट्याब्लेटको जाँच गर्न उठाउनुहोस्"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"यन्त्रको जाँच गर्न उठाउनुहोस्"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"सञ्चालन गर्नका लागि डिस्प्ले"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"समय, सूचना र अन्य जानकारीको जाँच गर्न आफ्नो फोन उठाउनुहोस्।"</string>
-    <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"समय, सूचना र अन्य जानकारीको जाँच गर्न आफ्नो ट्याब्लेट उठाउनुहोस्।"</string>
-    <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"समय, सूचना तथा अन्य जानकारीको जाँच गर्न आफ्नो यन्त्र उठाउनुहोस्।"</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"समय, सूचना र अन्य जानकारी हेर्न आफ्नो फोन उठाउनुहोस्।"</string>
+    <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"समय, सूचना र अन्य जानकारी हेर्न आफ्नो ट्याब्लेट उठाउनुहोस्।"</string>
+    <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"समय, सूचना तथा अन्य जानकारी हेर्न आफ्नो यन्त्र उठाउनुहोस्।"</string>
     <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"फोनको जाँच गर्न ट्याप गर्नुहोस्"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"ट्याब्लेटको जाँच गर्न ट्याप गर्नुहोस्"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"यन्त्रको जाँच गर्न ट्याप गर्नुहोस्"</string>
-    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"समय, सूचना र अन्य जानकारीको जाँच गर्न आफ्नो यन्त्रको स्क्रिनमा ट्याप गर्नुहोस्।"</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"सूचनाहरू प्राप्त गर्न फिंगरप्रिन्ट स्वाइप गर्नुहोस्"</string>
+    <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"समय, सूचना र अन्य जानकारी हेर्न आफ्नो यन्त्रको स्क्रिनमा ट्याप गर्नुहोस्।"</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"सूचनाहरू हेर्न फिंगरप्रिन्ट स्वाइप गर्नुहोस्"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"फिंगरप्रिन्ट स्वाइप गर्नु"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"अफ्ना सूचनाहरूको जाँच गर्न आफ्नो फोनको पछाडिको भागमा रहेको फिंगरप्रिन्ट सेन्सरमा तलतिर स्वाइप गर्नुहोस्।"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"अफ्ना सूचनाहरूको जाँच गर्न आफ्नो ट्याब्लेटको पछाडिको भागमा रहेको फिंगरप्रिन्ट सेन्सरमा तलतिर स्वाइप गर्नुहोस्।"</string>
@@ -4147,18 +4149,18 @@
     <string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="5223278198179877704">"वाहकद्वारा लक गरिएका यन्त्रहरूमा उपलब्ध छैन"</string>
     <string name="oem_lock_info_message" msgid="5090850412279403901">"यन्त्रको सुरक्षासम्बन्धी सुविधा सक्षम पार्न कृपया यन्त्र पुनः सुरु गर्नुहोस्।"</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7360443072390107772">"कुल उपलब्ध गराइएको <xliff:g id="SIZE">%1$s</xliff:g>\n\nपछिल्लो पटक <xliff:g id="DATE">%2$s</xliff:g> मा सञ्चालन गरिएको"</string>
-    <string name="web_action_enable_title" msgid="4462106633708675959">"तात्कालिक अनुप्रयोगहरू"</string>
+    <string name="web_action_enable_title" msgid="4462106633708675959">"तात्कालिक एपहरू"</string>
     <string name="web_action_enable_summary" msgid="1729016644691793085">"अनुप्रयोगहरूको स्थापना नगरिए तापनि लिंकहरूलाई तिनीहरूमा खोल्नुहोस्"</string>
-    <string name="web_action_section_title" msgid="5563229447734734662">"तात्कालिक अनुप्रयोगहरू"</string>
+    <string name="web_action_section_title" msgid="5563229447734734662">"तात्कालिक एपहरू"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"तात्कालिक अनुप्रयोगका प्राथमिकताहरू"</string>
-    <string name="domain_url_section_title" msgid="206403507921518321">"स्थापना गरिएका अनुप्रयोगहरू"</string>
+    <string name="domain_url_section_title" msgid="206403507921518321">"स्थापना गरिएका एपहरू"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"तपाईंको भण्डारण अहिले भण्डारण प्रबन्धकद्वारा व्यवस्थापन भइरहेको छ"</string>
     <string name="account_for_section_header" msgid="5975241715840642563">"<xliff:g id="USER_NAME">%1$s</xliff:g> का खाताहरू"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"कन्फिगर गर्नुहोस्"</string>
     <string name="auto_sync_account_title" msgid="2394463123733529506">"स्वत: डेटा सिंक गर्नुहोस्"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"व्यक्तिगत डेटा स्वत: सिंक गर्नुहोस्"</string>
     <string name="auto_sync_work_account_title" msgid="2403222633447522376">"कार्य सम्बन्धी डेटा स्वत: सिंक गर्नुहोस्"</string>
-    <string name="auto_sync_account_summary" msgid="6316230976974033772">"अनुप्रयोगहरूलाई स्वत: डेटालाई ताजा पार्न दिनुहोस्"</string>
+    <string name="auto_sync_account_summary" msgid="6316230976974033772">"अनुप्रयोगहरूलाई स्वत: डेटा रिफ्रेस गर्न दिनुहोस्"</string>
     <string name="account_sync_title" msgid="1570164819114297154">"खाताको सिंक"</string>
     <string name="account_sync_summary_some_on" msgid="1934556869158274053">"<xliff:g id="ID_2">%2$d</xliff:g> मध्ये <xliff:g id="ID_1">%1$d</xliff:g> वस्तुहरूका लागि सिंक गर्ने सेवा सक्रिय छ"</string>
     <string name="account_sync_summary_all_on" msgid="3634161204232431700">"सबै वस्तुहरूका लागि सिंक गर्ने सेवा सक्रिय छ"</string>
@@ -4177,19 +4179,19 @@
     <string name="enterprise_privacy_bug_reports" msgid="283443567328836380">"सबैभन्दा पछिल्लो बग रिपोर्ट"</string>
     <string name="enterprise_privacy_security_logs" msgid="8936969480449604726">"सबैभन्दा पछिल्लो सुरक्षा लग"</string>
     <string name="enterprise_privacy_none" msgid="5990646476868794882">"कुनै पनि होइन"</string>
-    <string name="enterprise_privacy_enterprise_installed_packages" msgid="6575025134782391212">"अनुप्रयोगहरू स्थापना गरियो"</string>
+    <string name="enterprise_privacy_enterprise_installed_packages" msgid="6575025134782391212">"एपहरू स्थापना गरियो"</string>
     <string name="enterprise_privacy_apps_count_estimation_info" msgid="5020730108878608500">"अनुप्रयोगको संख्या अनुमानित हो। Play Store भन्दा बाहिरबाट स्थापना गरिएका अनुप्रयोगहरूलाई यसले नसमेट्न सक्छ।"</string>
     <plurals name="enterprise_privacy_number_packages_lower_bound" formatted="false" msgid="5161417161943060602">
-      <item quantity="other">न्यूनतम <xliff:g id="COUNT_1">%d</xliff:g> अनुप्रयोग</item>
-      <item quantity="one">न्यूनतम <xliff:g id="COUNT_0">%d</xliff:g> अनुप्रयोग</item>
+      <item quantity="other">न्यूनतम <xliff:g id="COUNT_1">%d</xliff:g> एप</item>
+      <item quantity="one">न्यूनतम <xliff:g id="COUNT_0">%d</xliff:g> एप</item>
     </plurals>
     <string name="enterprise_privacy_location_access" msgid="110406267468274216">"स्थानसम्बन्धी अनुमतिहरू"</string>
     <string name="enterprise_privacy_microphone_access" msgid="4586428105675460207">"माइक्रोफोनसम्बन्धी अनुमतिहरू"</string>
     <string name="enterprise_privacy_camera_access" msgid="2366392786153103482">"क्यामेरा सम्बन्धी अनुमतिहरू"</string>
-    <string name="enterprise_privacy_enterprise_set_default_apps" msgid="6142937923758931242">"पूर्वनिर्धारित अनुप्रयोगहरू"</string>
+    <string name="enterprise_privacy_enterprise_set_default_apps" msgid="6142937923758931242">"पूर्वनिर्धारित एपहरू"</string>
     <plurals name="enterprise_privacy_number_packages" formatted="false" msgid="1480745164313890415">
-      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> अनुप्रयोगहरू</item>
-      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> अनुप्रयोग</item>
+      <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> एपहरू</item>
+      <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> एप</item>
     </plurals>
     <string name="enterprise_privacy_input_method" msgid="5885916325874284011">"पूर्वनिर्धारित किबोर्ड"</string>
     <string name="enterprise_privacy_input_method_name" msgid="439610095825218563">"<xliff:g id="APP_LABEL">%s</xliff:g> मा सेट गरिएको छ"</string>
@@ -4217,18 +4219,18 @@
     <string name="do_disclosure_learn_more_separator" msgid="702345537118848010">" "</string>
     <string name="learn_more" msgid="6844160787130206258">"थप जान्नुहोस्"</string>
     <plurals name="default_camera_app_title" formatted="false" msgid="8762954032197483848">
-      <item quantity="other">क्यामेरा अनुप्रयोगहरू</item>
+      <item quantity="other">क्यामेरा एपहरू</item>
       <item quantity="one">क्यामेरा अनुप्रयोग</item>
     </plurals>
-    <string name="default_calendar_app_title" msgid="6484001237347739255">"पात्रो अनुप्रयोग"</string>
-    <string name="default_contacts_app_title" msgid="1050372162465746272">"सम्पर्क अनुप्रयोग"</string>
+    <string name="default_calendar_app_title" msgid="6484001237347739255">"पात्रो एप"</string>
+    <string name="default_contacts_app_title" msgid="1050372162465746272">"सम्पर्क एप"</string>
     <plurals name="default_email_app_title" formatted="false" msgid="6875559046625447168">
-      <item quantity="other">इमेल क्लाइन्ट अनुप्रयोगहरू</item>
+      <item quantity="other">इमेल क्लाइन्ट एपहरू</item>
       <item quantity="one">इमेल क्लाइन्ट अनुप्रयोग</item>
     </plurals>
-    <string name="default_map_app_title" msgid="6919751358166607185">"नक्सा अनुप्रयोग"</string>
+    <string name="default_map_app_title" msgid="6919751358166607185">"नक्सा एप"</string>
     <plurals name="default_phone_app_title" formatted="false" msgid="7593838689002912108">
-      <item quantity="other">फोन अनुप्रयोगहरू</item>
+      <item quantity="other">फोन एपहरू</item>
       <item quantity="one">फोन अनुप्रयोग</item>
     </plurals>
     <string name="app_names_concatenation_template_2" msgid="8267577900046506189">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
@@ -4236,13 +4238,13 @@
     <string name="storage_photos_videos" msgid="1890829312367477559">"तस्बिर र भिडियोहरू"</string>
     <string name="storage_music_audio" msgid="3661289086715297149">"सङ्गीत तथा अडियो"</string>
     <string name="storage_games" msgid="7740038143749092373">"खेलहरू"</string>
-    <string name="storage_other_apps" msgid="3202407095387420842">"अन्य अनुप्रयोगहरू"</string>
+    <string name="storage_other_apps" msgid="3202407095387420842">"अन्य एपहरू"</string>
     <string name="storage_files" msgid="2087824267937487880">"फाइलहरू"</string>
     <string name="storage_size_large_alternate" msgid="1317796542509105857">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
     <string name="storage_volume_total" msgid="5021484171514159913">"<xliff:g id="TOTAL">%1$s</xliff:g> मध्ये प्रयोग भएको"</string>
     <string name="storage_percent_full" msgid="6924662861545958442">"प्रयोग भयो"</string>
     <string name="clear_instant_app_data" msgid="3673669086522890405">"अनुप्रयोगको डेटा खाली गर्नुहोस्"</string>
-    <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"तपाईं यो तात्कालिक अनुप्रयोगलाई हटाउन चाहनुहुन्छ?"</string>
+    <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"तपाईं यो तात्कालिक एपलाई हटाउन चाहनुहुन्छ?"</string>
     <string name="launch_instant_app" msgid="5251693061228352333">"खोल्नुहोस्"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"खेलहरू"</string>
     <string name="audio_files_title" msgid="3073879661731363935">"अडियो फाइलहरू"</string>
@@ -4261,13 +4263,13 @@
     <string name="device_theme" msgid="8992291311481135893">"यन्त्रको विषयवस्तु"</string>
     <string name="default_theme" msgid="5986996377385956138">"पूर्वनिर्धारित"</string>
     <string name="show_operator_name_title" msgid="5056163028128447308">"नेटवर्कको नाम"</string>
-    <string name="show_operator_name_summary" msgid="6352180285743777497">"वस्तुस्थिति पट्टीमा नेटवर्कको नाम देखाउनुहोस्"</string>
+    <string name="show_operator_name_summary" msgid="6352180285743777497">"स्टाटस बारमा नेटवर्कको नाम देखाउनुहोस्"</string>
     <string name="storage_manager_indicator" msgid="4255140732848476875">"भण्डारणको प्रबन्धक: <xliff:g id="STATUS">^1</xliff:g>"</string>
     <string name="storage_manager_indicator_off" msgid="6404056007102580777">"निष्क्रिय"</string>
     <string name="storage_manager_indicator_on" msgid="5295306384982062320">"सक्रिय"</string>
-    <string name="install_type_instant" msgid="6248487669862821874">"तात्कालिक अनुप्रयोग"</string>
+    <string name="install_type_instant" msgid="6248487669862821874">"तात्कालिक एप"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"भण्डारण व्यवस्थापक निष्क्रिय पार्ने हो?"</string>
-    <string name="storage_movies_tv" msgid="7282484273991655296">"चलचित्र तथा TV अनुप्रयोगहरू"</string>
+    <string name="storage_movies_tv" msgid="7282484273991655296">"चलचित्र तथा TV एपहरू"</string>
     <string name="carrier_provisioning" msgid="3309125279191534469">"सेवा प्रदायकको प्रावधान सम्बन्धी जानकारी"</string>
     <string name="trigger_carrier_provisioning" msgid="6284005970057901477">"सेवा प्रदायकको प्रावधानलाई ट्रिगर गर्नुहोस्"</string>
     <string name="zen_suggestion_title" msgid="2134699720214231950">"बाधा नपुर्‍याउनुहोस्‌ नामक सेवालाई अद्यावधिक गर्नुहोस्‌"</string>
@@ -4282,10 +4284,10 @@
     <string name="allow_background_activity_starts" msgid="6754016668813082728">"पृष्ठभूमिको क्रियाकलाप सुरु हुने अनुमति दिनुहोस्"</string>
     <string name="allow_background_activity_starts_summary" msgid="8170749270869606692">"पृष्ठभूमिका सबै क्रियाकलाप सुरु हुने अनुमति दिनुहोस्"</string>
     <string name="show_first_crash_dialog" msgid="3682063068903692710">"सधैँ क्र्याससम्बन्धी संवाद देखाउनुस्"</string>
-    <string name="show_first_crash_dialog_summary" msgid="8197987550025401754">"प्रत्येकपटक अनुप्रयोग क्र्यास हुँदा संवाद देखाउनुहोस्‌"</string>
-    <string name="angle_enabled_app" msgid="4359266182151708733">"कोण सक्षम पारिएको अनुप्रयोग चयन गर्नुहोस्"</string>
-    <string name="angle_enabled_app_not_set" msgid="7428910515748621910">"कोण सक्षम पारिएको कुनै पनि अनुप्रयोग सेट गरिएको छैन"</string>
-    <string name="angle_enabled_app_set" msgid="7313088703610569320">"कोण सक्षम पारिएको अनुप्रयोग: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
+    <string name="show_first_crash_dialog_summary" msgid="8197987550025401754">"प्रत्येकपटक एप क्र्यास हुँदा संवाद देखाउनुहोस्‌"</string>
+    <string name="angle_enabled_app" msgid="4359266182151708733">"कोण सक्षम पारिएको एप चयन गर्नुहोस्"</string>
+    <string name="angle_enabled_app_not_set" msgid="7428910515748621910">"कोण सक्षम पारिएको कुनै पनि एप सेट गरिएको छैन"</string>
+    <string name="angle_enabled_app_set" msgid="7313088703610569320">"कोण सक्षम पारिएको एप: <xliff:g id="APP_NAME">%1$s</xliff:g>"</string>
     <string name="game_driver_dashboard_title" msgid="219443350404091201">"गेम ड्राइभरका प्राथमिकताहरू"</string>
     <string name="game_driver_dashboard_summary" msgid="1500674075618790528">"गेम ड्राइभरका सेटिङहरू परिमार्जन गर्नुहोस्"</string>
     <string name="game_driver_footer_text" msgid="1540158284161797913">"गेम ड्राइभर सक्रिय गरिँदा, तपाईं यस यन्त्रमा स्थापना गरिएका अनुप्रयोगहरूका हकमा अद्यावधिक गरिएको ग्राफिक्स ड्राइभर प्रयोग गर्ने विकल्प छनौट गर्न सक्नुहुन्छ।"</string>
@@ -4306,8 +4308,8 @@
     <string name="my_device_info_account_preference_title" msgid="7965847995028952373">"खाता"</string>
     <string name="my_device_info_device_name_preference_title" msgid="7384446683248009296">"यन्त्रको नाम"</string>
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Wi-Fi को नियन्त्रण"</string>
-    <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"अनुप्रयोगलाई Wi-Fi नियन्त्रण गर्ने अनुमति दिनुहोस्"</string>
-    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"यो अनुप्रयोगलाई Wi-Fi सक्रिय गर्ने वा निष्क्रिय पार्ने अनुमति दिनुहोस्, स्क्यान गरी Wi-Fi नेटवर्कमा जडान गर्नुहोस्, नेटवर्कहरू थप्नुहोस् वा हटाउनुहोस्, वा स्थानीय रूपमा मात्र प्रयोग गर्न मिल्ने हटस्पट सुरु गर्नुहोस्"</string>
+    <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"एपलाई Wi-Fi नियन्त्रण गर्ने अनुमति दिनुहोस्"</string>
+    <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"यो एपलाई Wi-Fi सक्रिय गर्ने वा निष्क्रिय पार्ने अनुमति दिनुहोस्, स्क्यान गरी Wi-Fi नेटवर्कमा जडान गर्नुहोस्, नेटवर्कहरू थप्नुहोस् वा हटाउनुहोस्, वा स्थानीय रूपमा मात्र प्रयोग गर्न मिल्ने हटस्पट सुरु गर्नुहोस्"</string>
     <string name="media_output_title" msgid="8710632337456601848">"मिडिया यसमा प्ले गर्नुहोस्"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"यो यन्त्र"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"फोन"</string>
@@ -4321,7 +4323,7 @@
     <string name="battery_suggestion_title" product="device" msgid="765005476863631528">"यन्त्रको ब्याट्रीको आयुमा सुधार गर्नुहोस्"</string>
     <string name="battery_suggestion_title" product="default" msgid="3295786171830183688">"फोनको ब्याट्रीको आयुमा सुधार गर्नुहोस्"</string>
     <string name="battery_suggestion_summary" msgid="2669070349482656490"></string>
-    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"घन्टी बज्नबाट रोक्नुहोस्‌"</string>
+    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"घन्टी बज्न नदिनुहोस्‌"</string>
     <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"पावर तथा भोल्युम बढाउने बटन एकैपटक थिच्नुहोस्‌"</string>
     <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"घन्टी बज्ने कार्य रोक्न सर्टकट"</string>
     <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"कम्पन"</string>
@@ -4330,8 +4332,8 @@
     <string name="prevent_ringing_option_vibrate_summary" msgid="7961818570574683926">"सक्रिय (कम्पन)"</string>
     <string name="prevent_ringing_option_mute_summary" msgid="3509459199090688328">"सक्रिय (म्युट)"</string>
     <string name="prevent_ringing_option_none_summary" msgid="5152618221093037451">"निष्क्रिय"</string>
-    <string name="pref_title_network_details" msgid="3971074015034595956">"नेटवर्कसम्बन्धी विवरणहरू"</string>
-    <string name="about_phone_device_name_warning" msgid="9088572775969880106">"तपाईंको फोनमा रहेका अनुप्रयोगहरूले तपाईंको यन्त्रको नाम देख्न सक्छन्। तपाईंले ब्लुटुथ यन्त्रहरूमा जडान गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरू पनि यसलाई देख्न सक्छन्।"</string>
+    <string name="pref_title_network_details" msgid="3971074015034595956">"नेटवर्कको विवरण"</string>
+    <string name="about_phone_device_name_warning" msgid="9088572775969880106">"तपाईंको फोनमा रहेका एपहरूले तपाईंको यन्त्रको नाम देख्न सक्छन्। तपाईंले ब्लुटुथ यन्त्रहरूमा जडान गर्दा वा कुनै Wi-Fi हटस्पट सेटअप गर्दा अरू मान्छेहरू पनि यसलाई देख्न सक्छन्।"</string>
     <string name="devices_title" msgid="4768432575951993648">"यन्त्रहरू"</string>
     <string name="homepage_all_settings" msgid="3201220879559136116">"सबै सेटिङहरू"</string>
     <string name="homepage_personal_settings" msgid="7472638597249114564">"सुझावहरू"</string>
@@ -4484,22 +4486,22 @@
     <string name="permission_bar_chart_title" msgid="874145405516650073">"पछिल्लो २४ घन्टामा गरिएको अनुमतिको प्रयोग"</string>
     <string name="permission_bar_chart_details" msgid="942094334321073927">"ड्यासबोर्डमा सबै कुरा हेर्नुहोस्"</string>
     <plurals name="permission_bar_chart_label" formatted="false" msgid="2831305719356562097">
-      <item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> अनुप्रयोगहरू</item>
-      <item quantity="one">१ अनुप्रयोग</item>
+      <item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> एपहरू</item>
+      <item quantity="one">१ एप</item>
     </plurals>
     <string name="accessibility_usage_title" msgid="3920601240120963611">"पहुँचसम्बन्धी सेवाहरूको प्रयोग"</string>
     <plurals name="accessibility_usage_summary" formatted="false" msgid="2604152087205501644">
-      <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> अनुप्रयोगहरूले तपाईंको यन्त्रमाथि पूर्ण रूपमा पहुँच राख्न सक्छन्</item>
+      <item quantity="other"><xliff:g id="SERVICE_COUNT">%1$d</xliff:g> एपहरूले तपाईंको यन्त्रमाथि पूर्ण रूपमा पहुँच राख्न सक्छन्</item>
       <item quantity="one">१ अनुप्रयोगले तपाईंको यन्त्रमाथि पूर्ण रूपमा पहुँच राख्न सक्छ</item>
     </plurals>
     <string name="manage_app_notification" msgid="9072118910762792295">"<xliff:g id="APP_NAME">%1$s</xliff:g> सम्बन्धी सूचनाहरूको व्यवस्थापन गर्नुहोस्"</string>
-    <string name="no_suggested_app" msgid="509257628685025383">"सिफारिस गरिएको कुनै पनि अनुप्रयोग छैन"</string>
+    <string name="no_suggested_app" msgid="509257628685025383">"सिफारिस गरिएको कुनै पनि एप छैन"</string>
     <plurals name="notification_few_channel_count_summary" formatted="false" msgid="5165639207390218085">
       <item quantity="other">सूचनाका <xliff:g id="NOTIFICATION_CHANNEL_COUNT_1">%1$d</xliff:g> च्यानलहरू।</item>
       <item quantity="one">सूचनाको <xliff:g id="NOTIFICATION_CHANNEL_COUNT_0">%1$d</xliff:g> च्यानल।</item>
     </plurals>
     <string name="notification_many_channel_count_summary" msgid="9205641731142529086">"सूचनाका <xliff:g id="NOTIFICATION_CHANNEL_COUNT">%1$d</xliff:g> च्यानलहरू। सबैको व्यवस्थापन गर्न ट्याप गर्नुहोस्।"</string>
-    <string name="recently_installed_app" msgid="6491959945747808096">"तपाईंले हालसालै यो अनुप्रयोग स्थापना गर्नुभयो।"</string>
+    <string name="recently_installed_app" msgid="6491959945747808096">"तपाईंले हालसालै यो एप स्थापना गर्नुभयो।"</string>
     <string name="media_output_panel_title" msgid="8429272102437211530">"आउटपुट बदल्नुहोस्"</string>
     <string name="media_output_panel_summary_of_playing_device" msgid="7425231720911606911">"हाल <xliff:g id="DEVICE_NAME">%1$s</xliff:g> मा प्ले भइरहेको"</string>
     <string name="wfc_disclaimer_title_text" msgid="3245793509743182243">"महत्त्वपूर्ण जानकारी"</string>
diff --git a/tests/CarDeveloperOptions/res/values-nl/arrays.xml b/tests/CarDeveloperOptions/res/values-nl/arrays.xml
index bb696eb..0e77dbd 100644
--- a/tests/CarDeveloperOptions/res/values-nl/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-nl/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Nooit toestaan"</item>
     <item msgid="8184570120217958741">"Altijd toestaan"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normaal"</item>
+    <item msgid="5101233285497327432">"Gemiddeld"</item>
+    <item msgid="1555861583162930714">"Laag"</item>
+    <item msgid="1719683776264798117">"Kritiek"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normaal"</item>
+    <item msgid="6107138933849816768">"Gemiddeld"</item>
+    <item msgid="182695359839047859">"Laag"</item>
+    <item msgid="8577246509202964244">"Kritiek"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Permanent"</item>
     <item msgid="167418068739176448">"Topactiviteit"</item>
diff --git a/tests/CarDeveloperOptions/res/values-nl/strings.xml b/tests/CarDeveloperOptions/res/values-nl/strings.xml
index a8d8d6f..f096f36 100644
--- a/tests/CarDeveloperOptions/res/values-nl/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-nl/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Maak de tekst op het scherm kleiner of groter."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Verkleinen"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Vergroten"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Voorbeeldtekst"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"De tovenaar van Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Hoofdstuk 11: De prachtige Smaragden Stad van Oz"</string>
@@ -128,7 +127,7 @@
     <string name="bluetooth_notif_title" msgid="5090288898529286011">"Koppelingsverzoek"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"Tik om te koppelen met <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"Ontvangen bestanden"</string>
-    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"Bestanden ontvangen via Bluetooth"</string>
+    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"Bestanden ontvangen via bluetooth"</string>
     <string name="device_picker" msgid="8345264486071697705">"Bluetooth-apparaat kiezen"</string>
     <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> wil Bluetooth inschakelen"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> wil Bluetooth uitschakelen"</string>
@@ -209,7 +208,7 @@
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Het poortveld moet leeg zijn als het hostveld leeg is."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"De poort die je hebt ingevoerd, is ongeldig."</string>
     <string name="proxy_warning_limited_support" msgid="9026539134219095768">"De HTTP-proxy wordt gebruikt door de browser, maar mogelijk niet door de andere apps."</string>
-    <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
+    <string name="proxy_url_title" msgid="882042361706435904">"PAC-URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL-bandbreedte (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL-bandbreedte (kbps):"</string>
     <string name="radio_info_signal_location_label" msgid="6788144906873498013">"Mobiele locatiegegevens (beëindigd):"</string>
@@ -755,7 +754,7 @@
     <string name="bluetooth_pairing_dialog_title" msgid="7900515495932064945">"Koppelen met dit apparaat?"</string>
     <string name="bluetooth_pairing_dialog_sharing_phonebook_title" msgid="7395493311980018460">"Telefoonboek delen?"</string>
     <string name="bluetooth_pairing_dialog_contants_request" msgid="2103132762434487717">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wil toegang tot je contacten en gespreksgeschiedenis."</string>
-    <string name="bluetooth_pairing_dialog_paring_request" msgid="5513953935086446387">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wil koppelen via Bluetooth. Na verbinding heeft het toegang tot je contacten en gespreksgeschiedenis."</string>
+    <string name="bluetooth_pairing_dialog_paring_request" msgid="5513953935086446387">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> wil koppelen via bluetooth. Na verbinding heeft het toegang tot je contacten en gespreksgeschiedenis."</string>
     <string name="bluetooth_preference_found_media_devices" msgid="5748539613567836379">"Beschikbare apparaten"</string>
     <string name="bluetooth_preference_no_found_devices" msgid="4190090666412408576">"Geen apparaten beschikbaar"</string>
     <string name="bluetooth_device_context_connect" msgid="1812090541371432890">"Verbinden"</string>
@@ -766,8 +765,8 @@
     <string name="bluetooth_device_context_connect_advanced" msgid="423463405499392444">"Opties..."</string>
     <string name="bluetooth_menu_advanced" msgid="7566858513372603652">"Geavanceerd"</string>
     <string name="bluetooth_advanced_titlebar" msgid="6459469494039004784">"Geavanceerde Bluetooth"</string>
-    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"Als Bluetooth is ingeschakeld, kan je apparaat communiceren met andere Bluetooth-apparaten in de buurt."</string>
-    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"Als Bluetooth is ingeschakeld, kan je apparaat communiceren met andere Bluetooth-apparaten in de buurt.\n\nApps en services kunnen nog steeds op elk gewenst moment naar apparaten in de buurt scannen om de apparaatfunctionaliteit te verbeteren, zelfs als Bluetooth is uitgeschakeld. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de "<annotation id="link">"scaninstellingen"</annotation>"."</string>
+    <string name="bluetooth_empty_list_bluetooth_off" msgid="6255367297830430459">"Als bluetooth is ingeschakeld, kan je apparaat communiceren met andere bluetooth-apparaten in de buurt."</string>
+    <string name="bluetooth_scanning_on_info_message" msgid="5460370815156050550">"Als bluetooth is ingeschakeld, kan je apparaat communiceren met andere bluetooth-apparaten in de buurt.\n\nApps en services kunnen nog steeds op elk gewenst moment naar apparaten in de buurt scannen om de apparaatfunctionaliteit te verbeteren, zelfs als bluetooth is uitgeschakeld. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren. Je kunt dit wijzigen in de "<annotation id="link">"scaninstellingen"</annotation>"."</string>
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"Systeem-apps en -services kunnen nog steeds Bluetooth-apparaten detecteren om de nauwkeurigheid van locaties te verbeteren. Je kunt dit wijzigen in de <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>instellingen voor scannen<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"Kan geen verbinding maken. Probeer het opnieuw."</string>
     <string name="device_details_title" msgid="726517818032923222">"Apparaatgegevens"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wifi"</item>
+    <item msgid="2271962426654621656">"Mobiel"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Mobiel netwerk gebruiken als er geef wifi beschikbaar is"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Gebruik wifi als er geen mobiel netwerk beschikbaar is"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Bellen via wifi. Zonder wifi-signaal wordt het gesprek beëindigd."</string>
@@ -1343,7 +1345,7 @@
     <string name="scanning_status_text_wifi_on_ble_on" msgid="6370507836346838473">"Zowel wifi-scannen als Bluetooth-scannen zijn ingeschakeld"</string>
     <string name="scanning_status_text_wifi_on_ble_off" msgid="8205014713732412608">"Wifi-scannen is ingeschakeld en Bluetooth-scannen is uitgeschakeld"</string>
     <string name="scanning_status_text_wifi_off_ble_on" msgid="7400522456303307057">"Bluetooth-scannen is ingeschakeld en wifi-scannen is uitgeschakeld"</string>
-    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Zowel wifi-scannen als Bluetooth-scannen zijn uitgeschakeld"</string>
+    <string name="scanning_status_text_wifi_off_ble_off" msgid="8575026386237481457">"Zowel wifi-scannen als bluetooth-scannen zijn uitgeschakeld"</string>
     <string name="status_meid_number" msgid="8756271256760479835">"MEID"</string>
     <string name="status_icc_id" msgid="9191847562997702709">"ICCID"</string>
     <string name="status_data_network_type" msgid="2344720457353394909">"Type mobiele-datanetwerk"</string>
@@ -1455,7 +1457,7 @@
     <string name="storage_detail_other" msgid="9164851767437306618">"Overige"</string>
     <string name="storage_detail_system" msgid="6784247618772153283">"Systeem"</string>
     <string name="storage_detail_explore" msgid="8206900269596580264">"<xliff:g id="NAME">^1</xliff:g> verkennen"</string>
-    <string name="storage_detail_dialog_other" msgid="5073511663616043370">"Overig omvat gedeelde bestanden die zijn opgeslagen door apps, bestanden die zijn gedownload van internet of via Bluetooth, Android-bestanden, enzovoort. \n\nAls je de zichtbare content van deze <xliff:g id="NAME">^1</xliff:g> wilt bekijken, tik je op Verkennen."</string>
+    <string name="storage_detail_dialog_other" msgid="5073511663616043370">"Overig omvat gedeelde bestanden die zijn opgeslagen door apps, bestanden die zijn gedownload van internet of via bluetooth, Android-bestanden, enzovoort. \n\nAls je de zichtbare content van deze <xliff:g id="NAME">^1</xliff:g> wilt bekijken, tik je op Verkennen."</string>
     <string name="storage_detail_dialog_system" msgid="1472572861360014226">"Systeem omvat bestanden die worden gebruikt om Android-versie <xliff:g id="VERSION">%s</xliff:g> uit te voeren"</string>
     <string name="storage_detail_dialog_user" msgid="1663117417635010371">"<xliff:g id="USER_0">^1</xliff:g> kan <xliff:g id="SIZE">^2</xliff:g> van de opslag hebben gebruikt voor foto\'s, muziek, apps of andere gegevens. \n\nSchakel over naar <xliff:g id="USER_1">^1</xliff:g> voor meer informatie."</string>
     <string name="storage_wizard_init_title" msgid="3407283236421089014">"Je <xliff:g id="NAME">^1</xliff:g> configureren"</string>
@@ -1556,7 +1558,7 @@
     <string name="menu_delete" msgid="8646081395424055735">"APN verwijderen"</string>
     <string name="menu_new" msgid="7529219814721969024">"Nieuwe APN"</string>
     <string name="menu_save" msgid="7310230314430623215">"Opslaan"</string>
-    <string name="menu_cancel" msgid="1292949233623397786">"Weggooien"</string>
+    <string name="menu_cancel" msgid="1292949233623397786">"Niet opslaan"</string>
     <string name="error_title" msgid="6595678722641187629"></string>
     <string name="error_name_empty" msgid="4638536651499727722">"Het veld \'Naam\' mag niet leeg zijn."</string>
     <string name="error_apn_empty" msgid="4849569239327147849">"De APN mag niet leeg zijn."</string>
@@ -1568,8 +1570,8 @@
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"Herstellen van standaard-APN-instellingen voltooid."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Opties voor resetten"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Netwerk, apps of apparaat kunnen worden gereset"</string>
-    <string name="reset_network_title" msgid="8944059136930806211">"Wifi, mobiel en Bluetooth resetten"</string>
-    <string name="reset_network_desc" msgid="4982633363916261109">"Hiermee worden alle netwerkinstellingen gereset, waaronder:\n\n"<li>"wifi"</li>\n<li>"mobiele data"</li>\n<li>"Bluetooth"</li></string>
+    <string name="reset_network_title" msgid="8944059136930806211">"Wifi, mobiel en bluetooth resetten"</string>
+    <string name="reset_network_desc" msgid="4982633363916261109">"Hiermee worden alle netwerkinstellingen gereset, waaronder:\n\n"<li>"wifi"</li>\n<li>"mobiele data"</li>\n<li>"bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Gedownloade simkaarten wissen"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"Neem contact op met je provider als je vervangende simkaarten wilt downloaden. Hiermee worden geen mobiele abonnementen opgezegd."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Instellingen resetten"</string>
@@ -1622,9 +1624,9 @@
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Internetverbinding van telefoon delen via USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Internetverbinding van tablet delen via USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Bluetooth-tethering"</string>
-    <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Internetverbinding van deze tablet delen via Bluetooth"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Internetverbinding van deze telefoon delen via Bluetooth"</string>
-    <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Internetverbinding van deze <xliff:g id="DEVICE_NAME">%1$d</xliff:g> delen via Bluetooth"</string>
+    <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Internetverbinding van deze tablet delen via bluetooth"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Internetverbinding van deze telefoon delen via bluetooth"</string>
+    <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Internetverbinding van deze <xliff:g id="DEVICE_NAME">%1$d</xliff:g> delen via bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Kan niet meer dan <xliff:g id="MAXCONNECTION">%1$d</xliff:g> apparaten tetheren."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"Tethering van <xliff:g id="DEVICE_NAME">%1$s</xliff:g> wordt opgeheven."</string>
     <string name="tethering_footer_info" msgid="8019555174339154124">"Gebruik hotspot en tethering om internet aan andere apparaten te leveren via je mobiele dataverbinding. Apps kunnen ook hotspots maken om content te delen met apparaten in de buurt."</string>
@@ -1654,15 +1656,15 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Recente locatietoegang"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Details weergeven"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Er zijn geen apps die je locatie onlangs hebben aangevraagd"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Er zijn geen apps die je locatie onlangs hebben opgevraagd"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Er zijn geen apps die recent toegang hebben gehad tot je locatie"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Hoog accugebruik"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Laag batterijgebruik"</string>
-    <string name="location_scanning_screen_title" msgid="7663329319689413454">"Scannen via wifi en Bluetooth"</string>
+    <string name="location_scanning_screen_title" msgid="7663329319689413454">"Scannen via wifi en bluetooth"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Wifi-scannen"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Apps en services toestaan altijd te scannen naar wifi-netwerken in de buurt, zelfs als wifi is uitgeschakeld. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren."</string>
     <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Bluetooth-scannen"</string>
-    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Apps en services toestaan altijd te scannen naar apparaten in de buurt, zelfs als Bluetooth is uitgeschakeld. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren."</string>
+    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Apps en services toestaan altijd te scannen naar apparaten in de buurt, zelfs als bluetooth is uitgeschakeld. Dit kan worden gebruikt om bijvoorbeeld locatiegebaseerde functies en services te verbeteren."</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"Locatieservices voor het werk"</string>
     <string name="location_network_based" msgid="1535812159327454835">"Wifi en mobiele netwerklocatie"</string>
     <string name="location_neighborhood_level" msgid="8459352741296587916">"Apps toestaan de locatieservice van Google te gebruiken om je locatie sneller te schatten. Anonieme locatiegegevens worden verzameld en verzonden naar Google."</string>
@@ -2279,7 +2281,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Batterij is mogelijk eerder leeg dan normaal"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Batterijbesparing aan"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Sommige functies zijn mogelijk beperkt"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefoon heeft meer verbruikt dan normaal"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Meer verbruikt dan normaal"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Tablet heeft meer verbruikt dan normaal"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Apparaat heeft meer verbruikt dan normaal"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Batterij is mogelijk eerder leeg dan normaal"</string>
@@ -2707,7 +2709,7 @@
     <string name="data_usage_auto_sync_off_dialog_title" msgid="7105334544291643305">"Auto-synchr. uitschakelen?"</string>
     <string name="data_usage_auto_sync_off_dialog" msgid="4057984234450947964">"Hiermee beperk je data- en batterijgebruik. Je moet elk account echter handmatig synchroniseren om recente informatie te verzamelen. Je ontvangt geen meldingen wanneer er updates zijn."</string>
     <string name="data_usage_cycle_editor_title" msgid="4967309390043599889">"Datum voor resetten gebruikscyclus"</string>
-    <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"Datum van elke maand:"</string>
+    <string name="data_usage_cycle_editor_subtitle" msgid="6043098041946166597">"Dag van elke maand:"</string>
     <string name="data_usage_cycle_editor_positive" msgid="9155752056537811646">"Instellen"</string>
     <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"Waarschuwing voor datagebruik instellen"</string>
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Limiet voor dataverbruik instellen"</string>
@@ -3034,8 +3036,8 @@
     <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"datagebruik"</string>
     <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"hotspot"</string>
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"Verbonden apparaten"</string>
-    <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, rijmodus, NFC"</string>
-    <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"Bluetooth, rijmodus"</string>
+    <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"Bluetooth, rijstand, NFC"</string>
+    <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"Bluetooth, rijstand"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"Bluetooth, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"Bluetooth"</string>
     <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"Apps en meldingen"</string>
@@ -3706,7 +3708,7 @@
     </plurals>
     <string name="high_power_filter_on" msgid="5294209328473386403">"Niet geoptimaliseerd"</string>
     <string name="high_power_on" msgid="3573501822510580334">"Niet geoptimaliseerd"</string>
-    <string name="high_power_off" msgid="5906679734326490426">"Accuverbruik optimaliseren"</string>
+    <string name="high_power_off" msgid="5906679734326490426">"Batterijverbruik optimaliseren"</string>
     <string name="high_power_system" msgid="739584574711292753">"Batterijoptimalisatie niet beschikbaar"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Batterijoptimalisatie niet toepassen. Hierdoor kan je batterijverbruik toenemen."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"App altijd uitvoeren op de achtergrond?"</string>
diff --git a/tests/CarDeveloperOptions/res/values-or/arrays.xml b/tests/CarDeveloperOptions/res/values-or/arrays.xml
index 518431f..58fa092 100644
--- a/tests/CarDeveloperOptions/res/values-or/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-or/arrays.xml
@@ -29,9 +29,25 @@
     <item msgid="5194868215515664953">"ପେସିଫିକ୍‌"</item>
     <item msgid="7044520255415007865">"ସମସ୍ତ"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for screen_timeout_entries:5 (5827960506924849753) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 ସେକେଣ୍ଡ"</item>
+    <item msgid="772029947136115322">"30 ସେକେଣ୍ଡ"</item>
+    <item msgid="8743663928349474087">"1 ମିନିଟ୍"</item>
+    <item msgid="1506508631223164814">"2 ମିନିଟ୍"</item>
+    <item msgid="8664703938127907662">"5 ମିନିଟ୍‍"</item>
+    <item msgid="5827960506924849753">"10 ମିନିଟ୍"</item>
+    <item msgid="6677424950124253938">"30 ମିନିଟ୍‌"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ଆଦୌ ନୁହେଁ"</item>
+    <item msgid="2517785806387977252">"15 ସେକେଣ୍ଡ"</item>
+    <item msgid="6347954399441173672">"30 ସେକେଣ୍ଡ"</item>
+    <item msgid="4858305253279921789">"1 ମିନିଟ୍"</item>
+    <item msgid="8109273437140044073">"2 ମିନିଟ୍"</item>
+    <item msgid="2788593551142462622">"ମିନିଟ୍"</item>
+    <item msgid="8012672183888404961">"10 ମିନିଟ୍"</item>
+    <item msgid="8271452751594598661">"30 ମିନିଟ୍"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"ତୁରନ୍ତ"</item>
     <item msgid="2038544972632026612">"5 ସେକେଣ୍ଡ"</item>
@@ -43,17 +59,47 @@
     <item msgid="811192536981678974">"10 ମିନିଟ୍"</item>
     <item msgid="7258394417241706272">"30 ମିନିଟ୍"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"ଛୋଟ"</item>
+    <item msgid="591935967183159581">"ଡିଫଲ୍ଟ"</item>
+    <item msgid="1714184661981538355">"ବହୁତ ବଡ଼"</item>
+    <item msgid="6195563047686707484">"ବୃହତ୍ତମ"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"ସ୍କାନ୍‌ କରୁଛି…"</item>
+    <item msgid="5597394826455877834">"ସଂଯୋଗ କରାଯାଉଛି…"</item>
+    <item msgid="5848277343965362748">"ପ୍ରାମାଣିକରଣ କରାଯାଉଛି…"</item>
+    <item msgid="3391238031431440676">"IP ଠିକଣା ପ୍ରାପ୍ତ କରୁଛି…"</item>
+    <item msgid="5257597310494000224">"ସଂଯୋଗ ହୋଇଛି"</item>
+    <item msgid="8472497592913050396">"ସସ୍ପେଣ୍ଡ ହୋଇଛି"</item>
+    <item msgid="1228072488815999109">"ବିଚ୍ଛିନ୍ନ କରୁଛି…"</item>
+    <item msgid="7253087004422991731">"ବିଛିନ୍ନ"</item>
+    <item msgid="4169850917304751227">"ଅସଫଳ"</item>
+    <item msgid="6266658166690831131">"ଅବରୋଧିତ"</item>
+    <item msgid="4517230805854909775">"ସାମୟିକ ଭାବେ ଖରାପ ସଂଯୋଜନାକୁ ଏଡାଉଛି"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"ସ୍କାନ୍ ହେଉଛି…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>କୁ ସଂଯୋଗ କରାଯାଉଛି…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ମାଧ୍ୟମରେ ପ୍ରାମାଣିକରଣ କରାଯାଉଛି…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ରୁ IP ଠିକଣା ହାସଲ କରୁଛି…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ସହ ସଂଯୁକ୍ତ"</item>
+    <item msgid="6600156231416890902">"ସସ୍ପେଣ୍ଡ ହୋଇଛି"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>ରୁ ବିଚ୍ଛିନ୍ନ ହେଉଛି…"</item>
+    <item msgid="3980154971187953257">"ବିଛିନ୍ନ"</item>
+    <item msgid="2847316776634969068">"ଅସଫଳ"</item>
+    <item msgid="4390990424746035383">"ଅବରୋଧିତ"</item>
+    <item msgid="3618248791367063949">"ଦୁର୍ବଳ ସଂଯୋଗକୂ ସାମୟିକ ଭାବେ ଏଡ଼ାଉଛି"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"ପୁଶ୍ ବଟନ୍"</item>
+    <item msgid="7401896200768713930">"ପୀଅର୍‌ ଡିଭାଇସ୍‌ରୁ PIN‌"</item>
+    <item msgid="4526848028011846710">"ଏହି ଡିଭାଇସ୍‌ରୁ PIN"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"ସଂଯୋଗ ହୋଇଛି"</item>
     <item msgid="983792611851499732">"ଆମନ୍ତ୍ରିତ"</item>
@@ -61,7 +107,12 @@
     <item msgid="4646663015449312554">"ଉପଲବ୍ଧ"</item>
     <item msgid="3230556734162006146">"ପରିସୀମା ବାହାରେ"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 ମିନିଟ୍"</item>
+    <item msgid="2759776603549270587">"5 ମିନିଟ୍"</item>
+    <item msgid="167772676068860015">"1 ଘଣ୍ଟା"</item>
+    <item msgid="5985477119043628504">"କେବେବି ବନ୍ଦ କରନାହିଁ"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"ସିଷ୍ଟମ୍ ଡିଫଲ୍ଟ ବ୍ୟବହାର କରନ୍ତୁ: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"୧"</item>
@@ -70,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"ଖରାପ"</item>
+    <item msgid="7882129634982603782">"ଦୁର୍ବଳ"</item>
+    <item msgid="6457357501905996224">"ଠିକଠାକ"</item>
+    <item msgid="405271628162918841">"ଭଲ"</item>
+    <item msgid="999948812884919584">"ସର୍ବୋତ୍ତମ"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"ଗତ 30 ଦିନ"</item>
     <item msgid="3211287705232736964">"ବ୍ୟବହାରର ଚକ୍ର ସେଟ୍‌ କରନ୍ତୁ…"</item>
@@ -107,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"ଷ୍ଟାଟିକ୍"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"କିଛି ନୁହେଁ"</item>
     <item msgid="1464741437353223198">"ମାନୁଆଲ୍‌"</item>
@@ -124,8 +183,24 @@
     <item msgid="9148582221081416020">"IPv6"</item>
     <item msgid="4094895508821270572">"IPv4/IPv6"</item>
   </string-array>
-    <!-- no translation found for bearer_entries:0 (5231094118929435723) -->
-    <!-- no translation found for bearer_entries:9 (7246853278334311652) -->
+  <string-array name="bearer_entries">
+    <item msgid="5231094118929435723">"ଅନିର୍ଦ୍ଦିଷ୍ଟ"</item>
+    <item msgid="2740477081395679090">"LTE"</item>
+    <item msgid="1807866878276630064">"HSPAP"</item>
+    <item msgid="7945352669463358624">"HSPA"</item>
+    <item msgid="4152166097223929133">"HSUPA"</item>
+    <item msgid="5134662517319988296">"HSDPA"</item>
+    <item msgid="4997539146036732961">"UMTS"</item>
+    <item msgid="4910169712073083585">"EDGE"</item>
+    <item msgid="3505904588897578792">"GPRS"</item>
+    <item msgid="7246853278334311652">"eHRPD"</item>
+    <item msgid="7037248100126710307">"EVDO_B"</item>
+    <item msgid="3440758673769932256">"EVDO_A"</item>
+    <item msgid="1782525731958596741">"EVDO_0"</item>
+    <item msgid="1819765960790884441">"1xRTT"</item>
+    <item msgid="3148192102183107944">"IS95B"</item>
+    <item msgid="3778273775365258534">"IS95A"</item>
+  </string-array>
   <string-array name="mvno_type_entries">
     <item msgid="6984770764726663331">"କିଛି ନୁହେଁ"</item>
     <item msgid="1469208769491004112">"SPN"</item>
@@ -144,28 +219,185 @@
     <item msgid="8563996233342430477">"ମିଡିଆ"</item>
     <item msgid="5323851085993963783">"ଡିଭାଇସ୍"</item>
   </string-array>
-    <!-- no translation found for app_ops_summaries:46 (4933375960222609935) -->
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
-    <!-- no translation found for app_ops_labels:48 (8291198322681891160) -->
+  <string-array name="app_ops_summaries">
+    <item msgid="2585253854462134715">"ଆନୁମାନିକ ଲୋକେସନ୍‌"</item>
+    <item msgid="1830619568689922920">"ଫାଇନ୍‌ ଲୋକେସନ୍‌"</item>
+    <item msgid="3317274469481923141">"GPS"</item>
+    <item msgid="8931785990160383356">"କମ୍ପନ"</item>
+    <item msgid="8632513128515114092">"ଯୋଗାଯୋଗଗୁଡ଼ିକୁ ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="3741042113569620272">"ଯୋଗାଯୋଗଗୁଡିକ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</item>
+    <item msgid="4204420969709009931">"କଲ୍‌ ଲଗ୍‌ ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="2260380357119423209">"କଲ୍‌ ଲଗ୍‌ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+    <item msgid="6550710385014530934">"କ୍ୟାଲେଣ୍ଡର ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="3575906174264853951">"କ୍ୟାଲେଣ୍ଡର ସଂଶୋଧନ"</item>
+    <item msgid="4319843242568057174">"ୱାଇ-ଫାଇ ସ୍କାନ୍"</item>
+    <item msgid="2981791890467303819">"ବିଜ୍ଞପ୍ତି"</item>
+    <item msgid="6617825156152476692">"ସେଲ୍‌ ସ୍କାନ୍‌"</item>
+    <item msgid="8865260890611559753">"ଫୋନ୍‌ ନମ୍ବର୍‌ କଲ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="3254999273961542982">"SMS ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="7711446453028825171">"SMS ଲେଖନ୍ତୁ"</item>
+    <item msgid="6123238544099198034">"SMS ଗ୍ରହଣ"</item>
+    <item msgid="838342167431596036">"ଜରୁରୀକାଳୀନ SMS ପାଆନ୍ତୁ"</item>
+    <item msgid="8554432731560956686">"MMS ପାଆନ୍ତୁ"</item>
+    <item msgid="7464863464299515059">"ୱାପ୍‌ ପୁଶ୍‌ ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+    <item msgid="310463075729606765">"SMS ପଠାନ୍ତୁ"</item>
+    <item msgid="7338021933527689514">"ICC SMS ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="6130369335466613036">"ICC SMS ଲେଖନ୍ତୁ"</item>
+    <item msgid="6536865581421670942">"ସେଟିଙ୍ଗରେ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+    <item msgid="4547203129183558973">"ସ୍କ୍ରୀନ୍‌ର ଉପର ଭାଗରେ ଆଙ୍କନ୍ତୁ"</item>
+    <item msgid="9080347512916542840">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଆକ୍‌ସେସ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="5332718516635907742">"କ୍ୟାମେରା"</item>
+    <item msgid="6098422447246167852">"ଅଡିଓ ରେକର୍ଡ କରନ୍ତୁ"</item>
+    <item msgid="9182794235292595296">"ଅଡିଓ ବଜାନ୍ତୁ"</item>
+    <item msgid="8760743229597702019">"କ୍ଲିପବୋର୍ଡ ପଢନ୍ତୁ"</item>
+    <item msgid="2266923698240538544">"କ୍ଲିପ୍‌ବୋର୍ଡ ବଦଳାନ୍ତୁ"</item>
+    <item msgid="1801619438618539275">"ମିଡିଆର ବଟନ୍‌"</item>
+    <item msgid="31588119965784465">"ଅଡିଓ ଫୋକସ୍‌"</item>
+    <item msgid="7565226799008076833">"ମାଷ୍ଟର୍ ଭଲ୍ୟୁମ୍"</item>
+    <item msgid="5420704980305018295">"ଭଏସ ଭଲ୍ୟୁମ"</item>
+    <item msgid="5797363115508970204">"ରିଙ୍ଗ ଭଲ୍ୟୁମ୍"</item>
+    <item msgid="8233154098550715999">"ମିଡିଆ ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="5196715605078153950">"ଆଲାର୍ମର ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="394030698764284577">"ବିଜ୍ଞପ୍ତି ଭଲ୍ୟୁମ୍"</item>
+    <item msgid="8952898972491680178">"ବ୍ଲୁଟୂଥ୍‍‌ ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="8506227454543690851">"ଜାଗ୍ରତ ରଖନ୍ତୁ"</item>
+    <item msgid="1108160036049727420">"ଜାଗା ଖୋଜନ୍ତୁ"</item>
+    <item msgid="1496205959751719491">"ମଜବୁତ ସିଗ୍ନାଲ୍‌ ଥିବା ଜାଗା ଖୋଜନ୍ତୁ"</item>
+    <item msgid="3776296279910987380">"ଉପଯୋଗର ହିସାବ ପାଆନ୍ତୁ"</item>
+    <item msgid="8827100324471975602">"ମାଇକ୍ରୋଫୋନ୍‌ର ସାଉଣ୍ଡ ବନ୍ଦ/ଚାଲୁ କରନ୍ତୁ"</item>
+    <item msgid="6880736730520126864">"ଟୋଷ୍ଟ୍‌ ଦେଖାନ୍ତୁ"</item>
+    <item msgid="4933375960222609935">"ପ୍ରୋଜେକ୍ଟ ମିଡିଆ"</item>
+    <item msgid="8357907018938895462">"VPN ସକ୍ରିୟ କରନ୍ତୁ"</item>
+    <item msgid="8143812849911310973">"ୱାଲପେପର୍‌ ଯୋଡ଼ନ୍ତୁ"</item>
+    <item msgid="6266277260961066535">"ସହାୟତାର ସଂରଚନା"</item>
+    <item msgid="7715498149883482300">"ସହାୟକ ସ୍କ୍ରିନ୍‌ସଟ୍‍"</item>
+    <item msgid="4046679376726313293">"ଫୋନ୍‌ର ସ୍ଥିତି ଜାଣନ୍ତୁ"</item>
+    <item msgid="6329507266039719587">"ଭଏସ୍‌ମେଲ୍‌ ଯୋଡ଼ନ୍ତୁ"</item>
+    <item msgid="7692440726415391408">"sip ବ୍ୟବହାର କରନ୍ତୁ"</item>
+    <item msgid="8572453398128326267">"ଆଉଟ୍‌ଗୋଇଙ୍ଗ କଲ୍ କରନ୍ତୁ"</item>
+    <item msgid="7775674394089376306">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</item>
+    <item msgid="3182815133441738779">"ବଡୀ ସେନ୍ସର୍"</item>
+    <item msgid="2793100005496829513">"ସେଲ୍‌ ବ୍ରଡକାଷ୍ଟ ପଢନ୍ତୁ"</item>
+    <item msgid="2633626056029384366">"ନକଲି ଅବସ୍ଥାନ"</item>
+    <item msgid="8356842191824684631">"ଷ୍ଟୋରେଜ୍‌ରୁ ଡାଟା ପଢ଼ିବାର ଅନୁମତି"</item>
+    <item msgid="5671906070163291500">"ଷ୍ଟୋରେଜ୍‌ରେ ଡାଟା ରଖିବାର ଅନୁମତି"</item>
+    <item msgid="2791955098549340418">"ସ୍କ୍ରୀନ୍‌ ଅନ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="5599435119609178367">"ଆକାଉଣ୍ଟଗୁଡିକ ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+    <item msgid="1165623660533024666">"ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡରେ ଚଲାନ୍ତୁ"</item>
+    <item msgid="6423861043647911030">"ଆକ୍‌ସେସିବିଲିଟୀ ଭଲ୍ୟୁମ୍"</item>
+  </string-array>
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ଅବସ୍ଥାନ"</item>
+    <item msgid="6656077694190491067">"ଅବସ୍ଥାନ"</item>
+    <item msgid="8790228218278477369">"ଅବସ୍ଥାନ"</item>
+    <item msgid="7836406246005211990">"ଭାଇବ୍ରେଟ୍"</item>
+    <item msgid="3951439024549922598">"ଯୋଗାଯୋଗଗୁଡ଼ିକ ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="8802152411647068">"ଯୋଗାଯୋଗ ବଦଳାନ୍ତୁ"</item>
+    <item msgid="229544934599698735">"କଲ୍‌ ଲଗ୍‌ ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="7396102294405899613">"କଲ୍‌ ଲଗ୍‌ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+    <item msgid="3597797992398484655">"କ୍ୟାଲେଣ୍ଡର ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="2705975774250907343">"କ୍ୟାଲେଣ୍ଡରରେ ପରିବର୍ତ୍ତନ କରନ୍ତୁ"</item>
+    <item msgid="4668747371441932697">"ଅବସ୍ଥାନ"</item>
+    <item msgid="1487578921720243646">"ପୋଷ୍ଟ ବିଜ୍ଞପ୍ତି"</item>
+    <item msgid="4636080349724146638">"ଲୋକେସନ୍"</item>
+    <item msgid="673510900286463926">"ଫୋନ୍‌କୁ କଲ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="542083422784609790">"SMS/MMS ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="1033780373029588436">"SMS/MMS ଲେଖନ୍ତୁ"</item>
+    <item msgid="5647111115517787488">"SMS/MMS ପାଆନ୍ତୁ"</item>
+    <item msgid="8591105601108455893">"SMS/MMS ପାଆନ୍ତୁ"</item>
+    <item msgid="7730995008517841903">"SMS/MMS ପାଆନ୍ତୁ"</item>
+    <item msgid="2613033109026626086">"SMS/MMS ପାଆନ୍ତୁ"</item>
+    <item msgid="3037159047591081136">"SMS/MMS ପଠାନ୍ତୁ"</item>
+    <item msgid="4726682243833913568">"SMS/MMS ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="6555678522277865572">"SMS/MMS ଲେଖନ୍ତୁ"</item>
+    <item msgid="6981734935578130884">"ସେଟିଙ୍ଗଗୁଡ଼ିକ ବଦଳାନ୍ତୁ"</item>
+    <item msgid="8705854389991425629">"ଉପର ଭାଗରେ ଆଙ୍କନ୍ତୁ"</item>
+    <item msgid="5861356020344153651">"ବିଜ୍ଞପ୍ତି ଆକସେସ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="78432174621628659">"କ୍ୟାମେରା"</item>
+    <item msgid="3986116419882154794">"ଅଡିଓ ରେକର୍ଡ କରନ୍ତୁ"</item>
+    <item msgid="4516840825756409490">"ଅଡିଓ ଚଲାନ୍ତୁ"</item>
+    <item msgid="6811712502798183957">"କ୍ଲିପ୍‌ବୋର୍ଡକୁ ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="2780369012602289114">"କ୍ଲିପ୍‌ବୋର୍ଡରେ ସଂଶୋଧନ କରନ୍ତୁ"</item>
+    <item msgid="2331359440170850868">"ମିଡିଆ ବଟନ୍‌"</item>
+    <item msgid="6133599737122751231">"ଅଡିଓ ଫୋକସ୍‌"</item>
+    <item msgid="6844485713404805301">"ମାଷ୍ଟର୍‌ ଭଲ୍ୟୁମ୍"</item>
+    <item msgid="1600379420669104929">"ଭଏସ୍ ଭଲ୍ୟୁମ୍"</item>
+    <item msgid="6296768210470214866">"ରିଙ୍ଗ ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="510690696071629241">"ମିଡିଆ ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="406861638631430109">"ଆଲାର୍ମର ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="4715864795872233884">"ସୂଚନା ଭଲ୍ୟୁମ"</item>
+    <item msgid="2311478519251301183">"ବ୍ଲୁଟୂଥ୍‍‌ ଭଲ୍ୟୁମ୍‌"</item>
+    <item msgid="5133991377896747027">"ଜାଗ୍ରତ କରି ରଖାଯାଉ"</item>
+    <item msgid="2464189519136248621">"ଲୋକେସନ୍"</item>
+    <item msgid="2062677934050803037">"ଅବସ୍ଥିତି"</item>
+    <item msgid="1735171933192715957">"ବ୍ୟବହାର ହିସାବ ପାଆନ୍ତୁ"</item>
+    <item msgid="1014093788778383554">"ମାଇକ୍ରୋଫୋନ୍‌କୁ ବନ୍ଦ କରନ୍ତୁ/ଖୋଲନ୍ତୁ"</item>
+    <item msgid="4199297950608622850">"ଟୋଷ୍ଟ ଦେଖାନ୍ତୁ"</item>
+    <item msgid="2527962435313398821">"ପ୍ରୋଜେକ୍ଟ ମିଡିଆ"</item>
+    <item msgid="5117506254221861929">"VPN ସକ୍ରିୟ କରନ୍ତୁ"</item>
+    <item msgid="8291198322681891160">"ୱାଲପେପର୍ ଲେଖନ୍ତୁ"</item>
+    <item msgid="7106921284621230961">"ସହାୟକ ସଂରଚନା"</item>
+    <item msgid="4496533640894624799">"ସହାୟତା ସ୍କ୍ରିନ୍‌ସଟ୍‌"</item>
+    <item msgid="2598847264853993611">"ଫୋନ୍‌ର ସ୍ଥିତି ଜାଣନ୍ତୁ"</item>
+    <item msgid="9215610846802973353">"ଭଏସ୍‌ମେଲ୍‌ ଯୋଡ଼ନ୍ତୁ"</item>
+    <item msgid="9186411956086478261">"ସିପ୍‌ ବ୍ୟବହାର କରନ୍ତୁ"</item>
+    <item msgid="6884763100104539558">"ଆଉଟ୍‌ଗୋଇଙ୍ଗ କଲ୍‌ ପ୍ରୋସେସ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="125513972170580692">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</item>
+    <item msgid="2556071024281275619">"ବଡୀ ସେନ୍ସର୍"</item>
+    <item msgid="617168514928339387">"ସେଲ୍‌ର ସମ୍ପ୍ରସାରଣକୁ ପଢ଼ନ୍ତୁ"</item>
+    <item msgid="7134693570516523585">"ନକଲି ଲୋକେସନ୍‌"</item>
+    <item msgid="7224489175375229399">"ପଠନ ଷ୍ଟୋରେଜ୍‌"</item>
+    <item msgid="8472735063903258202">"ଷ୍ଟୋରେଜ୍‌ରେ ଡାଟା ରଖିବାର ଅନୁମତି"</item>
+    <item msgid="4069276819909595110">"ସ୍କ୍ରୀନ୍‌କୁ ଅନ୍‌ କରନ୍ତୁ"</item>
+    <item msgid="1228338896751121025">"ଆକାଉଣ୍ଟଗୁଡିକ ପ୍ରାପ୍ତ କରନ୍ତୁ"</item>
+    <item msgid="3181581793459233672">"ବ୍ୟାକ୍‌ଗ୍ରାଊଣ୍ଡରେ ଚଲାନ୍ତୁ"</item>
+    <item msgid="2340936043025374076">"ଦିବ୍ୟାଙ୍ଗମାନଙ୍କ ପାଇଁ ସୁବିଧାଗୁଡ଼ିକର ଭଲ୍ୟୁମ୍‌"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"କମ୍"</item>
     <item msgid="4816511817309094890">"ମଧ୍ୟମ"</item>
     <item msgid="8305084671259331134">"ଲମ୍ଵା"</item>
   </string-array>
-    <!-- no translation found for captioning_typeface_selector_titles:4 (1487203730637617924) -->
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (8019330250538856521) -->
+  <string-array name="captioning_typeface_selector_titles">
+    <item msgid="6928465258504250174">"ଡିଫଲ୍ଟ"</item>
+    <item msgid="4147246073737933622">"ସାନ୍ସ-ସେରିଫ୍‌"</item>
+    <item msgid="3117680749167407907">"ସାନ୍ସ-ସେରିଫ୍ କଣ୍ଡେନ୍ସଡ୍"</item>
+    <item msgid="6529379119163117545">"ସାନ୍ସ-ସେରିଫ୍‍ ମୋନୋସ୍ପେସ୍"</item>
+    <item msgid="1487203730637617924">"Serif"</item>
+    <item msgid="4937790671987480464">"Serif monospace"</item>
+    <item msgid="4448481989108928248">"ସାଧାରଣ"</item>
+    <item msgid="4627069151979553527">"କର୍ସିଭ"</item>
+    <item msgid="6896773537705206194">"ଛୋଟ ଆକାରର ଅକ୍ଷର"</item>
+  </string-array>
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"ବହୁତ ଛୋଟ"</item>
+    <item msgid="5091603983404027034">"ଛୋଟ"</item>
+    <item msgid="176844712416932112">"ସାଧାରଣ"</item>
+    <item msgid="2784236342175159295">"ବହୁତ ବଡ଼"</item>
+    <item msgid="218913203203160606">"ବହୁତ ବଡ଼"</item>
+  </string-array>
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="3865198759294188069">"ଡିଫଲ୍ଟ"</item>
+    <item msgid="6488643537808152001">"କିଛି ନୁହେଁ"</item>
+    <item msgid="552332815156010137">"ଆଉଟ୍‌ଲାଇନ୍‌"</item>
+    <item msgid="7187891159463789272">"ଡ୍ରପ୍‌ ଛାୟା"</item>
+    <item msgid="8019330250538856521">"ଉପରକୁ ଟିକିଏ ଉଠିଥିବା"</item>
+    <item msgid="8987385315647049787">"ସଂକ୍ଷିପ୍ତ"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="313003243371588365">"25%"</item>
     <item msgid="4665048002584838262">"50%"</item>
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"ଆପ୍‌ର ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ ସେଟିଙ୍ଗ ବ୍ୟବହାର କରନ୍ତୁ"</item>
+    <item msgid="8611890312638868524">"କଳା ଉପରେ ଧଳା"</item>
+    <item msgid="5891360837786277638">"ଧଳା ଉପରେ କଳା"</item>
+    <item msgid="2798457065945456853">"କଳା ଉପରେ ହଳଦିଆ"</item>
+    <item msgid="5799049811524553967">"ନୀଳ ଉପରେ ହଳଦିଆ"</item>
+    <item msgid="3673930830658169860">"କଷ୍ଟମ"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"ପୂର୍ବରୁ ସେୟାର୍‌ ହୋଇଥିବା କୀଗୁଡ଼ିକ ସହ L2TP/IPSec VPN"</item>
@@ -174,16 +406,36 @@
     <item msgid="3319427315593649917">"ସର୍ଟିଫିକେଟ୍‌ ଏବଂ Xauth ପ୍ରାମାଣିକୀକରଣ ସହ IPSec VPN"</item>
     <item msgid="8258927774145391041">"ସର୍ଟିଫିକେଟ୍‌ ଓ ହାଇବ୍ରିଡ୍‌ ସତ୍ୟାପନ ସହ IPSec VPN"</item>
   </string-array>
-    <!-- no translation found for vpn_proxy_settings:0 (2958623927055120839) -->
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_proxy_settings">
+    <item msgid="2958623927055120839">"କିଛି ନାହିଁ"</item>
+    <item msgid="1157046369795346308">"ମାନୁଆଲ୍‌"</item>
+  </string-array>
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"ବିଛିନ୍ନ"</item>
+    <item msgid="8754480102834556765">"ଆରମ୍ଭ କରୁଛି…"</item>
+    <item msgid="3351334355574270250">"ସଂଯୋଗ କରାଯାଉଛି…"</item>
+    <item msgid="8303882153995748352">"ସଂଯୋଗ ହୋଇଛି"</item>
+    <item msgid="9135049670787351881">"ସମୟ ସମାପ୍ତ"</item>
+    <item msgid="2124868417182583926">"ଅସଫଳ"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"ପଚାରନ୍ତୁ"</item>
     <item msgid="7718817231348607934">"ଆଦୌ ଅନୁମତି ଦିଅନାହିଁ"</item>
     <item msgid="8184570120217958741">"ସର୍ବଦା ଅନୁମତି ଦିଅନ୍ତୁ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ସାଧାରଣ"</item>
+    <item msgid="5101233285497327432">"ମଧ୍ୟମ ଧରଣର"</item>
+    <item msgid="1555861583162930714">"କମ୍"</item>
+    <item msgid="1719683776264798117">"ଜଟିଳ"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ସାଧାରଣ"</item>
+    <item msgid="6107138933849816768">"ମଧ୍ୟମ"</item>
+    <item msgid="182695359839047859">"କମ୍"</item>
+    <item msgid="8577246509202964244">"ଜଟିଳ"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ନିରନ୍ତର"</item>
     <item msgid="167418068739176448">"ଶ୍ରେଷ୍ଠ ଗତିବିଧି"</item>
@@ -245,7 +497,31 @@
     <item msgid="8444727359525554695">"କେବଳ ହୋମ୍ ନେଟ୍‌ୱର୍କ"</item>
     <item msgid="1161026694891024702">"ସ୍ଵତଃଚାଳିତ"</item>
   </string-array>
-    <!-- no translation found for preferred_network_mode_choices:11 (5713723042183940349) -->
+  <string-array name="preferred_network_mode_choices">
+    <item msgid="1823884522189328861">"GSM/WCDMA ପସନ୍ଦ କରାଯାଇଛି"</item>
+    <item msgid="7581481130337402578">"କେବଳ GSM"</item>
+    <item msgid="8579197487913425819">"କେବଳ WCDMA"</item>
+    <item msgid="8465243227505412498">"GSM/WCDMA ଅଟୋ"</item>
+    <item msgid="9107479914166352132">"CDMA/EvDo ଅଟୋ"</item>
+    <item msgid="4219607161971472471">"EvDo ବିନା CDMA"</item>
+    <item msgid="7278975240951052041">"କେବଳ EvDo"</item>
+    <item msgid="2295969832276827854">"CDMA/EvDo/GSM/WCDMA"</item>
+    <item msgid="9059227943989034424">"CDMA + LTE/EvDo"</item>
+    <item msgid="463168068025354541">"GSM/WCDMA/LTE"</item>
+    <item msgid="1770755308983338311">"ଗ୍ଲୋବାଲ୍"</item>
+    <item msgid="5713723042183940349">"LTE"</item>
+    <item msgid="8600184258612405670">"LTE / WCDMA"</item>
+    <item msgid="5638632460322750180">"କେବଳ TDSCDMA"</item>
+    <item msgid="4346392996298714633">"TDSCDMA/WCDMA"</item>
+    <item msgid="5004811216708487615">"LTE/TDSCDMA"</item>
+    <item msgid="9191730167201068525">"TDSCDMA/GSM"</item>
+    <item msgid="5874623229495009031">"LTE/TDSCDMA/GSM"</item>
+    <item msgid="5096480046347789213">"TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="2075445917638134012">"LTE/TDSCDMA/WCDMA"</item>
+    <item msgid="3353351554070857366">"LTE/TDSCDMA/GSM/WCDMA"</item>
+    <item msgid="2067289929099567494">"TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+    <item msgid="4959483620561891661">"LTE/TDSCDMA/CDMA/EVDO/GSM/WCDMA"</item>
+  </string-array>
   <string-array name="cdma_subscription_choices">
     <item msgid="7691437408632563841">"RUIM/SIM"</item>
     <item msgid="6219184455685527822">"NV"</item>
diff --git a/tests/CarDeveloperOptions/res/values-or/strings.xml b/tests/CarDeveloperOptions/res/values-or/strings.xml
index 9a043bb..a76070a 100644
--- a/tests/CarDeveloperOptions/res/values-or/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-or/strings.xml
@@ -117,7 +117,7 @@
     <string name="bluetooth_is_visible_message" msgid="6341088682252805612">"ବ୍ଲୁଟୂଥ୍‍‌ ସେଟିଙ୍ଗ ଖୋଲା ଥିବାବେଳେ ଆଖପାଖ ଡିଭାଇସ୍‌ଗୁଡ଼ିକୁ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ଦେଖାଦେଉଛି।"</string>
     <string name="bluetooth_footer_mac_message" product="default" msgid="335341476746836260">"ଫୋନ୍‌ର ବ୍ଲୁଟୂଥ୍‍‌ ଠିକଣା ହେଉଛି: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_footer_mac_message" product="tablet" msgid="6033609611245782463">"ଟାବ୍‌ଲେଟ୍‌ର ବ୍ଲୁଟୂଥ୍‍‌ ଠିକଣା ହେଉଛି: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
-    <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"ଡିଭାଇସ୍‌ର ବ୍ଲୁଟୂଥ୍‍‌ ଠିକଣା ହେଉଛି: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"ଡିଭାଇସ୍‌ର ବ୍ଲୁଟୁଥ ଠିକଣା ହେଉଛି: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="6180709281434591654">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>କୁ ବିଚ୍ଛିନ୍ନ କରିବେ?"</string>
     <string name="bluetooth_broadcasting" msgid="8926408584599563760">"ବ୍ରଡ୍‌କାଷ୍ଟିଙ୍ଗ"</string>
     <string name="bluetooth_device" msgid="3170974107364990008">"ନାମହୀନ ବ୍ଲୁଟୂଥ୍‍‌ ଡିଭାଇସ୍‌"</string>
@@ -425,7 +425,7 @@
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"ଆପ୍ସରେ ପ୍ରମାଣିକରଣ କରିବା ସମୟରେ, ସବୁବେଳେ ସୁନିଶ୍ଚିତକରଣ ଆବଶ୍ୟକ ହୋଇଥାଏ"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"ମୁହଁ ଡାଟା କାଢ଼ନ୍ତୁ"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"ଆପଣଙ୍କର ଡିଭାଇସ୍‍ ଅନ୍‍ଲକ୍‍ ଏବଂ ଆପ୍ସ ଆକ୍ସେସ୍‍ କରିବାକୁ ଆପଣଙ୍କ ମୁହଁକୁ ବ୍ୟବହାର କରି ହେବ। "<annotation id="url">"ଅଧିକ ଜାଣନ୍ତୁ"</annotation></string>
-    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"ମୁହଁର ଡାଟା ଡିଲିଟ୍ କରିବେ?"</string>
+    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"ଫେସ୍ ଡାଟା ଡିଲିଟ୍ କରିବେ?"</string>
     <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"ମୁହଁ ଅନ୍‌ଲକ୍ ଦ୍ୱାରା ରେକର୍ଡ କରାଯାଇଥିବା ଡାଟା ସ୍ଥାୟୀ ଏବଂ ସୁରକ୍ଷିତ ରୂପେ ଡିଲିଟ୍ ହୋ‌ଇଯିବ। କାଢ଼ିଦେବା ପରେ, ଆପଣଙ୍କର ଫୋନ୍‌କୁ ଅନ୍‌ଲକ୍, ଆପ୍ସକୁ ସାଇନ୍ ଇନ୍, ଏବଂ ପେମେଣ୍ଟକୁ ସୁନିଶ୍ଚିତ କରିବାକୁ ଆପଣଙ୍କୁ PIN, ପେଟର୍ଣ୍ଣ, କିମ୍ବା ପାସ୍‌ୱର୍ଡର ଆବଶ୍ୟକ ହେବ।"</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"ଆଙ୍ଗୁଠି ଚିହ୍ନ"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"ଆଙ୍ଗୁଠି ଚିହ୍ନଗୁଡ଼ିକର ପରିଚାଳନା କରନ୍ତୁ"</string>
@@ -595,7 +595,7 @@
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"ସ୍କ୍ରୀନ ଲକକୁ ବନ୍ଦ କର"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"ଡିଭାଇସ୍‌ ସୁରକ୍ଷାକୁ କାଢ଼ିଦେବେ?"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"ପ୍ରୋଫାଇଲ୍‌ ସୁରକ୍ଷା କାଢ଼ିଦେବେ?"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"ଆପଣଙ୍କ ପାଟର୍ନ ବିନା ଡିଭାଇସ୍‌ର ସୁରକ୍ଷା ବୈଶିଷ୍ଟ୍ୟ କାମ କରିବ ନାହିଁ।"</string>
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"ଆପଣଙ୍କ ପାଟର୍ନ ବିନା ଡିଭାଇସ୍‌ର ସୁରକ୍ଷା ଫିଚରଗୁଡ଼ିକ କାମ କରିବ ନାହିଁ।"</string>
     <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"ଆପଣଙ୍କ ପାଟର୍ନ ବିନା ଡିଭାଇସ ସୁରକ୍ଷା ବୈଶିଷ୍ଟ୍ୟ କାମ କରିବ ନାହିଁ।<xliff:g id="EMPTY_LINE">
 
 </xliff:g>ଆପଣଙ୍କର ସେଭ ହୋଇଥିବା ଆଙ୍ଗୁଠି ଚିହ୍ନଗୁଡ଼ିକ ମଧ୍ୟ ଏହି ଡିଭାଇସରୁ ଉଡ଼ାଇଦିଆଯିବ ଏବଂ ଆପଣ ନିଜ ଫୋନକୁ ଅନଲକ କରିପାରିବେ ନାହିଁ, କିଣାକିଣି କରିପାରିବେ ନାହିଁ କିମ୍ୱା ତାହା ଦ୍ୱାରା ଏପଗୁଡ଼ିକରେ ସାଇନ ଇନ କରିପାରିବେ ନାହିଁ।"</string>
@@ -730,7 +730,7 @@
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"ବ୍ଲୁଟୂଥ୍‍‌"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"ସଂଯୋଗଗୁଡ଼ିକର ପରିଚାଳନା, ଡିଭାଇସ୍‌ ନାମ ଓ ଖୋଜିବାଯୋଗ୍ୟତା ସେଟ୍‍ କରନ୍ତୁ"</string>
     <string name="bluetooth_pairing_request" msgid="7221745525632573125">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ପେୟାର୍‌ କରିବେ?"</string>
-    <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"ବ୍ଲୁଟୂଥ୍‍‌ ପେୟାରିଂ କୋଡ୍"</string>
+    <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"ବ୍ଲୁଟୁଥ ପେୟାରିଂ କୋଡ୍"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"ପେୟାରିଂ କୋଡ୍ ଟାଇପ୍‌ କରନ୍ତୁ ତାପରେ ଫେରନ୍ତୁ କିମ୍ବା ପ୍ରବେଶ ଦବାନ୍ତୁ"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"ପିନ୍‌ରେ ଅକ୍ଷର କିମ୍ୱା ସଙ୍କେତ ରହିଥାଏ"</string>
     <string name="bluetooth_pin_values_hint" msgid="8044671726261326240">"ସାଧାରଣତଃ 0000 କିମ୍ବା 1234"</string>
@@ -740,7 +740,7 @@
     <string name="bluetooth_confirm_passkey_msg" msgid="7094455604290076371">"ଏହା ସହ ପେୟାର୍‌ କରିବାକୁ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt;ନିଶ୍ଚିତ କରନ୍ତୁ ଏହା ଦେଖାଉଛି ପାସ୍‌‌କୀ:&lt;br&gt;&lt;b&gt;<xliff:g id="PASSKEY">%2$s</xliff:g>&lt;/b&gt;"</string>
     <string name="bluetooth_incoming_pairing_msg" msgid="940451919337185024">"ଏହାଙ୍କ ପାଖରୁ:&lt;br&gt;&lt;b&gt;<xliff:g id="DEVICE_NAME">%1$s</xliff:g>&lt;/b&gt;&lt;br&gt;&lt;br&gt;ଏହି ଡିଭାଇସ୍‌ ସହ ପେୟାର୍‌ କରିବେ?"</string>
     <string name="bluetooth_display_passkey_pin_msg" msgid="5909423849232791647">"ପେୟାର୍‌ କରିବା ପାଇଁ:<xliff:g id="BOLD1_0">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="DEVICE_NAME">%1$s</xliff:g><xliff:g id="END_BOLD1">&lt;/b&gt;&lt;br&gt;&lt;br&gt;</xliff:g>ଏହା ଉପରେ ଟାଇପ୍ କରନ୍ତୁ:<xliff:g id="BOLD2_1">&lt;br&gt;&lt;b&gt;</xliff:g><xliff:g id="PASSKEY">%2$s</xliff:g><xliff:g id="END_BOLD2">&lt;/b&gt;</xliff:g>, ତା’ପରେ ରିଟର୍ନ କିମ୍ୱା ଏଣ୍ଟର୍ ଦାବନ୍ତୁ।"</string>
-    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"ଆପଣଙ୍କ ଯୋଗାଯୋଗ ଓ କଲ୍‌ ହିଷ୍ଟୋରୀକୁ ଆକସେସ୍‌ ଦିଅନ୍ତୁ"</string>
+    <string name="bluetooth_pairing_shares_phonebook" msgid="7474404818877079813">"ଆପଣଙ୍କ ଯୋଗାଯୋଗ ଓ କଲ୍‌ ଇତିହାସକୁ ଆକସେସ୍‌ ଦିଅନ୍ତୁ"</string>
     <string name="bluetooth_error_title" msgid="5718761586633101960"></string>
     <string name="bluetooth_connecting_error_message" msgid="8473359363469518478">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ସଂଯୋଗ ସ୍ଥାପନା କରିପାରୁନାହିଁ।"</string>
     <string name="bluetooth_preference_scan_title" msgid="457781003962324807">"ଡିଭାଇସ୍‌ଗୁଡ଼ିକୁ ଖୋଜ"</string>
@@ -770,7 +770,7 @@
     <string name="ble_scan_notify_text" msgid="6290170236546386932">"ଲୋକେସନ୍‌ ସଠିକତାକୁ ଉନ୍ନତ କରିବା ପାଇଁ, ସିଷ୍ଟମ୍‌ ଆପ୍‍ ଓ ସେବାଗୁଡ଼ିକ ବ୍ଲୁଟୂଥ୍‍‌ ଡିଭାଇସ୍‌ଗୁଡ଼ିକୁ ଚିହ୍ନଟ କରିପାରିବେ। ଆପଣ ଏହାକୁ <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>ଖୋଜିବା ସେଟିଙ୍ଗରେ<xliff:g id="LINK_END_1">LINK_END</xliff:g>ବଦଳାଇପାରିବେ।"</string>
     <string name="bluetooth_connect_failed" msgid="1151234676456333786">"ସଂଯୋଗ କରିପାରୁନାହିଁ। ପୁଣିଥରେ ଚେଷ୍ଟା କରନ୍ତୁ।"</string>
     <string name="device_details_title" msgid="726517818032923222">"ଡିଭାଇସ୍‌ର ବିବରଣୀ"</string>
-    <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"ଡିଭାଇସ୍‌ର ବ୍ଲୁଟୂଥ୍‍‌ ଠିକଣା ହେଉଛି: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_device_mac_address" msgid="5328203122581150405">"ଡିଭାଇସ୍‌ର ବ୍ଲୁଟୁଥ ଠିକଣା ହେଉଛି: <xliff:g id="ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_unpair_dialog_title" msgid="3669848977755142047">"ଡିଭାଇସ୍‌ଟିକୁ ଭୁଲିଯିବେ?"</string>
     <string name="bluetooth_unpair_dialog_body" product="default" msgid="5998071227980078077">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହିତ ଆପଣଙ୍କ ଫୋନ୍‌ ଆଉ ପେୟାର୍‌ ହେବନାହିଁ"</string>
     <string name="bluetooth_unpair_dialog_body" product="tablet" msgid="4696157463230518866">"ଆପଣଙ୍କ ଟାବଲେଟ୍‌ ଏବେ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ସହ ପେୟାର୍‌ ହୋଇ ରହିବନାହିଁ"</string>
@@ -904,7 +904,7 @@
     <string name="wifi_ssid" msgid="6746270925975522641">"ନେଟ୍‌ୱାର୍କର ନାମ"</string>
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID ଲେଖନ୍ତୁ"</string>
     <string name="wifi_security" msgid="9136702039496152831">"ସୁରକ୍ଷା"</string>
-    <string name="wifi_hidden_network" msgid="6647772204699776833">"ଲୁଚିଥିବା ନେଟ୍‌ୱର୍କ"</string>
+    <string name="wifi_hidden_network" msgid="6647772204699776833">"ଲୁକ୍କାୟିତ ନେଟୱାର୍କ"</string>
     <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"ଯଦି ଆପଣଙ୍କ ରାଉଟର୍ ଗୋଟିଏ ନେଟ୍‌ୱର୍କ IDକୁ ପ୍ରସାରଣ ନକରେ କିନ୍ତୁ ଭବିଷ୍ୟତରେ ଆପଣ ତାହା ସହିତ କନେକ୍ଟ କରିବାକୁ ଚାହୁଁଛନ୍ତି, ତେବେ ଆପଣ ନେଟ୍‌ୱର୍କକୁ ଲୁକ୍କାୟିତ ଭାବେ ସେଟ୍ କରିପାରିବେ। \n\n ଏହା ଗୋଟିଏ ସୁରକ୍ଷା ପ୍ରଶ୍ନବାଚୀ ସୃଷ୍ଟି କରିପାରେ, କାରଣ ଆପଣଙ୍କ ଫୋନ୍ ନେଟ୍‌ୱର୍କ ପ୍ରାପ୍ତ କରିବା ପାଇଁ ନିୟମିତ ଭାବେ ନିଜର ସିଗନାଲ୍‌କୁ ପ୍ରସାରିତ କରିବ। \n\nଲୁକ୍କାୟିତ ଭାବେ ନେଟୱର୍କକୁ ସେଟ୍ କରିବା ଦ୍ଵାରା ରାଉଟର୍‌ର ସେଟିଙ୍ଗ ବଦଳିବ ନାହିଁ।"</string>
     <string name="wifi_signal" msgid="696548364467704808">"ସିଗନାଲର ଦକ୍ଷତା"</string>
     <string name="wifi_status" msgid="3439931558930689940">"ସ୍ଥିତି"</string>
@@ -915,23 +915,23 @@
     <string name="passpoint_label" msgid="7429247462404128615">"ମାଧ୍ୟମରେ ସେଭ୍‌ ହୋଇଛି"</string>
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g> କ୍ରେଡେନ୍ସିଆଲ୍‌"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"EAP ପଦ୍ଧତି"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"2ୟ ପର୍ଯ୍ୟାୟ ସତ୍ୟାପନ"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"2ୟ ପର୍ଯ୍ୟାୟ ପ୍ରମାଣୀକରଣ"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA ସାର୍ଟିଫିକେଟ୍‌"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"ଡୋମେନ୍"</string>
-    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"ଉପଯୋଗକର୍ତ୍ତା ସର୍ଟିଫିକେଟ୍‌"</string>
+    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"ଉପଯୋଗକର୍ତ୍ତା ସାର୍ଟିଫିକେଟ୍‌"</string>
     <string name="wifi_eap_identity" msgid="5280457017705738773">"ପରିଚୟ"</string>
     <string name="wifi_eap_anonymous" msgid="6352344972490839958">"ଅଜ୍ଞାତ ପରିଚୟ"</string>
     <string name="wifi_password" msgid="6942983531275177771">"ପାସ୍‌ୱର୍ଡ"</string>
-    <string name="wifi_show_password" msgid="7878398590772942202">"ପାସ୍‍ୱର୍ଡ ଦେଖାନ୍ତୁ"</string>
+    <string name="wifi_show_password" msgid="7878398590772942202">"ପାସୱାର୍ଡ ଦେଖାନ୍ତୁ"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"AP ବ୍ୟାଣ୍ଡ ବାଛନ୍ତୁ"</string>
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"ସ୍ୱତଃ"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"2.4 GHz ବ୍ୟାଣ୍ଡ"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"5 GHz ବ୍ୟାଣ୍ଡ"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5.0 GHz ବ୍ୟାଣ୍ଡ ପ୍ରାଥମିକତା ଦିଆଗଲା"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5.0 GHz ବ୍ୟାଣ୍ଡକୁ ପ୍ରାଥମିକତା ଦିଆଯାଇଛି"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2.4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"2.4 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"ୱାଇ-ଫାଇ ହଟସ୍ପଟ୍ ପାଇଁ ଅତିକମ୍‌ରେ ଗୋଟିଏ ବ୍ୟାଣ୍ଡକୁ ଚୟନ କରନ୍ତୁ:"</string>
-    <string name="wifi_ip_settings" msgid="4636102290236116946">"IP ସେଟିଙ୍ଗ"</string>
+    <string name="wifi_ip_settings" msgid="4636102290236116946">"IP ସେଟିଂସ୍"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"ଗୋପନୀୟତା"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"ଅନିୟମିତ MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"ଏକ ଡିଭାଇସ୍‍ ଯୋଗ କରନ୍ତୁ"</string>
@@ -962,7 +962,7 @@
     <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"ହଟସ୍ପଟ୍‌ ସେୟାର୍ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"ସୁନିଶ୍ଚିତ କରାନ୍ତୁ ଏହା ଆପଣ ଅଟନ୍ତି"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"ୱାଇ-ଫାଇ ପାସ୍‍ୱର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"ହଟସ୍ପଟ୍ ପାସ୍‌ୱର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
+    <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"ହଟସ୍ପଟ୍ ପାସୱାର୍ଡ: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_add_device" msgid="1347056725253936358">"ଡିଭାଇସ୍‌ ଯୋଗ କରନ୍ତୁ"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"ଏକ QR କୋଡ୍ ବ୍ୟବହାର କରି ଏହି ନେଟ୍‌ୱର୍କ ସହ ସଂଯୋଗ କରନ୍ତୁ"</string>
     <string name="retry" msgid="8500839563577344702">"ପୁନଃଚେଷ୍ଟା କରନ୍ତୁ"</string>
@@ -970,7 +970,7 @@
     <string name="wifi_unchanged" msgid="6804964646942333992">"(ଅପରିବର୍ତ୍ତିତ)"</string>
     <string name="wifi_unspecified" msgid="893491188483500809">"ଦୟାକରି ଚୟନ କରନ୍ତୁ"</string>
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(ଅନେକ ପ୍ରମାଣପତ୍ର ଯୋଡ଼ାଗଲା)"</string>
-    <string name="wifi_use_system_certs" msgid="4794489370929885022">"ସିଷ୍ଟମ୍‌ ସର୍ଟିଫିକେଟ୍‌ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="wifi_use_system_certs" msgid="4794489370929885022">"ସିଷ୍ଟମ୍‌ ସାର୍ଟିଫିକେଟ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"ପ୍ରଦାନ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"ବୈଧ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"କୌଣସି ସର୍ଟିଫିକେଟ୍‌ ଦର୍ଶାଯାଇନାହିଁ। ଆପଣଙ୍କ ସଂଯୋଗ ଗୋପନ ରହିବ ନାହିଁ।"</string>
@@ -1028,7 +1028,7 @@
     <string name="wifi_subscribed_access_points_tab" msgid="7498765485953257229">"ସଦସ୍ୟତା"</string>
     <!-- no translation found for wifi_saved_access_points_tab (4677730543624191122) -->
     <skip />
-    <string name="wifi_advanced_settings_label" msgid="9147669851658738784">"IP ସେଟିଙ୍ଗ"</string>
+    <string name="wifi_advanced_settings_label" msgid="9147669851658738784">"IP ସେଟିଂସ୍"</string>
     <string name="wifi_advanced_not_available" msgid="5751084989400195009">"ଏହି ଉପଯୋଗକର୍ତ୍ତାଙ୍କ ପାଇଁ ୱାଇ-ଫାଇ ଉନ୍ନତ ସେଟିଙ୍ଗ ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="wifi_ip_settings_menu_save" msgid="6557330818360425933">"ସେଭ୍‌ କରନ୍ତୁ"</string>
     <string name="wifi_ip_settings_menu_cancel" msgid="8098696509412462494">"କ୍ୟାନ୍ସଲ୍‌ କରନ୍ତୁ"</string>
@@ -1046,7 +1046,7 @@
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"ଡିଭାଇସ୍‌ଗୁଡିକ ସନ୍ଧାନ କରନ୍ତୁ"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"ଖୋଜୁଛି..."</string>
     <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"ଡିଭାଇସ୍‌କୁ ଅନ୍ୟ ନାମ ଦିଅନ୍ତୁ"</string>
-    <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"ପୀର୍‌ ଡିଭାଇସ୍‌ଗୁଡିକ"</string>
+    <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"ପିଅର୍ ଡିଭାଇସ୍‌"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"ସୁପାରିସକୃତ ଗ୍ରୁପ୍ସ"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"ସଂଯୋଗ କରିପାରିଲା ନାହିଁ।"</string>
     <string name="wifi_p2p_failed_rename_message" msgid="638656605352538706">"ଡିଭାଇସ୍‌କୁ ରିନେମ୍‌ କରିବାରେ ବିଫଳ"</string>
@@ -1102,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"ମୋବାଇଲ୍‌"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ଯଦି ୱାଇ-ଫାଇ ଉପଲବ୍ଧ ନାହିଁ, ତେବେ ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ଯଦି ମୋବାଇଲ୍ ନେଟ୍‌ୱର୍କ ଉପଲବ୍ଧ ନାହିଁ, ତେବେ ୱାଇ-ଫାଇ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ୱାଇ-ଫାଇ ମାଧ୍ୟମରେ କଲ୍ କରନ୍ତୁ ଯଦି ୱାଇ-ଫାଇ ରହିବ ନାହିଁ, ତେବେ କଲ୍ ସମାପ୍ତ ହୋଇଯିବ।"</string>
@@ -1167,7 +1170,7 @@
     <string name="accessibility_personal_account_title" msgid="7251761883688839354">"ବ୍ୟକ୍ତିଗତ ଆକାଉଣ୍ଟ - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="5809250790214921377">"ସନ୍ଧାନ"</string>
     <string name="display_settings" msgid="1045535829232307190">"ଡିସ୍‌ପ୍ଲେ"</string>
-    <string name="accelerometer_title" msgid="2427487734964971453">"ଅଟୋ-ରୋଟେଟ୍‌ ସ୍କ୍ରୀନ୍‍"</string>
+    <string name="accelerometer_title" msgid="2427487734964971453">"ଅଟୋ-ରୋଟେଟ୍‌ ସ୍କ୍ରିନ୍"</string>
     <string name="color_mode_title" msgid="8164858320869449142">"ରଙ୍ଗ"</string>
     <string name="color_mode_option_natural" msgid="1292837781836645320">"ପ୍ରାକୃତିକ"</string>
     <string name="color_mode_option_boosted" msgid="453557938434778933">"ବର୍ଦ୍ଧିତ"</string>
@@ -1194,7 +1197,7 @@
     <string name="auto_brightness_very_low_title" msgid="8716493755125824074">"ବହୁତ ନିମ୍ନ"</string>
     <string name="auto_brightness_low_title" msgid="5005479920075366970">"ନିମ୍ନ"</string>
     <string name="auto_brightness_default_title" msgid="5446692891470912829">"ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ"</string>
-    <string name="auto_brightness_high_title" msgid="7653379331939225750">"ଅଧିକ"</string>
+    <string name="auto_brightness_high_title" msgid="7653379331939225750">"ଉଚ୍ଚ"</string>
     <string name="auto_brightness_very_high_title" msgid="6649896560889239565">"ବହୁ ଉଚ୍ଚ"</string>
     <string name="auto_brightness_subtitle" msgid="8516999348793100665">"ଆପଣଙ୍କ ପସନ୍ଦର ଉଜ୍ଜ୍ୱଳତା ସ୍ତର"</string>
     <string name="auto_brightness_off_summary" msgid="6162650416289359104">"ଉପଲବ୍ଧ ଆଲୋକ ପାଇଁ ଆଡ୍‌ଜଷ୍ଟ କରନ୍ତୁ ନାହିଁ"</string>
@@ -1218,7 +1221,7 @@
     <string name="night_display_status_title" msgid="1727020934735770319">"ସ୍ଥିତି"</string>
     <string name="night_display_temperature_title" msgid="8375126629902616296">"ତୀବ୍ରତା"</string>
     <string name="night_display_summary_off" msgid="8850539785332228069">"ବନ୍ଦ‌ / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"ଆଦୌ ସ୍ୱଚାଳିତ ଭାବେ ଅନ୍‌ ହେବନାହିଁ"</string>
+    <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"ଆଦୌ ସ୍ୱଚାଳିତ ଭାବେ ଚାଲୁ ହେବ ନାହିଁ"</string>
     <string name="night_display_summary_off_auto_mode_custom" msgid="596847003171394411">"<xliff:g id="ID_1">%1$s</xliff:g> ରେ ସ୍ୱଚାଳିତ ଭାବେ ଅନ୍‌ ହେବ।"</string>
     <string name="night_display_summary_off_auto_mode_twilight" msgid="4071750976585359952">"ସୂର୍ଯ୍ୟାସ୍ତରେ ସ୍ୱଚାଳିତ ଭାବେ ଅନ୍‌ ହେବ।"</string>
     <string name="night_display_summary_on" msgid="6580571388791426596">"ଅନ୍‌ / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -1236,7 +1239,7 @@
     <string name="screen_timeout_title" msgid="150117777762864112">"ସ୍କ୍ରୀନ୍‌ ବନ୍ଦ‌ ହୁଏ"</string>
     <string name="screen_timeout_summary" msgid="8644192861778491060">"ନିଷ୍କ୍ରିୟତାର <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ପରେ"</string>
     <string name="wallpaper_settings_title" msgid="347390905813529607">"ୱାଲପେପର୍"</string>
-    <string name="style_and_wallpaper_settings_title" msgid="8898539141152705754">"ଶୈଳୀ ଏବଂ ୱାଲ୍‍‍ପେପର୍"</string>
+    <string name="style_and_wallpaper_settings_title" msgid="8898539141152705754">"ଷ୍ଟାଇଲ୍ ଏବଂ ୱାଲ୍‍‍ପେପର୍"</string>
     <string name="wallpaper_settings_summary_default" msgid="2626880032742784599">"ପୂର୍ବ-ନିର୍ଦ୍ଧାରିତ"</string>
     <string name="wallpaper_settings_summary_custom" msgid="8950504698015331202">"କଷ୍ଟମ୍‌"</string>
     <string name="wallpaper_suggestion_title" msgid="3012130414886743201">"ୱାଲପେପର୍‌ ବଦଳାନ୍ତୁ"</string>
@@ -1583,7 +1586,7 @@
     <string name="master_clear_title" msgid="1560712943955904673">"ସମସ୍ତ ଡାଟା ଖାଲି କରିଦିଅନ୍ତୁ (ଫ୍ୟାକ୍ଟୋରୀ ରିସେଟ୍‌)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"ସମସ୍ତ ଡାଟା ଖାଲି କରିଦିଅନ୍ତୁ (ଫ୍ୟାକ୍ଟୋରୀ ରିସେଟ୍‌)"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"ଏହା, ଆପଣଙ୍କ ଟାବ୍‍‍ଲେଟ୍‍ର "<b>"ଇଣ୍ଟର୍ନଲ୍ ଷ୍ଟୋରେଜ୍‍‍"</b>"ରେ ଥିବା ସମସ୍ତ ଡାଟାକୁ ଖାଲି କରିଦେବ, ଯେପରିକି:\n\n"<li>"ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ"</li>\n<li>"ସିଷ୍ଟମ ଓ ଆପ୍ ଡାଟା ଓ ସେଟିଂସ୍"</li>\n<li>"ଡାଉନ୍‌ଲୋଡ୍‌ ହୋଇଥିବା ଆପ୍ "</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"ଏହା, ଆପଣଙ୍କ ଫୋନ୍‍ର "<b>"ଇଣ୍ଟର୍ନଲ୍ ଷ୍ଟୋରେଜ୍"</b>"ରେ ଥିବା ସମସ୍ତ ଡାଟାକୁ ଖାଲି କରିଦେବ, ଯେପରିକି:\n\n"<li>"ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ"</li>\n<li>"ସିଷ୍ଟମ ଓ ଆପ୍ ଡାଟା ଓ ସେଟିଂସ୍"</li>\n<li>"ଡାଉନ୍‌ଲୋଡ୍‌ ହୋଇଥିବା ଆପ୍"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"ଏହା ଆପଣଙ୍କ ଫୋନ୍‍ର "<b>"ଇଣ୍ଟର୍ନଲ୍ ଷ୍ଟୋରେଜ୍"</b>"ରେ ଥିବା ସମସ୍ତ ଡାଟା ସହିତ ଏସବୁକୁ ଖାଲି କରିଦେବ:\n\n"<li>"ଆପଣଙ୍କ Google ଆକାଉଣ୍ଟ"</li>\n<li>"ସିଷ୍ଟମ ଓ ଆପ୍ ଡାଟା ଓ ସେଟିଂସ୍"</li>\n<li>"ଡାଉନ୍‌ଲୋଡ୍‌ ହୋଇଥିବା ଆପ୍"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"ଆପଣ ବର୍ତ୍ତମାନ ନିମ୍ନ ଆକାଉଣ୍ଟଗୁଡ଼ିକରେ ସାଇନ୍‌ ଇନ୍‌ କରିଛନ୍ତି:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"ଏହି ଡିଭାଇସ୍‌ରେ ଅନ୍ୟ ଉପଯୋଗକର୍ତ୍ତାମାନେ ଅଛନ୍ତି।\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"ମ୍ୟୁଜିକ୍‌"</li>\n<li>"ଫଟୋ"</li>\n<li>"ଅନ୍ୟାନ୍ୟ ବ୍ୟବହାରକର୍ତ୍ତାଙ୍କ ଡାଟା"</li></string>
@@ -1607,22 +1610,22 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"ଦୟାକରି ଅପେକ୍ଷା କରନ୍ତୁ..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"କଲ୍‌ ସେଟିଙ୍ଗ"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"ଭଏସ୍‌ମେଲ୍‌, କଲ୍‌ ଫର୍‌ୱାର୍ଡିଙ୍ଗ, କଲ୍‌ ୱେଟିଙ୍ଗ, କଲର୍‌ ID ସେଟ୍‌ କରନ୍ତୁ"</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB ଟିଥରିଙ୍ଗ"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB ଟିଥରିଂ"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"ପୋର୍ଟବଲ୍‌ ହଟସ୍ପଟ୍‌"</string>
-    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"ବ୍ଲୁଟୂଥ ଟିଥରିଙ୍ଗ"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"ଟିଥର୍‌ କରୁଛି"</string>
-    <string name="tether_settings_title_all" msgid="6935843543433954181">"ହଟସ୍ପଟ୍‌ ଓ ଟିଥରିଙ୍ଗ"</string>
+    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"ବ୍ଲୁଟୁଥ ଟିଥରିଂ"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"ଟିଥରିଂ"</string>
+    <string name="tether_settings_title_all" msgid="6935843543433954181">"ହଟସ୍ପଟ୍‌ ଓ ଟିଥରିଂ"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Hotspot ଅନ୍‌ ଅଛି, ଟିଥର୍‌ କରୁଛି"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"ହଟସ୍ପଟ୍‌ ଅନ୍‌"</string>
-    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"ଟିଥର୍‌ କରୁଛି"</string>
+    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"ଟିଥରିଂ"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"ଡାଟା ସେଭର୍‌ ଅନ୍‌ ଥିବାବେଳେ ଟିଥର୍‌ କିମ୍ୱା ପୋର୍ଟେବଲ୍‌ ହଟ୍‌ସ୍ପଟ୍‌ ବ୍ୟବହାର କରିପାରିବ ନାହିଁ"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB ଟିଥରିଙ୍ଗ୍‌"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"USB ମାଧ୍ୟମରେ ଫୋନ୍‌ର ଇଣ୍ଟରନେଟ୍‌ କନେକ୍ସନ୍ ସେୟାର୍‌ କରନ୍ତୁ"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB ଟିଥରିଂ"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"USB ମାଧ୍ୟମରେ ଫୋନ୍‌ର ଇଣ୍ଟରନେଟ୍‌ ସଂଯୋଗ ସେୟାର୍‌ କରନ୍ତୁ"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"USB ମାଧ୍ୟମରେ ଟାବ୍‌ଲେଟ୍‌ର ଇଣ୍ଟର୍‌ନେଟ୍‌ ସଂଯୋଗ ସେୟାର୍‌ କରନ୍ତୁ"</string>
-    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"ବ୍ଲୁଟୂଥ୍‍ ଟିଥରିଙ୍ଗ"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"ବ୍ଲୁଟୁଥ ଟିଥରିଂ"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"ବ୍ଲୁଟୂଥ୍‍‍ ମାଧ୍ୟରେ ଟାବ୍‌ଲେଟ୍‌ର ଇଣ୍ଟରନେଟ୍‌ ସଂଯୋଗ ସେୟାର୍ କରନ୍ତୁ"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"ବ୍ଲୁଟୂଥ୍‌ ମାଧ୍ୟମରେ ଫୋନ୍‌ର ଇଣ୍ଟରନେଟ୍‌ ସଂଯୋଗ ସେୟାର୍‌ କରନ୍ତୁ"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"ବ୍ଲୁଟୁଥ ମାଧ୍ୟମରେ ଫୋନ୍‌ର ଇଣ୍ଟରନେଟ୍‌ ସଂଯୋଗ ସେୟାର୍‌ କରନ୍ତୁ"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"ବ୍ଲୁଟୂଥ୍‍‌ ମାଧ୍ୟମରେ ଏହି <xliff:g id="DEVICE_NAME">%1$d</xliff:g>ର ଇଣ୍ଟରନେଟ୍‌ ସଂଯୋଗ ସେୟାର୍‌ କରୁଛି"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"<xliff:g id="MAXCONNECTION">%1$d</xliff:g> ଡିଭାଇସ୍‌ଠାରୁ ଅଧିକ ସହ ଟିଥର୍‌ କରିପାରିବ ନାହିଁ।"</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>କୁ ଅନ୍‌ଟିଥର୍ କରାଯିବ"</string>
@@ -1660,8 +1663,8 @@
     <string name="location_scanning_screen_title" msgid="7663329319689413454">"ୱାଇ-ଫାଇ ଏବଂ ବ୍ଲୁଟୁଥ୍‌ ସ୍କାନିଂ"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"ୱାଇ-ଫାଇ ସ୍କାନିଂ"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"ଆପ୍ ଓ ସେବାଗୁଡ଼ିକୁ ଯେକୌଣସି ସମୟରେ ୱାଇ-ଫାଇ ନେଟ୍‌ୱର୍କ ଖୋଜିବାକୁ ଦିଅନ୍ତୁ, ଏପରିକି ୱାଇ-ଫାଇ ଅଫ୍‌ ଥିଲେ ମଧ୍ୟ। ଏହାକୁ ଲୋକେସନ୍‌ ଆଧାରିତ ଫିଚର୍ ଓ ସେବା ଇତ୍ୟାଦିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ।"</string>
-    <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"ବ୍ଲୁଟୂଥ୍‍‌ ସ୍କାନିଙ୍ଗ"</string>
-    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"ଆପ୍ ଓ ସେବାଗୁଡ଼ିକୁ ଯେକୌଣସି ସମୟରେ ଆଖପାଖରେ ଥିବା ଡିଭାଇସ୍‌ ଖୋଜିବାକୁ ଦିଅନ୍ତୁ, ଏପରିକି ବ୍ଲୁଟୂଥ୍‍‌ ଅଫ୍‌ ଥିଲେ ମଧ୍ୟ। ଏହାକୁ ଲୋକେସନ୍‌ ଆଧାରିତ ଫିଚର୍ ଓ ସେବା ଇତ୍ୟାଦିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ।"</string>
+    <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"ବ୍ଲୁଟୁୁଥ ସ୍କାନିଂ"</string>
+    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"ଆପ୍ ଓ ସେବାଗୁଡ଼ିକୁ ଯେ କୌଣସି ସମୟରେ ଆଖପାଖରେ ଥିବା ଡିଭାଇସଗୁଡ଼ିକୁ ସ୍କାନ୍ କରିବାକୁ ଦିଅନ୍ତୁ, ଏପରିକି ବ୍ଲୁଟୁଥ ବନ୍ଦ ଥିଲେ ମଧ୍ୟ। ଏହାକୁ ଲୋକେସନ୍‌ ଆଧାରିତ ଫିଚର୍ ଓ ସେବା ଇତ୍ୟାଦିକୁ ଉନ୍ନତ କରିବା ପାଇଁ ବ୍ୟବହାର କରାଯାଇପାରେ।"</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"କାର୍ଯ୍ୟ ପାଇଁ ଲୋକେସନ୍ ସମ୍ପର୍କିତ ସେବା"</string>
     <string name="location_network_based" msgid="1535812159327454835">"ୱାଇ-ଫାଇ ଓ ମୋବାଇଲ୍‌ ନେଟ୍‌ୱର୍କ ଲୋକେସନ୍‌"</string>
     <string name="location_neighborhood_level" msgid="8459352741296587916">"ଆପଣଙ୍କର ଲୋକେସନ୍‌କୁ ଶୀଘ୍ର ଜାଣିବା ପାଇଁ, ଆପ୍‌ଗୁଡ଼ିକୁ Googleର ଲୋକେସନ୍‌ ସେବାର ବ୍ୟବହାର କରିବାକୁ ଦିଅନ୍ତୁ। ଅଜଣା ଲୋକେସନ୍‌ର ତଥ୍ୟ ସଂଗ୍ରହ କରାଯାଇ Googleକୁ ପଠାଯିବ।"</string>
@@ -1703,7 +1706,7 @@
     <string name="settings_safetylegal_activity_unreachable" msgid="3541894966476445833">"ଆପଣଙ୍କ ପାଖରେ ଡାଟା ସଂଯୋଗ ନାହିଁ। ଏହି ସୂଚନାକୁ ଏବେ ଦେଖିବା ପାଇଁ, ଇଣ୍ଟରନେଟ୍‌ ସହ ସଂଯୁକ୍ତ ଥିବା ଯେକୌଣସି କମ୍ପ୍ୟୁଟର୍‌ରୁ %sକୁ ଯାଆନ୍ତୁ।"</string>
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"ଲୋଡ୍ କରୁଛି…"</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"ବୈକଳ୍ପିକ ପଦ୍ଧତି ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"ସ୍କ୍ରୀନ୍‌ ଲକ୍‌ ସେଟ୍‌ କରନ୍ତୁ"</string>
+    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"ସ୍କ୍ରିନ୍‌ ଲକ୍‌ ସେଟ୍‌ କରନ୍ତୁ"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"ସୁରକ୍ଷା ପାଇଁ ପାସ୍‌ୱର୍ଡ ସେଟ୍ କରନ୍ତୁ"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"ଟିପଚିହ୍ନ ବ୍ୟବହାର କରିବା ପାଇଁ ପାସ୍‌ୱାର୍ଡ ସେଟ୍‌ କରନ୍ତୁ"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"ଟିପଚିହ୍ନ ବ୍ୟବହାର କରିବା ପାଇଁ ପାଟର୍ନ ସେଟ୍‌ କରନ୍ତୁ"</string>
@@ -1999,7 +2002,7 @@
     <string name="user_dict_settings_edit_dialog_title" msgid="6492621665762797309">"ଶବ୍ବ ସମ୍ପାଦନ କରନ୍ତୁ"</string>
     <string name="user_dict_settings_context_menu_edit_title" msgid="4577283176672181497">"ସମ୍ପାଦନ"</string>
     <string name="user_dict_settings_context_menu_delete_title" msgid="670470172230144069">"ଡିଲିଟ୍‌ କରନ୍ତୁ"</string>
-    <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"ୟୁଜର୍ ଶବ୍ଦକୋଷରେ ଆପଣ କୌଣସି ଶବ୍ଦ ଯୋଡ଼ିନାହାନ୍ତି। ଶବ୍ଦ ଯୋଡ଼ିବା ପାଇଁ \"ଯୋଡ଼ନ୍ତୁ (+)\" ବଟନ୍‌ରେ ଟାପ୍‌ କରନ୍ତୁ।"</string>
+    <string name="user_dict_settings_empty_text" msgid="2774939221998982609">"ଉପଯୋଗକର୍ତ୍ତା ଶବ୍ଦକୋଷରେ ଆପଣ କୌଣସି ଶବ୍ଦ ଯୋଗ କରିନାହାଁନ୍ତି। ଶବ୍ଦ ଯୋଗ କରିବା ପାଇଁ \"ଯୋଗ(+)\" ବଟନ୍‌ରେ ଟାପ୍‌ କରନ୍ତୁ।"</string>
     <string name="user_dict_settings_all_languages" msgid="8839702015353418176">"ସମସ୍ତ ଭାଷାଗୁଡିକ ପାଇଁ"</string>
     <string name="user_dict_settings_more_languages" msgid="8345984308635521364">"ଆହୁରି ଭାଷାମାନ…"</string>
     <string name="testing" msgid="4255916838792186365">"ପରୀକ୍ଷା କରୁଛି"</string>
@@ -2033,7 +2036,7 @@
     <string name="usage_time_label" msgid="5615725415876461039">"ବ୍ୟବହାର ସମୟ"</string>
     <string name="accessibility_settings" msgid="9140621093888234485">"ଆକ୍ସେସିବିଲିଟୀ"</string>
     <string name="accessibility_settings_title" msgid="1687226556576913576">"ଆକ୍ସେସିବିଲିଟୀ ସେଟିଙ୍ଗ"</string>
-    <string name="accessibility_settings_summary" msgid="5742379519336396561">"ସ୍କ୍ରୀନ୍‌ ରିଡର୍‌, ପ୍ରଦର୍ଶନ, ଇଣ୍ଟରାକସନ କଣ୍ଟ୍ରୋଲ୍"</string>
+    <string name="accessibility_settings_summary" msgid="5742379519336396561">"ସ୍କ୍ରିନ୍ ରିଡର୍‌, ଡିସପ୍ଲେ, ଇଣ୍ଟରାକସନ କଣ୍ଟ୍ରୋଲ୍"</string>
     <string name="vision_settings_title" msgid="7315352351051423944">"ଭିଜନ୍‌ ସେଟିଙ୍ଗ"</string>
     <string name="vision_settings_description" msgid="3476589459009287332">"ନିଜର ଆବଶ୍ୟକତ ଅନୁସାରେ ଏହି ଡିଭାଇସ୍‌କୁ କଷ୍ଟମାଇଜ୍‌ କରିପାରିବେ। ଏହି ଦିବ୍ୟାଙ୍ଗମାନଙ୍କ ପାଇଁ ସୁବିଧାକୁ ପରେ ସେଟିଙ୍ଗରେ ବଦଳାଇହେବ।"</string>
     <string name="vision_settings_suggestion_title" msgid="7268661419110951128">"ଫଣ୍ଟ ସାଇଜ୍ ବଦଳାନ୍ତୁ"</string>
@@ -2067,7 +2070,7 @@
     <string name="accessibility_toggle_screen_magnification_auto_update_preference_summary" msgid="6625473745911276917">"ଆପ୍‌ ବଦଳିବାବେଳେ ସ୍କ୍ରୀନ୍‌କୁ ବଡ଼ କର"</string>
     <string name="accessibility_power_button_ends_call_prerefence_title" msgid="6172987104538172869">"ପାୱର୍‌ ବଟନ୍‌ କଲ୍‌ ସମାପ୍ତ କରେ"</string>
     <string name="accessibility_toggle_large_pointer_icon_title" msgid="9127905775116570565">"ବହୁତ ବଡ଼ ମାଉସ୍‌ ପଏଣ୍ଟର୍"</string>
-    <string name="accessibility_disable_animations" msgid="8378441317115710009">"ଆନିମେଶନ୍‌ଗୁଡ଼ିକୁ କାଢ଼ିଦିଅନ୍ତୁ"</string>
+    <string name="accessibility_disable_animations" msgid="8378441317115710009">"ଆନିମେସନ୍‌ଗୁଡ଼ିକୁ କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="accessibility_toggle_master_mono_title" msgid="899550848196702565">"ମୋନୋ ଅଡିଓ"</string>
     <string name="accessibility_toggle_master_mono_summary" msgid="3847052868469033235">"ଅଡିଓ ଚାଲୁଥିବା ସମ‍ୟରେ ଚାନେଲ୍‌ଗୁଡ଼ିକୁ ଯୋଡ଼ନ୍ତୁ"</string>
     <string name="accessibility_toggle_master_balance_title" msgid="8723492001092647562">"ଅଡିଓ ବ୍ୟାଲେନ୍ସ"</string>
@@ -2314,7 +2317,7 @@
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"ଏହି ଆପ୍‌ ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡରେ ବ୍ୟାଟେରୀ ବ୍ୟବହାର କରି ପାରିବ। ଆପଣଙ୍କ ବ୍ୟାଟେରୀ ଅନୁମାନ କରିଥିବା ସମୟର ପୂର୍ବରୁହିଁ ସରିଯାଇପାରେ।"</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"କ୍ୟାନ୍ସଲ୍"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"ଆପଣଙ୍କର ଆପ୍ ସାଧାରଣ ଭାବେ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରୁଛି। ଯଦି ଆପ୍ ଅଧିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ଫୋନ୍ ପଦକ୍ଷେପ ନେବା ପାଇଁ ଆପଣଙ୍କୁ ପରାମର୍ଶ ଦେବ। \n\n ବ୍ୟାଟେରୀ ଅଧିକ ଖର୍ଚ୍ଚ ହେଉଥିଲେ ଆପଣ ସର୍ବଦା ବ୍ୟାଟେରୀ ସେଭର୍‌କୁ ଚାଲୁ କରିପାରିବେ।"</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"ଆପଣଙ୍କର ଆପ୍ସ ସାଧାରଣ ଭାବେ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରୁଛି। ଯଦି ଆପ୍ସ ଅଧିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରେ, ତେବେ ଆପଣଙ୍କ ଫୋନ୍ ପଦକ୍ଷେପ ନେବା ପାଇଁ ଆପଣଙ୍କୁ ପରାମର୍ଶ ଦେବ। \n\n ବ୍ୟାଟେରୀ ଅଧିକ ଖର୍ଚ୍ଚ ହେଉଥିଲେ ଆପଣ ସର୍ବଦା ବ୍ୟାଟେରୀ ସେଭର୍‌କୁ ଚାଲୁ କରିପାରିବେ।"</string>
     <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"ଆପଣଙ୍କର ଆପ୍ ସାଧାରଣ ଭାବେ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରୁଛି। ଯଦି ଆପ୍ ଅଧିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରନ୍ତି, ତେବେ ଆପଣଙ୍କ ଟାବଲେଟ୍ ପଦକ୍ଷେପ ନେବା ପାଇଁ ଆପଣଙ୍କୁ ପରାମର୍ଶ ଦେବ। \n\n ବ୍ୟାଟେରୀ ଅଧିକ ଖର୍ଚ୍ଚ ହେଉଥିଲେ ଆପଣ ସର୍ବଦା ବ୍ୟାଟେରୀ ସେଭର୍‌କୁ ଚାଲୁ କରିପାରିବେ।"</string>
     <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"ଆପଣଙ୍କର ଆପ୍ ସାଧାରଣ ଭାବେ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରୁଛି। ଯଦି ଆପ୍ ଅଧିକ ବ୍ୟାଟେରୀ ଖର୍ଚ୍ଚ କରନ୍ତି, ତେବେ ଡିଭାଇସ୍ ପଦକ୍ଷେପ ନେବା ପାଇଁ ଆପଣଙ୍କୁ ପରାମର୍ଶ ଦେବ। \n\n ବ୍ୟାଟେରୀ ଅଧିକ ଖର୍ଚ୍ଚ ହେଉଥିଲେ ଆପଣ ସର୍ବଦା ବ୍ୟାଟେରୀ ସେଭର୍‌କୁ ଚାଲୁ କରିପାରିବେ।"</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"ବ୍ୟାଟେରୀ ମ୍ୟାନେଜର୍‌"</string>
@@ -2912,7 +2915,7 @@
     <string name="apps_with_restrictions_header" msgid="8656739605673756176">"ପ୍ରତିବନ୍ଧକ ସହ ଆପ୍ଲିକେଶନ୍‌ଗୁଡିକ"</string>
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"ଆପ୍ଲିକେଶନ୍‌ ପାଇଁ ସେଟିଙ୍ଗ ସମ୍ପ୍ରସାରଣ କରନ୍ତୁ"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"ଟାପ୍‌ କରି ପୈଠ କରନ୍ତୁ"</string>
-    <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"ଏହା ଏହିପରି କାମ କରେ"</string>
+    <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"ଏହା କିପରି କାମ କରେ"</string>
     <string name="nfc_payment_no_apps" msgid="8844440783395420860">"ଷ୍ଟୋର୍‌ରେ ନିଜ ଫୋନ୍ ଦ୍ୱାରା ପୈଠ କରନ୍ତୁ"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"ଡିଫଲ୍ଟ ପେମେଣ୍ଟ"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"ସେଟ୍ ହୋଇ ନାହିଁ"</string>
@@ -2933,7 +2936,7 @@
     <string name="restriction_menu_change_pin" msgid="592512748243421101">"PIN ବଦଳାନ୍ତୁ"</string>
     <string name="app_notifications_switch_label" msgid="670683308275498821">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
     <string name="help_label" msgid="1296484776243905646">"ସହାୟତା ଓ ମତାମତ"</string>
-    <string name="support_summary" msgid="3278943815956130740">"ସହାୟତା ନିବନ୍ଧ, ଫୋନ୍‌ ଓ ଚାଟ୍‌, ଆରମ୍ଭ କରିବା"</string>
+    <string name="support_summary" msgid="3278943815956130740">"ସହାୟତା ଆର୍ଟିକିଲ, ଫୋନ୍‌ ଓ ଚାଟ୍‌, ଆରମ୍ଭ କରିବା"</string>
     <string name="user_account_title" msgid="2108666882630552859">"କଣ୍ଟେଣ୍ଟ ପାଇଁ ଆକାଉଣ୍ଟ"</string>
     <string name="user_picture_title" msgid="6664602422948159123">"ଫଟୋ ଆଇଡି"</string>
     <string name="extreme_threats_title" msgid="1405820547540456436">"ଗୁରୁତର ବିପଦ"</string>
@@ -3035,13 +3038,13 @@
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"ସଂଯୁକ୍ତ ଡିଭାଇସଗୁଡ଼ିକ"</string>
     <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"ବ୍ଲୁଟୂଥ୍‍‌, ଡ୍ରାଇଭିଙ୍ଗ ମୋଡ୍, NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"ବ୍ଲୁଟୂଥ୍‍‌, ଡ୍ରାଇଭିଙ୍ଗ ମୋଡ୍"</string>
-    <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"ବ୍ଲୁଟୂଥ୍‍‌,NFC"</string>
+    <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"ବ୍ଲୁଟୁଥ,NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"ବ୍ଲୁଟୂଥ୍‍‌"</string>
     <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"ଆପ୍‌ ଓ ବିଜ୍ଞପ୍ତି"</string>
     <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"Assistant,କିଛିସମୟ ପୂର୍ବରୁ ବ୍ୟବହୃତ ଆପ୍ସ,ଡିଫଲ୍ଟ ଆପ୍ସ"</string>
     <string name="notification_settings_work_profile" msgid="7190550347842400029">"ୱାର୍କ ପ୍ରୋଫାଇଲ୍‍ରେ ଆପ୍‍ସ ପାଇଁ ବିଜ୍ଞପ୍ତି ଆକ୍ସେସ ଉପଲବ୍ଧ ନାହିଁ."</string>
     <string name="account_dashboard_title" msgid="4734300939532555885">"ଆକାଉଣ୍ଟ"</string>
-    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"କୌଣସି ଆକାଉଣ୍ଟ ଯୋଡ଼ାଯାଇନାହିଁ"</string>
+    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"କୌଣସି ଆକାଉଣ୍ଟ ଯୋଗ କରାଯାଇନାହିଁ"</string>
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"ଡିଫଲ୍ଟ ଆପ୍‌"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"ଭାଷା, ଜେଶ୍ଚର, ସମୟ, ବ୍ୟାକଅପ୍‌"</string>
     <string name="search_results_title" msgid="4160717656435503940">"ସେଟିଙ୍ଗ"</string>
@@ -3165,7 +3168,7 @@
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g>ଥର ସକ୍ଷମ କରାଯାଇଛି</item>
       <item quantity="one">1ଟି ସକ୍ଷମ କରାଯାଇଛି</item>
     </plurals>
-    <string name="zen_mode_settings_title" msgid="3425263414594779244">"ବିରକ୍ତ କର ନାହିଁ"</string>
+    <string name="zen_mode_settings_title" msgid="3425263414594779244">"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="zen_mode_settings_turn_on_dialog_title" msgid="3062548369931058282">"\"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ଅନ୍ କରନ୍ତୁ"</string>
     <string name="zen_mode_behavior_settings_title" msgid="423125904296667490">"ବ୍ୟତିକ୍ରମ"</string>
     <string name="zen_mode_duration_settings_title" msgid="5522668871014735728">"ଡିଫଲ୍ଟ୍ ଅବଧି"</string>
@@ -3198,22 +3201,22 @@
     <string name="zen_mode_restrict_notifications_mute_footer" msgid="3049522809520549054">"ଯେତେବେଳେ ବିଜ୍ଞପ୍ତି ଦେଖାଦେବ, ଆପଣଙ୍କର ଫୋନରେ ସାଉଣ୍ଡ କିମ୍ବା ଭାଇବ୍ରେଟ୍ ହେବନାହିଁ।"</string>
     <string name="zen_mode_restrict_notifications_hide" msgid="3296933643539682552">"ବିଜ୍ଞପ୍ତି ଆସିଲେ କୌଣସି ଭିଜୁଆଲ୍ ଦେଖାଯିବ ନାହିଁ କିମ୍ବା ସାଉଣ୍ଡ୍‍ ବାହାରିବ ନାହିଁ"</string>
     <string name="zen_mode_restrict_notifications_hide_summary" msgid="1449301153755270168">"ଆପଣ ବିଜ୍ଞପ୍ତିଗୁଡିକୁ ଦେଖିପାରିବେ ନାହିଁ କିମ୍ବା ଶୁଣିପାରିବେ ନାହିଁ"</string>
-    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"ଆପଣଙ୍କର ଫୋନ୍ ନୂଆ କିମ୍ବା ବିଦ୍ୟମାନ ଥିବା ବିଜ୍ଞପ୍ତିକୁ ପ୍ରଦର୍ଶନ କରିବ ନାହିଁ ତଥା ସେଥିପାଇଁ ଭାଇବ୍ରେଟ୍ ହେବ ନାହିଁ କିମ୍ବା ସାଉଣ୍ଡ କରିବ ନାହିଁ । ମନେରଖନ୍ତୁ ଯେ, ଫୋନ୍ କାର୍ଯ୍ୟକଳାପ ଏବଂ ସ୍ଥିତି ପାଇଁ ଗୁରୁତର ବିଜ୍ଞପ୍ତି ତଥାପି ଦୃଶ୍ୟମାନ ହେଉଥିବ।\n\nଆପଣ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ବନ୍ଦ କରିବା ସମୟରେ ସ୍କ୍ରିନ୍‌ର ଉପରୁ ତଳକୁ ସ୍ୱାଇପ୍‍ କରି ଛାଡ଼ି ଯାଇଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିପାରିବେ।"</string>
+    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"ଆପଣଙ୍କର ଫୋନ୍ ନୂଆ କିମ୍ବା ବିଦ୍ୟମାନ ଥିବା ବିଜ୍ଞପ୍ତିକୁ ପ୍ରଦର୍ଶନ କରିବ ନାହିଁ ତଥା ସେଥିପାଇଁ ଭାଇବ୍ରେଟ୍ ହେବ ନାହିଁ କିମ୍ବା ସାଉଣ୍ଡ କରିବ ନାହିଁ । ମନେରଖନ୍ତୁ ଯେ, ଫୋନ୍ କାର୍ଯ୍ୟକଳାପ ଏବଂ ସ୍ଥିତି ପାଇଁ ଗୁରୁତ୍ୱପୂର୍ଣ୍ଣ ବିଜ୍ଞପ୍ତି ତଥାପି ଦେଖାଯିବ।\n\nଆପଣ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ବନ୍ଦ କରିବା ସମୟରେ ସ୍କ୍ରିନ୍‌ର ଉପରୁ ତଳକୁ ସ୍ୱାଇପ୍‍ କରି ଛାଡ଼ି ଯାଇଥିବା ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିପାରିବେ।"</string>
     <string name="zen_mode_restrict_notifications_custom" msgid="3167252482570424133">"କଷ୍ଟମ"</string>
     <string name="zen_mode_restrict_notifications_enable_custom" msgid="6376983315529894440">"କଷ୍ଟମ ସେଟିଙ୍ଗକୁ ସକ୍ଷମ କରନ୍ତୁ"</string>
     <string name="zen_mode_restrict_notifications_disable_custom" msgid="8004212081465043044">"କଷ୍ଟମ ସେଟିଙ୍ଗକୁ କାଢ଼ିଦିଅନ୍ତୁ"</string>
     <string name="zen_mode_restrict_notifications_summary_muted" msgid="1075196788469381282">"ବିଜ୍ଞପ୍ତି ଆସିଲେ କୌଣସି ସାଉଣ୍ଡ ନାହିଁ"</string>
     <string name="zen_mode_restrict_notifications_summary_custom" msgid="4982187708274505748">"ଆଶିଂକ ଭାବେ ଲୁଚିଯାଇଛି"</string>
     <string name="zen_mode_restrict_notifications_summary_hidden" msgid="7637206880685474111">"ବିଜ୍ଞପ୍ତି ଆସିଲେ କୌଣସି ଭିଜୁଆଲ୍ ଦେଖାଯିବ ନାହିଁ କିମ୍ବା ସାଉଣ୍ଡ୍‍ ବାହାରିବ ନାହିଁ"</string>
-    <string name="zen_mode_what_to_block_title" msgid="2142809942549840800">"କଷ୍ଟମ୍ ସୀମାବଦ୍ଧତା"</string>
-    <string name="zen_mode_block_effects_screen_on" msgid="1042489123800404560">"ସ୍କ୍ରୀନ୍‌ ଅନ୍ ଥିବାବେଳେ"</string>
-    <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"ସ୍କ୍ରୀନ୍‌ ଅଫ୍ ଥିବାବେଳେ"</string>
+    <string name="zen_mode_what_to_block_title" msgid="2142809942549840800">"କଷ୍ଟମ୍ ରେଷ୍ଟ୍ରିକସନ୍"</string>
+    <string name="zen_mode_block_effects_screen_on" msgid="1042489123800404560">"ସ୍କ୍ରିନ୍‌ ଚାଲୁଥିବା ବେଳେ"</string>
+    <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"ସ୍କ୍ରିନ୍‌ ବନ୍ଦ ଥିବାବେଳେ"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"ସାଉଣ୍ଡ ଓ ଭାଇବ୍ରେଶନ୍‌କୁ ମ୍ୟୁଟ୍ କରନ୍ତୁ"</string>
-    <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"ସ୍କ୍ରୀନ୍ ଚାଲୁ କରନ୍ତୁ ନାହିଁ"</string>
+    <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"ସ୍କ୍ରିନ୍ ଚାଲୁ କରନ୍ତୁ ନାହିଁ"</string>
     <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"ଆଲୋକ ଧପଧପ କରନ୍ତୁ ନାହିଁ"</string>
-    <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"ସ୍କ୍ରୀନ୍ ଉପରେ ବିଜ୍ଞପ୍ତି ଦେଖାନ୍ତୁ ନାହିଁ"</string>
+    <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"ସ୍କ୍ରିନ୍ ଉପରେ ବିଜ୍ଞପ୍ତି ଦେଖାନ୍ତୁ ନାହିଁ"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"ସ୍କ୍ରିନ୍‌ର ଉପର ପାର୍ଶ୍ୱରେ ଦିଆଯାଇଥିବା ଷ୍ଟାଟସ୍‌ ବାର୍‌ ଆଇକନ୍‌ଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"</string>
-    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"ଆପ୍‌ ଆଇକନ୍‌ଗୁଡ଼ିକରେ ବିନ୍ଦୁଗୁଡ଼ିକ ଦ୍ୱାରା ଚିହ୍ନିତ ବିଜ୍ଞପ୍ତିକୁ ଲୁଚାନ୍ତୁ"</string>
+    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"ଆପ୍‌ ଆଇକନ୍‌ଗୁଡ଼ିକରେ ବିଜ୍ଞପ୍ତି ବିନ୍ଦୁଗୁଡ଼ିକୁ ଲୁଚାନ୍ତୁ"</string>
     <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"ବିଜ୍ଞପ୍ତି ପାଇଁ ଜଗାନ୍ତୁ ନାହିଁ"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"ବିଜ୍ଞପ୍ତି ତାଲିକାଠାରୁ ଲୁଚାନ୍ତୁ"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"ଆଦୌ ନୁହେଁ"</string>
@@ -3222,7 +3225,7 @@
     <string name="zen_mode_block_effect_summary_sound" msgid="4907185880913861880">"ଶବ୍ଦ ଓ କମ୍ପନ"</string>
     <string name="zen_mode_block_effect_summary_some" msgid="6035118904496072665">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଶବ୍ଦ, କମ୍ପନ ଓ ଦୃଶ୍ୟ ସଂକେତ"</string>
     <string name="zen_mode_block_effect_summary_all" msgid="2830443565687247759">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକର ଶବ୍ଦ, ଦୃଶ୍ୟ ସଂକେତ"</string>
-    <string name="zen_mode_blocked_effects_footer" msgid="4375156159613413924">"ମୌଳିକ ଫୋନ୍ କାର୍ଯ୍ୟ ପାଇଁ ବିଜ୍ଞପ୍ତି ଆବଶ୍ୟକ ଏବଂ ଷ୍ଟାଟସ୍‌କୁ ଆଦୌ ଲୁଚାଇହେବ ନାହିଁ"</string>
+    <string name="zen_mode_blocked_effects_footer" msgid="4375156159613413924">"ମୌଳିକ ଫୋନ୍ କାର୍ଯ୍ୟ ଏବଂ ସ୍ଥିତି ପାଇଁ ଆବଶ୍ୟକ ବିଜ୍ଞପ୍ତି ଆଦୌ ଲୁଚାଇହେବ ନାହିଁ"</string>
     <string name="zen_mode_no_exceptions" msgid="3099578343994492857">"କିଛି ନୁହେଁ"</string>
     <string name="zen_mode_other_options" msgid="7216192179063769057">"ଅନ୍ୟାନ୍ୟ ବିକଲ୍ପ"</string>
     <string name="zen_mode_add" msgid="2533484377786927366">"ଯୋଡନ୍ତୁ"</string>
@@ -3230,7 +3233,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"ଏବେ ଅନ୍‌ କରନ୍ତୁ"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"ବର୍ତ୍ତମାନ ବନ୍ଦ କରନ୍ତୁ"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"<xliff:g id="FORMATTED_TIME">%s</xliff:g> ପର୍ଯ୍ୟନ୍ତ \"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ଅନ୍‌ ରହିବ"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"ଆପଣ ବନ୍ଦ ନକକରିବା ପର୍ଯ୍ୟନ୍ତ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ଅନ୍‌ ରହିବ"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"ଆପଣ ବନ୍ଦ ନକରିବା ପର୍ଯ୍ୟନ୍ତ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\' ଚାଲୁ‌ ରହିବ"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"ଏକ (<xliff:g id="RULE_NAME">%s</xliff:g>) ନିୟମ ଦ୍ୱାରା ବିରକ୍ତ କର ନାହିଁ ସ୍ୱଚାଳିତ ଭାବେ ଚାଲୁ ହୋଇଗଲା"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"ଏକ ଆପ୍‌ (<xliff:g id="APP_NAME">%s</xliff:g>) ଦ୍ୱାରା ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ ସ୍ୱଚାଳିତ ଭାବେ ଅନ୍‌ ହେଲା"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"କଷ୍ଟମ୍ ସେଟିଂସ୍ ଥିବା <xliff:g id="RULE_NAMES">%s</xliff:g> ପାଇଁଁ ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ଚାଲୁ ଅଛି।"</string>
@@ -3381,10 +3384,10 @@
     <string name="display_vr_pref_title" msgid="1088464812293416981">"VRରେ ଡିଭାଇସ୍‌ ଥିବାବେଳେ"</string>
     <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"ବ୍ଲର୍ କମ କରନ୍ତୁ (ପ୍ରସ୍ତାବିତ)"</string>
     <string name="display_vr_pref_off" msgid="4681320968818852691">"ଫ୍ଲିକର୍‌କୁ କମ୍‌ କରନ୍ତୁ"</string>
-    <string name="picture_in_picture_title" msgid="4960733106166035448">"ଛବି-ଭିତରେ-ଛବି"</string>
+    <string name="picture_in_picture_title" msgid="4960733106166035448">"ପିକଚର୍-ଇନ୍-ପିକଚର୍"</string>
     <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"ଛବି-ଭିତରେ-ଛବିକୁ ଇନ୍‌ଷ୍ଟଲ୍‌ ହୋଇଥିବା କୌଣସି ଆପ୍‌ ସପୋର୍ଟ କରୁନାହିଁ"</string>
     <string name="picture_in_picture_keywords" msgid="7326958702002259262">"ପିପ୍‌ ପିକଚର୍‌ ଇନ୍‌"</string>
-    <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"ଛବି-ରେ-ଛବି"</string>
+    <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"ପିକଚର୍-ଇନ୍-ପିକଚର୍"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"ପିକଚର୍-ଇନ୍-ପିକଚରର ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="918632751775525347">"ଏପ ଖୋଲା ଥିବାବେଳେ କିମ୍ୱା ଏହାକୁ ଆପଣ ଛାଡ଼ିବା ପରେ (ଉଦାହରଣସ୍ୱରୂପ, ଏକ ଭିଡିଓ ଦେଖିବା ଜାରି ରଖିବାକୁ) ଏକ ଛବି-ଭିତରେ-ଛବି ୱିଣ୍ଡୋ ତିଆରି କରିବା ପାଇଁ ଏହି ଏପକୁ ଅନୁମତି ଦିଅନ୍ତୁ। ଏହି ୱିଣ୍ଡୋ, ଆପଣ ବ୍ୟବହାର କରୁଥିବା ଅନ୍ୟ ଏପଗୁଡ଼ିକ ଉପରେ ଦେଖାଦେବ।"</string>
     <string name="manage_zen_access_title" msgid="3058206309728524196">"\"ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\" ଆକ୍ସେସ୍"</string>
@@ -3703,8 +3706,8 @@
       <item quantity="other">ଆପ୍‌ଗୁଡ଼ିକ ବ୍ୟାଟେରୀ ସାରୁଛନ୍ତି</item>
       <item quantity="one"><xliff:g id="APP">%1$s</xliff:g> ବ୍ୟାଟେରୀ ସାରୁଛି</item>
     </plurals>
-    <string name="high_power_filter_on" msgid="5294209328473386403">"ଅନୁକୂଳିତ ନୁହେଁ"</string>
-    <string name="high_power_on" msgid="3573501822510580334">"ଅନୁକୁଳିତ ନୁହେଁ"</string>
+    <string name="high_power_filter_on" msgid="5294209328473386403">"ଅପ୍ଟିମାଇଜ୍ ହୋଇନାହିଁ"</string>
+    <string name="high_power_on" msgid="3573501822510580334">"ଅପ୍ଟିମାଇଜ୍ ହୋଇନାହିଁ"</string>
     <string name="high_power_off" msgid="5906679734326490426">"ଅପ୍ଟିମାଇଜିଂ ବ୍ୟାଟେରୀ ବ୍ୟବହାର"</string>
     <string name="high_power_system" msgid="739584574711292753">"ବ୍ୟାଟେରୀ ଅପ୍ଟିମାଇଜେସନ୍ ଉପଲବ୍ଧ ନାହିଁ"</string>
     <string name="high_power_desc" msgid="333756885680362741">"ବ୍ୟାଟେରୀ ଅପ୍ଟିମାଇଜେସନ୍ ଲାଗୁ କରନ୍ତୁ ନାହିଁ। ଏହା ଆପଣଙ୍କ ବ୍ୟାଟେରୀକୁ ଖୁବ ଶୀଘ୍ର ସାରିଦେଇପାରେ।"</string>
@@ -3730,7 +3733,7 @@
     <string name="usb_use_file_transfers_desc" msgid="6953866660041189580">"ଅନ୍ୟଏକ ଡିଭାଇସ୍‌କୁ ଫାଇଲ୍‌ ଟ୍ରାନ୍ସଫର୍‌ କରନ୍ତୁ"</string>
     <string name="usb_use_photo_transfers" msgid="5974236250197451257">"PTP"</string>
     <string name="usb_use_photo_transfers_desc" msgid="2325112887316125320">"ଯଦି MTP ସପୋର୍ଟ ହେଉନଥିବ, ତେବେ ଫୋଟୋ କିମ୍ୱା ଫାଇଲ୍‌ ଟ୍ରାନ୍ସଫର୍‌ କରନ୍ତୁ (PTP)"</string>
-    <string name="usb_use_tethering" msgid="4250626730173163846">"USB ଟିଥରିଙ୍ଗ"</string>
+    <string name="usb_use_tethering" msgid="4250626730173163846">"USB ଟିଥରିଂ"</string>
     <string name="usb_use_MIDI" msgid="4710632870781041401">"MIDI"</string>
     <string name="usb_use_MIDI_desc" msgid="1770966187150010947">"MIDI ଭାବରେ ଏହି ଡିଭାଇସ୍‌କୁ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="usb_use" msgid="8940500223316278632">"ଏହା ପାଇଁ USB ବ୍ୟବହାର କରନ୍ତୁ"</string>
@@ -3746,7 +3749,7 @@
     <string name="usb_summary_charging_only" msgid="4118449308708872339">"ଏହି ଡିଭାଇସ୍‌ ଚାର୍ଜ ହେଉଛି"</string>
     <string name="usb_summary_power_only" msgid="3552240122641051107">"କନେକ୍ଟ ହୋଇଥିବା ଡିଭାଇସ୍‍ ଚାର୍ଜ ହେଉଛି"</string>
     <string name="usb_summary_file_transfers" msgid="7805342797099821502">"ଫାଇଲ୍‌ ଟ୍ରାନ୍ସଫର୍‌"</string>
-    <string name="usb_summary_tether" msgid="778845069037366883">"USB ଟିଥରିଙ୍ଗ"</string>
+    <string name="usb_summary_tether" msgid="778845069037366883">"USB ଟିଥରିଂ"</string>
     <string name="usb_summary_photo_transfers" msgid="4743028167400644354">"PTP"</string>
     <string name="usb_summary_MIDI" msgid="5540604166270861247">"MIDI"</string>
     <string name="usb_summary_file_transfers_power" msgid="1684501026426766867">"ଫାଇଲ୍ ଟ୍ରାନ୍ସଫର୍ ଏବଂ ଯୋଗାଉଥିବା ପାୱର୍"</string>
@@ -3755,13 +3758,13 @@
     <string name="usb_summary_MIDI_power" msgid="7685597621357005180">"MIDI ଓ ଯୋଗାଉଥିବା ପାୱର୍"</string>
     <string name="background_check_pref" msgid="664081406854758392">"ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡ ଯାଞ୍ଚ"</string>
     <string name="background_check_title" msgid="4136736684290307970">"ସମ୍ପୂର୍ଣ୍ଣ ବ୍ୟାକ୍‌ଗ୍ରାଉଣ୍ଡ ଆକସେସ୍‌"</string>
-    <string name="assist_access_context_title" msgid="2274614501747710439">"ସ୍କ୍ରୀନ୍‌ରୁ ଟେକ୍ସଟ୍‌ ବ୍ୟବହାର କର"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"ସ୍କ୍ରୀନ୍‌ କଣ୍ଟେଣ୍ଟଗୁଡ଼ିକୁ ଟେକ୍ସଟ୍‌ ଭଳି ଆକ୍ସେସ୍‌ କରିବା ପାଇଁ ସହାୟକ ଆପ୍‌କୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
-    <string name="assist_access_screenshot_title" msgid="1991014038776117688">"ସ୍କ୍ରୀନସଟ୍‌ ବ୍ୟବହାର କରନ୍ତୁ"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"ସହାୟକ ଆପ୍‌କୁ ସ୍କ୍ରୀନ୍‌ର ଏକ ଇମେଜ୍‌ ଆକସେସ୍ କରିବାକୁ ଦିଅନ୍ତୁ"</string>
-    <string name="assist_flash_title" msgid="8852484250748551092">"ଫ୍ଲାଶ୍‌ ସ୍କ୍ରୀନ୍‌"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"ସ୍କ୍ରୀନ୍‌ କିମ୍ୱା ସ୍କ୍ରୀନଶଟ୍‌ରୁ ଯେତେବେଳେ ସହାୟକ ଆପ୍‌ ଟେକ୍ସଟ୍‌ ଆକ୍ସେସ୍‌ କରେ, ସ୍କ୍ରୀନ୍‌ର ଧାର ଫ୍ଲାଶ୍ ହେଉ"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"ଆପଣ ଦେଖୁଥିବା ସ୍କ୍ରୀନ୍‌ ସୂଚନାକୁ ଆଧାର କରି ସହାୟକ ଆପ୍‌ ଆପଣଙ୍କୁ ସାହାଯ୍ୟ କରିପାରିବ। କେତେକ ଆପ୍‌,ଆପଣଙ୍କୁ ଉତ୍ତମ ସହାୟତା ଦେବାପାଇଁ, ଉଭୟ ଲଞ୍ଚର୍ ଓ ଭଏସ୍‍ ଇନପୁଟ୍‍ ସେବାକୁ ସମର୍ଥନ କରନ୍ତି।"</string>
+    <string name="assist_access_context_title" msgid="2274614501747710439">"ସ୍କ୍ରିନ୍‌ରୁ ଟେକ୍ସଟ୍‌ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"ସ୍କ୍ରିନ୍‌ ବିଷୟବସ୍ତୁଗୁଡ଼ିକୁ ଟେକ୍ସଟ୍‌ ଭଳି ଆକ୍ସେସ୍‌ କରିବା ପାଇଁ ସହାୟକ ଆପ୍‌କୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
+    <string name="assist_access_screenshot_title" msgid="1991014038776117688">"ସ୍କ୍ରିନସଟ୍‌ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"ସହାୟକ ଆପ୍‌କୁ ସ୍କ୍ରିନ୍‌ର ଏକ ଇମେଜ୍‌ ଆକସେସ୍ କରିବାକୁ ଦିଅନ୍ତୁ"</string>
+    <string name="assist_flash_title" msgid="8852484250748551092">"ଫ୍ଲାସ୍ ସ୍କ୍ରିନ୍‌"</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"ସ୍କ୍ରିନ୍‌ କିମ୍ୱା ସ୍କ୍ରିନସଟ୍‌ରୁ ଯେତେବେଳେ ସହାୟକ ଆପ୍‌ ଟେକ୍ସଟ୍‌ ଆକ୍ସେସ୍‌ କରେ, ସ୍କ୍ରିନ୍‌ର ଧାର ଫ୍ଲାସ୍ କରନ୍ତୁ"</string>
+    <string name="assist_footer" msgid="7030121180457472165">"ଆପଣ ଦେଖୁଥିବା ସ୍କ୍ରିନ୍‌ ସୂଚନାକୁ ଆଧାର କରି ସହାୟକ ଆପ୍‌ ଆପଣଙ୍କୁ ସାହାଯ୍ୟ କରିପାରିବ। କେତେକ ଆପ୍‌,ଆପଣଙ୍କୁ ଉତ୍ତମ ସହାୟତା ଦେବାପାଇଁ, ଉଭୟ ଲଞ୍ଚର୍ ଓ ଭଏସ୍‍ ଇନପୁଟ୍‍ ସେବାକୁ ସମର୍ଥନ କରନ୍ତି।"</string>
     <string name="average_memory_use" msgid="5333366040118953945">"ହାରାହାରି ମେମୋରୀ ବ୍ୟବହାର"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"ସର୍ବାଧିକ ମେମୋରୀ ବ୍ୟବହାର"</string>
     <string name="memory_usage" msgid="7963253555330830906">"ମେମୋରୀ ବ୍ୟବହାର"</string>
@@ -3810,14 +3813,14 @@
     <string name="app_permission_summary_allowed" msgid="6458476982015518778">"ଅନୁମତିପ୍ରାପ୍ତ"</string>
     <string name="app_permission_summary_not_allowed" msgid="1171642541675462584">"ଅନୁମୋଦିତ ନୁହେଁ"</string>
     <string name="keywords_install_other_apps" msgid="5383559540695847668">"ଅଜଣ ଉତ୍ସରୁ ଆପ୍‌ଗୁଡ଼ିକୁ ଇନ୍‌ଷ୍ଟଲ୍‌ କରନ୍ତୁ"</string>
-    <string name="write_settings" msgid="9009040811145552108">"ସିଷ୍ଟମ୍‌ ସେଟିଙ୍ଗ ବଦଳାନ୍ତୁ"</string>
+    <string name="write_settings" msgid="9009040811145552108">"ସିଷ୍ଟମ୍‌ ସେଟିଂସ ବଦଳାନ୍ତୁ"</string>
     <string name="keywords_write_settings" msgid="3450405263390246293">"ଲେଖିବା ଓ ପରିବର୍ତ୍ତନ କରିବାର ସିଷ୍ଟମ୍‌ ସେଟିଙ୍ଗ"</string>
     <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_1">%2$d</xliff:g> ର <xliff:g id="COUNT_0">%1$d</xliff:g> ଆପ୍‌, ସିଷ୍ଟମ୍‌ ସେଟିଙ୍ଗ ବଦଳାଇପାରିବେ"</string>
     <string name="financial_apps_sms_access_title" msgid="3422655018008259655">"ଆର୍ଥିକ ଆପ୍ସ Smsର ଆକ୍ସେସ୍"</string>
     <string name="filter_install_sources_apps" msgid="4519839764020866701">"ଅନ୍ୟ ଏପଗୁଡ଼ିକୁ ଇନଷ୍ଟଲ କରିପାରେ"</string>
     <string name="filter_write_settings_apps" msgid="6864144615530081121">"ସିଷ୍ଟମ୍‌ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରିପାରିବ"</string>
     <string name="write_settings_title" msgid="5852614614193830632">"ସିଷ୍ଟମ୍‌ ସେଟିଂସ୍ ପରିବର୍ତ୍ତନ କରିପାରିବ"</string>
-    <string name="write_system_settings" msgid="20450765210832463">"ସିଷ୍ଟମ୍‌ ସେଟିଙ୍ଗ ବଦଳାନ୍ତୁ"</string>
+    <string name="write_system_settings" msgid="20450765210832463">"ସିଷ୍ଟମ୍‌ ସେଟିଂସ ବଦଳାନ୍ତୁ"</string>
     <string name="permit_write_settings" msgid="4198491281216818756">"ସିଷ୍ଟମ୍‌ ସେଟିଙ୍ଗ ବଦଳାଇବାକୁ ଅନୁମତି ଦିଅନ୍ତୁ"</string>
     <string name="write_settings_description" msgid="2536706293042882500">"ଏହି ଅନୁମତି ଦ୍ୱାରା ଗୋଟିଏ ଏପ, ସିଷ୍ଟମ ସେଟିଙ୍ଗରେ ସଂଶୋଧନ କରିଥାଏ।"</string>
     <string name="write_settings_on" msgid="7328986337962635118">"ହଁ"</string>
@@ -3859,7 +3862,7 @@
     <string name="storage_summary_with_sdcard" msgid="8742907204848352697">"ଇଣ୍ଟର୍‌ନାଲ୍‌ ଷ୍ଟୋରେଜ୍‌: <xliff:g id="PERCENTAGE">%1$s</xliff:g> ବ୍ୟବହୃତ - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ଖାଲି"</string>
     <string name="display_summary" msgid="5725269449657325797">"ନିଷ୍କ୍ରିୟତାର <xliff:g id="TIMEOUT_DESCRIPTION">%1$s</xliff:g> ପରେ ସୁପ୍ତାବସ୍ଥା"</string>
     <string name="display_dashboard_summary" msgid="7678566148167010682">"ୱାଲ୍‌ପେପର୍‌, ସୁପ୍ତ, ଫଣ୍ଟ ସାଇଜ୍‌"</string>
-    <string name="display_dashboard_summary_with_style" msgid="8981059474501210956">"ଶୈଳୀ ଏବଂ ୱାଲ୍‍ପେପର୍, ସ୍ଲିପ୍, ଫଣ୍ଟ ଆକାର"</string>
+    <string name="display_dashboard_summary_with_style" msgid="8981059474501210956">"ଷ୍ଟାଇଲ୍ ଏବଂ ୱାଲପେପର୍, ସ୍ଲିପ୍, ଫଣ୍ଟ ଆକାର"</string>
     <string name="display_dashboard_nowallpaper_summary" msgid="8612534364908229000">"ସ୍ଲିପ୍‍, ଫଣ୍ଟ ସାଇଜ୍"</string>
     <string name="display_summary_example" msgid="4555020581960719296">"କାମ ନ କରିବାର ୧୦ ମିନିଟ ପରେ ଶୁଆଇଦିଅ"</string>
     <string name="memory_summary" msgid="9121871336058042600">"<xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> ମେମୋରୀର ହାରାହାରି <xliff:g id="USED_MEMORY">%1$s</xliff:g> ବ୍ୟବହୃତ"</string>
@@ -4007,7 +4010,7 @@
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"ଯଦି ଡିଭାଇସ୍‌ ଲକ୍‌ ହୋଇଥାଏ, ବିଜ୍ଞପ୍ତିରେ ପ୍ରତ୍ୟୁତ୍ତର କିମ୍ବା ଅନ୍ୟାନ୍ୟ ଟେକ୍ସଟ୍‌ ଟାଇପ କରିବା ପ୍ରତିରୋଧ କରେ"</string>
     <string name="default_spell_checker" msgid="8636661093243189533">"ଡିଫଲ୍ଟ ବନାନ ଯାଞ୍ଚକାରୀ"</string>
     <string name="choose_spell_checker" msgid="7619860861923582868">"ବନାନ ଯାଞ୍ଚକାରୀ ବାଛନ୍ତୁ"</string>
-    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"ବନାନ୍ ଯାଞ୍ଚ କରୁଥିବା ଟୂଲ୍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
+    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"ବନାନ ଯାଞ୍ଚକାରୀ ଟୁଲ୍ ବ୍ୟବହାର କରନ୍ତୁ"</string>
     <string name="spell_checker_not_selected" msgid="331034541988255137">"ଚୟନ କରାଯାଇନାହିଁ"</string>
     <string name="notification_log_no_title" msgid="3668232437235348628">"(କିଛି ନାହିଁ)"</string>
     <string name="notification_log_details_delimiter" msgid="5485526744689532908">": "</string>
@@ -4134,7 +4137,7 @@
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"ସମୟ, ବିଜ୍ଞପ୍ତି, ଏବଂ ଅନ୍ୟ ସୂଚନାର ଯାଞ୍ଚ କରିବା ପାଇଁ, ଆପଣଙ୍କ ସ୍କ୍ରିନ୍‌କୁ ଟାପ୍ କରନ୍ତୁ।"</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"ବିଜ୍ଞପ୍ତି ପାଇଁ ଟିପଚିହ୍ନ ସ୍ୱାଇପ୍‌ କରନ୍ତୁ"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"ଟିପଚିହ୍ନ ସ୍ୱାଇପ୍‌ କରନ୍ତୁ"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ନିଜ ଫୋନ୍‌ ପଛପଟେ ଥିବା ଆଙ୍ଗୁଠି ଚିହ୍ନ ସେନ୍ସର୍‌ ଉପରେ ଆଙ୍ଗୁଠି ରଖି ତଳକୁ ସ୍ୱାଇପ୍‌ କରନ୍ତୁ।"</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ନିଜ ଫୋନ୍‌ ପଛପଟେ ଥିବା ଫିଙ୍ଗରପ୍ରିଣ୍ଟ ସେନ୍ସର୍‌ ଉପରେ ଆଙ୍ଗୁଠି ରଖି ତଳକୁ ସ୍ୱାଇପ୍‌ କରନ୍ତୁ।"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ନିଜ ଡିଭାଇସ୍‌ ପଛପଟେ ଥିବା ଆଙ୍ଗୁଠି ଚିହ୍ନ ସେନ୍ସର୍‌ ଉପରେ ଆଙ୍ଗୁଠି ରଖି ତଳକୁ ସ୍ୱାଇପ୍‌ କରନ୍ତୁ।"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଦେଖିବା ପାଇଁ, ନିଜ ଫୋନ୍‌ ପଛପଟେ ଥିବା ଟିପଚିହ୍ନ ସେନ୍ସର୍‌ ଉପରେ ଆଙ୍ଗୁଠି ରଖି ତଳକୁ ସ୍ୱାଇପ୍‌ କରନ୍ତୁ।"</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="948946491233738823">"ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ତୁରନ୍ତ ଦେଖନ୍ତୁ"</string>
@@ -4232,10 +4235,10 @@
     </plurals>
     <string name="app_names_concatenation_template_2" msgid="8267577900046506189">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>"</string>
     <string name="app_names_concatenation_template_3" msgid="5129064036161862327">"<xliff:g id="FIRST_APP_NAME">%1$s</xliff:g>, <xliff:g id="SECOND_APP_NAME">%2$s</xliff:g>, <xliff:g id="THIRD_APP_NAME">%3$s</xliff:g>"</string>
-    <string name="storage_photos_videos" msgid="1890829312367477559">"ଫଟୋ ଓ ଭିଡ଼ିଓ"</string>
+    <string name="storage_photos_videos" msgid="1890829312367477559">"ଫଟୋ ଓ ଭିଡିଓ"</string>
     <string name="storage_music_audio" msgid="3661289086715297149">"ମ୍ୟୁଜିକ୍‌ ଓ ଅଡିଓ"</string>
     <string name="storage_games" msgid="7740038143749092373">"ଗେମ୍‌"</string>
-    <string name="storage_other_apps" msgid="3202407095387420842">"ଅନ୍ୟାନ୍ୟ ଆପ୍‌"</string>
+    <string name="storage_other_apps" msgid="3202407095387420842">"ଅନ୍ୟ ଆପ୍ସ‌"</string>
     <string name="storage_files" msgid="2087824267937487880">"ଫାଇଲ୍"</string>
     <string name="storage_size_large_alternate" msgid="1317796542509105857">"<xliff:g id="NUMBER">^1</xliff:g>"<small>" "<font size="20">"<xliff:g id="UNIT">^2</xliff:g>"</font></small>""</string>
     <string name="storage_volume_total" msgid="5021484171514159913">"<xliff:g id="TOTAL">%1$s</xliff:g>ରୁ ବ୍ୟବହୃତ ହୋଇଛି"</string>
@@ -4470,7 +4473,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"ଗୋପନୀୟତା"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"ଅନୁମତିଗୁଡ଼ିକ, ଆକାଉଣ୍ଟ କାର୍ଯ୍ୟକଳାପ, ବ୍ୟକ୍ତିଗତ ଡାଟା"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"କାଢ଼ିଦିଅନ୍ତୁ"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"ରଖନ୍ତୁ"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"ଏହି ମତାମତ କାଢ଼ିଦେବେ?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"ସୁପାରିଶକୁ କାଢ଼ି ଦିଆଯାଇଛି"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"ପୂର୍ବବତ୍ କରନ୍ତୁ"</string>
diff --git a/tests/CarDeveloperOptions/res/values-pa/arrays.xml b/tests/CarDeveloperOptions/res/values-pa/arrays.xml
index 4dba94f..fc6f1e9 100644
--- a/tests/CarDeveloperOptions/res/values-pa/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-pa/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"ਪ੍ਰਸ਼ਾਂਤ"</item>
     <item msgid="7044520255415007865">"ਸਭ"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 ਸਕਿੰਟ"</item>
+    <item msgid="772029947136115322">"30 ਸਕਿੰਟ"</item>
+    <item msgid="8743663928349474087">"1 ਮਿੰਟ"</item>
+    <item msgid="1506508631223164814">"2 ਮਿੰਟ"</item>
+    <item msgid="8664703938127907662">"5 ਮਿੰਟ"</item>
+    <item msgid="5827960506924849753">"10 ਮਿੰਟ"</item>
+    <item msgid="6677424950124253938">"30 ਮਿੰਟ"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ਕਦੇ ਵੀ ਨਹੀਂ"</item>
+    <item msgid="2517785806387977252">"15 ਸਕਿੰਟ"</item>
+    <item msgid="6347954399441173672">"30 ਸਕਿੰਟ"</item>
+    <item msgid="4858305253279921789">"1 ਮਿੰਟ"</item>
+    <item msgid="8109273437140044073">"2 ਮਿੰਟ"</item>
+    <item msgid="2788593551142462622">"5 ਮਿੰਟ"</item>
+    <item msgid="8012672183888404961">"10 ਮਿੰਟ"</item>
+    <item msgid="8271452751594598661">"30 ਮਿੰਟ"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"ਤੁਰੰਤ"</item>
     <item msgid="2038544972632026612">"5 ਸਕਿੰਟ"</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"10 ਮਿੰਟ"</item>
     <item msgid="7258394417241706272">"30 ਮਿੰਟ"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"ਛੋਟਾ"</item>
+    <item msgid="591935967183159581">"ਪੂਰਵ-ਨਿਰਧਾਰਤ"</item>
+    <item msgid="1714184661981538355">"ਵੱਡਾ"</item>
+    <item msgid="6195563047686707484">"ਸਭ ਤੋਂ ਵੱਡੀ"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"ਸਕੈਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ..."</item>
+    <item msgid="5597394826455877834">"ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="5848277343965362748">"ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="3391238031431440676">"IP ਪਤਾ ਪ੍ਰਾਪਤ ਕਰ ਰਿਹਾ ਹੈ..."</item>
+    <item msgid="5257597310494000224">"ਕਨੈਕਟ ਹੈ"</item>
+    <item msgid="8472497592913050396">"ਮੁਅੱਤਲ ਕੀਤਾ"</item>
+    <item msgid="1228072488815999109">"ਡਿਸਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ..."</item>
+    <item msgid="7253087004422991731">"ਡਿਸਕਨੈਕਟ ਕੀਤਾ"</item>
+    <item msgid="4169850917304751227">"ਅਸਫਲ"</item>
+    <item msgid="6266658166690831131">"ਬਲੌਕ ਕੀਤੀਆਂ"</item>
+    <item msgid="4517230805854909775">"ਅਸਥਾਈ ਤੌਰ ਤੇ ਖ਼ਰਾਬ ਕਨੈਕਸ਼ਨ ਤੋਂ ਬਚਣ ਲਈ"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"ਸਕੈਨ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਪ੍ਰਮਾਣਿਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਤੋਂ IP ਪਤਾ ਪ੍ਰਾਪਤ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</item>
+    <item msgid="6600156231416890902">"ਮੁਅੱਤਲ ਕੀਤਾ"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> ਤੋਂ ਡਿਸਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="3980154971187953257">"ਡਿਸਕਨੈਕਟ ਕੀਤਾ"</item>
+    <item msgid="2847316776634969068">"ਅਸਫਲ"</item>
+    <item msgid="4390990424746035383">"ਬਲੌਕ ਕੀਤੀਆਂ"</item>
+    <item msgid="3618248791367063949">"ਅਸਥਾਈ ਤੌਰ ਤੇ ਖ਼ਰਾਬ ਕਨੈਕਸ਼ਨ ਤੋਂ ਬਚਣ ਲਈ"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"ਪੁਸ਼ ਬਟਨ"</item>
+    <item msgid="7401896200768713930">"ਪੀਅਰ ਡੀਵਾਈਸ ਤੋਂ ਪਿੰਨ"</item>
+    <item msgid="4526848028011846710">"ਇਸ ਡੀਵਾਈਸ ਤੋਂ ਪਿੰਨ"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"ਕਨੈਕਟ ਹੈ"</item>
     <item msgid="983792611851499732">"ਸੱਦੇ ਗਏ"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"ਉਪਲਬਧ"</item>
     <item msgid="3230556734162006146">"ਰੇਂਜ-ਤੋਂ-ਬਾਹਰ"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 ਮਿੰਟ"</item>
+    <item msgid="2759776603549270587">"5 ਮਿੰਟ"</item>
+    <item msgid="167772676068860015">"1 ਘੰਟਾ"</item>
+    <item msgid="5985477119043628504">"ਕਦੇ ਵੀ ਸਮਾਂ ਸਮਾਪਤ ਨਹੀਂ"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"ਸਿਸਟਮ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਮੁੱਲ ਵਰਤੋ: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"ਕਮਜ਼ੋਰ"</item>
+    <item msgid="7882129634982603782">"ਕਮਜ਼ੋਰ"</item>
+    <item msgid="6457357501905996224">"ਠੀਕ-ਠਾਕ"</item>
+    <item msgid="405271628162918841">"ਵਧੀਆ"</item>
+    <item msgid="999948812884919584">"ਸ਼ਾਨਦਾਰ"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"ਪਿਛਲੇ 30 ਦਿਨ"</item>
     <item msgid="3211287705232736964">"ਵਰਤੋਂ ਸਾਈਕਲ ਸੈੱਟ ਕਰੋ..."</item>
@@ -106,11 +163,14 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"ਸਥਿਰ"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"ਕੋਈ ਨਹੀਂ"</item>
     <item msgid="1464741437353223198">"ਮੈਨੁਅਲ"</item>
-    <item msgid="5793600062487886090">"ਪ੍ਰੌਕਸੀ ਆਟੋ-ਕੌਂਫਿਗਰ"</item>
+    <item msgid="5793600062487886090">"ਪ੍ਰੌਕਸੀ ਸਵੈ-ਸੰਰੂਪਣ"</item>
   </string-array>
   <string-array name="apn_auth_entries">
     <item msgid="7099647881902405997">"ਕੋਈ ਨਹੀਂ"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਓ"</item>
     <item msgid="6423861043647911030">"ਪਹੁੰਚਯੋਗਤਾ ਅਵਾਜ਼"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ਟਿਕਾਣਾ"</item>
+    <item msgid="6656077694190491067">"ਟਿਕਾਣਾ"</item>
+    <item msgid="8790228218278477369">"ਟਿਕਾਣਾ"</item>
+    <item msgid="7836406246005211990">"ਥਰਥਰਾਹਟ"</item>
+    <item msgid="3951439024549922598">"ਸੰਪਰਕ ਪੜ੍ਹੋ"</item>
+    <item msgid="8802152411647068">"ਸੰਪਰਕ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</item>
+    <item msgid="229544934599698735">"ਕਾਲ ਲੌਗ ਪੜ੍ਹੋ"</item>
+    <item msgid="7396102294405899613">"ਕਾਲ ਲੌਗ ਸੰਸ਼ੋਧਿਤ ਕਰੋ"</item>
+    <item msgid="3597797992398484655">"ਕੈਲੰਡਰ ਪੜ੍ਹੋ"</item>
+    <item msgid="2705975774250907343">"ਕੈਲੰਡਰ ਸੰਸ਼ੋਧਿਤ ਕਰੋੇ"</item>
+    <item msgid="4668747371441932697">"ਟਿਕਾਣਾ"</item>
+    <item msgid="1487578921720243646">"ਸੂਚਨਾ ਪੋਸਟ ਕਰੋ"</item>
+    <item msgid="4636080349724146638">"ਟਿਕਾਣਾ"</item>
+    <item msgid="673510900286463926">"ਫ਼ੋਨ ਤੇ ਕਾਲ ਕਰੋ"</item>
+    <item msgid="542083422784609790">"SMS/MMS ਪੜ੍ਹੋ"</item>
+    <item msgid="1033780373029588436">"SMS/MMS ਲਿਖੋ"</item>
+    <item msgid="5647111115517787488">"SMS/MMS ਪ੍ਰਾਪਤ ਕਰੋ"</item>
+    <item msgid="8591105601108455893">"SMS/MMS ਪ੍ਰਾਪਤ ਕਰੋ"</item>
+    <item msgid="7730995008517841903">"SMS/MMS ਪ੍ਰਾਪਤ ਕਰੋ"</item>
+    <item msgid="2613033109026626086">"SMS/MMS ਪ੍ਰਾਪਤ ਕਰੋ"</item>
+    <item msgid="3037159047591081136">"SMS/MMS ਭੇਜੋ"</item>
+    <item msgid="4726682243833913568">"SMS/MMS ਪੜ੍ਹੋ"</item>
+    <item msgid="6555678522277865572">"SMS/MMS ਲਿਖੋ"</item>
+    <item msgid="6981734935578130884">"ਸੈਟਿੰਗਾਂ ਬਦਲੋ"</item>
+    <item msgid="8705854389991425629">"ਟੌਪ ਤੇ ਡ੍ਰਾ ਕਰੋ"</item>
+    <item msgid="5861356020344153651">"ਪਹੁੰਚ ਸੂਚਨਾਵਾਂ"</item>
+    <item msgid="78432174621628659">"ਕੈਮਰਾ"</item>
+    <item msgid="3986116419882154794">" ਆਡੀਓ  ਰਿਕਾਰਡ ਕਰੋ"</item>
+    <item msgid="4516840825756409490">" ਆਡੀਓ  ਪਲੇ ਕਰੋ"</item>
+    <item msgid="6811712502798183957">"ਕਲਿਪਬੋਰਡ ਪੜ੍ਹੋ"</item>
+    <item msgid="2780369012602289114">"ਕਲਿਪਬੋਰਡ ਬਦਲੋ"</item>
+    <item msgid="2331359440170850868">"ਮੀਡੀਆ ਬਟਨ"</item>
+    <item msgid="6133599737122751231">" ਆਡੀਓ  ਫੋਕਸ"</item>
+    <item msgid="6844485713404805301">"ਮਾਸਟਰ ਵੌਲਿਊਮ"</item>
+    <item msgid="1600379420669104929">"ਵੌਇਸ ਵੌਲਿਊਮ"</item>
+    <item msgid="6296768210470214866">"ਰਿੰਗ ਦੀ ਅਵਾਜ਼"</item>
+    <item msgid="510690696071629241">"ਮੀਡੀਆ ਦੀ ਅਵਾਜ਼"</item>
+    <item msgid="406861638631430109">"ਅਲਾਰਮ ਦੀ ਅਵਾਜ਼"</item>
+    <item msgid="4715864795872233884">"ਸੂਚਨਾ ਵੌਲਿਊਮ"</item>
+    <item msgid="2311478519251301183">"Bluetooth ਵੌਲਿਊਮ"</item>
+    <item msgid="5133991377896747027">"ਸਕਿਰਿਆ ਰੱਖੋ"</item>
+    <item msgid="2464189519136248621">"ਟਿਕਾਣਾ"</item>
+    <item msgid="2062677934050803037">"ਟਿਕਾਣਾ"</item>
+    <item msgid="1735171933192715957">"ਵਰਤੋਂ ਸਟੈਟਸ ਪ੍ਰਾਪਤ ਕਰੋ"</item>
+    <item msgid="1014093788778383554">"ਮਾਈਕ੍ਰੋਫੋਨ ਨੂੰ ਮਿਊਟ/ਅਨਮਿਊਟ ਕਰੋ"</item>
+    <item msgid="4199297950608622850">"ਟੋਸਟ  ਦਿਖਾਓ"</item>
+    <item msgid="2527962435313398821">"ਪ੍ਰੋਜੈਕਟ ਮੀਡੀਆ"</item>
+    <item msgid="5117506254221861929">"VPN ਨੂੰ ਸਰਗਰਮ ਕਰੋ"</item>
+    <item msgid="8291198322681891160">"ਵਾਲਪੇਪਰ ਲਿਖੋ"</item>
+    <item msgid="7106921284621230961">"ਸਹਾਇਕ ਬਣਤਰ"</item>
+    <item msgid="4496533640894624799">"ਸਹਾਇਕ ਸਕਰੀਨਸ਼ਾਟ"</item>
+    <item msgid="2598847264853993611">"ਫ਼ੋਨ ਸਥਿਤੀ ਪੜ੍ਹੋ"</item>
+    <item msgid="9215610846802973353">"ਵੌਇਸਮੇਲ ਸ਼ਾਮਲ ਕਰੋ"</item>
+    <item msgid="9186411956086478261">"SIP ਵਰਤੋ"</item>
+    <item msgid="6884763100104539558">"ਆਊਟਗੋਇੰਗ ਕਾਲ \'ਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰੋ"</item>
+    <item msgid="125513972170580692">"ਫਿੰਗਰਪ੍ਰਿੰਟ"</item>
+    <item msgid="2556071024281275619">"ਸਰੀਰ ਸੰਵੇਦਕ"</item>
+    <item msgid="617168514928339387">"ਸੈਲ ਪ੍ਰਸਾਰਨਾਂ ਨੂੰ ਪੜ੍ਹੋ"</item>
+    <item msgid="7134693570516523585">"ਬਣਾਉਟੀ ਟਿਕਾਣਾ"</item>
+    <item msgid="7224489175375229399">"ਸਟੋਰੇਜ ਪੜ੍ਹੋ"</item>
+    <item msgid="8472735063903258202">"ਸਟੋਰੇਜ ਲਿਖੋ"</item>
+    <item msgid="4069276819909595110">"ਸਕਰੀਨ ਚਾਲੂ ਕਰੋ"</item>
+    <item msgid="1228338896751121025">"ਖਾਤੇ ਲਓ"</item>
+    <item msgid="3181581793459233672">"ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚਲਾਓ"</item>
+    <item msgid="2340936043025374076">"ਪਹੁੰਚਯੋਗਤਾ ਅਵਾਜ਼"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"ਘੱਟ"</item>
     <item msgid="4816511817309094890">"ਔਸਤ"</item>
@@ -247,15 +369,35 @@
     <item msgid="4627069151979553527">"ਪ੍ਰਵਾਹੀ ਲਿਖਤ"</item>
     <item msgid="6896773537705206194">"ਛੋਟੇ ਕੈਪੀਟਲਸ"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (8019330250538856521) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"ਬਹੁਤ ਛੋਟਾ"</item>
+    <item msgid="5091603983404027034">"ਛੋਟਾ"</item>
+    <item msgid="176844712416932112">"ਸਧਾਰਨ"</item>
+    <item msgid="2784236342175159295">"ਵੱਡਾ"</item>
+    <item msgid="218913203203160606">"ਬਹੁਤ ਵੱਡਾ"</item>
+  </string-array>
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="3865198759294188069">"ਪੂਰਵ-ਨਿਰਧਾਰਤ"</item>
+    <item msgid="6488643537808152001">"ਕੋਈ ਨਹੀਂ"</item>
+    <item msgid="552332815156010137">"ਰੂਪਰੇਖਾ"</item>
+    <item msgid="7187891159463789272">"ਡ੍ਰੌਪ ਸ਼ੈਡੋ"</item>
+    <item msgid="8019330250538856521">"ਉਭਰੇ ਹੋਏ ਕਿਨਾਰੇ"</item>
+    <item msgid="8987385315647049787">"ਨਿਰਾਸ਼"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="313003243371588365">"25%"</item>
     <item msgid="4665048002584838262">"50%"</item>
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"ਐਪ ਵੱਲੋਂ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਵਰਤੋ"</item>
+    <item msgid="8611890312638868524">"ਕਾਲੇ \'ਤੇ ਸਫ਼ੈਦ"</item>
+    <item msgid="5891360837786277638">"ਸਫ਼ੈਦ ਉੱਤੇ ਕਾਲਾ"</item>
+    <item msgid="2798457065945456853">"ਕਾਲੇ \'ਤੇ ਪੀਲਾ"</item>
+    <item msgid="5799049811524553967">"ਨੀਲੇ \'ਤੇ ਪੀਲਾ"</item>
+    <item msgid="3673930830658169860">"ਵਿਉਂਤੀ"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"ਪ੍ਰੀ-ਸ਼ੇਅਰ ਕੀਤੀਆਂ ਕੁੰਜੀਆਂ ਨਾਲ L2TP/IPSec VPN"</item>
@@ -264,16 +406,36 @@
     <item msgid="3319427315593649917">"ਸਰਟੀਫਿਕੇਟਾਂ ਨਾਲ IPSec VPN ਅਤੇ Xauth ਪ੍ਰਮਾਣੀਕਰਨ"</item>
     <item msgid="8258927774145391041">"ਸਰਟੀਫਿਕੇਟਾਂ ਅਤੇ ਹਾਈਬ੍ਰਿਡ ਪ੍ਰਮਾਣੀਕਰਨ ਨਾਲ IPSec VPN"</item>
   </string-array>
-    <!-- no translation found for vpn_proxy_settings:0 (2958623927055120839) -->
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_proxy_settings">
+    <item msgid="2958623927055120839">"ਕੋਈ ਨਹੀਂ"</item>
+    <item msgid="1157046369795346308">"ਮੈਨੁਅਲ"</item>
+  </string-array>
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"ਡਿਸਕਨੈਕਟ ਕੀਤਾ"</item>
+    <item msgid="8754480102834556765">"ਅਰੰਭ ਕਰ ਰਿਹਾ ਹੈ..."</item>
+    <item msgid="3351334355574270250">"ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ…"</item>
+    <item msgid="8303882153995748352">"ਕਨੈਕਟ ਹੈ"</item>
+    <item msgid="9135049670787351881">"ਸਮਾਂ ਸਮਾਪਤ"</item>
+    <item msgid="2124868417182583926">"ਅਸਫਲ"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"ਪੁੱਛੋ"</item>
     <item msgid="7718817231348607934">"ਕਦੇ ਵੀ ਆਗਿਆ ਨਾ ਦਿਓ"</item>
     <item msgid="8184570120217958741">"ਹਮੇਸ਼ਾਂ ਆਗਿਆ ਦਿਓ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ਸਧਾਰਨ"</item>
+    <item msgid="5101233285497327432">"ਮੱਧ"</item>
+    <item msgid="1555861583162930714">"ਘੱਟ"</item>
+    <item msgid="1719683776264798117">"ਸਮਾਲੋਚਨਾਤਮਿਕ"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ਸਧਾਰਨ"</item>
+    <item msgid="6107138933849816768">"ਮੱਧ"</item>
+    <item msgid="182695359839047859">"ਘੱਟ"</item>
+    <item msgid="8577246509202964244">"ਸਮਾਲੋਚਨਾਤਮਿਕ"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ਸਥਿਰ"</item>
     <item msgid="167418068739176448">"ਟੌਪ ਗਤੀਵਿਧੀ"</item>
@@ -291,9 +453,9 @@
     <item msgid="6248998242443333892">"ਕੈਚ ਕੀਤੀ (ਖਾਲੀ)"</item>
   </string-array>
   <string-array name="color_picker">
-    <item msgid="3151827842194201728">"Teal"</item>
+    <item msgid="3151827842194201728">"ਟੀਲ"</item>
     <item msgid="3228505970082457852">"ਨੀਲਾ"</item>
-    <item msgid="6590260735734795647">"Indigo"</item>
+    <item msgid="6590260735734795647">"ਗੂੜ੍ਹਾ ਨੀਲਾ"</item>
     <item msgid="3521763377357218577">"ਜਾਮਨੀ"</item>
     <item msgid="5932337981182999919">"ਗੁਲਾਬੀ"</item>
     <item msgid="5642914536624000094">"ਲਾਲ"</item>
diff --git a/tests/CarDeveloperOptions/res/values-pa/strings.xml b/tests/CarDeveloperOptions/res/values-pa/strings.xml
index 19e5809..dc9e6c9 100644
--- a/tests/CarDeveloperOptions/res/values-pa/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-pa/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"ਸਕ੍ਰੀਨ \'ਤੇ ਦਿਖਦੀ ਲਿਖਤ ਨੂੰ ਛੋਟਾ ਜਾਂ ਵੱਡਾ ਕਰੋ।"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"ਛੋਟਾ ਕਰੋ"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"ਵੱਡਾ ਕਰੋ"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ਨਮੂਨਾ ਲਿਖਤ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ਔਜ਼ ਦਾ ਨਿਰਾਲਾ ਵਿਜ਼ਾਰਡ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"ਪਾਠ 11: ਔਜ਼ ਦਾ ਹੀਰਿਆਂ-ਪੰਨਿਆਂ ਵਾਲਾ ਨਿਰਾਲਾ ਸ਼ਹਿਰ"</string>
@@ -195,7 +194,7 @@
     <string name="intent_sender_resource_label" msgid="8002433688075847091">"<xliff:g id="RESOURCE">Resource</xliff:g>:"</string>
     <string name="intent_sender_account_label" msgid="7904284551281213567">"ਖਾਤਾ:"</string>
     <string name="proxy_settings_title" msgid="6014901859338211713">"ਪ੍ਰੌਕਸੀ"</string>
-    <string name="proxy_clear_text" msgid="498317431076294101">"ਹਟਾਓ"</string>
+    <string name="proxy_clear_text" msgid="498317431076294101">"ਕਲੀਅਰ ਕਰੋ"</string>
     <string name="proxy_port_label" msgid="8285157632538848509">"ਪ੍ਰੌਕਸੀ ਪੋਰਟ"</string>
     <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"ਇਸ ਲਈ ਪ੍ਰੌਕਸੀ ਬਾਈਪਾਸ ਕਰੋ"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"ਡਿਫੌਲਟਸ ਰੀਸਟੋਰ ਕਰੋ"</string>
@@ -364,7 +363,7 @@
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"ਉਦਾਹਰਨ ਵਜੋਂ, ਜੋਏ ਦਾ Android."</string>
-    <string name="user_info_settings_title" msgid="1125111518759995748">"ਉਪਭੋਗਤਾ ਜਾਣਕਾਰੀ"</string>
+    <string name="user_info_settings_title" msgid="1125111518759995748">"ਵਰਤੋਂਕਾਰ ਜਾਣਕਾਰੀ"</string>
     <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">" ਲਾਕ  ਸਕ੍ਰੀਨ ਤੇ ਪ੍ਰੋਫਾਈਲ ਜਾਣਕਾਰੀ ਦਿਖਾਓ"</string>
     <string name="profile_info_settings_title" msgid="4855892878512562551">"ਪ੍ਰੋਫਾਈਲ ਜਾਣਕਾਰੀ"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"ਖਾਤੇ"</string>
@@ -460,15 +459,15 @@
     <string name="go_back_button_label" msgid="7310586887969860472">"ਵਾਪਸ ਜਾਓ"</string>
     <string name="skip_lock_screen_dialog_button_label" msgid="6706047245716780006">"ਛੱਡੋ"</string>
     <string name="cancel_lock_screen_dialog_button_label" msgid="2534925227627658819">"ਰੱਦ ਕਰੋ"</string>
-    <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="8909829699273726469">"ਸੈਂਸਰ ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ"</string>
+    <string name="security_settings_fingerprint_enroll_find_sensor_title" msgid="8909829699273726469">"ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_message" msgid="581120963079780740">"ਇਹ ਤੁਹਾਡੇ ਫ਼ੋਨ ਦੇ ਪਿਛਲੇ ਪਾਸੇ ਹੈ। ਆਪਣੀ ਪਹਿਲੀ ਉਂਗਲ ਦੀ ਵਰਤੋਂ ਕਰੋ।"</string>
     <string name="security_settings_fingerprint_enroll_find_sensor_content_description" msgid="7835824123269738540">"ਡੀਵਾਈਸ ਵਾਲੀ ਤਸਵੀਰ ਅਤੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸੈਂਸਰ ਟਿਕਾਣਾ"</string>
     <string name="security_settings_fingerprint_enroll_dialog_name_label" msgid="3519748398694308901">"ਨਾਮ"</string>
     <string name="security_settings_fingerprint_enroll_dialog_ok" msgid="3428927518029038956">"ਠੀਕ"</string>
     <string name="security_settings_fingerprint_enroll_dialog_delete" msgid="4312297515772004580">"ਮਿਟਾਓ"</string>
-    <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"ਸੈਂਸਰ ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ"</string>
+    <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"ਆਪਣੀ ਉਂਗਲ ਨੂੰ ਸੈਂਸਰ ’ਤੇ ਰੱਖੋ ਅਤੇ ਇੱਕ ਥਰਥਰਾਹਟ ਮਹਿਸੂਸ ਹੋਣ ਤੋਂ ਬਾਅਦ ਚੁੱਕ ਲਵੋ"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"ਚੁੱਕੋ, ਫਿਰ ਦੁਬਾਰਾ ਸਪੱਰਸ਼ ਕਰੋ"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"ਚੁੱਕੋ, ਫਿਰ ਦੁਬਾਰਾ ਸਪਰਸ਼ ਕਰੋ"</string>
     <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੇ ਵੱਖ-ਵੱਖ ਭਾਗਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਲਈ ਆਪਣੀ ਉਂਗਲ ਨੂੰ ਰੱਖਣਾ-ਚੁੱਕਣਾ ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਹੋ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"ਜਦ ਤੁਹਾਨੂੰ ਇਹ ਪ੍ਰਤੀਕ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਪਛਾਣ ਵਾਸਤੇ ਜਾਂ ਖਰੀਦਾਂ ਨੂੰ ਮਨਜ਼ੂਰ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਕਰੋ"</string>
@@ -488,21 +487,21 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"ਹੋ ਗਿਆ"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"ਓਹੋ, ਉਹ ਸੈਂਸਰ ਨਹੀਂ ਹੈ"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"ਫ਼ੋਨ ਦੇ ਪਿਛਲੇ ਪਾਸੇ ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ। ਪਹਿਲੀ ਉਂਗਲ ਵਰਤੋ।"</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"ਦਾਖਲਾ ਪੂਰਾ ਨਾ ਕੀਤਾ ਗਿਆ"</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"ਦਾਖਲਾ ਪੂਰਾ ਨਹੀਂ ਹੋਇਆ"</string>
     <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾਖ਼ਲੇ ਦੀ ਸਮਾਂ ਸੀਮਾ ਪੂਰੀ ਹੋ ਗਈ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ।"</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"ਫਿੰਗਰਪ੍ਰਿੰਟ ਦਾਖ਼ਲੇ ਨੇ ਕੰਮ ਨਹੀਂ ਕੀਤਾ। ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ ਜਾਂ ਕੋਈ ਵੱਖਰੀ ਉਂਗਲ ਉਪਯੋਗ ਕਰੋ।"</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"ਇੱਕ ਹੋਰ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"ਅੱਗੇ"</string>
     <string name="security_settings_fingerprint_enroll_disclaimer" msgid="5831834311961551423">"ਤੁਹਾਡੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ ਤੋਂ ਇਲਾਵਾ, ਤੁਸੀਂ ਖਰੀਦਾਰੀਆਂ ਅਤੇ ਐਪ ਪਹੁੰਚ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ। "<annotation id="url">"ਹੋਰ ਜਾਣੋ"</annotation></string>
     <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7954742554236652690">" ਸਕ੍ਰੀਨ ਲਾਕ ਵਿਕਲਪ ਨੂੰ ਅਯੋਗ ਬਣਾਇਆ ਗਿਆ ਹੈ। ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ, ਆਪਣੀ ਸੰਸਥਾ ਦੇ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸੰਪਰਕ ਕਰੋ। "<annotation id="admin_details">"ਹੋਰ ਵੇਰਵੇ"</annotation>\n\n"ਤੁਸੀਂ ਖਰੀਦਾਂ ਨੂੰ ਅਧਿਕਾਰਿਤ ਕਰਨ ਅਤੇ ਐਪ \'ਤੇ ਪਹੁੰਚ ਕਰਨ ਲਈ ਹਾਲੇ ਵੀ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ। "<annotation id="url">"ਹੋਰ ਜਾਣੋ"</annotation></string>
-    <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"ਉਂਗਲ ਚੁੱਕੋ, ਫਿਰ ਦੁਬਾਰਾ ਸੈਂਸਰ ਨੂੰ ਸਪੱਰਸ਼ ਕਰੋ"</string>
+    <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"ਉਂਗਲ ਚੁੱਕੋ, ਫਿਰ ਦੁਬਾਰਾ ਸੈਂਸਰ ਨੂੰ ਸਪਰਸ਼ ਕਰੋ"</string>
     <string name="fingerprint_add_max" msgid="2939393314646115661">"ਤੁਸੀਂ <xliff:g id="COUNT">%d</xliff:g> ਤੱਕ ਫਿੰਗਰਪ੍ਰਿੰਟ ਸ਼ਾਮਲ ਕਰ ਸਕਦੇ ਹੋ"</string>
     <string name="fingerprint_intro_error_max" msgid="3247720976621039437">"ਤੁਸੀਂ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੀ ਅਧਿਕਤਮ ਸੰਖਿਆ ਨੂੰ ਸ਼ਾਮਲ ਕੀਤਾ ਹੋਇਆ ਹੈ"</string>
     <string name="fingerprint_intro_error_unknown" msgid="3975674268256524015">"ਹੋਰ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਨੂੰ ਸ਼ਾਮਲ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
     <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"ਕੀ ਸਾਰੇ ਫਿੰਗਰਪ੍ਰਿੰਟ ਹਟਾਉਣੇ ਹਨ?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"\'<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\' ਨੂੰ ਹਟਾਓ"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"ਕੀ ਤੁਸੀਂ ਇਸ ਫਿੰਗਰਪ੍ਰਿੰਟ ਨੂੰ ਮਿਟਾਉਣਾ ਚਾਹੁੰਦੇ ਹੋ?"</string>
-    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ, ਖਰੀਦਾਂ ਨੂੰ ਅਧਿਕਾਰਿਤ ਕਰਨ ਜਾਂ ਉਹਨਾਂ ਨਾਲ ਐਪਾਂ \'ਤੇ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕੋਗੇ"</string>
+    <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"ਤੁਸੀਂ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਅਣਲਾਕ ਕਰਨ, ਖਰੀਦਾਂ ਨੂੰ ਅਧਿਕਾਰਿਤ ਕਰਨ ਜਾਂ ਐਪਾਂ \'ਤੇ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕੋਗੇ"</string>
     <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"ਤੁਸੀਂ ਆਪਣੇ ਕਾਰਜ ਪ੍ਰੋਫਾਈਲ ਨੂੰ ਅਣਲਾਕ ਕਰਨ, ਖਰੀਦਾਂ ਨੂੰ ਅਧਿਕਾਰਿਤ ਕਰਨ ਜਾਂ ਕਾਰਜ ਐਪਾਂ \'ਤੇ ਸਾਈਨ-ਇਨ ਕਰਨ ਲਈ ਆਪਣੇ ਫਿੰਗਰਪ੍ਰਿੰਟਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰ ਸਕੋਂਗੇ"</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"ਹਾਂ, ਹਟਾਓ"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"ਇਨਕ੍ਰਿਪਸ਼ਨ"</string>
@@ -730,7 +729,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"ਬਲੂਟੁੱਥ"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"ਬਲੂਟੁੱਥ"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"ਕਨੈਕਸ਼ਨ ਵਿਵਸਥਿਤ ਕਰੋ, ਡੀਵਾਈਸ ਨਾਮ ਅਤੇ ਖੋਜਯੋਗਤਾ ਸੈੱਟ ਕਰੋ"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"ਕੀ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਦੇ ਨਾਲ ਜੋੜੀ ਬਣਾਉਣੀ ਹੈ?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"ਕੀ <xliff:g id="DEVICE_NAME">%1$s</xliff:g> ਦੇ ਨਾਲ ਜੋੜਾਬੱਧ ਕਰਨਾ ਹੈ?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"ਬਲੂਟੁੱਥ ਜੋੜਾਬੱਧਕਰਨ ਕੋਡ"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"ਜੋੜਾਬੱਧ ਕਰਨ ਦਾ ਕੋਡ ਟਾਈਪ ਕਰੋ ਫਿਰ ਵਾਪਸ ਜਾਓ ਜਾਂ ਦਾਖਲ ਕਰੋ ਨੂੰ ਦਬਾਓ"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"ਪਿੰਨ ਵਿੱਚ ਅੱਖਰ ਜਾਂ ਚਿੰਨ੍ਹ ਹਨ"</string>
@@ -799,7 +798,7 @@
     <string name="bluetooth_dock_settings_remember" msgid="5512957564380371067">"ਸੈਟਿੰਗਾਂ ਯਾਦ ਰੱਖੋ"</string>
     <string name="bluetooth_max_connected_audio_devices_string" msgid="6799012540303500020">"ਵੱਧ ਤੋਂ ਵੱਧ ਕਨੈਕਟ ਕੀਤੇ ਬਲੂਟੁੱਥ ਆਡੀਓ ਡੀਵਾਈਸ"</string>
     <string name="bluetooth_max_connected_audio_devices_dialog_title" msgid="6049527354499590314">"ਵੱਧ ਤੋਂ ਵੱਧ ਕਨੈਕਟ ਕੀਤੇ ਬਲੂਟੁੱਥ ਆਡੀਓ ਡੀਵਾਈਸ ਚੁਣੋ"</string>
-    <string name="wifi_display_settings_title" msgid="8718182672694575456">"ਕਾਸਟ"</string>
+    <string name="wifi_display_settings_title" msgid="8718182672694575456">"ਕਾਸਟ ਕਰੋ"</string>
     <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"ਵਾਇਰਲੈਸ ਡਿਸਪਲੇ ਚਾਲੂ ਕਰੋ"</string>
     <string name="wifi_display_no_devices_found" msgid="186501729518830451">"ਨੇੜੇ ਕੋਈ ਡੀਵਾਈਸ ਨਹੀਂ ਮਿਲਿਆ।"</string>
     <string name="wifi_display_status_connecting" msgid="3799827425457383349">"ਕਨੈਕਟ ਕਰ ਰਿਹਾ ਹੈ"</string>
@@ -849,7 +848,7 @@
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"ਏਅਰਪਲੇਨ ਮੋਡ ਵਿੱਚ"</string>
     <string name="wifi_notify_open_networks" msgid="4782239203624619655">"ਖੁੱਲ੍ਹੇ ਨੈੱਟਵਰਕ ਦੀ ਸੂਚਨਾ"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"ਉੱਚ ਗੁਣਵੱਤਾ ਵਾਲਾ ਕੋਈ ਜਨਤਕ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਹੋਣ \'ਤੇ ਸੂਚਿਤ ਕਰੋ"</string>
-    <string name="wifi_wakeup" msgid="4963732992164721548">"ਆਪਣੇ ਆਪ ਵਾਈ‑ਫਾਈ ਚਾਲੂ ਕਰੋ"</string>
+    <string name="wifi_wakeup" msgid="4963732992164721548">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਵਾਈ‑ਫਾਈ ਚਾਲੂ ਕਰੋ"</string>
     <string name="wifi_wakeup_summary" msgid="1152699417411690">"ਤੁਹਾਡੇ ਘਰੇਲੂ ਨੈੱਟਵਰਕ ਵਰਗੇ ਵਧੀਆ ਕੁਆਲਿਟੀ ਵਾਲੇ ਰੱਖਿਅਤ ਕੀਤੇ ਨੈੱਟਵਰਕਾਂ ਦੇ ਨੇੜੇ ਹੋਣ \'ਤੇ ਵਾਈ-ਫਾਈ ਦੁਬਾਰਾ ਚਾਲੂ ਹੋ ਜਾਵੇਗਾ"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="3007457288587966962">"ਅਣਉਪਲਬਧ ਕਿਉਂਕਿ ਟਿਕਾਣਾ ਬੰਦ ਹੈ। "<annotation id="link">"ਟਿਕਾਣਾ"</annotation>" ਚਾਲੂ ਕਰੋ।"</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="6820040651529910914">"ਅਣਉਪਲਬਧ, ਕਿਉਂਕਿ ਵਾਈ‑ਫਾਈ ਸਕੈਨਿੰਗ ਬੰਦ ਹੈ"</string>
@@ -858,7 +857,7 @@
     <string name="wifi_poor_network_detection_summary" msgid="5539951465985614590">"ਜਦ ਤੱਕ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਚੰਗਾ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਨਾ ਹੋਵੇ ਤਦ ਤੱਕ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕ ਨਾ ਵਰਤੋ"</string>
     <string name="wifi_avoid_poor_network_detection_summary" msgid="1976503191780928104">"ਸਿਰਫ਼ ਉਹ ਨੈੱਟਵਰਕ ਵਰਤੋ ਜਿਨ੍ਹਾਂ ਕੋਲ ਇੱਕ ਚੰਗਾ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਹੈ"</string>
     <string name="use_open_wifi_automatically_title" msgid="3084513215481454350">"ਖੁੱਲ੍ਹੇ ਨੈੱਟਵਰਕਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"ਆਪਣੇ ਆਪ ਵਧੀਆ ਕੁਆਲਿਟੀ ਵਾਲੇ ਜਨਤਕ ਨੈੱਟਵਰਕਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
+    <string name="use_open_wifi_automatically_summary" msgid="8338020172673161754">"ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਵਧੀਆ ਕੁਆਲਿਟੀ ਵਾਲੇ ਜਨਤਕ ਨੈੱਟਵਰਕਾਂ ਨਾਲ ਕਨੈਕਟ ਕਰੋ"</string>
     <string name="use_open_wifi_automatically_summary_scoring_disabled" msgid="1559329344492373028">"ਵਰਤਣ ਲਈ, ਕੋਈ ਨੈੱਟਵਰਕ ਰੇਟਿੰਗ ਪ੍ਰਦਾਨਕ ਚੁਣੋ"</string>
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"ਵਰਤਣ ਲਈ, ਕੋਈ ਅਨੁਰੂਪ ਨੈੱਟਵਰਕ ਰੇਟਿੰਗ ਪ੍ਰਦਾਨਕ ਚੁਣੋ"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"ਪ੍ਰਮਾਣ-ਪੱਤਰ ਸਥਾਪਤ ਕਰੋ"</string>
@@ -878,7 +877,7 @@
     <string name="wifi_add_network" msgid="4094957940791876640">"ਨੈੱਟਵਰਕ ਸ਼ਾਮਲ ਕਰੋ"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"ਵਾਈ‑ਫਾਈ ਤਰਜੀਹਾਂ"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"ਵਾਈ‑ਫਾਈ ਆਪਣੇ ਆਪ ਦੁਬਾਰਾ ਚਾਲੂ ਹੁੰਦਾ ਹੈ"</string>
-    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"ਵਾਈ‑ਫਾਈ ਆਪਣੇ ਆਪ ਦੁਬਾਰਾ ਚਾਲੂ ਨਹੀਂ ਹੁੰਦਾ ਹੈ"</string>
+    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"ਵਾਈ‑ਫਾਈ ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਦੁਬਾਰਾ ਚਾਲੂ ਨਹੀਂ ਹੁੰਦਾ ਹੈ"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"ਵਾਈ‑ਫਾਈ ਨੈੱਟਵਰਕ"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"ਹੋਰ ਚੋਣਾਂ"</string>
     <string name="wifi_menu_p2p" msgid="4945665601551289791">"ਵਾਈ‑ਫਾਈ ਡਾਇਰੈਕਟ"</string>
@@ -899,19 +898,19 @@
     <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"ਵਾਈ-ਫਾਈ ਸਕੈਨਿੰਗ ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਨੂੰ ਕਿਸੇ ਵੇਲੇ ਵੀ ਵਾਈ-ਫਾਈ ਨੈੱਟਵਰਕਾਂ ਲਈ ਸਕੈਨ ਕਰਨ ਦਿੰਦੀ ਹੈ, ਭਾਵੇਂ ਵਾਈ-ਫਾਈ ਬੰਦ ਹੋਵੇ। ਜਿਵੇਂ ਕਿ, ਇਸਦੀ ਵਰਤੋਂ ਕਰਕੇ ਟਿਕਾਣਾ-ਆਧਾਰਿਤ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਬਿਹਤਰ ਬਣਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="4327570180594277049">"ਚਾਲੂ ਕਰੋ"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="3336102100425307040">"ਵਾਈ-ਫਾਈ ਸਕੈਨਿੰਗ ਚਾਲੂ ਕੀਤੀ ਗਈ ਹੈ"</string>
-    <string name="wifi_show_advanced" msgid="8199779277168030597">"ਵਿਕਸਿਤ ਵਿਕਲਪ"</string>
+    <string name="wifi_show_advanced" msgid="8199779277168030597">"ਉਨੱਤ ਵਿਕਲਪ"</string>
     <string name="wifi_advanced_toggle_description_expanded" msgid="1506697245302596510">"ਡ੍ਰੌਪ-ਡਾਊਨ ਸੂਚੀ ਉੱਨਤ ਵਿਕਲਪ। ਸੰਖਿਪਤ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ।"</string>
     <string name="wifi_advanced_toggle_description_collapsed" msgid="3014965593695454879">"ਡ੍ਰੌਪ-ਡਾਊਨ ਸੂਚੀ ਉੱਨਤ ਵਿਕਲਪ। ਵਿਸਤਾਰ ਕਰਨ ਲਈ ਡਬਲ ਟੈਪ ਕਰੋ।"</string>
     <string name="wifi_ssid" msgid="6746270925975522641">"ਨੈੱਟਵਰਕ ਦਾ ਨਾਮ"</string>
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"SSID ਦਾਖਲ ਕਰੋ"</string>
     <string name="wifi_security" msgid="9136702039496152831">"ਸੁਰੱਖਿਆ"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"ਲੁਕਿਆ ਨੈੱਟਵਰਕ"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"ਜੇਕਰ ਤੁਹਾਡਾ ਰੂਟਰ ਕਿਸੇ ਨੈੱਟਵਰਕ ਆਈ.ਡੀ. ਦਾ ਪ੍ਰਸਾਰਣ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ, ਪਰ ਤੁਸੀਂ ਭਵਿੱਖ ਵਿੱਚ ਇਸ ਨਾਲ ਕਨੈਕਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਲੁਕੇ ਹੋਏ ਵਜੋਂ ਨੈੱਟਵਰਕ ਨੂੰ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।\n\nਇਹ ਇੱਕ ਸੁਰੱਖਿਆ ਖਤਰਾ ਬਣਾ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਤੁਹਾਡਾ ਫ਼ੋਨ ਲਗਾਤਾਰ ਨੈੱਟਵਰਕ ਲੱਭਣ ਲਈ ਉਸਦੇ ਸਿਗਨਲ ਨੂੰ ਪ੍ਰਸਾਰਿਤ ਕਰੇਗਾ।\n\nਨੈੱਟਵਰਕ ਨੂੰ ਲੁਕੇ ਵਜੋਂ ਸੈੱਟ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀਆਂ ਰੂਟਰ ਸੈਟਿੰਗਾਂ ਨਹੀਂ ਬਦਲਣਗੀਆਂ।"</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"ਜੇਕਰ ਤੁਹਾਡਾ ਰਾਊਟਰ ਕਿਸੇ ਨੈੱਟਵਰਕ ਆਈਡੀ ਦਾ ਪ੍ਰਸਾਰਣ ਨਹੀਂ ਕਰ ਰਿਹਾ ਹੈ, ਪਰ ਤੁਸੀਂ ਭਵਿੱਖ ਵਿੱਚ ਇਸ ਨਾਲ ਕਨੈਕਟ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਉਸ ਨੈੱਟਵਰਕ ਨੂੰ ਲੁਕੇ ਹੋਏ ਵਜੋਂ ਸੈੱਟ ਕਰ ਸਕਦੇ ਹੋ।\n\nਇਹ ਇੱਕ ਸੁਰੱਖਿਆ ਖਤਰਾ ਬਣਾ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਤੁਹਾਡਾ ਫ਼ੋਨ ਲਗਾਤਾਰ ਨੈੱਟਵਰਕ ਲੱਭਣ ਲਈ ਸਿਗਨਲ ਨੂੰ ਪ੍ਰਸਾਰਿਤ ਕਰੇਗਾ।\n\nਨੈੱਟਵਰਕ ਨੂੰ ਲੁਕੇ ਵਜੋਂ ਸੈੱਟ ਕਰਨ ਨਾਲ ਤੁਹਾਡੀਆਂ ਰਾਊਟਰ ਸੈਟਿੰਗਾਂ ਨਹੀਂ ਬਦਲਣਗੀਆਂ।"</string>
     <string name="wifi_signal" msgid="696548364467704808">"ਸਿਗਨਲ ਦੀ ਤੀਬਰਤਾ"</string>
     <string name="wifi_status" msgid="3439931558930689940">"ਅਵਸਥਾ"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"ਭੇਜਣ ਸੰਬੰਧੀ ਲਿੰਕ ਦੀ ਗਤੀ"</string>
     <string name="rx_wifi_speed" msgid="7392873246110937187">"ਪ੍ਰਾਪਤ ਹੋਣ ਸੰਬੰਧੀ ਲਿੰਕ ਦੀ ਗਤੀ"</string>
-    <string name="wifi_frequency" msgid="6132852924995724246">"ਬਾਰੰਬਾਰਤਾ"</string>
+    <string name="wifi_frequency" msgid="6132852924995724246">"ਵਾਰਵਾਰਤਾ"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP ਪਤਾ"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"ਇਸ ਰਾਹੀਂ ਸੁਰੱਖਿਅਤ ਕੀਤਾ ਗਿਆ"</string>
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g> ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ"</string>
@@ -946,7 +945,7 @@
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR ਕੋਡ ਪੜ੍ਹਿਆ ਨਹੀਂ ਜਾ ਸਕਿਆ। ਕੋਡ ਮੁੜ-ਕੇਂਦਰਿਤ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ। ਜੇ ਸਮੱਸਿਆ ਜਾਰੀ ਰਹਿੰਦੀ ਹੈ, ਤਾਂ ਡੀਵਾਈਸ ਉਤਪਾਦਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"ਕੋਈ ਗੜਬੜ ਹੋਈ"</string>
-    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"ਪੱਕਾ ਕਰੋ ਕਿ ਡੀਵਾਈਸ ਦਾ ਪਲੱਗ ਲੱਗਾ ਹੋਇਆ ਹੈ, ਚਾਰਜ ਕੀਤਾ ਹੋਇਆ ਅਤੇ ਚਾਲੂ ਹੈ"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"ਪੱਕਾ ਕਰੋ ਕਿ ਡੀਵਾਈਸ ਪਲੱਗ-ਇਨ ਕੀਤਾ ਹੋਇਆ ਹੈ, ਚਾਰਜ ਹੋ ਚੁੱਕਿਆ ਹੈ ਅਤੇ ਚਾਲੂ ਹੈ"</string>
     <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"ਪੱਕਾ ਕਰੋ ਕਿ ਡੀਵਾਈਸ ਦਾ ਪਲੱਗ ਲੱਗਾ ਹੋਇਆ ਹੈ, ਚਾਰਜ ਕੀਤਾ ਹੋਇਆ ਅਤੇ ਚਾਲੂ ਹੈ। ਜੇ ਸਮੱਸਿਆ ਜਾਰੀ ਰਹਿੰਦੀ ਹੈ, ਤਾਂ ਡੀਵਾਈਸ ਉਤਪਾਦਕ ਨੂੰ ਸੰਪਰਕ ਕਰੋ"</string>
     <string name="wifi_dpp_failure_not_supported" msgid="111779621766171626">"ਇਸ ਡੀਵਾਈਸ ਰਾਹੀਂ “<xliff:g id="SSID">%1$s</xliff:g>” ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਦੀ ਸਹੂਲਤ ਨਹੀਂ ਹੈ"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"ਕਨੈਕਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਕੇ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰੋ"</string>
@@ -1046,7 +1045,7 @@
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"ਇਹ ਕਨੈਕਸ਼ਨ ਯਾਦ ਰੱਖੋ"</string>
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"ਡੀਵਾਈਸਾਂ ਖੋਜੋ"</string>
     <string name="wifi_p2p_menu_searching" msgid="7443249001543208106">"ਖੋਜ ਰਿਹਾ ਹੈ..."</string>
-    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"ਡੀਵਾਈਸ ਨੂੰ ਮੁੜ-ਨਾਮ ਦਿਓ"</string>
+    <string name="wifi_p2p_menu_rename" msgid="2129974878377065488">"ਡੀਵਾਈਸ ਦਾ ਨਾਮ ਬਦਲੋ"</string>
     <string name="wifi_p2p_peer_devices" msgid="8232126067045093382">"ਪੀਅਰ ਡੀਵਾਈਸ"</string>
     <string name="wifi_p2p_remembered_groups" msgid="1356458238836730346">"ਯਾਦ ਰੱਖੇ ਗਏ ਸਮੂਹ"</string>
     <string name="wifi_p2p_failed_connect_message" msgid="6103436959132424093">"ਕਨੈਕਟ ਨਹੀਂ ਕਰ ਸਕਿਆ।"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"ਵਾਈ-ਫਾਈ"</item>
+    <item msgid="2271962426654621656">"ਮੋਬਾਈਲ"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ਵਾਈ-ਫਾਈ ਉਪਲਬਧ ਨਾ ਹੋਣ \'ਤੇ ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਵਰਤੋ"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ਮੋਬਾਈਲ ਨੈੱਟਵਰਕ ਉਪਲਬਧ ਨਾ ਹੋਣ \'ਤੇ ਵਾਈ-ਫਾਈ ਵਰਤੋ"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"ਵਾਈ-ਫਾਈ \'ਤੇ ਕਾਲ ਕਰੋ। ਵਾਈ-ਫਾਈ ਕਨੈਕਸ਼ਨ ਟੁੱਟਣ \'ਤੇ ਕਾਲ ਸਮਾਪਤ ਹੋ ਜਾਵੇਗੀ।"</string>
@@ -1168,7 +1170,7 @@
     <string name="accessibility_personal_account_title" msgid="7251761883688839354">"ਨਿੱਜੀ ਖਾਤਾ - <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="search_settings" msgid="5809250790214921377">"ਖੋਜੋ"</string>
     <string name="display_settings" msgid="1045535829232307190">"ਡਿਸਪਲੇ"</string>
-    <string name="accelerometer_title" msgid="2427487734964971453">"ਸਕ੍ਰੀਨ ਆਪਣੇ-ਆਪ ਘੁੰਮਾਓ"</string>
+    <string name="accelerometer_title" msgid="2427487734964971453">"ਸਕ੍ਰੀਨ ਸਵੈ-ਘੁਮਾਓ"</string>
     <string name="color_mode_title" msgid="8164858320869449142">"ਰੰਗ"</string>
     <string name="color_mode_option_natural" msgid="1292837781836645320">"ਕੁਦਰਤੀ"</string>
     <string name="color_mode_option_boosted" msgid="453557938434778933">"ਵਧਾਇਆ ਗਿਆ"</string>
@@ -1252,7 +1254,7 @@
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"ਬੰਦ"</string>
     <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"ਇਹ ਕੰਟਰੋਲ ਕਰਨ ਲਈ ਕਿ ਜਦੋਂ ਫ਼ੋਨ ਡੌਕ ਕੀਤਾ ਅਤੇ/ਜਾਂ ਸਲੀਪ ਮੋਡ ਵਿੱਚ ਹੁੰਦਾ ਹੈ ਉਦੋਂ ਕੀ ਹੁੰਦਾ ਹੈ, ਸਕ੍ਰੀਨ ਸੇਵਰ ਚਾਲੂ ਕਰੋ।"</string>
     <string name="screensaver_settings_when_to_dream" msgid="3763052013516826348">"ਕਦੋਂ ਸ਼ੁਰੂ ਕਰਨਾ ਹੈ"</string>
-    <string name="screensaver_settings_current" msgid="4017556173596361672">"ਵਰਤਮਾਨ ਸਕ੍ਰੀਨ ਸੇਵਰ"</string>
+    <string name="screensaver_settings_current" msgid="4017556173596361672">"ਮੌਜੂਦਾ ਸਕ੍ਰੀਨ ਸੇਵਰ"</string>
     <string name="screensaver_settings_dream_start" msgid="3772227299054662550">"ਹੁਣੇ ਚਾਲੂ ਕਰੋ"</string>
     <string name="screensaver_settings_button" msgid="4662384378821837589">"ਸੈਟਿੰਗਾਂ"</string>
     <string name="automatic_brightness" msgid="8663792987774126192">"ਸਵੈਚਲਿਤ ਚਮਕ"</string>
@@ -1315,7 +1317,7 @@
     <string name="hardware_revision" msgid="3315744162524354246">"ਹਾਰਡਵੇਅਰ ਵਰਜਨ"</string>
     <string name="fcc_equipment_id" msgid="8681995718533066093">"ਉਪਕਰਨ ਆਈ.ਡੀ."</string>
     <string name="baseband_version" msgid="9115560821840757786">"ਬੇਸਬੈਂਡ ਵਰਜਨ"</string>
-    <string name="kernel_version" msgid="8226014277756019297">"Kernel ਵਰਜਨ"</string>
+    <string name="kernel_version" msgid="8226014277756019297">"ਕਰਨਲ ਵਰਜਨ"</string>
     <string name="build_number" msgid="8648447688306248633">"ਬਿਲਡ ਨੰਬਰ"</string>
     <string name="module_version" msgid="1127871672527968730">"ਮੁੱਖ ਮਾਡਿਊਲ ਵਰਜਨ"</string>
     <string name="device_info_not_available" msgid="3762481874992799474">"ਉਪਲਬਧ ਨਹੀਂ ਹੈ"</string>
@@ -1358,7 +1360,7 @@
     <string name="status_wifi_mac_address" msgid="3868452167971295995">"ਵਾਈ‑ਫਾਈ MAC ਪਤਾ"</string>
     <string name="status_bt_address" msgid="460568179311735657">"ਬਲੂਟੁੱਥ ਪਤਾ"</string>
     <string name="status_serial_number" msgid="8257722124627415159">"ਸੀਰੀਅਲ ਨੰਬਰ"</string>
-    <string name="status_up_time" msgid="77128395333934087">"ਅੱਪ ਟਾਈਮ"</string>
+    <string name="status_up_time" msgid="77128395333934087">"ਚਾਲੂ ਰਹਿਣ ਦਾ ਸਮਾਂ"</string>
     <string name="status_awake_time" msgid="1251959094010776954">"ਸਕਿਰਿਆ ਸਮਾਂ"</string>
     <string name="internal_memory" msgid="8632841998435408869">"ਅੰਦਰੂਨੀ ਸਟੋਰੇਜ"</string>
     <string name="sd_memory" product="nosdcard" msgid="1377713983817298275">"USB ਸਟੋਰੇਜ"</string>
@@ -1524,7 +1526,7 @@
     <string name="storage_wizard_ready_v2_internal_moved_body" msgid="4133133596316768033">"ਤੁਹਾਡੀ ਸਮੱਗਰੀ <xliff:g id="NAME_0">^1</xliff:g> ਵਿੱਚ ਲਿਜਾਈ ਗਈ। \n\nਇਸ <xliff:g id="NAME_1">^2</xliff:g> ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ, "<b>"ਸੈਟਿੰਗਾਂ &gt; ਸਟੋਰੇਜ"</b>" \'ਤੇ ਜਾਓ।"</string>
     <string name="battery_status_title" msgid="8731200319740671905">"ਬੈਟਰੀ ਸਥਿਤੀ"</string>
     <string name="battery_level_title" msgid="5207775387973771646">"ਬੈਟਰੀ ਪੱਧਰ"</string>
-    <string name="apn_settings" msgid="8130776653826271664">"APNs"</string>
+    <string name="apn_settings" msgid="8130776653826271664">"APN"</string>
     <string name="apn_edit" msgid="4350571070853305357">"ਪਹੁੰਚ ਬਿੰਦੂ ਦਾ ਸੰਪਾਦਨ ਕਰੋ"</string>
     <string name="apn_not_set" msgid="5344235604466825691">"ਸੈੱਟ ਨਹੀਂ ਕੀਤਾ"</string>
     <string name="apn_name" msgid="8431432886706852226">"ਨਾਮ"</string>
@@ -1539,20 +1541,20 @@
     <string name="apn_mms_port" msgid="6606572282014819299">"MMS ਪੋਰਟ"</string>
     <string name="apn_mcc" msgid="9138301167194779180">"MCC"</string>
     <string name="apn_mnc" msgid="1276161191283274976">"MNC"</string>
-    <string name="apn_auth_type" msgid="4286147728662523362">"ਪ੍ਰਮਾਣੀਕਰਨ ਪ੍ਰਕਾਰ"</string>
+    <string name="apn_auth_type" msgid="4286147728662523362">"ਪ੍ਰਮਾਣੀਕਰਨ ਦੀ ਕਿਸਮ"</string>
     <string name="apn_auth_type_none" msgid="3679273936413404046">"ਕੋਈ ਨਹੀਂ"</string>
     <string name="apn_auth_type_pap" msgid="6155876141679480864">"PAP"</string>
     <string name="apn_auth_type_chap" msgid="5484031368454788686">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="2977833804460109203">"PAP ਜਾਂ CHAP"</string>
-    <string name="apn_type" msgid="6725346490902871146">"APN ਪ੍ਰਕਾਰ"</string>
+    <string name="apn_type" msgid="6725346490902871146">"APN ਦੀ ਕਿਸਮ"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"APN ਪ੍ਰੋਟੋਕੋਲ"</string>
     <string name="apn_roaming_protocol" msgid="6913336248771263497">"APN ਰੋਮਿੰਗ ਪ੍ਰੋਟੋਕੋਲ"</string>
     <string name="carrier_enabled" msgid="1819916725305365581">"APN ਚਾਲੂ/ਬੰਦ"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN ਸਮਰਥਿਤ"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN ਅਸਮਰਥਿਤ"</string>
-    <string name="bearer" msgid="4378444317087536401">"ਬੀਅਰਰ"</string>
-    <string name="mvno_type" msgid="3150755279048149624">"MVNO ਪ੍ਰਕਾਰ"</string>
-    <string name="mvno_match_data" msgid="629287305803195245">"MVNO ਵੈਲਯੂ"</string>
+    <string name="bearer" msgid="4378444317087536401">"ਧਾਰਕ"</string>
+    <string name="mvno_type" msgid="3150755279048149624">"MVNO ਦੀ ਕਿਸਮ"</string>
+    <string name="mvno_match_data" msgid="629287305803195245">"MVNO ਮੁੱਲ"</string>
     <string name="menu_delete" msgid="8646081395424055735">"APN ਮਿਟਾਓ"</string>
     <string name="menu_new" msgid="7529219814721969024">"ਨਵਾਂ APN"</string>
     <string name="menu_save" msgid="7310230314430623215">"ਰੱਖਿਅਤ ਕਰੋ"</string>
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"ਹਾਲੀਆ ਟਿਕਾਣਾ ਪਹੁੰਚ"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"ਵੇਰਵੇ ਦੇਖੋ"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"ਕਿਸੇ ਐਪਸ ਨੇ ਹਾਲ ਵਿੱਚ ਹੀ ਨਿਰਧਾਰਿਤ ਸਥਾਨ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਹੈ"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"ਕਿਸੇ ਐਪ ਨੇ ਵੀ ਹਾਲ ਵਿੱਚ ਟਿਕਾਣੇ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਹੈ"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"ਟਿਕਾਣੇ ਤੱਕ ਪਹੁੰਚ ਕਰਨ ਵਾਲੀਆਂ ਕੋਈ ਐਪਾਂ ਨਹੀਂ"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"ਉੱਚ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"ਘੱਟ ਬੈਟਰੀ ਵਰਤੋਂ"</string>
@@ -1693,7 +1695,7 @@
     <string name="terms_title" msgid="1804549588198223771">"ਨਿਯਮ ਅਤੇ ਸ਼ਰਤਾਂ"</string>
     <string name="webview_license_title" msgid="8244960025549725051">"ਸਿਸਟਮ WebView ਲਾਇਸੰਸ"</string>
     <string name="wallpaper_attributions" msgid="2941987966332943253">"ਵਾਲਪੇਪਰ"</string>
-    <string name="wallpaper_attributions_values" msgid="4461979853894606323">"ਸੈਟੇਲਾਈਟ ਇਮੇਜਰੀ ਪ੍ਰਦਾਤਾ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
+    <string name="wallpaper_attributions_values" msgid="4461979853894606323">"ਉਪਗ੍ਰਹਿ ਇਮੇਜਰੀ ਪ੍ਰਦਾਤਾ:\n©2014 CNES / Astrium, DigitalGlobe, Bluesky"</string>
     <string name="settings_manual_activity_title" msgid="7599911755054286789">"ਮੈਨੁਅਲ"</string>
     <string name="settings_manual_activity_unavailable" msgid="4872502775018655343">"ਮੈਨੁਅਲ ਲੋਡ ਕਰਨ ਵਿੱਚ ਇੱਕ ਸਮੱਸਿਆ ਹੋਈ ਸੀ।"</string>
     <string name="settings_license_activity_title" msgid="1099045216283677608">"ਤੀਜੀ-ਧਿਰ ਦੇ ਲਾਇਸੰਸ"</string>
@@ -1744,7 +1746,7 @@
     <string name="lockpassword_confirm_your_password_header_frp" msgid="7326670978891793470">"Verify password"</string>
     <string name="lockpassword_invalid_pin" msgid="3059022215815900137">"ਗਲਤ ਪਿੰਨ"</string>
     <string name="lockpassword_invalid_password" msgid="8374331995318204099">"ਗਲਤ ਪਾਸਵਰਡ"</string>
-    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"ਗ਼ਲਤ ਪੈਟਰਨ"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"ਗਲਤ ਪੈਟਰਨ"</string>
     <string name="lock_settings_title" msgid="233657584969886812">"ਡੀਵਾਈਸ ਸੁਰੱਖਿਆ"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="333149762562581510">"ਅਣਲਾਕ ਪੈਟਰਨ ਬਦਲੋ"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"ਅਣਲਾਕ ਪਿੰਨ ਬਦਲੋ"</string>
@@ -1757,7 +1759,7 @@
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"ਤੁਹਾਡਾ ਨਵਾਂ ਅਣਲਾਕ ਪੈਟਰਨ"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"ਪੁਸ਼ਟੀ ਕਰੋ"</string>
     <string name="lockpattern_restart_button_text" msgid="4322968353922529868">"ਰੀਡ੍ਰਾ ਕਰੋ"</string>
-    <string name="lockpattern_retry_button_text" msgid="5473976578241534298">"ਹਟਾਓ"</string>
+    <string name="lockpattern_retry_button_text" msgid="5473976578241534298">"ਕਲੀਅਰ ਕਰੋ"</string>
     <string name="lockpattern_continue_button_text" msgid="3328913552656376892">"ਜਾਰੀ ਰੱਖੋ"</string>
     <string name="lockpattern_settings_title" msgid="5152005866870766842">"ਪੈਟਰਨ ਅਣਲਾਕ ਕਰੋ"</string>
     <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"ਲੁੜੀਂਦਾ ਪੈਟਰਨ"</string>
@@ -1803,7 +1805,7 @@
     <string name="screen_compatibility_label" msgid="3638271673726075815">"ਸਕ੍ਰੀਨ ਅਨੁਰੂਪਤਾ"</string>
     <string name="permissions_label" msgid="7341733648403464213">"ਇਜਾਜ਼ਤਾਂ"</string>
     <string name="cache_header_label" msgid="3202284481380361966">"ਕੈਸ਼ੇ"</string>
-    <string name="clear_cache_btn_text" msgid="107507684844780651">"ਕੈਸ਼ੇ ਹਟਾਓ"</string>
+    <string name="clear_cache_btn_text" msgid="107507684844780651">"ਕੈਸ਼ੇ ਕਲੀਅਰ ਕਰੋ"</string>
     <string name="cache_size_label" msgid="6205173678102220499">"ਕੈਸ਼ੇ"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="8938478333743197020">
       <item quantity="one">%d ਆਈਟਮਾਂ</item>
@@ -1827,7 +1829,7 @@
     <string name="app_factory_reset" msgid="8718986000278776272">"ਅੱਪਡੇਟਾਂ ਅਣਸਥਾਪਤ ਕਰੋ"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਕੁਝ ਕਾਰਵਾਈਆਂ ਲਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਤੌਰ \'ਤੇ ਲਾਂਚ ਕਰਨ ਦੀ ਚੋਣ ਕੀਤੀ ਹੈ।"</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"ਤੁਸੀਂ ਇਸ ਐਪ ਨੂੰ ਵਿਜੇਟ ਬਣਾਉਣ ਲਈ ਅਤੇ ਉਹਨਾਂ ਦੇ ਡਾਟਾ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦੇਣ ਦੀ ਚੋਣ ਕੀਤੀ ਹੈ।"</string>
-    <string name="auto_launch_disable_text" msgid="8560921288036801416">"ਕੋਈ ਡਿਫੌਲਟਸ ਸੈਟ ਨਹੀਂ ਕੀਤੇ"</string>
+    <string name="auto_launch_disable_text" msgid="8560921288036801416">"ਕੋਈ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਸੈੱਟ ਨਹੀਂ ਕੀਤੇ"</string>
     <string name="clear_activities" msgid="2068014972549235347">"ਡਿਫੌਲਟਸ ਹਟਾਓ"</string>
     <string name="screen_compatibility_text" msgid="1768064020294301496">"ਇਹ ਐਪ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਲਈ ਡਿਜਾਈਨ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ। ਤੁਸੀਂ ਇਸਤੇ ਨਿਯੰਤਰਣ ਪਾ ਸਕਦੇ ਹੋ ਕਿ ਇਹ ਇੱਥੇ ਤੁਹਾਡੀ ਸਕ੍ਰੀਨ ਕਿਵੇਂ ਵਿਵਸਥਿਤ ਕਰੇ।"</string>
     <string name="ask_compatibility" msgid="6687958195768084807">"ਜਦੋਂ ਲੌਂਚ ਕੀਤਾ ਹੋਵੇ ਤਾਂ ਪੁੱਛੋ"</string>
@@ -1836,7 +1838,7 @@
     <string name="sort_order_alpha" msgid="6689698854460261212">"ਨਾਮ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ"</string>
     <string name="sort_order_size" msgid="3167376197248713027">"ਆਕਾਰ ਮੁਤਾਬਕ ਕ੍ਰਮ-ਬੱਧ ਕਰੋ"</string>
     <string name="sort_order_recent_notification" msgid="5592496977404445941">"ਸਭ ਤੋਂ ਹਾਲੀਆ"</string>
-    <string name="sort_order_frequent_notification" msgid="5640245013098010347">"ਅਕਸਰ"</string>
+    <string name="sort_order_frequent_notification" msgid="5640245013098010347">"ਅਕਸਰ ਵਰਤੀਆਂ ਜਾਣ ਵਾਲੀਆਂ"</string>
     <string name="show_running_services" msgid="1895994322704667543">"ਚੱਲ ਰਹੀਆਂ ਸੇਵਾਵਾਂ ਦਿਖਾਓ"</string>
     <string name="show_background_processes" msgid="88012264528093617">"ਕੈਸ਼ ਕੀਤੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦਿਖਾਓ"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"ਆਪਾਤਕਾਲ ਐਪ"</string>
@@ -2532,7 +2534,7 @@
     <string name="user_credentials" msgid="8365731467650306757">"ਵਰਤੋਂਕਾਰ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ"</string>
     <string name="user_credentials_summary" msgid="7350223899317423252">"ਸਟੋਰ ਕੀਤੇ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਦੇਖੋ ਅਤੇ ਸੋਧੋ"</string>
     <string name="advanced_security_title" msgid="286883005673855845">"ਵਿਕਸਿਤ"</string>
-    <string name="credential_storage_type" msgid="2585337320206095255">"ਸਟੋਰੇਜ ਦਾ ਪ੍ਰਕਾਰ"</string>
+    <string name="credential_storage_type" msgid="2585337320206095255">"ਸਟੋਰੇਜ ਦੀ ਕਿਸਮ"</string>
     <string name="credential_storage_type_hardware" msgid="5054143224259023600">"ਹਾਰਡਵੇਅਰ-ਸਮਰਥਿਤ"</string>
     <string name="credential_storage_type_software" msgid="1335905150062717150">"ਕੇਵਲ ਸਾਫਟਵੇਅਰ"</string>
     <string name="credentials_settings_not_available" msgid="5490259681690183274">"ਇਸ ਵਰਤੋਂਕਾਰ ਲਈ ਕ੍ਰੀਡੈਂਸ਼ੀਅਲ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
@@ -2570,14 +2572,14 @@
     <string name="select_device_admin_msg" msgid="4173769638399075387">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪਾਂ"</string>
     <string name="no_device_admins" msgid="4129231900385977460">"ਕੋਈ ਵੀ ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪਾਂ ਉਪਲਬਧ ਨਹੀਂ ਹਨ"</string>
     <string name="personal_device_admin_title" msgid="759440849188565661">"ਨਿੱਜੀ"</string>
-    <string name="managed_device_admin_title" msgid="8021522755492551726">"ਦਫ਼ਤਰ"</string>
+    <string name="managed_device_admin_title" msgid="8021522755492551726">"ਕਾਰਜ-ਸਥਾਨ"</string>
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"SMS ਅਤੇ ਕਾਲ ਲੌਗ ਤੱਕ ਪਹੁੰਚ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਓ"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"ਸਿਰਫ਼ ਪੂਰਵ-ਨਿਰਧਾਰਤ ਫ਼ੋਨ ਅਤੇ ਸੁਨੇਹੇ ਐਪਾਂ ਨੂੰ SMS ਅਤੇ ਕਾਲ ਲੌਗ ਇਜਾਜ਼ਤਾਂ ਹਨ"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"ਕੋਈ ਉਪਲਬਧ ਭਰੋਸੇਯੋਗ ਏਜੰਟ ਨਹੀਂ"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਨੂੰ ਸਰਗਰਮ ਕਰੀਏ?"</string>
-    <string name="add_device_admin" msgid="1621152410207260584">"ਇਸ ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਨੂੰ ਸਰਗਰਮ ਕਰੋ"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰੀਏ?"</string>
+    <string name="add_device_admin" msgid="1621152410207260584">"ਇਸ ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"ਡੀਵਾਈਸ ਪ੍ਰਸ਼ਾਸਕ"</string>
-    <string name="device_admin_warning" msgid="4421817419326480449">"ਇਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਨੂੰ ਸਰਗਰਮ ਕਰਨ ਨਾਲ <xliff:g id="APP_NAME">%1$s</xliff:g> ਐਪ ਨੂੰ ਅੱਗੇ ਦਿੱਤੀਆਂ ਕਾਰਵਾਈਆਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲਦੀ ਹੈ:"</string>
+    <string name="device_admin_warning" msgid="4421817419326480449">"ਇਸ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਕਰਨ ਨਾਲ <xliff:g id="APP_NAME">%1$s</xliff:g> ਐਪ ਨੂੰ ਅੱਗੇ ਦਿੱਤੀਆਂ ਕਾਰਵਾਈਆਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਮਿਲਦੀ ਹੈ:"</string>
     <string name="device_admin_status" msgid="5424944611789040723">"ਇਹ ਪ੍ਰਸ਼ਾਸਕ ਐਪ ਕਿਰਿਆਸ਼ੀਲ ਹੈ ਅਤੇ <xliff:g id="APP_NAME">%1$s</xliff:g> ਐਪ ਨੂੰ ਅੱਗੇ ਦਿੱਤੀਆਂ ਕਾਰਵਾਈਆਂ ਨੂੰ ਕਰਨ ਲਈ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"ਕੀ ਪ੍ਰੋਫਾਈਲ ਮੈਨੇਜਰ ਨੂੰ ਕਿਰਿਆਸ਼ੀਲ ਬਣਾਉਣਾ ਹੈ?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"ਜਾਰੀ ਰੱਖਣ ਦੁਆਰਾ, ਤੁਹਾਡੇ ਵਰਤੋਂਕਾਰ ਨੂੰ ਤੁਹਾਡੇ ਪ੍ਰਸ਼ਾਸਕ ਦੁਆਰਾ ਪ੍ਰਬੰਧਿਤ ਕੀਤਾ ਜਾਏਗਾ ਜੋ ਕਿ ਤੁਹਾਡੇ ਨਿੱਜੀ ਡਾਟੇ ਤੋਂ ਇਲਾਵਾ, ਸੰਬੰਧਿਤ ਡਾਟੇ ਨੂੰ ਸਟੋਰ ਕਰਨ ਦੇ ਵੀ ਯੋਗ ਹੋ ਸਕਦਾ ਹੈ।\n\n ਤੁਹਾਡਾ ਪ੍ਰਸ਼ਾਸਕ ਇਸ ਵਰਤੋਂਕਾਰ ਨਾਲ ਸੰਬੰਧਿਤ ਸੈਟਿੰਗਾਂ, ਪਹੁੰਚ, ਐਪਾਂ, ਅਤੇ ਡਾਟੇ ਦੀ ਨਿਗਰਾਨੀ ਅਤੇ ਪ੍ਰਬੰਧਨ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਸ ਵਿੱਚ ਨੈੱਟਵਰਕ ਕਿਰਿਆਸ਼ੀਲਤਾ ਅਤੇ ਤੁਹਾਡੇ ਡੀਵਾਈਸ ਦੀ ਟਿਕਾਣਾ ਜਾਣਕਾਰੀ ਵੀ ਸ਼ਾਮਲ ਹੈ।"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"ਹੁਣੇ ਸਮਕਾਲੀਕਰਨ ਲਈ ਟੈਪ ਕਰੋ<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"ਕੈਲੰਡਰ"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"ਸੰਪਰਕ"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google ਸਿੰਕ ਤੇ ਤੁਹਾਡਾ ਸੁਆਗਤ ਹੈ!"</font>" \nਤੁਸੀਂ ਜਿੱਥੇ ਵੀ ਹੋਵੋ, ਉੱਥੋਂ ਤੁਹਾਡੇ ਸੰਪਰਕਾਂ, ਮੁਲਾਕਾਤਾਂ ਆਦਿ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦੇਣ ਲਈ ਡਾਟਾ ਸਿੰਕ ਕਰਨ ਲਈ ਇੱਕ Google ਪਹੁੰਚ।"</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"ਐਪ ਸਿੰਕ ਸੈਟਿੰਗਾਂ"</string>
@@ -2668,8 +2670,8 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"SIM ਕਾਰਡ"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"ਸੀਮਾ ਤੇ ਰੋਕਿਆ"</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">" ਡਾਟਾ  ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"ਨਿੱਜੀ  ਡਾਟਾ  ਆਟੋ-ਸਿੰਕ ਕਰੋ"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"ਕੰਮ  ਡਾਟਾ  ਆਟੋ-ਸਿੰਕ ਕਰੋ"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"ਨਿੱਜੀ ਡਾਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"ਕੰਮ ਦਾ ਡਾਟਾ ਸਵੈ-ਸਮਕਾਲੀਕਿਰਤ ਕਰੋ"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"ਸਾਈਕਲ ਬਦਲੋ..."</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"ਡਾਟਾ ਵਰਤੋਂ ਸਾਈਕਲ ਰੀਸੈੱਟ ਕਰਨ ਲਈ ਮਹੀਨੇ ਦਾ ਦਿਨ:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"ਇਸ ਮਿਆਦ ਦੇ ਦੌਰਾਨ ਕਿਸੇ ਐਪਸ ਨੇ  ਡਾਟਾ  ਨਹੀਂ ਵਰਤਿਆ।"</string>
@@ -2713,7 +2715,7 @@
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"ਡਾਟਾ ਵਰਤੋਂ ਸੀਮਾ ਸੈੱਟ ਕਰੋ"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"ਡਾਟਾ ਵਰਤੋਂ ਸੀਮਤ ਕਰਨਾ"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"ਤੁਹਾਡਾ ਟੈਬਲੈੱਟ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸੈੱਟ ਕੀਤੀ ਮੋਬਾਈਲ ਡਾਟੇ ਦੀ ਸੀਮਾ ਉੱਤੇ ਪਹੁੰਚਣ \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਬੰਦ ਕਰ ਦੇਵੇਗਾ।\n\nਕਿਉਂਕਿ ਡਾਟਾ ਵਰਤੋਂ ਤੁਹਾਡੇ ਟੈਬਲੈੱਟ ਵੱਲੋਂ ਮਾਪੀ ਜਾਂਦੀ ਹੈ ਅਤੇ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਵਰਤੋਂ ਦਾ ਹਿਸਾਬ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਲਗਾਵੇ, ਇਸ ਕਰਕੇ ਕੋਈ ਕੰਜੂਸੀਕਾਰੀ ਸੀਮਾ ਸੈੱਟ ਕਰਨ ਬਾਰੇ ਵਿਚਾਰ ਕਰੋ।"</string>
-    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸੈੱਟ ਕੀਤੀ ਮੋਬਾਈਲ ਡਾਟੇ ਦੀ ਸੀਮਾ ਉੱਤੇ ਪਹੁੰਚਣ \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਬੰਦ ਕਰ ਦੇਵੇਗਾ।\n\nਕਿਉਂਕਿ ਡਾਟਾ ਵਰਤੋਂ ਤੁਹਾਡੇ ਫ਼ੋਨ ਵੱਲੋਂ ਮਾਪਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਵਰਤੋਂ ਦਾ ਹਿਸਾਬ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਲਗਾਵੇ, ਇਸ ਕਰਕੇ ਕੋਈ ਕੰਜੂਸੀਕਾਰੀ ਸੀਮਾ ਸੈੱਟ ਕਰਨ ਬਾਰੇ ਵਿਚਾਰ ਕਰੋ।"</string>
+    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"ਤੁਹਾਡਾ ਫ਼ੋਨ ਤੁਹਾਡੇ ਵੱਲੋਂ ਸੈੱਟ ਕੀਤੀ ਮੋਬਾਈਲ ਡਾਟੇ ਦੀ ਸੀਮਾ ਉੱਤੇ ਪਹੁੰਚਣ \'ਤੇ ਮੋਬਾਈਲ ਡਾਟਾ ਬੰਦ ਕਰ ਦੇਵੇਗਾ।\n\nਕਿਉਂਕਿ ਡਾਟਾ ਵਰਤੋਂ ਨੂੰ ਤੁਹਾਡੇ ਫ਼ੋਨ ਵੱਲੋਂ ਮਾਪਿਆ ਜਾਂਦਾ ਹੈ ਅਤੇ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਤੁਹਾਡਾ ਕੈਰੀਅਰ ਵਰਤੋਂ ਦਾ ਹਿਸਾਬ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਲਗਾਵੇ, ਇਸ ਕਰਕੇ ਕੋਈ ਦਰਮਿਆਨੀ ਸੀਮਾ ਸੈੱਟ ਕਰਨ ਬਾਰੇ ਵਿਚਾਰ ਕਰੋ।"</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"ਕੀ ਪਿਛੋਕੜ  ਡਾਟਾ  ਤੇ ਪ੍ਰਤਿਬੰਧ ਲਾਉਣਾ ਹੈ?"</string>
     <string name="data_usage_restrict_background" msgid="995811034744808575">"ਜੇਕਰ ਤੁਸੀਂ ਬੈਕਗ੍ਰਾਊਂਡ ਮੋਬਾਈਲ ਡਾਟੇ \'ਤੇ ਪਾਬੰਦੀ ਲਗਾਉਂਦੇ ਹੋ, ਤਾਂ ਕੁਝ ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਉਦੋਂ ਤੱਕ ਕੰਮ ਨਹੀਂ ਕਰਨਗੀਆਂ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਵਾਈ‑ਫਾਈ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਹੁੰਦੇ।"</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"ਜੇਕਰ ਤੁਸੀਂ ਬੈਕਗ੍ਰਾਊਂਡ ਮੋਬਾਈਲ ਡਾਟੇ \'ਤੇ ਪ੍ਰਤੀਬੰਧ ਲਗਾਉਂਦੇ ਹੋ, ਤਾਂ ਕੁਝ ਐਪਾਂ ਅਤੇ ਸੇਵਾਵਾਂ ਉਦੋਂ ਤੱਕ ਕੰਮ ਨਹੀਂ ਕਰਨਗੀਆਂ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਵਾਈ‑ਫਾਈ ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਹੁੰਦੇ।\n\nਇਹ ਸੈਟਿੰਗ ਇਸ ਟੈਬਲੈੱਟ \'ਤੇ ਸਾਰੇ ਵਰਤੋਂਕਾਰਾਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕਰਦੀ ਹੈ।"</string>
@@ -2738,7 +2740,7 @@
     <string name="cryptkeeper_emergency_call" msgid="4625420047524693116">"ਸੰਕਟਕਾਲੀਨ ਕਾਲ"</string>
     <string name="cryptkeeper_return_to_call" msgid="4433942821196822815">"ਕਾਲ \'ਤੇ ਵਾਪਸ ਜਾਓ"</string>
     <string name="vpn_name" msgid="3538818658670774080">"ਨਾਮ"</string>
-    <string name="vpn_type" msgid="6389116710008658550">"ਪ੍ਰਕਾਰ"</string>
+    <string name="vpn_type" msgid="6389116710008658550">"ਕਿਸਮ"</string>
     <string name="vpn_server" msgid="5216559017318406820">"ਸਰਵਰ ਦਾ ਪਤਾ"</string>
     <string name="vpn_mppe" msgid="4027660356538086985">"PPP ਇਨਕ੍ਰਿਪਸ਼ਨ (MPPE)"</string>
     <string name="vpn_l2tp_secret" msgid="8500633072482638606">"L2TP ਗੁਪਤ"</string>
@@ -2750,7 +2752,7 @@
     <string name="vpn_show_options" msgid="7672984921872882859">"ਵਿਕਸਿਤ ਵਿਕਲਪ ਦਿਖਾਓ"</string>
     <string name="vpn_search_domains" msgid="8469394307693909080">"DNS ਖੋਜ ਡੋਮੇਨ"</string>
     <string name="vpn_dns_servers" msgid="3017453300909321239">"DNS ਸਰਵਰ (ਉਦਾਹਰਨ ਵਜੋਂ 8.8.8.8)"</string>
-    <string name="vpn_routes" msgid="3393989650778663742">"ਫਾਰਵਰਡਿੰਗ ਰੂਟਸ (ਉਦਾਹਰਨ ਵਜੋਂ 10.0.0.0/8)"</string>
+    <string name="vpn_routes" msgid="3393989650778663742">"ਫਾਰਵਰਡਿੰਗ ਰੂਟ (ਉਦਾਹਰਨ ਵਜੋਂ 10.0.0.0/8)"</string>
     <string name="vpn_username" msgid="5357878823189445042">"ਵਰਤੋਂਕਾਰ ਨਾਮ"</string>
     <string name="vpn_password" msgid="5325943601523662246">"ਪਾਸਵਰਡ"</string>
     <string name="vpn_save_login" msgid="6215503139606646915">"ਖਾਤਾ ਜਾਣਕਾਰੀ ਰੱਖਿਅਤ ਕਰੋ"</string>
@@ -2773,7 +2775,7 @@
     <string name="vpn_disconnect_confirm" msgid="3505111947735651082">"ਇਹ VPN ਡਿਸਕਨੈਕਟ ਕਰੀਏ?"</string>
     <string name="vpn_disconnect" msgid="4625914562388652486">"ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
     <string name="vpn_version" msgid="2006792987077940456">"ਵਰਜਨ <xliff:g id="VERSION">%s</xliff:g>"</string>
-    <string name="vpn_forget_long" msgid="8457511440635534478">"VPN ਨੂੰ ਛੱਡੋ"</string>
+    <string name="vpn_forget_long" msgid="8457511440635534478">"VPN ਨੂੰ ਭੁੱਲ ਜਾਓ"</string>
     <string name="vpn_replace_vpn_title" msgid="8517436922021598103">"ਕੀ ਮੌਜੂਦਾ VPN ਨੂੰ ਤਬਦੀਲ ਕਰਨਾ ਹੈ?"</string>
     <string name="vpn_set_vpn_title" msgid="6483554732067951052">"ਕੀ ਹਮੇਸ਼ਾ-ਚਾਲੂ VPN ਨੂੰ ਸੈੱਟ ਕਰਨਾ ਹੈ?"</string>
     <string name="vpn_first_always_on_vpn_message" msgid="7050017738816963855">"ਜਦੋਂ ਇਹ ਸੈਟਿੰਗ ਚਾਲੂ ਹੁੰਦੀ ਹੈ, ਤਾਂ ਤੁਹਾਡੇ ਕੋਲ ਇੱਕ ਇੰਟਰਨੈੱਟ ਕਨੈਕਸ਼ਨ ਤਦ ਤੱਕ ਨਹੀਂ ਹੋਵੇਗਾ ਜਦ ਤੱਕ VPN ਸਫ਼ਲਤਾਪੂਰਵਕ ਕਨੈਕਟ ਨਹੀਂ ਹੋ ਜਾਂਦਾ"</string>
@@ -2922,8 +2924,8 @@
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"ਹਮੇਸ਼ਾਂ"</string>
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"ਸਿਵਾਏ ਇਸਦੇ ਜਦੋਂ ਦੂਜਾ ਭੁਗਤਾਨ ਐਪ ਖੁੱਲ੍ਹਾ ਹੋਵੇ"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"ਟੈਪ ਕਰੋ ਅਤੇ ਭੁਗਤਾਨ ਕਰੋ ਟਰਮੀਨਲ ਵਿਖੇ, ਇਸਦੇ ਨਾਲ ਭੁਗਤਾਨ ਕਰੋ:"</string>
-    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"ਟਰਮੀਨਲ ਤੇ ਭੁਗਤਾਨ ਕਰ ਰਿਹਾ ਹੈ"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ਇੱਕ ਭੁਗਤਾਨ ਐਪ ਸੈੱਟ ਅੱਪ ਕਰੋ। ਫਿਰ ਕੰਟੈਕਟਲੈਸ ਚਿੰਨ੍ਹ ਨਾਲ ਕਿਸੇ ਵੀ ਟਰਮੀਨਲ ਤੱਕ ਆਪਣੇ ਫ਼ੋਨ ਦੇ ਪਿੱਛੇ ਕੇਵਲ ਹੋਲਡ ਕਰੋ।"</string>
+    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"ਟਰਮੀਨਲ \'ਤੇ ਭੁਗਤਾਨ ਕਰਨਾ"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ਇੱਕ ਭੁਗਤਾਨ ਐਪ ਸੈੱਟ ਅੱਪ ਕਰੋ। ਫਿਰ ਸੰਪਰਕ-ਰਹਿਤ ਚਿੰਨ੍ਹ ਵਾਲੇ ਕਿਸੇ ਵੀ ਟਰਮੀਨਲ ਵੱਲ ਨੂੰ ਆਪਣੇ ਫ਼ੋਨ ਦਾ ਪਿਛਲਾ ਪਾਸਾ ਸਿਰਫ਼ ਫੜ੍ਹ ਕੇ ਰੱਖੋ।"</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"ਸਮਝ ਲਿਆ"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"ਹੋਰ..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"ਕੀ ਆਪਣੀ ਤਰਜੀਹਾਂ ਦੇ ਤੌਰ ਤੇ ਸੈਟ ਕਰਨਾ ਹੈ?"</string>
@@ -3628,12 +3630,12 @@
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ਵਾਧੂ ਅਨੁਮਤੀਆਂ</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"ਕੋਈ ਅਨੁਮਤੀਆਂ ਨਹੀਂ ਦਿੱਤੀਆਂ"</string>
-    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"ਕਿਸੇ ਅਨੁਮਤੀਆਂ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ"</string>
+    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"ਕਿਸੇ ਇਜਾਜ਼ਤਾਂ ਦੀ ਬੇਨਤੀ ਨਹੀਂ ਕੀਤੀ ਗਈ"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"ਸਾਰੀਆਂ ਐਪਾਂ"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"ਸਥਾਪਤ ਐਪਾਂ"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"ਤਤਕਾਲ ਐਪਾਂ"</string>
     <string name="filter_personal_apps" msgid="3473268022652904457">"ਨਿੱਜੀ"</string>
-    <string name="filter_work_apps" msgid="4202483998339465542">"ਦਫ਼ਤਰ"</string>
+    <string name="filter_work_apps" msgid="4202483998339465542">"ਕਾਰਜ-ਸਥਾਨ"</string>
     <string name="filter_notif_all_apps" msgid="1862666327228804896">"ਐਪਾਂ: ਸਾਰੀਆਂ"</string>
     <string name="filter_notif_blocked_apps" msgid="5694956954776028202">"ਬੰਦ ਕੀਤੀਆਂ ਗਈਆਂ"</string>
     <string name="filter_notif_urgent_channels" msgid="5000735867167027148">"ਸ਼੍ਰੇਣੀਆਂ: ਜ਼ਰੂਰੀ ਮਹੱਤਵ"</string>
@@ -3692,7 +3694,7 @@
     <string name="memory_avg_desc" msgid="1200185697910086968">"ਔਸਤ <xliff:g id="MEMORY">%1$s</xliff:g>"</string>
     <string name="memory_use_running_format" msgid="3741170402563292232">"<xliff:g id="MEMORY">%1$s</xliff:g> / <xliff:g id="RUNNING">%2$s</xliff:g>"</string>
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
-    <string name="high_power_apps" msgid="2518319744362028920">"ਬੈਟਰੀ ਸੁਯੋਗਤਾ"</string>
+    <string name="high_power_apps" msgid="2518319744362028920">"ਬੈਟਰੀ ਸੁਯੋਗਕਰਨ"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"ਵਰਤੋਂ ਬਾਰੇ ਸੁਚੇਤਨਾਵਾਂ"</string>
     <string name="show_all_apps" msgid="5442552004569634846">"ਡੀਵਾਈਸ ਦੀ ਪੂਰੀ ਵਰਤੋਂ ਦਿਖਾਓ"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"ਐਪ ਵਰਤੋਂ ਦਿਖਾਓ"</string>
@@ -3709,7 +3711,7 @@
     <string name="high_power_off" msgid="5906679734326490426">"ਬੈਟਰੀ ਵਰਤੋਂ ਨੂੰ ਸੁਯੋਗ ਕਰਨਾ"</string>
     <string name="high_power_system" msgid="739584574711292753">"ਬੈਟਰੀ ਸੁਯੋਗਤਾ ਉਪਲਬਧ ਨਹੀਂ"</string>
     <string name="high_power_desc" msgid="333756885680362741">"ਬੈਟਰੀ ਅਨੁਕੂਲਤਾ ਨੂੰ ਲਾਗੂ ਨਾ ਕਰੋ। ਤੁਹਾਡੀ ਬਟਰੀ ਨੂੰ ਹੋਰ ਵੀ ਛੇਤੀ ਖ਼ਤਮ ਕਰ ਸਕਦਾ ਹੈ।"</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"ਐਪ ਨੂੰ ਹਮੇਸ਼ਾ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਣ ਦੇਈਏ?"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"ਕੀ ਐਪ ਨੂੰ ਹਮੇਸ਼ਾ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਚੱਲਣ ਦੇਣਾ ਹੈ?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> ਨੂੰ ਬੈਕਗ੍ਰਾਊਂਡ ਵਿੱਚ ਹਮੇਸ਼ਾ ਚਾਲੂ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣ ਨਾਲ ਬੈਟਰੀ ਦਾ ਕਾਰਜ-ਕਾਲ ਘਟ ਸਕਦਾ ਹੈ। \n\nਤੁਸੀਂ ਇਸਨੂੰ ਬਾਅਦ ਵਿੱਚ ਸੈਟਿੰਗਾਂ &gt; ਐਪਾਂ ਅਤੇ ਸੂਚਨਾਵਾਂ ਵਿੱਚੋਂ ਬਦਲ ਸਕਦੇ ਹੋ।"</string>
     <string name="battery_summary" msgid="4345690800899981339">"ਪਿਛਲੀ ਵਾਰ ਪੂਰਾ ਚਾਰਜ ਕਰਨ ਤੋਂ ਬਾਅਦ ਬੈਟਰੀ ਦੀ <xliff:g id="PERCENTAGE">%1$s</xliff:g> ਵਰਤੋਂ ਹੋਈ"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"ਪਾਵਰ ਪ੍ਰਬੰਧਨ"</string>
@@ -3781,7 +3783,7 @@
       <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> ਐਪ ਵੱਲੋਂ ਪਿਛਲੇ <xliff:g id="DURATION_1">%2$s</xliff:g> ਵਿੱਚ ਵਰਤੀ ਗਈ ਮੈਮਰੀ</item>
       <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> ਐਪਾਂ ਵੱਲੋਂ ਪਿਛਲੇ <xliff:g id="DURATION_1">%2$s</xliff:g> ਵਿੱਚ ਵਰਤੀ ਗਈ ਮੈਮਰੀ</item>
     </plurals>
-    <string name="running_frequency" msgid="7545170806968474449">"ਬਾਰੰਬਾਰਤਾ"</string>
+    <string name="running_frequency" msgid="7545170806968474449">"ਵਾਰਵਾਰਤਾ"</string>
     <string name="memory_maximum_usage" msgid="4734981118293469479">"ਅਧਿਕਤਮ ਵਰਤੋਂ"</string>
     <string name="no_data_usage" msgid="903383745620135746">"ਕੋਈ ਡਾਟਾ ਨਹੀਂ ਵਰਤਿਆ"</string>
     <string name="zen_access_warning_dialog_title" msgid="7704910289810337055">"ਕੀ <xliff:g id="APP">%1$s</xliff:g> ਨੂੰ ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ ਤੱਕ ਪਹੁੰਚ ਦੀ ਆਗਿਆ ਦੇਣੀ ਹੈ?"</string>
@@ -4122,14 +4124,14 @@
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਟੈਬਲੈੱਟ \'ਤੇ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਡੀਵਾਈਸ \'ਤੇ ਦੋ ਵਾਰ ਟੈਪ ਕਰੋ"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਡਬਲ ਟੈਪ ਕਰੋ।"</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"ਫ਼ੋਨ ਚੈੱਕ ਕਰਨ ਲਈ ਚੁੱਕੋ"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"ਫ਼ੋਨ ਦੇਖਣ ਲਈ ਚੁੱਕੋ"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਟੈਬਲੈੱਟ ਨੂੰ ਚੁੱਕੋ"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"ਸੂਚਨਾਵਾਂ ਦੇਖਣ ਲਈ ਡੀਵਾਈਸ ਨੂੰ ਚੁੱਕੋ"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"ਡਿਸਪਲੇ ਕਿਰਿਆਸ਼ੀਲ ਕਰੋ"</string>
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਫ਼ੋਨ ਨੂੰ ਚੁੱਕੋ।"</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਟੈਬਲੈੱਟ ਨੂੰ ਚੁੱਕੋ।"</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੇ ਡੀਵਾਈਸ ਨੂੰ ਚੁੱਕੋ।"</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"ਫੋਨ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"ਫ਼ੋਨ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"ਟੈਬਲੈੱਟ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"ਡੀਵਾਈਸ ਦੇਖਣ ਲਈ ਟੈਪ ਕਰੋ"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"ਸਮਾਂ, ਸੂਚਨਾਵਾਂ ਅਤੇ ਹੋਰ ਜਾਣਕਾਰੀ ਦੇਖਣ ਲਈ ਆਪਣੀ ਸਕ੍ਰੀਨ \'ਤੇ ਟੈਪ ਕਰੋ।"</string>
diff --git a/tests/CarDeveloperOptions/res/values-pl/arrays.xml b/tests/CarDeveloperOptions/res/values-pl/arrays.xml
index 1e1dc78..eff7e2a 100644
--- a/tests/CarDeveloperOptions/res/values-pl/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-pl/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Nigdy nie zezwalaj"</item>
     <item msgid="8184570120217958741">"Zawsze zezwalaj"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normalny"</item>
+    <item msgid="5101233285497327432">"Średni"</item>
+    <item msgid="1555861583162930714">"Niska"</item>
+    <item msgid="1719683776264798117">"Krytyczny"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normalny"</item>
+    <item msgid="6107138933849816768">"Umiarkowany"</item>
+    <item msgid="182695359839047859">"Niska"</item>
+    <item msgid="8577246509202964244">"Krytyczny"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Niezmienny"</item>
     <item msgid="167418068739176448">"Najczęstsza aktywność"</item>
@@ -462,13 +472,13 @@
     <item msgid="3118234477029486741">"0"</item>
   </string-array>
   <string-array name="wifi_metered_entries">
-    <item msgid="4329206416008519163">"Wykryj automatycznie"</item>
+    <item msgid="4329206416008519163">"Wykrywaj automatycznie"</item>
     <item msgid="773943026484148895">"Traktuj jako sieć z pomiarem użycia danych"</item>
     <item msgid="1008268820118852416">"Traktuj jako sieć bez pomiaru użycia danych"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="6545683814310036454">"Używaj randomizowanego adresu MAC (domyślnie)"</item>
-    <item msgid="214234417308375326">"Użyj adresu MAC urządzenia"</item>
+    <item msgid="214234417308375326">"Używaj adresu MAC urządzenia"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="7426878022650940844">"Nie"</item>
diff --git a/tests/CarDeveloperOptions/res/values-pl/strings.xml b/tests/CarDeveloperOptions/res/values-pl/strings.xml
index b009c48..4316f82 100644
--- a/tests/CarDeveloperOptions/res/values-pl/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-pl/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Powiększ lub pomniejsz tekst na ekranie."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Pomniejsz"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Powiększ"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Zażółć gęślą jaźń."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Przykładowy tekst"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Czarnoksiężnik z Krainy Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Rozdział 11: Szmaragdowe Miasto"</string>
@@ -368,7 +367,7 @@
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"Brak"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"Np. Android Jurka."</string>
-    <string name="user_info_settings_title" msgid="1125111518759995748">"Użytkownik – informacje"</string>
+    <string name="user_info_settings_title" msgid="1125111518759995748">"Informacje o użytkowniku"</string>
     <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"Pokaż informacje o profilu na ekranie blokady"</string>
     <string name="profile_info_settings_title" msgid="4855892878512562551">"Informacje o profilu"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"Konta"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Komórkowe"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Jeśli sieć Wi-Fi jest niedostępna, użyj sieci komórkowej"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Jeśli sieć komórkowa jest niedostępna, użyj Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Rozmowa przez Wi-Fi. Po utracie połączenia z Wi-Fi zostanie przerwana."</string>
@@ -1293,7 +1295,7 @@
     <string name="screensaver_settings_button" msgid="4662384378821837589">"Ustawienia"</string>
     <string name="automatic_brightness" msgid="8663792987774126192">"Automatyczna"</string>
     <string name="lift_to_wake_title" msgid="5523752279947392868">"Podnieś, by wybudzić"</string>
-    <string name="ambient_display_screen_title" msgid="2632871676917956691">"Ekran zgodny z otoczeniem"</string>
+    <string name="ambient_display_screen_title" msgid="2632871676917956691">"Wygaszacz z powiadomieniami"</string>
     <string name="ambient_display_category_triggers" msgid="3496111745340047504">"Kiedy wyświetlać"</string>
     <string name="doze_title" msgid="235269029233857546">"Nowe powiadomienia"</string>
     <string name="doze_summary" msgid="6762274282827831706">"Włącz ekran po otrzymaniu powiadomień"</string>
@@ -1606,7 +1608,7 @@
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"Przywrócono domyślne ustawienia APN."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Opcje resetowania"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Można zresetować sieć, aplikacje lub urządzenie"</string>
-    <string name="reset_network_title" msgid="8944059136930806211">"Reset Wi-Fi, transmisji i Bluetootha"</string>
+    <string name="reset_network_title" msgid="8944059136930806211">"Resetuj Wi-Fi, transmisję i Bluetootha"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"Spowoduje to usunięcie wszystkich ustawień sieciowych, w tym:\n\n"<li>"Wi‑Fi"</li>\n<li>"mobilnej transmisji danych"</li>\n<li>"Bluetooth"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"Usuń pobrane karty SIM"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"Aby pobrać zastępczą kartę SIM, skontaktuj się z operatorem. Nie anuluje to Twoich abonamentów."</string>
@@ -1744,7 +1746,7 @@
     <string name="settings_safetylegal_activity_unreachable" msgid="3541894966476445833">"Brak połączenia do transmisji danych. Aby wyświetlić te informacje teraz, otwórz stronę %s na dowolnym komputerze połączonym z internetem."</string>
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"Wczytuję..."</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Użyj innej metody"</string>
-    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Ustawianie blokady ekranu"</string>
+    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Ustaw blokadę ekranu"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Ze względów bezpieczeństwa ustaw hasło"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Aby korzystać z odcisku palca, ustaw hasło"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Aby korzystać z odcisku palca, ustaw wzór"</string>
@@ -1805,7 +1807,7 @@
     <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Wzór jest widoczny"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"Pokazuj wzór dla profilu"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"Wibracja przy dotknięciu"</string>
-    <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Blokada przyciskiem zasilania"</string>
+    <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Blokuj przyciskiem zasilania"</string>
     <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"Z wyjątkiem sytuacji, gdy blokadę anuluje <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g>"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"Ustaw wzór odblokowania"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"Zmień wzór odblokowania"</string>
@@ -2535,7 +2537,7 @@
     <string name="battery_saver_turn_on_automatically_title" msgid="7316920304024245838">"Włącz automatycznie"</string>
     <string name="battery_saver_turn_on_automatically_never" msgid="2623381258359775227">"Nigdy"</string>
     <string name="battery_saver_turn_on_automatically_pct" msgid="434270432432390307">"przy <xliff:g id="PERCENT">%1$s</xliff:g> baterii"</string>
-    <string name="battery_percentage" msgid="7782252476471033843">"Poziom naładowania baterii w procentach"</string>
+    <string name="battery_percentage" msgid="7782252476471033843">"Procent naładowania baterii"</string>
     <string name="battery_percentage_description" msgid="9219875229166700610">"Pokazuj procentowy poziom naładowania baterii na pasku stanu"</string>
     <string name="process_stats_summary_title" msgid="9189588417488537954">"Statystyki procesów"</string>
     <string name="process_stats_summary" msgid="8077998499161221885">"Rozbudowane statystyki uruchomionych procesów"</string>
@@ -2640,7 +2642,7 @@
     <string name="uninstall_device_admin" msgid="9017499299961719830">"Odinstaluj aplikację"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"Dezaktywuj i odinstaluj"</string>
     <string name="select_device_admin_msg" msgid="4173769638399075387">"Aplikacje do zarządzania urządzeniem"</string>
-    <string name="no_device_admins" msgid="4129231900385977460">"Brak dostępnych aplikacji do administrowania urządzeniem"</string>
+    <string name="no_device_admins" msgid="4129231900385977460">"Brak dostępnych aplikacji do zarządzania urządzeniem"</string>
     <string name="personal_device_admin_title" msgid="759440849188565661">"Osobiste"</string>
     <string name="managed_device_admin_title" msgid="8021522755492551726">"Praca"</string>
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"Ogranicz dostęp do SMS-ów i rejestru połączeń"</string>
@@ -2804,7 +2806,7 @@
     <string name="data_usage_metered_wifi" msgid="2955256408132426720">"Sieci Wi‑Fi z pomiarem"</string>
     <string name="data_usage_metered_wifi_disabled" msgid="5771083253782103415">"Aby wybrać sieci z pomiarem, włącz Wi-Fi."</string>
     <string name="data_usage_metered_auto" msgid="7924116401382629319">"Automatycznie"</string>
-    <string name="data_usage_metered_yes" msgid="7333744880035386073">"Użycie danych jest mierzone"</string>
+    <string name="data_usage_metered_yes" msgid="7333744880035386073">"Pomiar użycia danych"</string>
     <string name="data_usage_metered_no" msgid="1961524615778610008">"Użycie danych nie jest mierzone"</string>
     <string name="data_usage_disclaimer" msgid="4683321532922590425">"Operator komórkowy może obliczać ilość przesłanych danych inaczej niż urządzenie."</string>
     <string name="cryptkeeper_emergency_call" msgid="4625420047524693116">"Połączenie alarmowe"</string>
@@ -2951,7 +2953,7 @@
     <string name="user_add_user_message_long" msgid="686637203224195465">"Z tego urządzenia możesz korzystać wraz z innymi osobami, dodając na nim konta użytkowników. Każdy użytkownik ma własne miejsce na swoje aplikacje, tapety i inne dane. Może też zmieniać ustawienia, które wpływają na wszystkich użytkowników urządzenia (np. Wi‑Fi).\n\nGdy dodasz nowego użytkownika, musi on skonfigurować swoje miejsce na dane.\n\nKażdy użytkownik może aktualizować aplikacje w imieniu wszystkich pozostałych użytkowników. Ułatwienia dostępu i usługi mogą nie zostać przeniesione na konto nowego użytkownika."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Gdy dodasz nowego użytkownika, musi on skonfigurować swoją przestrzeń.\n\nKażdy użytkownik może aktualizować aplikacje wszystkich innych użytkowników."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Skonfigurować ustawienia dla użytkownika?"</string>
-    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Upewnij się, że ta osoba jest w pobliżu i może skonfigurować swój profil."</string>
+    <string name="user_setup_dialog_message" msgid="2988559933258353919">"Upewnij się, że ta osoba jest w pobliżu i może skonfigurować swój profil"</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"Skonfigurować teraz profil?"</string>
     <string name="user_setup_button_setup_now" msgid="4941459406266856176">"Skonfiguruj"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"Nie teraz"</string>
@@ -3003,7 +3005,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Z wyjątkiem, gdy jest otwarta inna aplikacja płatnicza"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Na terminalu „Zbliż i zapłać” płać przy użyciu:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Płacenie przy terminalu"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Skonfiguruj aplikację płatniczą, a później przyłóż tylną część telefonu do terminala z symbolem płatności zbliżeniowej."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Skonfiguruj aplikację płatniczą, a później przyłóż tylną część telefonu do terminala z symbolem płatności zbliżeniowej."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"OK"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Więcej..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Ustawić jako Twoją preferencję?"</string>
@@ -3187,7 +3189,7 @@
     <string name="keywords_financial_apps_sms_access" msgid="3236014691838121857">"aplikacja finansowa, SMS, uprawnienia"</string>
     <string name="keywords_systemui_theme" msgid="9150908170417305866">"tryb ciemny"</string>
     <string name="keywords_device_feedback" msgid="6948977907405738490">"błąd"</string>
-    <string name="keywords_ambient_display_screen" msgid="5873935693887583428">"Ekran dostosowany do otoczenia, ekran blokady"</string>
+    <string name="keywords_ambient_display_screen" msgid="5873935693887583428">"Wygaszacz z powiadomieniami, ekran blokady"</string>
     <string name="keywords_lock_screen_notif" msgid="4914337222856805463">"powiadomienia na ekranie blokady, powiadomienia"</string>
     <string name="keywords_face_settings" msgid="4117345666006836599">"twarz"</string>
     <string name="keywords_fingerprint_settings" msgid="902902368701134163">"odcisk palca, dodawanie odcisków palców"</string>
@@ -3394,7 +3396,7 @@
     <string name="notification_badging_title" msgid="6311699476970264712">"Zezwól na plakietki z powiadomieniami"</string>
     <string name="notification_bubbles_title" msgid="9196562435741861317">"Dymki"</string>
     <string name="notification_bubbles_summary" msgid="4624512775901949578">"Szybki dostęp do zawartości aplikacji z dowolnego miejsca dzięki pływającym skrótom"</string>
-    <string name="bubbles_feature_education" msgid="8979109826818881018">"Niektóre powiadomienia i inne treści mogą pojawiać się jako dymki na ekranie. Aby otworzyć dymek, kliknij go. Aby zamknąć, przeciągnij go w dół ekranu."</string>
+    <string name="bubbles_feature_education" msgid="8979109826818881018">"Niektóre powiadomienia i inne treści mogą pojawiać się jako dymki na ekranie. Aby otworzyć dymek, kliknij go. Aby zamknąć, przeciągnij go na dół ekranu."</string>
     <string name="bubbles_app_toggle_title" msgid="6401217027603326439">"Dymki"</string>
     <string name="bubbles_app_toggle_summary" msgid="7707611139796553855">"Zezwól aplikacji <xliff:g id="APP_NAME">%1$s</xliff:g> na pokazywanie niektórych powiadomień jako dymków"</string>
     <string name="bubbles_feature_disabled_dialog_title" msgid="3375452386012079293">"Włącz dymki"</string>
@@ -3788,7 +3790,7 @@
     <string name="roles_title" msgid="2825063787446244357">"Role"</string>
     <string name="default_app" msgid="8861276008866619872">"(Domyślna)"</string>
     <string name="system_app" msgid="4111402206594443265">"(Systemowa)"</string>
-    <string name="system_default_app" msgid="1454719098589351197">"(Domyślna aplikacja systemu)"</string>
+    <string name="system_default_app" msgid="1454719098589351197">"(Domyślna aplikacja systemowa)"</string>
     <string name="apps_storage" msgid="5658466038269046038">"Magazyn aplikacji"</string>
     <string name="usage_access" msgid="2023443456361489516">"Dostęp do danych o użyciu"</string>
     <string name="permit_usage_access" msgid="3321727608629752758">"Zezwól na dostęp do danych o użyciu"</string>
@@ -4293,7 +4295,7 @@
     <string name="instant_apps_settings" msgid="879003203555847537">"Ustawienia aplikacji błyskawicznych"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"Zainstalowane aplikacje"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"Pamięcią zarządza teraz menedżer miejsca"</string>
-    <string name="account_for_section_header" msgid="5975241715840642563">"Konta użytkownika <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="account_for_section_header" msgid="5975241715840642563">"Konta użytkownika: <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"Konfiguracja"</string>
     <string name="auto_sync_account_title" msgid="2394463123733529506">"Automatycznie synchronizuj dane"</string>
     <string name="auto_sync_personal_account_title" msgid="6844465157916100655">"Automatycznie synchronizuj dane osobiste"</string>
diff --git a/tests/CarDeveloperOptions/res/values-pt-rPT/arrays.xml b/tests/CarDeveloperOptions/res/values-pt-rPT/arrays.xml
index 28db34e..90734bb 100644
--- a/tests/CarDeveloperOptions/res/values-pt-rPT/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-pt-rPT/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Nunca permitir"</item>
     <item msgid="8184570120217958741">"Permitir sempre"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderada"</item>
+    <item msgid="1555861583162930714">"Baixa"</item>
+    <item msgid="1719683776264798117">"Crítica"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderada"</item>
+    <item msgid="182695359839047859">"Baixa"</item>
+    <item msgid="8577246509202964244">"Crítica"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistente"</item>
     <item msgid="167418068739176448">"Principal atividade"</item>
diff --git a/tests/CarDeveloperOptions/res/values-pt-rPT/strings.xml b/tests/CarDeveloperOptions/res/values-pt-rPT/strings.xml
index 4804f72..536054b 100644
--- a/tests/CarDeveloperOptions/res/values-pt-rPT/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-pt-rPT/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Aumente ou diminua o texto no ecrã."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Diminuir"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Aumentar"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Exemplo de texto"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"O Maravilhoso Feiticeiro de Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capítulo 11: A Maravilhosa Cidade Esmeralda de Oz"</string>
@@ -270,8 +269,8 @@
     <string name="locale_remove_menu" msgid="3395565699934985486">"Remover"</string>
     <string name="add_a_language" msgid="4103889327406274800">"Adicionar um idioma"</string>
     <plurals name="dlg_remove_locales_title" formatted="false" msgid="7362450618787242592">
-      <item quantity="other">Pretende remover os idiomas selecionados?</item>
-      <item quantity="one">Pretende remover o idioma selecionado?</item>
+      <item quantity="other">Remover os idiomas selecionados?</item>
+      <item quantity="one">Remover o idioma selecionado?</item>
     </plurals>
     <string name="dlg_remove_locales_message" msgid="5179370688876343176">"O texto será apresentado noutro idioma."</string>
     <string name="dlg_remove_locales_error_title" msgid="9090578326002163975">"Não é possível remover todos os idiomas"</string>
@@ -390,7 +389,7 @@
     <string name="security_passwords_title" msgid="6853942836045862315">"Privacidade"</string>
     <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"Desativada pelo gestor"</string>
     <string name="security_status_title" msgid="1261960357751754428">"Estado de segurança"</string>
-    <string name="security_dashboard_summary_face" msgid="2536136110153593745">"Bloqueio de ecrã, Desbloqueio Através do Rosto"</string>
+    <string name="security_dashboard_summary_face" msgid="2536136110153593745">"Bloqueio de ecrã, Desbloqueio facial"</string>
     <string name="security_dashboard_summary" msgid="4048877125766167227">"Bloqueio de ecrã, impressão digital"</string>
     <string name="security_dashboard_summary_no_fingerprint" msgid="8861903321053490658">"Bloqueio de ecrã"</string>
     <string name="security_settings_face_preference_summary" msgid="4437701024542221434">"Rosto adicionado."</string>
@@ -419,7 +418,7 @@
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Concluído"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Utilize o rosto para"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Desbloq. dispositivo"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Início de sessão e pagamentos na aplicação"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Início de sessão e pagamentos na app"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Olhos abertos para desbloquear"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Para utilizar a autenticação facial, os olhos têm de estar abertos."</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Solicitar sempre confirmação"</string>
@@ -427,7 +426,7 @@
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Remover dados rosto"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Pode utilizar o seu rosto para desbloquear o dispositivo e aceder a aplicações. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Eliminar os dados do rosto?"</string>
-    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Os dados gravados pelo Desbloqueio Através do Rosto serão eliminados permanentemente e em segurança. Após a remoção, precisará do PIN, do padrão ou da palavra-passe para desbloquear o telemóvel, iniciar sessão nas aplicações e confirmar pagamentos."</string>
+    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Os dados gravados pelo Desbloqueio facial serão eliminados permanentemente e em segurança. Após a remoção, precisará do PIN, do padrão ou da palavra-passe para desbloquear o telemóvel, iniciar sessão nas aplicações e confirmar pagamentos."</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"Impressão digital"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"Gerir impressões dig."</string>
     <string name="fingerprint_usage_category_title" msgid="7298369141954599706">"Usar impr. dig. para"</string>
@@ -494,12 +493,12 @@
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Adicionar outra"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Seguinte"</string>
     <string name="security_settings_fingerprint_enroll_disclaimer" msgid="5831834311961551423">"Para além de desbloquear o telemóvel, também pode utilizar a sua impressão digital para autorizar compras e o acesso de aplicações. "<annotation id="url">"Saiba mais"</annotation></string>
-    <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7954742554236652690">" A opção de bloqueio do ecrã está desativada. Para saber mais, contacte o gestor da sua entidade. "<annotation id="admin_details">"Mais detalhes"</annotation>\n\n"Pode continuar a utilizar a impressão digital para autorizar compras e o acesso a aplicações. "<annotation id="url">"Saiba mais"</annotation></string>
+    <string name="security_settings_fingerprint_enroll_disclaimer_lockscreen_disabled" msgid="7954742554236652690">" A opção de bloqueio do ecrã está desativada. Para saber mais, contacte o gestor da sua entidade. "<annotation id="admin_details">"Mais detalhes"</annotation>\n\n"Pode continuar a utilizar a impressão digital para autorizar compras e o acesso a apps. "<annotation id="url">"Saiba mais"</annotation></string>
     <string name="security_settings_fingerprint_enroll_lift_touch_again" msgid="1670703069782212223">"Levante o dedo e toque no sensor novamente"</string>
     <string name="fingerprint_add_max" msgid="2939393314646115661">"Pode adicionar até <xliff:g id="COUNT">%d</xliff:g> impressões digitais"</string>
     <string name="fingerprint_intro_error_max" msgid="3247720976621039437">"Adicionou o número máximo de impressões digitais"</string>
     <string name="fingerprint_intro_error_unknown" msgid="3975674268256524015">"Não é possível adicionar mais impressões digitais"</string>
-    <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"Pretende remover todas as impressões digitais?"</string>
+    <string name="fingerprint_last_delete_title" msgid="3104596858161269635">"Remover todas as impressões digitais?"</string>
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"Remover \"<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>\""</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Pretende eliminar esta impressão digital?"</string>
     <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Não poderá utilizar as impressões digitais para desbloquear o telemóvel, autorizar compras ou iniciar sessão em aplicações."</string>
@@ -594,8 +593,8 @@
     <string name="unlock_set_unlock_mode_password" msgid="397703731925549447">"Palavra-passe"</string>
     <string name="unlock_setup_wizard_fingerprint_details" msgid="6515136915205473675">"Assim que configurar um bloqueio de ecrã, também pode configurar a sua impressão digital em Definições &gt; Segurança."</string>
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"Desativar bloqueio do ecrã"</string>
-    <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"Pretende remover a proteção do dispositivo?"</string>
-    <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"Pretende remover a proteção do perfil?"</string>
+    <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"Remover a proteção do dispositivo?"</string>
+    <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"Remover a proteção do perfil?"</string>
     <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"As funcionalidades de proteção do dispositivo não funcionam sem o padrão."</string>
     <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"As funcionalidades de proteção do dispositivo não funcionam sem o padrão.<xliff:g id="EMPTY_LINE">
 
@@ -730,7 +729,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Gerir ligações, definir nome e detectabilidade do dispositivo"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Pretende sincronizar com o dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Sincronizar com o dispositivo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Código de sincronização Bluetooth"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Introduza o código de sincronização e, em seguida, prima Return ou Enter"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"O PIN contém letras ou símbolos"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Rede móvel"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Se o Wi‑Fi não estiver disponível, utilize a rede móvel."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Se a rede móvel não estiver disponível, utilizar Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Chamada por Wi‑Fi. Se o Wi‑Fi for perdido, a chamada é terminada."</string>
@@ -1711,7 +1713,7 @@
     <string name="lockpassword_choose_your_pin_message" msgid="8942598950627277885">"Por motivos de segurança, defina um PIN."</string>
     <string name="lockpassword_choose_your_pin_header_for_fingerprint" msgid="1102927520952116303">"Defina PIN para usar impressão digital"</string>
     <string name="lockpassword_choose_your_pattern_message" msgid="1503075455752279687">"Por motivos de segurança, defina um padrão."</string>
-    <string name="lockpassword_confirm_your_password_header" msgid="9055242184126838887">"Reintroduzir a palavra-passe"</string>
+    <string name="lockpassword_confirm_your_password_header" msgid="9055242184126838887">"Reintroduza a palavra-passe"</string>
     <string name="lockpassword_confirm_your_pattern_header" msgid="7137526922696316545">"Confirmar o padrão"</string>
     <string name="lockpassword_confirm_your_pin_header" msgid="4335593948303036343">"Reintroduza o PIN"</string>
     <string name="lockpassword_confirm_passwords_dont_match" msgid="1783767008133345784">"As palavras-passe não correspondem"</string>
@@ -1890,7 +1892,7 @@
     <string name="app_disable_notifications_dlg_title" msgid="699530661413553928">"Desativar notificações?"</string>
     <string name="app_install_details_group_title" msgid="2909597319422976921">"Loja"</string>
     <string name="app_install_details_title" msgid="6954953384372934881">"Detalhes da aplicação"</string>
-    <string name="app_install_details_summary" msgid="6612222941121363940">"Aplicação instalada a partir da <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
+    <string name="app_install_details_summary" msgid="6612222941121363940">"App instalada a partir da <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
     <string name="instant_app_details_summary" msgid="6384264315914966114">"Mais informações sobre <xliff:g id="APP_STORE">%1$s</xliff:g>"</string>
     <string name="app_ops_running" msgid="6378418969742957805">"Em execução"</string>
     <string name="app_ops_never_used" msgid="8305262378162525813">"(Nunca utilizado)"</string>
@@ -2021,7 +2023,7 @@
     <string name="onscreen_keyboard_settings_summary" msgid="148763210673670769">"Definições do teclado no ecrã"</string>
     <string name="builtin_keyboard_settings_title" msgid="3683883402326039724">"Teclado físico"</string>
     <string name="builtin_keyboard_settings_summary" msgid="6498739864479285932">"Definições do teclado físico"</string>
-    <string name="gadget_picker_title" msgid="9146981887780645322">"Escolher miniaplicação"</string>
+    <string name="gadget_picker_title" msgid="9146981887780645322">"Escolher gadget"</string>
     <string name="widget_picker_title" msgid="5424689728810684439">"Escolher widget"</string>
     <string name="allow_bind_app_widget_activity_allow_bind_title" msgid="8168110035319637326">"Criar widget e permitir o acesso?"</string>
     <string name="allow_bind_app_widget_activity_allow_bind" msgid="2782554863244412872">"Depois de criar o widget, <xliff:g id="WIDGET_HOST_NAME">%1$s</xliff:g> pode aceder a todos os dados apresentados."</string>
@@ -2304,14 +2306,14 @@
       <item quantity="one">Não é possível executar esta aplicação em segundo plano.</item>
     </plurals>
     <plurals name="battery_tip_restrict_app_dialog_title" formatted="false" msgid="3042021435866172168">
-      <item quantity="other">Pretende restringir %1$d aplicações?</item>
-      <item quantity="one">Pretende restringir a aplicação?</item>
+      <item quantity="other">Restringir %1$d aplicações?</item>
+      <item quantity="one">Restringir a aplicação?</item>
     </plurals>
     <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"Para poupar bateria, impeça que a aplicação <xliff:g id="APP">%1$s</xliff:g> consuma bateria em segundo plano. Esta aplicação poderá não funcionar corretamente e as notificações poderão sofrer atrasos."</string>
     <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"Para poupar bateria, impeça estas aplicações de consumir bateria em segundo plano. As aplicações restringidas poderão não funcionar corretamente e as notificações poderão sofrer atrasos.\n\nAplicações:"</string>
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Para poupar bateria, impeça que estas aplicações consumam bateria em segundo plano. As aplicações restringidas poderão não funcionar corretamente e as notificações poderão sofrer atrasos.\n\nAplicações:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Restringir"</string>
-    <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Pretende remover a restrição?"</string>
+    <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Remover a restrição?"</string>
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Esta aplicação poderá utilizar a bateria em segundo plano e, por conseguinte, pode ficar sem bateria mais cedo do que o esperado."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Remover"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Cancelar"</string>
@@ -2506,7 +2508,7 @@
     <string name="voice_service_preference_section_title" msgid="2984112696100778038">"Serviços de entrada de texto por voz"</string>
     <string name="voice_interactor_preference_summary" msgid="7321365727286121067">"Palavra de ativação e interação completas"</string>
     <string name="voice_recognizer_preference_summary" msgid="3681161319745912594">"Serviço simples de voz para texto"</string>
-    <string name="voice_interaction_security_warning" msgid="4986261746316889768">"Este serviço de entrada de texto por voz poderá efetuar monitorização de voz permanente e controlar aplicações ativadas por voz em seu nome. É proveniente da aplicação <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g>. Pretende permitir a utilização deste serviço?"</string>
+    <string name="voice_interaction_security_warning" msgid="4986261746316889768">"Este serviço de entrada de texto por voz poderá efetuar monitorização de voz permanente e controlar aplicações ativadas por voz em seu nome. É proveniente da aplicação <xliff:g id="VOICE_INPUT_SERVICE_APP_NAME">%s</xliff:g>. Permitir a utilização deste serviço?"</string>
     <string name="tts_engine_preference_title" msgid="1183116842356275061">"Motor preferido"</string>
     <string name="tts_engine_settings_title" msgid="4079757915136562358">"Definições do motor"</string>
     <string name="tts_sliders_title" msgid="1927481069989092278">"Taxa e tom de voz"</string>
@@ -2538,7 +2540,7 @@
     <string name="credentials_settings_not_available" msgid="5490259681690183274">"As credenciais não estão disponíveis para este utilizador"</string>
     <string name="credential_for_vpn_and_apps" msgid="2462642486949593841">"Instalada para VPN e aplicações"</string>
     <string name="credential_for_wifi" msgid="2903295786961726388">"Instalada para Wi-Fi"</string>
-    <string name="credentials_reset_hint" msgid="3484350477764088169">"Pretende remover todo o conteúdo?"</string>
+    <string name="credentials_reset_hint" msgid="3484350477764088169">"Remover todo o conteúdo?"</string>
     <string name="credentials_erased" msgid="7287088033523869085">"Armaz. credenciais apagado."</string>
     <string name="credentials_not_erased" msgid="9137227570738627637">"Não foi possível apagar o armazenamento de credenciais."</string>
     <string name="usage_access_title" msgid="7981321142726540574">"Apps com acesso de utilização"</string>
@@ -2553,7 +2555,7 @@
     <string name="backup_data_summary" msgid="555459891017933746">"Fazer cópia de segurança de dados da aplicação, palavras-passe Wi-Fi e outras definições para os servidores da Google"</string>
     <string name="backup_configure_account_title" msgid="1534734650559070294">"Cópia de segurança da conta"</string>
     <string name="backup_data_management_title" msgid="6299288795610243508">"Gerir a conta de cópia de segurança"</string>
-    <string name="include_app_data_title" msgid="6117211611131913293">"Incluir dados de aplicações"</string>
+    <string name="include_app_data_title" msgid="6117211611131913293">"Incluir dados de apps"</string>
     <string name="auto_restore_title" msgid="8367486774010915221">"Restauro automático"</string>
     <string name="auto_restore_summary" msgid="1941047568966428377">"Ao reinstalar uma aplicação, restaurar definições e dados da cópia de segurança"</string>
     <string name="backup_inactive_title" msgid="5513496915638307750">"O serviço de cópia de segurança não está ativo"</string>
@@ -2626,7 +2628,7 @@
     <string name="header_account_settings" msgid="8586173964125512219">"Definições da conta"</string>
     <string name="remove_account_label" msgid="5885425720323823387">"Remover conta"</string>
     <string name="header_add_an_account" msgid="8482614556580804956">"Adicionar uma conta"</string>
-    <string name="really_remove_account_title" msgid="4166512362915154319">"Pretende remover a conta?"</string>
+    <string name="really_remove_account_title" msgid="4166512362915154319">"Remover a conta?"</string>
     <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"A remoção desta conta elimina todas as mensagens, contactos e outros dados do tablet!"</string>
     <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"A remoção desta conta elimina todas as mensagens, contactos e outros dados do telemóvel!"</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"A remoção desta conta elimina todas as mensagens, os contactos e outros dados do dispositivo."</string>
@@ -2897,7 +2899,7 @@
     <string name="user_delete_button" msgid="6747802570634772774">"Eliminar"</string>
     <string name="user_guest" msgid="6226240869459683235">"Convidado"</string>
     <string name="user_exit_guest_title" msgid="7279886200373071797">"Remover convidado"</string>
-    <string name="user_exit_guest_confirm_title" msgid="4767911571671099844">"Pretende remover o convidado?"</string>
+    <string name="user_exit_guest_confirm_title" msgid="4767911571671099844">"Remover o convidado?"</string>
     <string name="user_exit_guest_confirm_message" msgid="6955182181145748919">"Todas as aplicações e dados desta sessão serão eliminados."</string>
     <string name="user_exit_guest_dialog_remove" msgid="1878866060881115716">"Remover"</string>
     <string name="user_enable_calling" msgid="864760054792249503">"Ativar chamadas telefónicas"</string>
@@ -3042,7 +3044,7 @@
     <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"Assistente, aplicações recentes, aplicações predefinidas"</string>
     <string name="notification_settings_work_profile" msgid="7190550347842400029">"O acesso às notificações não está disponível para aplicações no perfil de trabalho."</string>
     <string name="account_dashboard_title" msgid="4734300939532555885">"Contas"</string>
-    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"Nenhuma conta adicionada."</string>
+    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"Nenhuma conta adicionada"</string>
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"Aplicações predefinidas"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"Idiomas, gestos, hora, cópia de segurança"</string>
     <string name="search_results_title" msgid="4160717656435503940">"Definições"</string>
@@ -3086,7 +3088,7 @@
     <string name="keywords_all_apps" msgid="846444448435698930">"aplicações, transferência, aplicações, sistema"</string>
     <string name="keywords_app_permissions" msgid="8539841019997048500">"aplicações, autorizações, segurança"</string>
     <string name="keywords_default_apps" msgid="7435952699323965532">"aplicações, predefinição"</string>
-    <string name="keywords_ignore_optimizations" msgid="9127632532176249438">"ignorar otimizações, soneca, modo de espera das aplicações"</string>
+    <string name="keywords_ignore_optimizations" msgid="9127632532176249438">"ignorar otimizações, soneca, modo de espera das apps"</string>
     <string name="keywords_color_mode" msgid="8893345199519181751">"vibrante, RGB, sRGB, cor, natural, padrão"</string>
     <string name="keywords_color_temperature" msgid="2255253972992035046">"temperatura de cor, D65, D73, branco, amarelo, azul, quente, frio"</string>
     <string name="keywords_lockscreen" msgid="4936846554280830394">"deslizar lentamente para desbloquear, palavra-passe, padrão, PIN"</string>
@@ -3214,7 +3216,7 @@
     <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Não emitir luz intermitente"</string>
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Não apresentar notificações no ecrã"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Ocultar ícones da barra de estado na parte superior do ecrã"</string>
-    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Ocultar pontos de notificação nos ícones das aplicações"</string>
+    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Ocultar pontos de notificação nos ícones das apps"</string>
     <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Não ativar para notificações"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"Ocultar da lista de notificações"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"Nunca"</string>
@@ -3367,30 +3369,30 @@
     </plurals>
     <string name="notification_assistant_title" msgid="8216604031352764011">"Assistente de notificações"</string>
     <string name="no_notification_assistant" msgid="9140123568386413264">"Nenhum assistente"</string>
-    <string name="no_notification_listeners" msgid="1366386609506834717">"Nenhuma aplicação instalada solicitou acesso a notificações"</string>
-    <string name="notification_assistant_security_warning_title" msgid="4190584438086738496">"Pretende permitir o acesso a notificações do <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
+    <string name="no_notification_listeners" msgid="1366386609506834717">"Nenhuma app instalada solicitou acesso a notificações"</string>
+    <string name="notification_assistant_security_warning_title" msgid="4190584438086738496">"Permitir o acesso a notificações do <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="notification_assistant_security_warning_summary" msgid="6924513399671031930">"O <xliff:g id="NOTIFICATION_ASSISTANT_NAME">%1$s</xliff:g> consegue ler todas as notificações, incluindo informações pessoais como nomes de contactos e o texto das mensagens recebidas. Também consegue modificar ou ignorar notificações, assim como acionar botões de ação que estas contenham. \n\nDeste modo, a aplicação também pode ativar ou desativar o modo Não incomodar e alterar as definições relacionadas."</string>
-    <string name="notification_listener_security_warning_title" msgid="4902253246428777797">"Pretende permitir o acesso a notificações do <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
+    <string name="notification_listener_security_warning_title" msgid="4902253246428777797">"Permitir o acesso a notificações do <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="notification_listener_security_warning_summary" msgid="4454702907350100288">"O <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g> consegue ler todas as notificações, incluindo informações pessoais como nomes de contactos e o texto das mensagens recebidas. Também consegue ignorar notificações ou acionar botões de ação que estas contenham. \n\nDeste modo, a aplicação também pode ativar ou desativar o modo Não incomodar e alterar as definições relacionadas."</string>
     <string name="notification_listener_disable_warning_summary" msgid="162165151519082978">"Se desativar o acesso às notificações para <xliff:g id="NOTIFICATION_LISTENER_NAME">%1$s</xliff:g>, é possível que o acesso ao modo Não incomodar seja igualmente desativado."</string>
     <string name="notification_listener_disable_warning_confirm" msgid="7863495391671154188">"Desativar"</string>
     <string name="notification_listener_disable_warning_cancel" msgid="6264631825225298458">"Cancelar"</string>
     <string name="vr_listeners_title" msgid="511483902408792832">"Serviços de assistente de RV"</string>
-    <string name="no_vr_listeners" msgid="7675484190394450979">"Nenhuma aplicação instalada pediu para ser executada como serviço de assistente de RV."</string>
-    <string name="vr_listener_security_warning_title" msgid="7019322246707645361">"Pretende permitir que o serviço de RV tenha acesso a <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
+    <string name="no_vr_listeners" msgid="7675484190394450979">"Nenhuma app instalada pediu para ser executada como serviço de assistente de RV."</string>
+    <string name="vr_listener_security_warning_title" msgid="7019322246707645361">"Permitir que o serviço de RV tenha acesso a <xliff:g id="SERVICE">%1$s</xliff:g>?"</string>
     <string name="vr_listener_security_warning_summary" msgid="5093225583584522067">"Será possível executar o <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> quando estiver a utilizar aplicações no modo de realidade virtual."</string>
     <string name="display_vr_pref_title" msgid="1088464812293416981">"Com o dispositivo no modo RV"</string>
     <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"Reduzir a desfocagem (recomendado)"</string>
     <string name="display_vr_pref_off" msgid="4681320968818852691">"Reduzir a cintilação"</string>
     <string name="picture_in_picture_title" msgid="4960733106166035448">"Imagem na imagem"</string>
-    <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"Nenhuma aplicação instalada é compatível com Imagem na imagem"</string>
+    <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"Nenhuma app instalada é compatível com Imagem na imagem"</string>
     <string name="picture_in_picture_keywords" msgid="7326958702002259262">"pip picture in"</string>
     <string name="picture_in_picture_app_detail_title" msgid="3916189052657425936">"Imagem na imagem"</string>
     <string name="picture_in_picture_app_detail_switch" msgid="747422998967185418">"Permitir imagem na imagem"</string>
     <string name="picture_in_picture_app_detail_summary" msgid="918632751775525347">"Permita que esta aplicação crie uma janela de ecrã no ecrã enquanto a aplicação está aberta ou depois de sair da mesma (por exemplo, para continuar a ver um vídeo). Esta janela é apresentada sobre as outras aplicações que estiver a utilizar."</string>
     <string name="manage_zen_access_title" msgid="3058206309728524196">"Acesso Não incomodar"</string>
     <string name="zen_access_detail_switch" msgid="8706332327904974500">"Permitir o modo Não incomodar"</string>
-    <string name="zen_access_empty_text" msgid="7667538993781607731">"Nenhuma aplicação instalada solicitou acesso Não incomodar"</string>
+    <string name="zen_access_empty_text" msgid="7667538993781607731">"Nenhuma app instalada solicitou acesso Não incomodar"</string>
     <string name="loading_notification_apps" msgid="1978345231934072091">"A carregar aplicações..."</string>
     <string name="app_notifications_off_desc" msgid="3904090905748895146">"A seu pedido, o Android está a bloquear a apresentação das notificações desta aplicação neste dispositivo."</string>
     <string name="channel_notifications_off_desc" msgid="8005444443218306611">"A seu pedido, o Android está a bloquear a apresentação desta categoria de notificações neste dispositivo."</string>
@@ -3507,7 +3509,7 @@
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"lembretes"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"Permitir eventos"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"Permitir que as aplicações substituam"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Exceções de aplicações"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Exceções de apps"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="other">As notificações de <xliff:g id="NUMBER">%1$d</xliff:g> aplicações podem substituir o modo Não incomodar</item>
       <item quantity="one">As notificações de 1 aplicação podem substituir o modo Não incomodar</item>
@@ -3631,7 +3633,7 @@
     <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Nenhuma permissão solicitada"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"Todas as aplicações"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"Aplicações instaladas"</string>
-    <string name="filter_instant_apps" msgid="8087483282854072366">"Aplicações instantâneas"</string>
+    <string name="filter_instant_apps" msgid="8087483282854072366">"Apps instantâneas"</string>
     <string name="filter_personal_apps" msgid="3473268022652904457">"Pessoais"</string>
     <string name="filter_work_apps" msgid="4202483998339465542">"De trabalho"</string>
     <string name="filter_notif_all_apps" msgid="1862666327228804896">"Aplicações: todas"</string>
@@ -3662,7 +3664,7 @@
     <string name="default_apps_title" msgid="3848048391400989931">"Predefinição"</string>
     <string name="default_for_work" msgid="7290411716804495366">"Predefinição para o trabalho"</string>
     <string name="assist_and_voice_input_title" msgid="324148194703846130">"Assistência e entrada por voz"</string>
-    <string name="default_assist_title" msgid="2060846994203235317">"Aplicação de assistência"</string>
+    <string name="default_assist_title" msgid="2060846994203235317">"App de assistência"</string>
     <string name="assistant_security_warning_title" msgid="8014460924169723059">"Pretende tornar <xliff:g id="ASSISTANT_APP_NAME">%s</xliff:g> o seu assistente?"</string>
     <string name="assistant_security_warning" msgid="1304057692847069938">"O assistente pode ler informações sobre aplicações utilizadas no seu sistema, incluindo informações visíveis no ecrã ou acessíveis nas aplicações."</string>
     <string name="assistant_security_warning_agree" msgid="5105692801460137289">"Aceitar"</string>
@@ -3757,12 +3759,12 @@
     <string name="background_check_pref" msgid="664081406854758392">"Verificação em segundo plano"</string>
     <string name="background_check_title" msgid="4136736684290307970">"Acesso completo em segundo plano"</string>
     <string name="assist_access_context_title" msgid="2274614501747710439">"Utilizar o texto do ecrã"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"Permitir que a aplicação de assistência aceda ao conteúdo do ecrã como texto"</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"Permitir que a app de assistência aceda ao conteúdo do ecrã como texto"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"Utilizar captura de ecrã"</string>
-    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Permitir que a aplicação de assistência aceda a uma imagem do ecrã"</string>
+    <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Permitir que a app de assistência aceda a uma imagem do ecrã"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Fazer piscar o ecrã"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"Fazer piscar os limites do ecrã quando a aplicação de assistência acede a texto do ecrã ou de capturas de ecrã"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"As aplicações de assistência podem ajudá-lo com base em informações do ecrã que está a ver. Algumas aplicações são compatíveis com serviços de iniciação e de entrada de texto por voz para oferecer assistência integrada."</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"Fazer piscar os limites do ecrã quando a app de assistência acede a texto do ecrã ou de capturas de ecrã"</string>
+    <string name="assist_footer" msgid="7030121180457472165">"As apps de assistência podem ajudá-lo com base em informações do ecrã que está a ver. Algumas apps são compatíveis com serviços de iniciação e de entrada de texto por voz para oferecer assistência integrada."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Utilização média da memória"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Utilização máxima da memória"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Utilização da memória"</string>
@@ -3784,7 +3786,7 @@
     <string name="running_frequency" msgid="7545170806968474449">"Frequência"</string>
     <string name="memory_maximum_usage" msgid="4734981118293469479">"Utilização máxima"</string>
     <string name="no_data_usage" msgid="903383745620135746">"Sem dados utilizados"</string>
-    <string name="zen_access_warning_dialog_title" msgid="7704910289810337055">"Pretende permitir o acesso a Não incomodar para <xliff:g id="APP">%1$s</xliff:g>?"</string>
+    <string name="zen_access_warning_dialog_title" msgid="7704910289810337055">"Permitir o acesso a Não incomodar para <xliff:g id="APP">%1$s</xliff:g>?"</string>
     <string name="zen_access_warning_dialog_summary" msgid="2717755746850874577">"A aplicação conseguirá ligar e desligar o modo Não incomodar e efetuar alterações nas definições relacionadas."</string>
     <string name="zen_access_disabled_package_warning" msgid="7086237569177576966">"Tem de permanecer ativado porque o acesso às notificações está ativado"</string>
     <string name="zen_access_revoke_warning_dialog_title" msgid="6850994585577513299">"Pretende revogar o acesso a Não incomodar do <xliff:g id="APP">%1$s</xliff:g>?"</string>
@@ -3795,7 +3797,7 @@
     <string name="ignore_optimizations_off_desc" msgid="5598702251817814289">"Recomendado para aumentar a duração da bateria"</string>
     <string name="ignore_optimizations_title" msgid="7924345545276166305">"Permitir que <xliff:g id="APP">%s</xliff:g> ignore as otimizações da bateria?"</string>
     <string name="app_list_preference_none" msgid="7100409177446935028">"Nenhuma"</string>
-    <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Se desativar o acesso de utilização desta aplicação, não impede que o gestor monitorize a utilização de dados de aplicações no seu perfil de trabalho."</string>
+    <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Se desativar o acesso de utilização desta aplicação, não impede que o gestor monitorize a utilização de dados de apps no seu perfil de trabalho."</string>
     <string name="accessibility_lock_screen_progress" msgid="8242917828598820049">"<xliff:g id="COUNT_0">%1$d</xliff:g> de <xliff:g id="COUNT_1">%2$d</xliff:g> carateres utilizados"</string>
     <string name="draw_overlay" msgid="2878665072530660668">"Sobrepor a outras aplicações"</string>
     <string name="system_alert_window_settings" msgid="3024330223417646567">"Sobrepor a outras aplicações"</string>
@@ -3853,7 +3855,7 @@
       <item quantity="other">Desativadas para <xliff:g id="COUNT">%d</xliff:g> aplicações</item>
       <item quantity="one">Desativadas para 1 aplicação</item>
     </plurals>
-    <string name="notification_summary_none" msgid="5003043219430054784">"Ativadas para todas as aplicações"</string>
+    <string name="notification_summary_none" msgid="5003043219430054784">"Ativadas para todas as apps"</string>
     <string name="apps_summary" msgid="8355759446490212195">"<xliff:g id="COUNT">%1$d</xliff:g> aplicações instaladas"</string>
     <string name="apps_summary_example" msgid="3011143598675185269">"24 aplicações instaladas"</string>
     <string name="storage_summary" msgid="4835916510511133784">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> utilizado – <xliff:g id="FREE_SPACE">%2$s</xliff:g> livre(s)"</string>
@@ -4065,7 +4067,7 @@
     <string name="page_tab_title_summary" msgid="4824744863994538006">"Todas"</string>
     <string name="page_tab_title_support" msgid="5569262185010367870">"Sugestões e apoio técnico"</string>
     <string name="developer_smallest_width" msgid="2603134476228805075">"A menor largura"</string>
-    <string name="premium_sms_none" msgid="940723020871007898">"Nenhuma aplicação instalada solicitou acesso a SMS premium"</string>
+    <string name="premium_sms_none" msgid="940723020871007898">"Nenhuma app instalada solicitou acesso a SMS premium"</string>
     <string name="premium_sms_warning" msgid="7604011651486294515">"O serviço de SMS premium pode custar dinheiro e, nesse caso, será adicionado às faturas do seu operador. Se ativar a autorização para uma aplicação, poderá enviar SMS premium através da mesma."</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"Acesso a SMS premium"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"Desativado"</string>
@@ -4147,10 +4149,10 @@
     <string name="oem_unlock_enable_disabled_summary_sim_locked_device" msgid="5223278198179877704">"Indisponível em dispositivos vinculados ao operador"</string>
     <string name="oem_lock_info_message" msgid="5090850412279403901">"Reinicie o dispositivo para ativar a funcionalidade de proteção do mesmo."</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7360443072390107772">"Foi disponibilizado um total de <xliff:g id="SIZE">%1$s</xliff:g>\n\nÚltima execução: <xliff:g id="DATE">%2$s</xliff:g>"</string>
-    <string name="web_action_enable_title" msgid="4462106633708675959">"Aplicações instantâneas"</string>
+    <string name="web_action_enable_title" msgid="4462106633708675959">"Apps instantâneas"</string>
     <string name="web_action_enable_summary" msgid="1729016644691793085">"Abrir links nas aplicações, mesmo que não estejam instaladas"</string>
-    <string name="web_action_section_title" msgid="5563229447734734662">"Aplicações instantâneas"</string>
-    <string name="instant_apps_settings" msgid="879003203555847537">"Preferências das Aplicações instantâneas"</string>
+    <string name="web_action_section_title" msgid="5563229447734734662">"Apps instantâneas"</string>
+    <string name="instant_apps_settings" msgid="879003203555847537">"Preferências das Apps instantâneas"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"Aplicações instaladas"</string>
     <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"O seu armazenamento está agora a ser gerido pelo gestor de armazenamento"</string>
     <string name="account_for_section_header" msgid="5975241715840642563">"Contas de <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
@@ -4242,7 +4244,7 @@
     <string name="storage_volume_total" msgid="5021484171514159913">"utilizados de <xliff:g id="TOTAL">%1$s</xliff:g>"</string>
     <string name="storage_percent_full" msgid="6924662861545958442">"utilizado"</string>
     <string name="clear_instant_app_data" msgid="3673669086522890405">"Limpar aplicação"</string>
-    <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"Pretende remover esta aplicação instantânea?"</string>
+    <string name="clear_instant_app_confirmation" msgid="1778553115373698061">"Remover esta app instantânea?"</string>
     <string name="launch_instant_app" msgid="5251693061228352333">"Abrir"</string>
     <string name="game_storage_settings" msgid="6856911551799175914">"Jogos"</string>
     <string name="audio_files_title" msgid="3073879661731363935">"Ficheiros de áudio"</string>
@@ -4265,7 +4267,7 @@
     <string name="storage_manager_indicator" msgid="4255140732848476875">"Gestor de armazenamento: <xliff:g id="STATUS">^1</xliff:g>"</string>
     <string name="storage_manager_indicator_off" msgid="6404056007102580777">"Desativado"</string>
     <string name="storage_manager_indicator_on" msgid="5295306384982062320">"Ativado"</string>
-    <string name="install_type_instant" msgid="6248487669862821874">"Aplicação instantânea"</string>
+    <string name="install_type_instant" msgid="6248487669862821874">"App instantânea"</string>
     <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"Pretende desativar o gestor de armazenamento?"</string>
     <string name="storage_movies_tv" msgid="7282484273991655296">"Aplicações de filmes e TV"</string>
     <string name="carrier_provisioning" msgid="3309125279191534469">"Informações de fornecimento do operador"</string>
@@ -4308,7 +4310,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Controlo do Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Permitir à aplicação controlar o Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Permitir a esta aplicação ativar ou desativar o Wi-Fi, procurar e estabelecer ligação a redes Wi-Fi, adicionar ou remover redes, assim como iniciar uma zona Wi-Fi apenas local."</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Reproduzir multimédia em"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Reproduzir multimédia:"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Este dispositivo"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Telemóvel"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Tablet"</string>
@@ -4437,7 +4439,7 @@
     <string name="cdma_subscription_summary" msgid="2298861419202726628">"Alternar entre RUIM/SIM e NV"</string>
     <string name="cdma_subscription_dialogtitle" msgid="232485231569225126">"subscrição"</string>
     <string name="register_automatically" msgid="1858081641661493109">"Registo automático…"</string>
-    <string name="roaming_alert_title" msgid="1849237823113454475">"Pretende permitir roaming de dados?"</string>
+    <string name="roaming_alert_title" msgid="1849237823113454475">"Permitir roaming de dados?"</string>
     <string name="roaming_check_price_warning" msgid="5883499714594419439">"Consulte o seu fornecedor de serviços de rede para obter preços."</string>
     <string name="mobile_data_usage_title" msgid="2376358672434990037">"Utilização de dados da aplicação"</string>
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"Modo de rede inválido: <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Ignore."</string>
@@ -4472,7 +4474,7 @@
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"Autorizações, atividade da conta, dados pessoais"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"Remover"</string>
     <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Manter"</string>
-    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Pretende remover esta sugestão?"</string>
+    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Remover esta sugestão?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Sugestão removida"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Anular"</string>
     <string name="low_storage_summary" msgid="4562224870189133400">"Tem pouco espaço de armazenamento. <xliff:g id="PERCENTAGE">%1$s</xliff:g> utilizados – <xliff:g id="FREE_SPACE">%2$s</xliff:g> livres."</string>
diff --git a/tests/CarDeveloperOptions/res/values-pt/arrays.xml b/tests/CarDeveloperOptions/res/values-pt/arrays.xml
index 2a5f2f6..2ae29a0 100644
--- a/tests/CarDeveloperOptions/res/values-pt/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-pt/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Nunca permitir"</item>
     <item msgid="8184570120217958741">"Sempre permitir"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Moderada"</item>
+    <item msgid="1555861583162930714">"Baixa"</item>
+    <item msgid="1719683776264798117">"Crítico"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Moderado"</item>
+    <item msgid="182695359839047859">"Baixa"</item>
+    <item msgid="8577246509202964244">"Crítica"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Persistente"</item>
     <item msgid="167418068739176448">"Principal atividade"</item>
diff --git a/tests/CarDeveloperOptions/res/values-pt/strings.xml b/tests/CarDeveloperOptions/res/values-pt/strings.xml
index 55fe26b..46da992 100644
--- a/tests/CarDeveloperOptions/res/values-pt/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-pt/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Tornar o texto na tela menor ou maior."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Tornar menor"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Tornar maior"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Texto de amostra"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"O Mágico de Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capítulo 11: A maravilhosa Cidade das Esmeraldas de Oz"</string>
@@ -200,7 +199,7 @@
     <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Evitar proxy para"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"Restaurar padrões"</string>
     <string name="proxy_action_text" msgid="814511434843981413">"Concluído"</string>
-    <string name="proxy_hostname_label" msgid="6798891831427287847">"Hostname do proxy"</string>
+    <string name="proxy_hostname_label" msgid="6798891831427287847">"Nome do host do proxy"</string>
     <string name="proxy_error" msgid="5036164133669802299">"Atenção"</string>
     <string name="proxy_error_dismiss" msgid="883805570485635650">"OK"</string>
     <string name="proxy_error_invalid_host" msgid="5430640241353307223">"O nome de host digitado não é válido."</string>
@@ -544,7 +543,7 @@
     <string name="suggested_fingerprint_lock_settings_summary" product="tablet" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="default" msgid="8114514312665251311"></string>
-    <string name="lock_settings_picker_title" msgid="1034741644461982205">"Escolher bloqueio de tela"</string>
+    <string name="lock_settings_picker_title" msgid="1034741644461982205">"Bloqueio de tela"</string>
     <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Escolher bloq de trab."</string>
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Proteger o tablet"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Proteger o dispositivo"</string>
@@ -894,7 +893,7 @@
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Você não tem permissão para alterar a rede Wi-Fi."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Mais"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"Configuração automática (WPS)"</string>
-    <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"Ativar a Busca por Wi‑Fi?"</string>
+    <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"Ativar a \"busca por Wi‑Fi\"?"</string>
     <string name="wifi_settings_scanning_required_summary" msgid="7469610959462708782">"Para ativar o Wi‑Fi automaticamente, primeiro você precisa ativar a Busca por Wi‑Fi."</string>
     <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"A Busca por Wi-Fi permite que apps e serviços procurem redes Wi‑Fi a qualquer momento, mesmo quando o Wi‑Fi está desativado. Essa configuração pode ser usada, por exemplo, para melhorar recursos e serviços baseados na localização."</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="4327570180594277049">"Ativar"</string>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Digite o SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Segurança"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Rede oculta"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Se seu roteador não estiver transmitindo um código de rede, mas você quiser se conectar a ele no futuro, configure a rede como oculta.\n\nIsso pode gerar um risco à segurança, porque seu smartphone transmitirá regularmente o próprio sinal para encontrar a rede.\n\nA configuração da rede como oculta não altera as configurações do seu roteador."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Se seu roteador não estiver transmitindo o ID da rede, mas você quiser se conectar a ela no futuro, configure a rede como oculta.\n\nIsso pode gerar um risco à segurança, porque seu smartphone transmitirá regularmente o próprio sinal para encontrar a rede.\n\nA configuração da rede como oculta não altera as configurações do seu roteador."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Potência do sinal"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Status"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Velocidade do link de transmissão"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Celular"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Se o Wi‑Fi estiver indisponível, use a rede móvel"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Se a rede móvel estiver indisponível, use Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Chamar via Wi-Fi. Sem sinal do Wi‑Fi, a chamada será encerrada."</string>
@@ -1581,7 +1583,7 @@
     <string name="reset_network_complete_toast" msgid="128225929536005495">"As configurações de rede foram redefinidas"</string>
     <string name="reset_esim_error_title" msgid="4728931209471875632">"Não é possível limpar chips"</string>
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"Os chips transferidos por download não podem ser limpos devido a um erro.\n\nReinicie o dispositivo e tente novamente."</string>
-    <string name="master_clear_title" msgid="1560712943955904673">"Limpar todos os dados (redefinição para configuração original)"</string>
+    <string name="master_clear_title" msgid="1560712943955904673">"Limpar todos os dados (redefinir para a configuração original)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Limpar todos os dados"</string>
     <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Essa ação limpará todos os dados do "<b>"armazenamento interno"</b>" do seu tablet, incluindo:\n\n"<li>"sua Conta do Google;"</li>\n<li>"configurações e dados do sistema e dos apps;"</li>\n<li>"apps transferidos."</li></string>
     <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Essa ação limpará todos os dados do "<b>"armazenamento interno"</b>" do seu smartphone, incluindo:\n\n"<li>"Sua Conta do Google"</li>\n<li>"Configurações e dados do sistema e dos apps"</li>\n<li>"Apps transferidos"</li></string>
@@ -2279,7 +2281,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"A bateria pode acabar antes do normal"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Economia de bateria ativada"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Alguns recursos podem ser limitados"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Smartphone usado além do normal"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Smartphone usado mais que o normal"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Tablet usado além do normal"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Dispositivo usado além do normal"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"A bateria pode acabar antes do esperado"</string>
@@ -2428,7 +2430,7 @@
     <string name="battery_last_full_charge" msgid="5624033030647170717">"Última carga completa"</string>
     <string name="battery_full_charge_last" msgid="4614554109170251301">"A carga completa dura cerca de"</string>
     <string name="battery_footer_summary" msgid="4828444679643906943">"Os dados de uso da bateria são aproximados e podem mudar conforme o uso"</string>
-    <string name="battery_detail_foreground" msgid="6616408559186553085">"Ativo"</string>
+    <string name="battery_detail_foreground" msgid="6616408559186553085">"Durante o uso"</string>
     <string name="battery_detail_background" msgid="7938146832943604280">"Em segundo plano"</string>
     <string name="battery_detail_power_usage" msgid="3606930232257489212">"Uso da bateria"</string>
     <string name="battery_detail_info_title" msgid="4617514228447481336">"Desde a carga completa"</string>
@@ -3159,7 +3161,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"Tons"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Vibrações"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Ativar sons"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"Transcrição Instantânea"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"Legenda Instantânea"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"Transcrição automática"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Nunca"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3709,7 +3711,7 @@
     <string name="high_power_off" msgid="5906679734326490426">"Utilização otimizada da bateria"</string>
     <string name="high_power_system" msgid="739584574711292753">"A otimização de bateria não está disponível"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Não aplicar a otimização de bateria. Isso pode esgotar sua bateria mais rapidamente."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Permitir que o app sempre esteja em execução em segundo plano?"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Permitir execução contínua do app em segundo plano?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"A execução contínua do app <xliff:g id="APP_NAME">%1$s</xliff:g> em segundo plano pode reduzir a duração da bateria. \n\nVocê poderá alterar essa opção mais tarde em \"Configurar\" &gt; \"Apps e notificações\"."</string>
     <string name="battery_summary" msgid="4345690800899981339">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> de uso desde a última carga completa"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Gerenciamento de energia"</string>
@@ -3962,8 +3964,8 @@
     <string name="configure" msgid="8232696842838580549">"Configurar"</string>
     <string name="data_usage_other_apps" msgid="7002491980141402084">"Outros apps inclusos no uso"</string>
     <plurals name="data_saver_unrestricted_summary" formatted="false" msgid="6046013861315713697">
-      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> app autorizado a usar dados irrestritos quando a Economia de dados estiver ativada</item>
-      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> apps autorizados a usar dados irrestritos quando a Economia de dados estiver ativada</item>
+      <item quantity="one"><xliff:g id="COUNT">%1$d</xliff:g> app autorizado a usar dados ilimitados quando a Economia de dados estiver ativada</item>
+      <item quantity="other"><xliff:g id="COUNT">%1$d</xliff:g> apps autorizados a usar dados ilimitados quando a Economia de dados estiver ativada</item>
     </plurals>
     <string name="data_usage_title" msgid="7874606430902201083">"Dados primários"</string>
     <string name="data_usage_wifi_title" msgid="7161828479387766556">"Dados Wi‑Fi"</string>
@@ -3984,12 +3986,12 @@
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"Ver plano"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"Ver detalhes"</string>
     <string name="data_saver_title" msgid="7903308134514179256">"Economia de dados"</string>
-    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Dados irrestritos"</string>
+    <string name="unrestricted_data_saver" msgid="9139401849550738720">"Dados ilimitados"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"Os dados em segundo plano estão desativados"</string>
     <string name="data_saver_on" msgid="7281809065420480881">"Ativada"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"Desativada"</string>
     <string name="data_saver_switch_title" msgid="8244008132112735207">"Usar o recurso Economia de dados"</string>
-    <string name="unrestricted_app_title" msgid="4390661122069905122">"Uso irrestrito de dados"</string>
+    <string name="unrestricted_app_title" msgid="4390661122069905122">"Uso ilimitado de dados"</string>
     <string name="unrestricted_app_summary" msgid="2829141815077800483">"Permitir acesso irrestrito a dados quando a Economia de dados estiver ativada"</string>
     <string name="home_app" msgid="3695063566006954160">"App de início"</string>
     <string name="no_default_home" msgid="1518949210961918497">"Nenhuma Página inicial padrão"</string>
@@ -4052,8 +4054,8 @@
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Falha ao aplicar sobreposição"</string>
     <string name="special_access" msgid="1453926335914696206">"Acesso especial a apps"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> app pode usar dados irrestritos</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> apps podem usar dados irrestritos</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> app pode usar dados ilimitados</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> apps podem usar dados ilimitados</item>
     </plurals>
     <string name="special_access_more" msgid="7086690625048471400">"Ver mais"</string>
     <string name="confirm_convert_to_fbe_warning" msgid="4972595831034280189">"Quer mesmo limpar dados do usuário e converter em criptografia de arquivos?"</string>
@@ -4129,7 +4131,7 @@
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Para verificar a hora, as notificações e outras informações, pegue o smartphone."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Para verificar a hora, as notificações e outras informações, pegue o tablet."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Para verificar a hora, as notificações e outras informações, pegue o dispositivo."</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Tocar para verificar o smartphone"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Tocar na tela para verificar smartphone"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Tocar para verificar o tablet"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Tocar para verificar o dispositivo"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Para verificar a hora, as notificações e outras informações, toque na tela."</string>
@@ -4148,7 +4150,7 @@
     <string name="oem_lock_info_message" msgid="5090850412279403901">"Reinicie o dispositivo para ativar o recurso de proteção para dispositivo."</string>
     <string name="automatic_storage_manager_freed_bytes" msgid="7360443072390107772">"Total de <xliff:g id="SIZE">%1$s</xliff:g> disponibilizado\n\nÚltima execução em <xliff:g id="DATE">%2$s</xliff:g>"</string>
     <string name="web_action_enable_title" msgid="4462106633708675959">"Apps instantâneos"</string>
-    <string name="web_action_enable_summary" msgid="1729016644691793085">"Abrir links em apps, mesmo que eles não estejam instalados"</string>
+    <string name="web_action_enable_summary" msgid="1729016644691793085">"Abre links de apps, mesmo que eles não estejam instalados"</string>
     <string name="web_action_section_title" msgid="5563229447734734662">"Apps instantâneos"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"Preferências do Instant Apps"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"Apps instalados"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ro/arrays.xml b/tests/CarDeveloperOptions/res/values-ro/arrays.xml
index 39d046b..06c74ea 100644
--- a/tests/CarDeveloperOptions/res/values-ro/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ro/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"rulează în fundal"</item>
     <item msgid="6423861043647911030">"volum accesibilitate"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Locație"</item>
+    <item msgid="6656077694190491067">"Locație"</item>
+    <item msgid="8790228218278477369">"Locație"</item>
+    <item msgid="7836406246005211990">"Vibrare"</item>
+    <item msgid="3951439024549922598">"Citește agenda"</item>
+    <item msgid="8802152411647068">"Modifică agenda"</item>
+    <item msgid="229544934599698735">"Citește jurnalul de apeluri"</item>
+    <item msgid="7396102294405899613">"Modifică jurnalul de apeluri"</item>
+    <item msgid="3597797992398484655">"Citire calendar"</item>
+    <item msgid="2705975774250907343">"Modifică calendarul"</item>
+    <item msgid="4668747371441932697">"Locație"</item>
+    <item msgid="1487578921720243646">"Postează o notificare"</item>
+    <item msgid="4636080349724146638">"Locație"</item>
+    <item msgid="673510900286463926">"Apelează un telefon"</item>
+    <item msgid="542083422784609790">"Citiți mesaje SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Scrieți mesaje SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Primește mesaje SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Primește mesaje SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Primește mesaje SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Primește mesaje SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Trimite mesaje SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Citiți mesaje SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Scrieți mesaje SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modifică setările"</item>
+    <item msgid="8705854389991425629">"Desenează deasupra"</item>
+    <item msgid="5861356020344153651">"Accesează notificări"</item>
+    <item msgid="78432174621628659">"Cameră foto"</item>
+    <item msgid="3986116419882154794">"Înregistrează conținut audio"</item>
+    <item msgid="4516840825756409490">"Redă conținut audio"</item>
+    <item msgid="6811712502798183957">"Citește clipboardul"</item>
+    <item msgid="2780369012602289114">"Modifică clipboardul"</item>
+    <item msgid="2331359440170850868">"Butoane media"</item>
+    <item msgid="6133599737122751231">"Focalizare audio"</item>
+    <item msgid="6844485713404805301">"Volum principal"</item>
+    <item msgid="1600379420669104929">"Volum voce"</item>
+    <item msgid="6296768210470214866">"Volumul soneriei"</item>
+    <item msgid="510690696071629241">"Volum media"</item>
+    <item msgid="406861638631430109">"Volumul alarmei"</item>
+    <item msgid="4715864795872233884">"Volumul notificărilor"</item>
+    <item msgid="2311478519251301183">"Volum Bluetooth"</item>
+    <item msgid="5133991377896747027">"Păstrare în activitate"</item>
+    <item msgid="2464189519136248621">"Locație"</item>
+    <item msgid="2062677934050803037">"Locație"</item>
+    <item msgid="1735171933192715957">"Obțineți statistici de utilizare"</item>
+    <item msgid="1014093788778383554">"Activați/dezactivați microfonul"</item>
+    <item msgid="4199297950608622850">"Afișează semnalarea"</item>
+    <item msgid="2527962435313398821">"Proiectează conținutul media"</item>
+    <item msgid="5117506254221861929">"Activează serviciul VPN"</item>
+    <item msgid="8291198322681891160">"Scrie imaginea de fundal"</item>
+    <item msgid="7106921284621230961">"Structură de asistență"</item>
+    <item msgid="4496533640894624799">"Captură de ecran de asistență"</item>
+    <item msgid="2598847264853993611">"Citește starea telefonului"</item>
+    <item msgid="9215610846802973353">"Adaugă mesaje vocale"</item>
+    <item msgid="9186411956086478261">"Folosește SIP"</item>
+    <item msgid="6884763100104539558">"Procesează apelul de ieșire"</item>
+    <item msgid="125513972170580692">"Amprentă"</item>
+    <item msgid="2556071024281275619">"Senzori corporali"</item>
+    <item msgid="617168514928339387">"Citește transmisiile celulare"</item>
+    <item msgid="7134693570516523585">"Locație de testare"</item>
+    <item msgid="7224489175375229399">"Citește spațiul de stocare"</item>
+    <item msgid="8472735063903258202">"Scrie spațiul de stocare"</item>
+    <item msgid="4069276819909595110">"Activează ecranul"</item>
+    <item msgid="1228338896751121025">"Preia conturile"</item>
+    <item msgid="3181581793459233672">"Rulează în fundal"</item>
+    <item msgid="2340936043025374076">"Volum accesibilitate"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Scurtă"</item>
     <item msgid="4816511817309094890">"Medie"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Nu permiteți niciodată"</item>
     <item msgid="8184570120217958741">"Permiteți întotdeauna"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normală"</item>
+    <item msgid="5101233285497327432">"Moderată"</item>
+    <item msgid="1555861583162930714">"Scăzută"</item>
+    <item msgid="1719683776264798117">"Critică"</item>
+    <item msgid="1567326459340152525">"Necunoscută"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normală"</item>
+    <item msgid="6107138933849816768">"Moderată"</item>
+    <item msgid="182695359839047859">"Scăzută"</item>
+    <item msgid="8577246509202964244">"Critică"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Permanent"</item>
     <item msgid="167418068739176448">"Activitate principală"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ro/strings.xml b/tests/CarDeveloperOptions/res/values-ro/strings.xml
index f279356..0015526 100644
--- a/tests/CarDeveloperOptions/res/values-ro/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ro/strings.xml
@@ -84,8 +84,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Măriți sau micșorați textul de pe ecran."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Micșorați"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Măriți"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Exemplu de text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Minunatul Vrăjitor din Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Capitolul 11: Minunatul Oraș de Smarald Oz"</string>
@@ -1121,7 +1120,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Date mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Dacă rețeaua Wi‑Fi nu este disponibilă, folosiți rețeaua mobilă"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Dacă rețeaua mobilă nu este disponibilă, folosiți Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Apelați prin Wi‑Fi. Dacă pierdeți conexiunea Wi-Fi, apelul se încheie."</string>
@@ -3234,7 +3236,7 @@
     <string name="zen_mode_summary_combination" msgid="6960111215170691605">"<xliff:g id="MODE">%1$s</xliff:g>: <xliff:g id="EXIT_CONDITION">%2$s</xliff:g>"</string>
     <string name="zen_mode_visual_interruptions_settings_title" msgid="8378266552787406849">"Blocați întreruperile vizuale"</string>
     <string name="zen_mode_visual_signals_settings_subtitle" msgid="6608239691864638854">"Permiteți semnale vizuale"</string>
-    <string name="zen_mode_settings_category" msgid="5601680733422424922">"Când funcția „Nu deranja” este activată"</string>
+    <string name="zen_mode_settings_category" msgid="5601680733422424922">"Când modul Nu deranja este activat"</string>
     <string name="zen_mode_restrict_notifications_title" msgid="7486753018073540477">"Restricționați notificările"</string>
     <string name="zen_mode_restrict_notifications_mute" msgid="2673665450311184875">"Fără sunet de la notificări"</string>
     <string name="zen_mode_restrict_notifications_mute_summary" msgid="1696217042353376674">"Veți vedea notificările pe ecran"</string>
@@ -3273,7 +3275,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Activați acum"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Dezactivați acum"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"Funcția Nu deranja este activată până la <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Funcția Nu deranja rămâne activă până când o dezactivați"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Modul Nu deranja rămâne activ până îl dezactivați"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Modul Nu deranja a fost activat automat de un program (<xliff:g id="RULE_NAME">%s</xliff:g>)"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"Funcția Nu deranja a fost activată automat de o aplicație (<xliff:g id="APP_NAME">%s</xliff:g>)"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"Modul Nu deranja este activat pentru <xliff:g id="RULE_NAMES">%s</xliff:g> cu setări personalizate."</string>
@@ -3556,7 +3558,7 @@
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"mementouri"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"Permiteți evenimente"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"Permiteți aplicațiilor să ignore"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Excepțiile aplicației"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Excepții de aplicații"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="few">Notificările de la <xliff:g id="NUMBER">%1$d</xliff:g> aplicații pot modifica modul Nu deranja</item>
       <item quantity="other">Notificările de la <xliff:g id="NUMBER">%1$d</xliff:g> de aplicații pot modifica modul Nu deranja</item>
@@ -3684,7 +3686,7 @@
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> permisiune suplimentară</item>
     </plurals>
     <string name="runtime_permissions_summary_no_permissions_granted" msgid="3477934429220828771">"Nicio permisiune acordată"</string>
-    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Nicio permisiunea solicitată"</string>
+    <string name="runtime_permissions_summary_no_permissions_requested" msgid="3901636077467389637">"Nicio permisiune solicitată"</string>
     <string name="filter_all_apps" msgid="4042756539846043675">"Toate aplicațiile"</string>
     <string name="filter_enabled_apps" msgid="5888459261768538489">"Aplicații instalate"</string>
     <string name="filter_instant_apps" msgid="8087483282854072366">"Aplicații instantanee"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ru/arrays.xml b/tests/CarDeveloperOptions/res/values-ru/arrays.xml
index 8993349..6565854 100644
--- a/tests/CarDeveloperOptions/res/values-ru/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ru/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Не разрешать"</item>
     <item msgid="8184570120217958741">"Разрешать всегда"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Нормальное"</item>
+    <item msgid="5101233285497327432">"Пока хватает"</item>
+    <item msgid="1555861583162930714">"Низкая"</item>
+    <item msgid="1719683776264798117">"Высокое"</item>
+    <item msgid="1567326459340152525">"Неизвестно"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Нормальное"</item>
+    <item msgid="6107138933849816768">"Умеренное"</item>
+    <item msgid="182695359839047859">"Низкая"</item>
+    <item msgid="8577246509202964244">"Критическое"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Стабильное"</item>
     <item msgid="167418068739176448">"Наиболее частое действие"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ru/strings.xml b/tests/CarDeveloperOptions/res/values-ru/strings.xml
index 5b9a477..60d97fb 100644
--- a/tests/CarDeveloperOptions/res/values-ru/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ru/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Сделайте текст на экране мельче или крупнее."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Уменьшить"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Увеличить"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Принесите мне, пожалуйста, чашку кофе."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Пример текста"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Удивительный волшебник из страны Оз"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Глава 11. Изумрудный город страны Оз"</string>
@@ -955,7 +954,7 @@
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Домен"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Сертификат пользователя"</string>
     <string name="wifi_eap_identity" msgid="5280457017705738773">"Пользователь"</string>
-    <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Неизвестный"</string>
+    <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Анонимный пользователь"</string>
     <string name="wifi_password" msgid="6942983531275177771">"Пароль"</string>
     <string name="wifi_show_password" msgid="7878398590772942202">"Показать пароль"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"Диапазон частот Wi-Fi"</string>
@@ -990,7 +989,7 @@
     <string name="wifi_dpp_wifi_shared_with_device" msgid="5713765471758272471">"Устройство подключено к Wi‑Fi"</string>
     <string name="wifi_dpp_add_another_device" msgid="3698441567235301565">"Подключить другое устройство"</string>
     <string name="wifi_dpp_choose_different_network" msgid="128515107488187050">"Выбрать другую сеть Wi-Fi"</string>
-    <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Не удалось добавить устройство."</string>
+    <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Не удалось добавить устройство"</string>
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"Устройство найдено"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"Предоставление доступа к сети Wi‑Fi…"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"Подключение…"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобильный Интернет"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Использовать мобильную сеть, если сеть Wi‑Fi недоступна."</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Использовать Wi‑Fi, если мобильная сеть недоступна."</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Звонки по Wi‑Fi. Если подключение прервется, звонок будет завершен."</string>
@@ -1283,7 +1285,7 @@
     <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"Во время зарядки или при подключении к док-станции"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"Всегда"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"Во время зарядки"</string>
-    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"В док-станции"</string>
+    <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"На док-станции"</string>
     <string name="screensaver_settings_summary_never" msgid="3995259444981620707">"Никогда"</string>
     <string name="screensaver_settings_summary_off" msgid="6119947316484763131">"Отключено"</string>
     <string name="screensaver_settings_disabled_prompt" msgid="1897518064782596947">"Чтобы настроить поведение телефона при подключении к док-станции и в спящем режиме, включите заставку."</string>
@@ -1349,7 +1351,7 @@
     <string name="security_patch" msgid="483709031051932208">"Последнее обновление системы безопасности"</string>
     <string name="model_info" msgid="1729765474260797594">"Модель"</string>
     <string name="model_summary" msgid="8781425868254352168">"Модель: %1$s"</string>
-    <string name="hardware_info" msgid="174270144950621815">"Модель и оборудование"</string>
+    <string name="hardware_info" msgid="174270144950621815">"Модель и аппаратное обеспечение"</string>
     <string name="hardware_revision" msgid="3315744162524354246">"Версия аппаратного обеспечения"</string>
     <string name="fcc_equipment_id" msgid="8681995718533066093">"Идентификатор оборудования"</string>
     <string name="baseband_version" msgid="9115560821840757786">"Прошивка модуля связи"</string>
@@ -1791,7 +1793,7 @@
     <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"Начертите ключ разблокировки"</string>
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"Для справки нажмите \"Меню\"."</string>
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"По завершении отпустите палец"</string>
-    <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"Соедините не менее <xliff:g id="NUMBER">%d</xliff:g> точек"</string>
+    <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"Соедините не менее <xliff:g id="NUMBER">%d</xliff:g> точек."</string>
     <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"Графический ключ сохранен"</string>
     <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"Начертите ключ ещё раз"</string>
     <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"Ваш новый ключ разблокировки"</string>
@@ -2340,7 +2342,7 @@
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Телефон используется больше, чем обычно"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Планшет используется больше, чем обычно"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Устройство используется больше, чем обычно"</string>
-    <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Заряд батареи расходуется быстрее, чем обычно."</string>
+    <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Заряд батареи расходуется быстрее, чем обычно"</string>
     <string name="battery_tip_dialog_message" product="default" msgid="8453700079047810964">"Телефон используется больше, чем обычно. Батарея скоро разрядится.\n\nС момента последней зарядки активнее всего использовались следующие приложения с высоким потреблением энергии:"</string>
     <string name="battery_tip_dialog_message" product="tablet" msgid="6489981050645444068">"Планшет используется больше, чем обычно. Батарея скоро разрядится.\n\nС момента последней зарядки активнее всего использовались следующие приложения с высоким потреблением энергии:"</string>
     <string name="battery_tip_dialog_message" product="device" msgid="6348123094674390337">"Устройство используется больше, чем обычно. Батарея скоро разрядится.\n\nС момента последней зарядки активнее всего использовались следующие приложения с высоким потреблением энергии:"</string>
@@ -2523,7 +2525,7 @@
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"С учетом уровня заряда"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Включать, если высока вероятность, что уровня заряда не хватит до подзарядки"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Включать при уровне заряда <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Создать расписание"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Задать расписание"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Выключать при полном заряде"</string>
     <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Режим энергосбережения отключается, когда уровень заряда достигает <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Режим энергосбережения отключается, когда уровень заряда достигает <xliff:g id="PERCENT">%1$s</xliff:g>."</string>
@@ -2641,8 +2643,8 @@
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"Отключить и удалить"</string>
     <string name="select_device_admin_msg" msgid="4173769638399075387">"Приложения администратора"</string>
     <string name="no_device_admins" msgid="4129231900385977460">"Нет доступных приложений администратора устройства"</string>
-    <string name="personal_device_admin_title" msgid="759440849188565661">"Личный"</string>
-    <string name="managed_device_admin_title" msgid="8021522755492551726">"Рабочий"</string>
+    <string name="personal_device_admin_title" msgid="759440849188565661">"Личные"</string>
+    <string name="managed_device_admin_title" msgid="8021522755492551726">"Рабочие"</string>
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"Ограничение доступа к SMS и списку вызовов"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"Доступ к SMS и списку вызовов есть только у приложений для звонков и обмена сообщениями, используемых по умолчанию"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"Нет агентов доверия."</string>
@@ -3831,7 +3833,7 @@
     <string name="high_power_prompt_body" msgid="8067395096053552289">"Если приложение \"<xliff:g id="APP_NAME">%1$s</xliff:g>\" сможет запускаться в фоновом режиме, это увеличит расход заряда батареи.\n\nЭту функцию можно отключить, открыв Настройки &gt; Приложения и уведомления."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Использовано с момента последней полной зарядки: <xliff:g id="PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Управление питанием"</string>
-    <string name="no_battery_summary" msgid="4105932628367471314">"Батарея с момента последней полной зарядки не расходовалась"</string>
+    <string name="no_battery_summary" msgid="4105932628367471314">"С момента последней полной зарядки батарея не использовалась"</string>
     <string name="app_notification_preferences" msgid="5154466638524523201">"Настройки приложения"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"Показать SystemUI Tuner"</string>
     <string name="additional_permissions" msgid="3142290772324571654">"Ещё разрешения"</string>
@@ -4184,10 +4186,10 @@
     <string name="overlay_toast_failed_to_apply" msgid="5692251825129250040">"Не удалось применить наложение"</string>
     <string name="special_access" msgid="1453926335914696206">"Специальный доступ"</string>
     <plurals name="special_access_summary" formatted="false" msgid="5182092345063909346">
-      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> приложение без ограничений мобильного Интернета</item>
-      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> приложения без ограничений мобильного Интернета</item>
-      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> приложений без ограничений мобильного Интернета</item>
-      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> приложения без ограничений мобильного Интернета</item>
+      <item quantity="one"><xliff:g id="COUNT">%d</xliff:g> приложение без ограничений на мобильный Интернет</item>
+      <item quantity="few"><xliff:g id="COUNT">%d</xliff:g> приложения без ограничений на мобильный Интернет</item>
+      <item quantity="many"><xliff:g id="COUNT">%d</xliff:g> приложений без ограничений на мобильный Интернет</item>
+      <item quantity="other"><xliff:g id="COUNT">%d</xliff:g> приложения без ограничений на мобильный Интернет</item>
     </plurals>
     <string name="special_access_more" msgid="7086690625048471400">"Ещё"</string>
     <string name="confirm_convert_to_fbe_warning" msgid="4972595831034280189">"Удалить пользовательские данные и перейти к шифрованию?"</string>
diff --git a/tests/CarDeveloperOptions/res/values-si/arrays.xml b/tests/CarDeveloperOptions/res/values-si/arrays.xml
index e348b4c..c845711 100644
--- a/tests/CarDeveloperOptions/res/values-si/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-si/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"පසුබිමෙහි ධාවනය"</item>
     <item msgid="6423861043647911030">"ප්‍රවේශ්‍යතා හඬ පරිමාව"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ස්ථානය"</item>
+    <item msgid="6656077694190491067">"ස්ථානය"</item>
+    <item msgid="8790228218278477369">"ස්ථානය"</item>
+    <item msgid="7836406246005211990">"කම්පනය වීම"</item>
+    <item msgid="3951439024549922598">"සම්බන්ධතා කියවන්න"</item>
+    <item msgid="8802152411647068">"සම්බන්ධතා වෙනස් කරන්න"</item>
+    <item msgid="229544934599698735">"ඇමතුම් ලොගය කියවන්න"</item>
+    <item msgid="7396102294405899613">"ඇමතුම් ලොගය වෙනස් කරන්න"</item>
+    <item msgid="3597797992398484655">"දින දර්ශනය කියවන්න"</item>
+    <item msgid="2705975774250907343">"දින දර්ශනය වෙනස් කරන්න"</item>
+    <item msgid="4668747371441932697">"ස්ථානය"</item>
+    <item msgid="1487578921720243646">"පසු දැනුම්දීම"</item>
+    <item msgid="4636080349724146638">"ස්ථානය"</item>
+    <item msgid="673510900286463926">"දුරකතනය අමතන්න"</item>
+    <item msgid="542083422784609790">"SMS/MMS කියවන්න"</item>
+    <item msgid="1033780373029588436">"SMS/MMS ලියන්න"</item>
+    <item msgid="5647111115517787488">"SMS/MMS ලැබීම"</item>
+    <item msgid="8591105601108455893">"SMS/MMS ලැබීම"</item>
+    <item msgid="7730995008517841903">"SMS/MMS ලැබීම"</item>
+    <item msgid="2613033109026626086">"SMS/MMS ලැබීම"</item>
+    <item msgid="3037159047591081136">"SMS/MMS යවන්න"</item>
+    <item msgid="4726682243833913568">"SMS/MMS කියවන්න"</item>
+    <item msgid="6555678522277865572">"SMS/MMS ලියන්න"</item>
+    <item msgid="6981734935578130884">"සැකසුම් වෙනස් කරන්න"</item>
+    <item msgid="8705854389991425629">"උඩ අඳින්න"</item>
+    <item msgid="5861356020344153651">"ප්‍රවේශ දැනුම්දීම්"</item>
+    <item msgid="78432174621628659">"කැමරාව"</item>
+    <item msgid="3986116419882154794">"ශ්‍රව්‍ය තැටිගත කරන්න"</item>
+    <item msgid="4516840825756409490">"ශ්‍රව්‍ය ධාවනය කරන්න"</item>
+    <item msgid="6811712502798183957">"පසුරු පුවරුව කියවන්න"</item>
+    <item msgid="2780369012602289114">"පසුරු පුවරුව වෙනස්කරන්න"</item>
+    <item msgid="2331359440170850868">"මාධ්‍ය බොත්තම"</item>
+    <item msgid="6133599737122751231">"ශ්‍රව්‍ය අවධානය"</item>
+    <item msgid="6844485713404805301">"උසස් ශබ්දය"</item>
+    <item msgid="1600379420669104929">"හඬ ශබ්දය"</item>
+    <item msgid="6296768210470214866">"නාද ශබ්දය"</item>
+    <item msgid="510690696071629241">"මාධ්‍ය ශබ්දය"</item>
+    <item msgid="406861638631430109">"සීනුවේ ශබ්දය"</item>
+    <item msgid="4715864795872233884">"දැනුම්දීමේ ශබ්ද ත්‍රීවතාව"</item>
+    <item msgid="2311478519251301183">"බ්ලූටූත් ශබ්දය"</item>
+    <item msgid="5133991377896747027">"අවදිව සිටින්න"</item>
+    <item msgid="2464189519136248621">"ස්ථානය"</item>
+    <item msgid="2062677934050803037">"ස්ථානය"</item>
+    <item msgid="1735171933192715957">"භාවිත කිරීමේ තත්ත්ව ලබාගන්න"</item>
+    <item msgid="1014093788778383554">"මයික්‍රෝෆෝනය නිශ්ශබ්ද/නිශ්ශබ්ද නැති කරන්න"</item>
+    <item msgid="4199297950608622850">"ටෝස්ට් පෙන්වීම"</item>
+    <item msgid="2527962435313398821">"මාධ්‍ය ව්‍යාපෘතිය"</item>
+    <item msgid="5117506254221861929">"VPN සක්‍රිය කරන්න"</item>
+    <item msgid="8291198322681891160">"වෝල්පේපරය ලියන්න"</item>
+    <item msgid="7106921284621230961">"ව්‍යුහයට සහාය"</item>
+    <item msgid="4496533640894624799">"තිර රුවට සහාය"</item>
+    <item msgid="2598847264853993611">"දුරකථන තත්ත්වය කියවීම"</item>
+    <item msgid="9215610846802973353">"හඬ තැපෑල එක් කිරීම"</item>
+    <item msgid="9186411956086478261">"SIP භාවිතය"</item>
+    <item msgid="6884763100104539558">"පිටතට යන ඇමතුම් ක්‍රියාවලිය"</item>
+    <item msgid="125513972170580692">"ඇඟිලි සලකුණ"</item>
+    <item msgid="2556071024281275619">"ශරීර සංවේදක"</item>
+    <item msgid="617168514928339387">"සෙල් විකාශන කියවීම"</item>
+    <item msgid="7134693570516523585">"ව්‍යාජ ස්ථාන"</item>
+    <item msgid="7224489175375229399">"ගබඩාව කියවීම"</item>
+    <item msgid="8472735063903258202">"ගබඩාව ලිවීම"</item>
+    <item msgid="4069276819909595110">"තිරය ක්‍රියාත්මක කිරීම"</item>
+    <item msgid="1228338896751121025">"ගිණුම් ලබා ගැනීම"</item>
+    <item msgid="3181581793459233672">"පසුබිමෙහි ධාවනය"</item>
+    <item msgid="2340936043025374076">"ප්‍රවේශ්‍යතා හඬ පරිමාව"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"කොට"</item>
     <item msgid="4816511817309094890">"මධ්‍යම"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"කිසිවිටෙකත් අවසර නොදෙන්න"</item>
     <item msgid="8184570120217958741">"සැමවිටම ඉඩ දෙන්න"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"සාමාන්‍ය"</item>
+    <item msgid="5101233285497327432">"මධ්‍යම"</item>
+    <item msgid="1555861583162930714">"අඩු"</item>
+    <item msgid="1719683776264798117">"අවදානම්"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"සාමාන්‍ය"</item>
+    <item msgid="6107138933849816768">"මධ්‍යම"</item>
+    <item msgid="182695359839047859">"අඩු"</item>
+    <item msgid="8577246509202964244">"අවදානම්"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ස්ථාවර"</item>
     <item msgid="167418068739176448">"උඩම ක්‍රියාකාරකම"</item>
diff --git a/tests/CarDeveloperOptions/res/values-si/strings.xml b/tests/CarDeveloperOptions/res/values-si/strings.xml
index 19db2d6..1861fb5 100644
--- a/tests/CarDeveloperOptions/res/values-si/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-si/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"තිරය මත පෙළ වඩාත් කුඩා හෝ විශාල කරන්න."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"වඩා කුඩා කරන්න"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"වඩා විශාල කරන්න"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ආදර්ශ පෙළ"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11වන පරිච්ඡේදය: The Wonderful Emerald City of Oz"</string>
@@ -378,7 +377,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="7818169326621327628">"පූරණය වේ…"</string>
     <string name="account_settings_title" msgid="7870321267198486578">"ගිණුම්"</string>
     <string name="security_settings_title" msgid="8228075165942416425">"ආරක්ෂාව"</string>
-    <string name="encryption_and_credential_settings_title" msgid="6911729638397745353">"සංකේතනය සහ අක්තපත්‍ර"</string>
+    <string name="encryption_and_credential_settings_title" msgid="6911729638397745353">"සංකේතනය, අක්තපත්‍ර"</string>
     <string name="encryption_and_credential_settings_summary" product="default" msgid="468749700109808546">"දුරකතනය සංකේතනය කර ඇත"</string>
     <string name="decryption_settings_summary" product="default" msgid="7401802133199522441">"දුරකතනය සංකේතනය කර නැත"</string>
     <string name="encryption_and_credential_settings_summary" product="tablet" msgid="8170667308598998791">"උපාංගය සංකේතිතයි"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"ජංගම"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi නොලැබේ නම්, ජංගම ජාලය භාවිත කරන්න"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ජංගම ජාලය නොලැබේ නම්, Wi-Fi භාවිත කරන්න"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi ඔස්සේ ඇමතුම. Wi‑Fi අහිමි වූයේ නම්, ඇමතුම අවසන් වෙයි."</string>
@@ -2574,7 +2576,7 @@
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"SMS සහ ඇමතුම් ලොග ප්‍රවේශය සීමා කරන්න"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"පෙරනිමි දුරකථන සහ පණිවිඩකරණ යෙදුම්වලට පමණක් SMS සහ ඇමතුම් ලොග අවසර ඇත"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"විශ්වාසනීය ඒජන්තවරුන් නැත"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"උපාංගය පරිපාලක යෙදුම සක්‍රිය කරන්නද?"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"උපාංග පරිපාලක යෙදුම සක්‍රිය කර.?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"මෙම උපාංගය පරිපාලක යෙදුම සක්‍රිය කරන්න"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"උපාංග පරිපාලක"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"මෙම පරිපාලකයා සක්‍රිය කිරීමෙන් <xliff:g id="APP_NAME">%1$s</xliff:g> යෙදුමට පහත ක්‍රියාවන් සිදුකිරීමට අවස්තාව ලබාදේ:"</string>
diff --git a/tests/CarDeveloperOptions/res/values-sk/arrays.xml b/tests/CarDeveloperOptions/res/values-sk/arrays.xml
index fb66e63..2789ee1 100644
--- a/tests/CarDeveloperOptions/res/values-sk/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-sk/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"spustenie na pozadí"</item>
     <item msgid="6423861043647911030">"objem aplikácií dostupnosti"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Poloha"</item>
+    <item msgid="6656077694190491067">"Poloha"</item>
+    <item msgid="8790228218278477369">"Poloha"</item>
+    <item msgid="7836406246005211990">"Vibrovanie"</item>
+    <item msgid="3951439024549922598">"Čítanie kontaktov"</item>
+    <item msgid="8802152411647068">"Úprava kontaktov"</item>
+    <item msgid="229544934599698735">"Čítanie denníka hovorov"</item>
+    <item msgid="7396102294405899613">"Úprava denníka hovorov"</item>
+    <item msgid="3597797992398484655">"Čítanie kalendára"</item>
+    <item msgid="2705975774250907343">"Úprava kalendára"</item>
+    <item msgid="4668747371441932697">"Poloha"</item>
+    <item msgid="1487578921720243646">"Upozornenie na príspevok"</item>
+    <item msgid="4636080349724146638">"Poloha"</item>
+    <item msgid="673510900286463926">"Volanie na telefón"</item>
+    <item msgid="542083422784609790">"Čítanie SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Písanie SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Príjem SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Príjem SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Príjem SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Príjem SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Odosielanie SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Čítanie SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Písanie SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Úprava nastavení"</item>
+    <item msgid="8705854389991425629">"Vykreslenie navrch"</item>
+    <item msgid="5861356020344153651">"Prístup k upozorneniam"</item>
+    <item msgid="78432174621628659">"Fotoaparát"</item>
+    <item msgid="3986116419882154794">"Nahrávať zvuk"</item>
+    <item msgid="4516840825756409490">"Prehrať zvuk"</item>
+    <item msgid="6811712502798183957">"Načítať schránku"</item>
+    <item msgid="2780369012602289114">"Upraviť schránku"</item>
+    <item msgid="2331359440170850868">"Tlačidlá médií"</item>
+    <item msgid="6133599737122751231">"Zameranie zvuku"</item>
+    <item msgid="6844485713404805301">"Hlavná hlasitosť"</item>
+    <item msgid="1600379420669104929">"Hlasitosť hlasu"</item>
+    <item msgid="6296768210470214866">"Hlasitosť zvonenia"</item>
+    <item msgid="510690696071629241">"Hlasitosť médií"</item>
+    <item msgid="406861638631430109">"Hlasitosť budíkov"</item>
+    <item msgid="4715864795872233884">"Hlasitosť upozornení"</item>
+    <item msgid="2311478519251301183">"Hlasitosť zariadenia Bluetooth"</item>
+    <item msgid="5133991377896747027">"Zakázať režim spánku"</item>
+    <item msgid="2464189519136248621">"Umiestnenie"</item>
+    <item msgid="2062677934050803037">"Poloha"</item>
+    <item msgid="1735171933192715957">"Získanie štatistiky využívania"</item>
+    <item msgid="1014093788778383554">"Stlmenie alebo zrušenie stlmenia mikrofónu"</item>
+    <item msgid="4199297950608622850">"Zobrazenie oznamu"</item>
+    <item msgid="2527962435313398821">"Projekcia médií"</item>
+    <item msgid="5117506254221861929">"Aktivácia VPN"</item>
+    <item msgid="8291198322681891160">"Zápis tapety"</item>
+    <item msgid="7106921284621230961">"Asistujúca štruktúra"</item>
+    <item msgid="4496533640894624799">"Asistujúca snímka obrazovky"</item>
+    <item msgid="2598847264853993611">"Čítanie stavu telefónu"</item>
+    <item msgid="9215610846802973353">"Pridanie hlasovej schránky"</item>
+    <item msgid="9186411956086478261">"Používanie volania SIP"</item>
+    <item msgid="6884763100104539558">"Spracovanie odchádzajúcich hovorov"</item>
+    <item msgid="125513972170580692">"Odtlačok prsta"</item>
+    <item msgid="2556071024281275619">"Telesné senzory"</item>
+    <item msgid="617168514928339387">"Čítať správy informačných služieb"</item>
+    <item msgid="7134693570516523585">"Napodobnenie miesta"</item>
+    <item msgid="7224489175375229399">"Čítanie úložiska"</item>
+    <item msgid="8472735063903258202">"Zápis do úložiska"</item>
+    <item msgid="4069276819909595110">"Zapnutie obrazovky"</item>
+    <item msgid="1228338896751121025">"Získanie účtov"</item>
+    <item msgid="3181581793459233672">"Spustenie na pozadí"</item>
+    <item msgid="2340936043025374076">"Objem aplikácií dostupnosti"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Krátke"</item>
     <item msgid="4816511817309094890">"Stredná"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Nikdy nepovoliť"</item>
     <item msgid="8184570120217958741">"Vždy povoliť"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normálne"</item>
+    <item msgid="5101233285497327432">"Stredný"</item>
+    <item msgid="1555861583162930714">"Nízka"</item>
+    <item msgid="1719683776264798117">"Kritický"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normálny"</item>
+    <item msgid="6107138933849816768">"Stredný"</item>
+    <item msgid="182695359839047859">"Nízka"</item>
+    <item msgid="8577246509202964244">"Kritické"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Pretrvávajúci"</item>
     <item msgid="167418068739176448">"Najčastejšia aktivita"</item>
@@ -401,8 +477,8 @@
     <item msgid="1008268820118852416">"Považovať za nemeranú sieť"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Používať randomizovanú adresu MAC (predvolené)"</item>
-    <item msgid="214234417308375326">"Použiť adresu MAC zariadenia"</item>
+    <item msgid="6545683814310036454">"Použiť náhodnú MAC (predvolené)"</item>
+    <item msgid="214234417308375326">"Používať adresu MAC zariadenia"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
     <item msgid="7426878022650940844">"Nie"</item>
diff --git a/tests/CarDeveloperOptions/res/values-sk/strings.xml b/tests/CarDeveloperOptions/res/values-sk/strings.xml
index e64d4f8..993b52c 100644
--- a/tests/CarDeveloperOptions/res/values-sk/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-sk/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Zväčšite alebo zmenšite text na obrazovke."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Zmenšiť"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Zväčšiť"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Ukážkový text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Čarodejník z krajiny Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. kapitola: Nádherné smaragdové mesto"</string>
@@ -644,7 +643,7 @@
     <string name="unlock_footer_medium_complexity_requested" msgid="5004825329461874633">"<xliff:g id="APP_NAME">%1$s</xliff:g> odporúča nový kód PIN alebo heslo, bez ktorého nemusí fungovať podľa očakávaní"</string>
     <string name="unlock_footer_low_complexity_requested" msgid="513212093196833566">"<xliff:g id="APP_NAME">%1$s</xliff:g> odporúča nový vzor, PIN alebo heslo, bez ktorého nemusí fungovať podľa očakávaní"</string>
     <string name="unlock_footer_none_complexity_requested" msgid="1669550050597044896">"<xliff:g id="APP_NAME">%1$s</xliff:g> odporúča nová zámku obrazovky"</string>
-    <string name="lock_failed_attempts_before_wipe" msgid="7565412834122130877">"Skúste to znova. Pokus <xliff:g id="CURRENT_ATTEMPTS">%1$d</xliff:g> z <xliff:g id="TOTAL_ATTEMPTS">%2$d</xliff:g>."</string>
+    <string name="lock_failed_attempts_before_wipe" msgid="7565412834122130877">"Skúste to znova. <xliff:g id="CURRENT_ATTEMPTS">%1$d</xliff:g>. z <xliff:g id="TOTAL_ATTEMPTS">%2$d</xliff:g> pokusov."</string>
     <string name="lock_last_attempt_before_wipe_warning_title" msgid="7853820095898368793">"Vaše dáta budú odstránené"</string>
     <string name="lock_last_pattern_attempt_before_wipe_device" msgid="1021644947949306054">"Ak pri ďalšom pokuse zadáte nesprávny vzor, dáta tohto zariadenia budú odstránené"</string>
     <string name="lock_last_pin_attempt_before_wipe_device" msgid="3823600293847594141">"Ak pri ďalšom pokuse zadáte nesprávny kód PIN, dáta tohto zariadenia budú odstránené"</string>
@@ -653,7 +652,7 @@
     <string name="lock_last_pin_attempt_before_wipe_user" msgid="7833852187363499906">"Ak pri ďalšom pokuse zadáte nesprávny kód PIN, tento používateľ bude odstránený"</string>
     <string name="lock_last_password_attempt_before_wipe_user" msgid="8979742220140001204">"Ak pri ďalšom pokuse zadáte nesprávne heslo, tento používateľ bude odstránený"</string>
     <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Ak pri ďalšom pokuse zadáte nesprávny vzor, váš pracovný profil a jeho dáta budú odstránené"</string>
-    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Ak pri ďalšom pokuse zadáte nesprávny kód PIN, váš pracovný profil a jeho dáta budú odstránené."</string>
+    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Ak pri ďalšom pokuse zadáte nesprávny PIN, váš pracovný profil a jeho dáta budú odstránené"</string>
     <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Ak pri ďalšom pokuse zadáte nesprávne heslo, váš pracovný profil a jeho dáta budú odstránené"</string>
     <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Príliš veľa chybných pokusov. Dáta tohto zariadenia budú odstránené."</string>
     <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"Príliš veľa chybných pokusov. Tento používateľ bude odstránený."</string>
@@ -943,14 +942,14 @@
     <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Ak váš smerovač nevysiela ID určitej siete, ale chcete sa k nej pripojiť v budúcnosti, môžete ju nastaviť ako skrytú.\n\nMôže tým vzniknúť bezpečnostné riziko, pretože váš telefón bude pravidelne vysielať signál, aby sieť našiel.\n\nNastavením danej siete ako skrytej nezmeníte nastavenia smerovača."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Sila signálu"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Stav"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"Rýchlosť prenosu dát"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Rýchlosť pripojenia (prijímanie)"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"Rýchlosť posielania dát"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Rýchlosť prijímania dát"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Frekvencia"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"Adresa IP"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Uložené prostredníctvom siete"</string>
     <string name="passpoint_content" msgid="340527524510304327">"Poverenia: <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"Metóda EAP"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"Overenie – 2. fáza"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"Druhá fáza overenia"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"Certifikát CA"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Doména"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Certifikát používateľa"</string>
@@ -974,7 +973,7 @@
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Skenovanie QR kódu"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Ak sa chcete pripojiť k sieti <xliff:g id="SSID">%1$s</xliff:g>, vycentrujte QR kód nižšie"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Pripojte sa k sieti Wi‑Fi naskenovaním QR kódu"</string>
-    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Zdieľanie Wi‑Fi"</string>
+    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Zdieľať Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Ak sa chcete pripojiť k sieti <xliff:g id="SSID">%1$s</xliff:g> a zdieľať heslo, naskenujte tento QR kód"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Ak sa chcete pripojiť k sieti <xliff:g id="SSID">%1$s</xliff:g>, naskenujte tento QR kód"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"QR kód sa nepodarilo prečítať. Opätovne ho vycentrujte a skúste to znova."</string>
@@ -987,7 +986,7 @@
     <string name="wifi_dpp_choose_network" msgid="6251424431594491691">"Výber siete"</string>
     <string name="wifi_dpp_choose_network_to_connect_device" msgid="6385259857886784285">"Ak chcete pripojiť svoje zariadenie, vyberte sieť"</string>
     <string name="wifi_dpp_add_device_to_wifi" msgid="6454198064645462446">"Pridať toto zariadenie do siete <xliff:g id="SSID">%1$s</xliff:g>?"</string>
-    <string name="wifi_dpp_wifi_shared_with_device" msgid="5713765471758272471">"So zariadením bola zdieľaná sieť Wi‑Fi"</string>
+    <string name="wifi_dpp_wifi_shared_with_device" msgid="5713765471758272471">"Wi‑Fi sa zdieľa so zariadením"</string>
     <string name="wifi_dpp_add_another_device" msgid="3698441567235301565">"Pridať ďalšie zariadenie"</string>
     <string name="wifi_dpp_choose_different_network" msgid="128515107488187050">"Vybrať inú sieť"</string>
     <string name="wifi_dpp_could_not_add_device" msgid="4966109556543584813">"Zariadenie sa nepodarilo pridať"</string>
@@ -1103,10 +1102,10 @@
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"Zapína sa hotspot <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>…"</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"Iné zariadenia sa môžu pripojiť k hotspotu <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Heslo hotspotu"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Pásmo pre prístupový bod"</string>
+    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Pásmo prístup. bodu"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Použite hotspot na vytvorenie siete Wi‑Fi pre ostatné zariadenia. Hotspot poskytuje internet pomocou mobilného dátového pripojenia. Môžu vám byť účtované ďalšie poplatky za mobilné dáta."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Aplikácie tiež môžu vytvoriť hostpot na zdieľanie obsahu so zariadeniami v okolí."</string>
-    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Automatické vypínanie hotspotu"</string>
+    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Hotspot automaticky vypínať"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"Ak nebudú pripojené žiadne zariadenia, hotspot Wi‑Fi sa vypne"</string>
     <string name="wifi_tether_starting" msgid="7676952148471297900">"Prebieha zapínanie hotspotu..."</string>
     <string name="wifi_tether_stopping" msgid="7478561853791953349">"Prebieha vypínanie hotspotu..."</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi‑Fi"</item>
+    <item msgid="2271962426654621656">"Mobilné dáta"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"V prípade nedostupnosti siete Wi‑Fi použiť mobilnú sieť"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"V prípade nedostupnosti mobilnej siete použiť Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Volanie cez Wi‑Fi. Keď sa Wi‑Fi preruší, hovor sa ukončí."</string>
@@ -1249,7 +1251,7 @@
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Časový plán"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Nikdy"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Zapnuté vo vybranom čase"</string>
-    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Zapnuté od západu do východu slnka"</string>
+    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Od západu do východu slnka"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"Čas začatia"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Čas ukončenia"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"Stav"</string>
@@ -1665,7 +1667,7 @@
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Internetové pripojenie zariadenia <xliff:g id="DEVICE_NAME">%1$d</xliff:g> sa zdieľa cez Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Maximálny počet zariadení na zdieľanie dátového pripojenia: <xliff:g id="MAXCONNECTION">%1$d</xliff:g>."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"Ukončí sa zdieľané dát. pripojenie zariad. <xliff:g id="DEVICE_NAME">%1$s</xliff:g>."</string>
-    <string name="tethering_footer_info" msgid="8019555174339154124">"Hotspot a tethering umožňujú poskytovať internet iným zariadeniam prostredníctvom mobilného dátového pripojenia. Aplikácie tiež môžu vytvoriť hostpot na zdieľanie obsahu so zariadeniami v okolí."</string>
+    <string name="tethering_footer_info" msgid="8019555174339154124">"Hotspot a tethering umožňujú poskytovať internet iným zariadeniam prostredníctvom vášho mobilného dátového pripojenia. Aplikácie tiež môžu vytvárať hotspot na zdieľanie obsahu so zariadeniami v okolí."</string>
     <string name="tethering_help_button_text" msgid="7653022000284543996">"Pomocník"</string>
     <string name="network_settings_title" msgid="8516526011407061679">"Mobilná sieť"</string>
     <string name="manage_mobile_plan_title" msgid="3312016665522553062">"Mobilný plán"</string>
@@ -1768,7 +1770,7 @@
     <string name="lockpassword_confirm_your_pin_generic" msgid="8732268389177735264">"Ak chcete pokračovať, zadajte PIN zariadenia"</string>
     <string name="lockpassword_confirm_your_password_generic" msgid="6304552647060899594">"Ak chcete pokračovať, zadajte heslo zariadenia"</string>
     <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"Ak chcete pokračovať, použite pracovný bezpečnostný vzor"</string>
-    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"Ak chcete pokračovať, zadajte pracovný kód PIN"</string>
+    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"Pre pokračovanie zadajte svoj pracovný PIN"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"Ak chcete pokračovať, zadajte pracovné heslo"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="1014214190135045781">"Zadajte bezpečnostný vzor zariadenia a získajte vyššiu mieru zabezpečenia"</string>
     <string name="lockpassword_strong_auth_required_device_pin" msgid="24030584350601016">"Zadajte kód PIN zariadenia a získajte vyššiu mieru zabezpečenia"</string>
@@ -1810,7 +1812,7 @@
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"Nastaviť bezpečnostný vzor"</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"Zmena bezpečnostného vzoru"</string>
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"Bezpečnostný vzor obrazovky nakreslite takto"</string>
-    <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="3043127997770535921">"Príliš veľa nesprávnych pokusov. Skúste to znova o <xliff:g id="NUMBER">%d</xliff:g> s."</string>
+    <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="3043127997770535921">"Príliš veľa chybných pokusov. Skúste to znova o <xliff:g id="NUMBER">%d</xliff:g> s."</string>
     <string name="activity_not_found" msgid="3492413375341165453">"Aplikácia nie je v telefóne nainštalovaná."</string>
     <string name="lock_settings_profile_title" msgid="3928992050074556160">"Zabezpečenie pracovného profilu"</string>
     <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Zámka obrazovky pre pracovný profil"</string>
@@ -2076,14 +2078,14 @@
     <string name="usage_time_label" msgid="5615725415876461039">"Doba použitia"</string>
     <string name="accessibility_settings" msgid="9140621093888234485">"Dostupnosť"</string>
     <string name="accessibility_settings_title" msgid="1687226556576913576">"Nastavenia dostupnosti"</string>
-    <string name="accessibility_settings_summary" msgid="5742379519336396561">"Čítačky obrazovky, obrazovka, ovládacie prvky"</string>
+    <string name="accessibility_settings_summary" msgid="5742379519336396561">"Čítačky obrazovky, obrazovka, doplnkové ovládanie"</string>
     <string name="vision_settings_title" msgid="7315352351051423944">"Pre slabozrakých"</string>
     <string name="vision_settings_description" msgid="3476589459009287332">"Zariadenie môžete prispôsobiť, aby zodpovedalo vašim potrebám. Tieto funkcie dostupnosti môžete neskôr zmeniť v Nastaveniach."</string>
     <string name="vision_settings_suggestion_title" msgid="7268661419110951128">"Zmeniť veľkosť písma"</string>
     <string name="screen_reader_category_title" msgid="6300714148519645544">"Čítačky obrazovky"</string>
     <string name="audio_and_captions_category_title" msgid="6140472938769619212">"Zvuk a text na obrazovke"</string>
     <string name="display_category_title" msgid="545168481672250195">"Zobrazenie"</string>
-    <string name="interaction_control_category_title" msgid="8775039211811947683">"Interaktívne ovládanie"</string>
+    <string name="interaction_control_category_title" msgid="8775039211811947683">"Doplnkové ovládanie"</string>
     <string name="user_installed_services_category_title" msgid="4288689493753221319">"Stiahnuté služby"</string>
     <string name="experimental_category_title" msgid="3797000069740110717">"Experimentálne"</string>
     <string name="feature_flags_dashboard_title" msgid="3153034144122754381">"Experimentálne funkcie"</string>
@@ -2358,10 +2360,10 @@
       <item quantity="one">%1$s aplikácia bola nedávno obmedzená</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="few">%2$d aplikácie majú vysokú spotrebu batérie na pozadí</item>
-      <item quantity="many">%2$d aplikácie má vysokú spotrebu batérie na pozadí</item>
-      <item quantity="other">%2$d aplikácií má vysokú spotrebu batérie na pozadí</item>
-      <item quantity="one">%1$s aplikácia má vysokú spotrebu batérie na pozadí</item>
+      <item quantity="few">Aplikácie (%2$d) majú vysokú spotrebu batérie na pozadí</item>
+      <item quantity="many">Aplikácie (%2$d) majú vysokú spotrebu batérie na pozadí</item>
+      <item quantity="other">Aplikácie (%2$d) majú vysokú spotrebu batérie na pozadí</item>
+      <item quantity="one">Aplikácia (%1$s) má vysokú spotrebu batérie na pozadí</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="few">Tieto aplikácie sa nedajú spustiť na pozadí</item>
@@ -3241,7 +3243,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"Tóny"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Vibrovanie"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Zvuky pri spustení"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"Okamžité titulky"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"Živý prepis"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"Automaticky pridávať titulky k médiám"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Nikdy"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3295,11 +3297,11 @@
     <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"Keď je obrazovka vypnutá"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"Stlmiť zvuk a vibrácie"</string>
     <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"Nezapínať obrazovku"</string>
-    <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Neblikať svetlom"</string>
+    <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Neblikať"</string>
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Nezobrazovať upozornenia na obrazovke"</string>
-    <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Skryť ikony stavového riadka v hornej časti obrazovky"</string>
+    <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Skryť ikony stavového riadka hore na obrazovke"</string>
     <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Skryť bodky upozornení na ikonách aplikácií"</string>
-    <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"V prípade upozornení nebudiť"</string>
+    <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Pri upozorneniach nebudiť"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"Skryť v zozname upozornení"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"Nikdy"</string>
     <string name="zen_mode_block_effect_summary_screen_off" msgid="2985086455557755722">"Keď je obrazovka vypnutá"</string>
@@ -3605,7 +3607,7 @@
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"pripomenutia"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"Povoliť udalosti"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"Povoľte aplikáciám prekonávať nastavenia"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Výnimky aplikácie"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Výnimky pre aplikácie"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="few">Režim bez vyrušení môžu prekonať <xliff:g id="NUMBER">%1$d</xliff:g> aplikácie</item>
       <item quantity="many">Notifications from <xliff:g id="NUMBER">%1$d</xliff:g> apps can override Do Not Disturb</item>
@@ -3959,7 +3961,7 @@
     <string name="screen_zoom_conversation_icon_pete" msgid="4990733893088820204">"P"</string>
     <string name="screen_zoom_conversation_message_1" msgid="7215516160541988278">"Servus, Peter!"</string>
     <string name="screen_zoom_conversation_message_2" msgid="5409482621887655034">"Nezájdeme dnes na kávu?"</string>
-    <string name="screen_zoom_conversation_message_3" msgid="2471777953578052296">"Dobre, poznám tu jedno skvelé miesto."</string>
+    <string name="screen_zoom_conversation_message_3" msgid="2471777953578052296">"Poďme. Poznám tu blízko jeden super podnik."</string>
     <string name="screen_zoom_conversation_message_4" msgid="8258817329742550137">"Výborne!"</string>
     <string name="screen_zoom_conversation_timestamp_1" msgid="8011637725391996769">"Ut 18:00"</string>
     <string name="screen_zoom_conversation_timestamp_2" msgid="816265985618121370">"Ut 18:01"</string>
@@ -3998,7 +4000,7 @@
     <string name="disabled_by_policy_title_camera" msgid="3741138901926111197">"Použitie fotoaparátu je zakázané"</string>
     <string name="disabled_by_policy_title_screen_capture" msgid="1856835333536274665">"Snímky obrazovky sú zakázané"</string>
     <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"Táto aplikácia sa nedá otvoriť"</string>
-    <string name="default_admin_support_msg" msgid="5789424433689798637">"V prípade otázok kontaktujte správcu IT."</string>
+    <string name="default_admin_support_msg" msgid="5789424433689798637">"Ak máte nejaké otázky, obráťte sa na svojho správcu IT"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"Ďalšie podrobnosti"</string>
     <string name="admin_profile_owner_message" msgid="3199544166281052845">"Správca môže sledovať a spravovať aplikácie a údaje priradené k vášmu pracovnému profilu vrátane nastavení, povolení, firemného prístupu, aktivity siete a informácií o polohe zariadenia."</string>
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"Správca môže sledovať a spravovať aplikácie a údaje priradené k tomuto používateľovi vrátane nastavení, povolení, firemného prístupu, aktivity siete a informácií o polohe zariadenia."</string>
@@ -4273,7 +4275,7 @@
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Klepnutím skontrolujete tablet"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Klepnutím skontrolujete zariadenie"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Ak chcete zistiť čas, skontrolovať upozornenia a získať ďalšie informácie, klepnite na obrazovku."</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Upozornenia potiahnutím prsta"</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Upozornenia odtlačkom prsta"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Potiahnutie prstom"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Upozornenia zobrazíte potiahnutím nadol po senzore odtlačkov prstov na zadnej strane telefónu."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Upozornenia zobrazíte potiahnutím nadol po senzore odtlačkov prstov na zadnej strane tabletu."</string>
@@ -4475,7 +4477,7 @@
     <string name="battery_suggestion_title" product="device" msgid="765005476863631528">"Predĺženie výdrže batérie zariadenia"</string>
     <string name="battery_suggestion_title" product="default" msgid="3295786171830183688">"Predĺženie výdrže batérie telefónu"</string>
     <string name="battery_suggestion_summary" msgid="2669070349482656490"></string>
-    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Blokovanie zvonenia"</string>
+    <string name="gesture_prevent_ringing_screen_title" msgid="4173494225145223638">"Vypnutie zvonenia"</string>
     <string name="gesture_prevent_ringing_title" msgid="8827963588425673557">"Stlačením vypínača a tlač. zvýšenia hlas. zapnete možnosť:"</string>
     <string name="gesture_prevent_ringing_sound_title" msgid="8642330448721033641">"Skratka na vypnutie zvonenia"</string>
     <string name="prevent_ringing_option_vibrate" msgid="6456505293904544108">"Vibrovať"</string>
diff --git a/tests/CarDeveloperOptions/res/values-sl/arrays.xml b/tests/CarDeveloperOptions/res/values-sl/arrays.xml
index 6ac10d1..914e370 100644
--- a/tests/CarDeveloperOptions/res/values-sl/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-sl/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"izvajanje v ozadju"</item>
     <item msgid="6423861043647911030">"glasnost za funkcije za ljudi s posebnimi potrebami"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokacija"</item>
+    <item msgid="6656077694190491067">"Lokacija"</item>
+    <item msgid="8790228218278477369">"Lokacija"</item>
+    <item msgid="7836406246005211990">"Vibriranje"</item>
+    <item msgid="3951439024549922598">"Branje stikov"</item>
+    <item msgid="8802152411647068">"Spreminjanje stikov"</item>
+    <item msgid="229544934599698735">"Branje dnevnika klicev"</item>
+    <item msgid="7396102294405899613">"Spreminjanje dnevnika klicev"</item>
+    <item msgid="3597797992398484655">"Branje koledarja"</item>
+    <item msgid="2705975774250907343">"Spreminjanje koledarja"</item>
+    <item msgid="4668747371441932697">"Lokacija"</item>
+    <item msgid="1487578921720243646">"Objava obvestila"</item>
+    <item msgid="4636080349724146638">"Lokacija"</item>
+    <item msgid="673510900286463926">"Klicanje telefonske številke"</item>
+    <item msgid="542083422784609790">"Branje sporočil SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Pisanje sporočil SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Prejemanje sporočil SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Prejemanje sporočil SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Prejemanje sporočil SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Prejemanje sporočil SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Pošiljanje sporočil SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Branje sporočil SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Pisanje sporočil SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Spreminjanje nastavitev"</item>
+    <item msgid="8705854389991425629">"Vlečenje na vrh"</item>
+    <item msgid="5861356020344153651">"Dostop do obvestil"</item>
+    <item msgid="78432174621628659">"Fotoaparat"</item>
+    <item msgid="3986116419882154794">"Snemanje zvoka"</item>
+    <item msgid="4516840825756409490">"Predvajanje zvoka"</item>
+    <item msgid="6811712502798183957">"Preberi odložišče"</item>
+    <item msgid="2780369012602289114">"Spremeni odložišče"</item>
+    <item msgid="2331359440170850868">"Gumbi za predstavnosti"</item>
+    <item msgid="6133599737122751231">"Osredotočenost zvoka"</item>
+    <item msgid="6844485713404805301">"Glavna glasnost"</item>
+    <item msgid="1600379420669104929">"Glasnost glasu"</item>
+    <item msgid="6296768210470214866">"Glasnost zvonjenja"</item>
+    <item msgid="510690696071629241">"Glasnost predstavnosti"</item>
+    <item msgid="406861638631430109">"Glasnost alarma"</item>
+    <item msgid="4715864795872233884">"Glasnost obvestila"</item>
+    <item msgid="2311478519251301183">"Glasnost Bluetootha"</item>
+    <item msgid="5133991377896747027">"Ohrani odklenjen zaslon"</item>
+    <item msgid="2464189519136248621">"Lokacija"</item>
+    <item msgid="2062677934050803037">"Lokacija"</item>
+    <item msgid="1735171933192715957">"Pridobivanje statističnih podatkov o uporabi"</item>
+    <item msgid="1014093788778383554">"Izklop/vklop mikrofona"</item>
+    <item msgid="4199297950608622850">"Prikaz obvestila"</item>
+    <item msgid="2527962435313398821">"Predstavnost projektov"</item>
+    <item msgid="5117506254221861929">"Aktiviranje omrežja VPN"</item>
+    <item msgid="8291198322681891160">"Ozadje pisanja"</item>
+    <item msgid="7106921284621230961">"Struktura pomoči"</item>
+    <item msgid="4496533640894624799">"Posnetek zaslona pomoči"</item>
+    <item msgid="2598847264853993611">"Branje stanja telefona"</item>
+    <item msgid="9215610846802973353">"Dodajanje odzivnika"</item>
+    <item msgid="9186411956086478261">"Uporaba protokola SIP"</item>
+    <item msgid="6884763100104539558">"Obdelava odhodnega klica"</item>
+    <item msgid="125513972170580692">"Prstni odtis"</item>
+    <item msgid="2556071024281275619">"Tipala tel. funkcij"</item>
+    <item msgid="617168514928339387">"Branje oddaj v celici"</item>
+    <item msgid="7134693570516523585">"Lažna lokacija"</item>
+    <item msgid="7224489175375229399">"Branje shrambe"</item>
+    <item msgid="8472735063903258202">"Pisanje v shrambo"</item>
+    <item msgid="4069276819909595110">"Vklop zaslona"</item>
+    <item msgid="1228338896751121025">"Pridobivanje računov"</item>
+    <item msgid="3181581793459233672">"Izvajanje v ozadju"</item>
+    <item msgid="2340936043025374076">"Glasnost za funkcije za ljudi s posebnimi potrebami"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Kratko"</item>
     <item msgid="4816511817309094890">"Srednja pomembnost"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Nikoli ne dovoli"</item>
     <item msgid="8184570120217958741">"Vedno dovoli"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Običajno"</item>
+    <item msgid="5101233285497327432">"Zmerno"</item>
+    <item msgid="1555861583162930714">"Nizko"</item>
+    <item msgid="1719683776264798117">"Resno"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Običajno"</item>
+    <item msgid="6107138933849816768">"Zmerno"</item>
+    <item msgid="182695359839047859">"Nizko"</item>
+    <item msgid="8577246509202964244">"Resno"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Trajno"</item>
     <item msgid="167418068739176448">"Najpogostejša dejavnost"</item>
diff --git a/tests/CarDeveloperOptions/res/values-sl/strings.xml b/tests/CarDeveloperOptions/res/values-sl/strings.xml
index 79edce5..a7a4657 100644
--- a/tests/CarDeveloperOptions/res/values-sl/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-sl/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Pomanjšava ali povečava besedila na zaslonu"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Pomanjšanje"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Povečanje"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Vzorčno besedilo"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Čudoviti čarovnik iz Oza"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. poglavje: Čudovito Smaragdno mesto"</string>
@@ -210,7 +209,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Izpolniti morate polje vrat."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Če je polje za gostitelja prazno, mora biti prazno tudi polje za vrata."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Vtipkana številka vrat je neveljavna."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Proxy HTTP lahko uporablja brskalnik, druge aplikacije pa ne."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Proxy za HTTP lahko uporablja brskalnik, druge aplikacije pa ne."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"URL datoteke PAC: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Pasovna širina za prenos (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Pasovna širina za nalaganje (kbps):"</string>
@@ -962,7 +961,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Samodejno"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"2,4-GHz pas"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"5,0-GHz pas"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Prednostno 5,0-GHz pas"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"5,0-GHz pas (prednostno)"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Izberite vsaj en pas za dostopno točko Wi‑Fi:"</string>
@@ -974,8 +973,8 @@
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Branje kode QR"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Kodo QR spodaj nastavite na sredino, da vzpostavite povezavo z omrežjem »<xliff:g id="SSID">%1$s</xliff:g>«."</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Če se želite pridružiti omrežju Wi‑Fi, preberite kodo QR"</string>
-    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Skupna raba omrežja Wi‑Fi"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Če želite vzpostaviti povezavo z omrežjem »<xliff:g id="SSID">%1$s</xliff:g>« in dati geslo v skupno rabo, preberite to kodo QR"</string>
+    <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"Deljenje omrežja Wi‑Fi"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"Če želite vzpostaviti povezavo z omrežjem »<xliff:g id="SSID">%1$s</xliff:g>« in deliti geslo z drugimi, preberite to kodo QR"</string>
     <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"Če želite vzpostaviti povezavo z omrežjem »<xliff:g id="SSID">%1$s</xliff:g>«, preberite to kodo QR"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"Kode QR ni bilo mogoče prebrati. Kodo nastavite na sredino in poskusite znova."</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Poskusite znova. Če se težava ponavlja, se obrnite na proizvajalca naprave."</string>
@@ -994,7 +993,7 @@
     <string name="wifi_dpp_device_found" msgid="6488461467496850841">"Najdena je bila naprava"</string>
     <string name="wifi_dpp_sharing_wifi_with_this_device" msgid="2540529164687476827">"Skupna raba povezave Wi‑Fi s to napravo …"</string>
     <string name="wifi_dpp_connecting" msgid="4229290407210299897">"Povezovanje …"</string>
-    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Skupna raba dostopne točke"</string>
+    <string name="wifi_dpp_share_hotspot" msgid="847987212473038179">"Deljenje dostopne točke"</string>
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Potrdite, da ste res vi"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Geslo za Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Geslo za dostopno točko: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
@@ -1007,7 +1006,7 @@
     <string name="wifi_multiple_cert_added" msgid="7986200585749147204">"(Dodanih je bilo več potrdil)"</string>
     <string name="wifi_use_system_certs" msgid="4794489370929885022">"Uporabi sistemska potrdila"</string>
     <string name="wifi_do_not_provide_eap_user_cert" msgid="4044301449482425250">"Ne posreduj"</string>
-    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Ne potrdi"</string>
+    <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Ne preverjaj"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Ni navedenih potrdil. Povezava ne bo zasebna."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Ime omrežja je predolgo."</string>
     <string name="wifi_no_domain_warning" msgid="735859919311067606">"Določiti morate domeno."</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobilno"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Uporaba mobilnega omrežja, če omrežje Wi-Fi ni dosegljivo"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Uporaba omrežja Wi-Fi, če mobilno omrežje ni dosegljivo"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Klic prek omrežja Wi-Fi. Če izgubite povezavo Wi-Fi, bo klic končan."</string>
@@ -1657,12 +1659,12 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Dokler je vklopljeno varčevanje s podatki, ni mogoče vzpostaviti povezave z internetom prek mobilnega telefona ali uporabljati prenosnih dostopnih točk."</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"Internetna povezava prek USB-ja"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Skupna raba internetne povezave telefona prek USB-ja"</string>
-    <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Skupna raba internetne povezave tabličnega računalnika prek USB-ja"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Deljenje internetne povezave telefona prek USB-ja"</string>
+    <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Deljenje internetne povezave tabličnega računalnika prek USB-ja"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Internet prek Bluetootha"</string>
-    <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Skupna raba internetne povezave tabličnega računalnika prek Bluetootha"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Skupna raba internetne povezave telefona prek Bluetootha"</string>
-    <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Skupna raba internetne povezave naprave <xliff:g id="DEVICE_NAME">%1$d</xliff:g> prek Bluetootha"</string>
+    <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Deljenje internetne povezave tabličnega računalnika prek Bluetootha"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Deljenje internetne povezave telefona prek Bluetootha"</string>
+    <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Deljenje internetne povezave naprave <xliff:g id="DEVICE_NAME">%1$d</xliff:g> prek Bluetootha"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Internetna povezava ni mogoča z več kot <xliff:g id="MAXCONNECTION">%1$d</xliff:g> naprav."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"Internetna povezava z napravo <xliff:g id="DEVICE_NAME">%1$s</xliff:g> bo prekinjena."</string>
     <string name="tethering_footer_info" msgid="8019555174339154124">"Uporabite dostopno točko in povezavo z internetom prek mobilnega telefona, da zagotovite internet drugim napravam prek svoje mobilne podatkovne povezave. Tudi aplikacije lahko ustvarijo dostopno točko za skupno rabo vsebin z napravami v bližini."</string>
@@ -1683,7 +1685,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Vstavite SIM in znova zaženite"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Vzpostavite internetno povezavo"</string>
     <string name="location_title" msgid="8664674161765477168">"Moja lokacija"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Mesto za delovni profil"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Lokacija za delovni profil"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Dovoljenje za aplikacije"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Zaznavanje lokacije je izklopljeno"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1700,7 +1702,7 @@
     <string name="location_low_battery_use" msgid="5030448574501435888">"Nizka poraba akumulatorja"</string>
     <string name="location_scanning_screen_title" msgid="7663329319689413454">"Iskanje omrežij Wi‑Fi in naprav Bluetooth"</string>
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Iskanje omrežij Wi‑Fi"</string>
-    <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Aplikacijam in storitvam omogoči, da kadar koli iščejo omrežja Wi-Fi v bližini, tudi ko je Wi-Fi izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo."</string>
+    <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Aplikacijam in storitvam omogoči, da kadar koli iščejo omrežja Wi-Fi, tudi ko je Wi-Fi izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo."</string>
     <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Iskanje naprav Bluetooth"</string>
     <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Aplikacijam in storitvam omogoči, da kadar koli iščejo naprave v bližini, tudi ko je Bluetooth izklopljen. To funkcijo lahko na primer uporabite, če želite izboljšati funkcije in storitve, ki pri delovanju uporabljajo lokacijo."</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"Lokacijske storitve za službo"</string>
@@ -2334,8 +2336,8 @@
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Izboljšajte čas delovanja akumulatorja naprave"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Vklopite varčevanje z energijo akumulatorja"</string>
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Vklop varčevanja z energijo akumulatorja"</string>
-    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Akumulator se bo morda izpraznil prej kot običajno"</string>
-    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Varčevanje z energijo akumulatorja je vklopljeno"</string>
+    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Baterija se lahko izprazni prej kot običajno"</string>
+    <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Varčevanje z energijo baterije je vklopljeno"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Nekatere funkcije bodo morda omejene"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefon uporabljate več kot običajno"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Tablični računalnik uporabljate več kot običajno"</string>
@@ -3922,7 +3924,7 @@
     <string name="system_alert_window_apps_title" msgid="9188448296493699566">"Aplikacije"</string>
     <string name="system_alert_window_access_title" msgid="5187343732185369675">"Prekrivanje drugih aplikacij"</string>
     <string name="permit_draw_overlay" msgid="9039092257052422344">"Dovoli prekrivanje drugih aplikacij"</string>
-    <string name="allow_overlay_description" msgid="6669524816705082807">"Omogočite tej aplikaciji, da prekrije druge aplikacije, ki jih uporabljate. To lahko vpliva na uporabo teh aplikacij ali spremeni njihov običajen videz ali delovanje."</string>
+    <string name="allow_overlay_description" msgid="6669524816705082807">"Omogočite tej aplikaciji, da na zaslonu prekrije druge aplikacije, ki jih uporabljate. To lahko vpliva na uporabo teh aplikacij ali spremeni njihov običajen videz ali delovanje."</string>
     <string name="keywords_vr_listener" msgid="5312633527788917750">"vr navidezna resničnost poslušalec stereo storitev za pomoč"</string>
     <string name="keywords_system_alert_window" msgid="3936658600272194599">"sistemsko opozorilo pogovorno okno prikaz s prekrivanjem drugih aplikacij"</string>
     <string name="overlay_settings" msgid="3325154759946433666">"Prekrivanje drugih aplikacij"</string>
@@ -4013,7 +4015,7 @@
     <string name="condition_zen_title" msgid="2128184708916052585">"Način »ne moti« je vklopljen"</string>
     <string name="condition_zen_summary_phone_muted" msgid="4396050395522974654">"Zvok telefona je izklopljen"</string>
     <string name="condition_zen_summary_with_exceptions" msgid="3435216391993785818">"Z izjemami"</string>
-    <string name="condition_battery_title" msgid="6704870010912986274">"Varč. z energijo akum. je vkl."</string>
+    <string name="condition_battery_title" msgid="6704870010912986274">"Varč. z energijo bat. je vkl."</string>
     <string name="condition_battery_summary" msgid="1236078243905690620">"Funkcije so omejene"</string>
     <string name="condition_cellular_title" msgid="6605277435894307935">"Mobilni podatki so izklopljeni"</string>
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Dostop do interneta je na voljo le prek omrežja Wi‑Fi"</string>
@@ -4070,7 +4072,7 @@
     <string name="app_usage_cycle" msgid="213483325132959663">"Cikel porabe podatkov aplikacije"</string>
     <string name="cell_data_warning" msgid="8902740337286652689">"Opozorilo ob preneseni količini podatkov <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"Omejitev prenosa podatkov pri <xliff:g id="ID_1">^1</xliff:g>"</string>
-    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Opozorilo ob preneseni količini podatkov <xliff:g id="ID_1">^1</xliff:g>/omejitev prenosa podatkov pri <xliff:g id="ID_2">^2</xliff:g>"</string>
+    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Opozorilo pri <xliff:g id="ID_1">^1</xliff:g> prenesenih podatkov/omejitev prenosa podatkov pri <xliff:g id="ID_2">^2</xliff:g>"</string>
     <string name="billing_cycle_fragment_summary" msgid="4926047002107855543">"Mesečno na dan <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="196294262243618198">"Omejitve omrežja"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="1664494781594839837">
diff --git a/tests/CarDeveloperOptions/res/values-sq/arrays.xml b/tests/CarDeveloperOptions/res/values-sq/arrays.xml
index 11c7d80..96b8e7e 100644
--- a/tests/CarDeveloperOptions/res/values-sq/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-sq/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"Oqeani Paqësor"</item>
     <item msgid="7044520255415007865">"Të gjitha"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 sekonda"</item>
+    <item msgid="772029947136115322">"30 sekonda"</item>
+    <item msgid="8743663928349474087">"1 minutë"</item>
+    <item msgid="1506508631223164814">"2 minuta"</item>
+    <item msgid="8664703938127907662">"5 min."</item>
+    <item msgid="5827960506924849753">"10 min."</item>
+    <item msgid="6677424950124253938">"30 min."</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Asnjëherë"</item>
+    <item msgid="2517785806387977252">"15 sek."</item>
+    <item msgid="6347954399441173672">"30 sekonda"</item>
+    <item msgid="4858305253279921789">"1 minutë"</item>
+    <item msgid="8109273437140044073">"2 minuta"</item>
+    <item msgid="2788593551142462622">"5 min."</item>
+    <item msgid="8012672183888404961">"10 min."</item>
+    <item msgid="8271452751594598661">"30 minuta"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Menjëherë"</item>
     <item msgid="2038544972632026612">"5 sek."</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"10 min."</item>
     <item msgid="7258394417241706272">"30 min."</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"I vogël"</item>
+    <item msgid="591935967183159581">"E parazgjedhur"</item>
+    <item msgid="1714184661981538355">"I madh"</item>
+    <item msgid="6195563047686707484">"Më i madhi"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Po skanon..."</item>
+    <item msgid="5597394826455877834">"Po lidhet..."</item>
+    <item msgid="5848277343965362748">"Po vërtetohet…"</item>
+    <item msgid="3391238031431440676">"Po merr adresën IP…"</item>
+    <item msgid="5257597310494000224">"Lidhur"</item>
+    <item msgid="8472497592913050396">"I pezulluar"</item>
+    <item msgid="1228072488815999109">"Po shkëputet..."</item>
+    <item msgid="7253087004422991731">"I shkëputur"</item>
+    <item msgid="4169850917304751227">"Pa sukses"</item>
+    <item msgid="6266658166690831131">"I bllokuar"</item>
+    <item msgid="4517230805854909775">"Po shmang përkohësisht lidhje të dobët"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Po skanon…"</item>
+    <item msgid="8058143476674427024">"Po lidhet me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="7547609081339573756">"Po kryen vërtetimin me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="5145158315060185414">"Po merr adresën IP nga <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
+    <item msgid="3283243151651124831">"I lidhur me <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="6600156231416890902">"I pezulluar"</item>
+    <item msgid="4133290864821295785">"I shkëputur nga <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="3980154971187953257">"I shkëputur"</item>
+    <item msgid="2847316776634969068">"Pa sukses"</item>
+    <item msgid="4390990424746035383">"I bllokuar"</item>
+    <item msgid="3618248791367063949">"Përkohësisht duke shmangur një lidhje të dobët"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Butoni me shtypje"</item>
+    <item msgid="7401896200768713930">"Kodi PIN nga pajisja homologe"</item>
+    <item msgid="4526848028011846710">"PIN-i nga pajisja"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Lidhur"</item>
     <item msgid="983792611851499732">"I ftuar"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"Në shitje"</item>
     <item msgid="3230556734162006146">"Jashtë rrezes"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 minuta"</item>
+    <item msgid="2759776603549270587">"5 minuta"</item>
+    <item msgid="167772676068860015">"1 orë"</item>
+    <item msgid="5985477119043628504">"Skadim të kohës së veprimit, asnjëherë!"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"Përdor parazgjedhjen e sistemit: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"I dobët"</item>
+    <item msgid="7882129634982603782">"I dobët"</item>
+    <item msgid="6457357501905996224">"Pak i dobët"</item>
+    <item msgid="405271628162918841">"I mirë"</item>
+    <item msgid="999948812884919584">"I shkëlqyer"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"30 ditët e fundit"</item>
     <item msgid="3211287705232736964">"Cakto ciklin e përdorimit..."</item>
@@ -106,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Statike"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Asnjë"</item>
     <item msgid="1464741437353223198">"Manuale"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"ekzekuto në sfond"</item>
     <item msgid="6423861043647911030">"volumi i qasshmërisë"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Vendndodhja"</item>
+    <item msgid="6656077694190491067">"Vendndodhja"</item>
+    <item msgid="8790228218278477369">"Vendndodhja"</item>
+    <item msgid="7836406246005211990">"Dridhje"</item>
+    <item msgid="3951439024549922598">"Lexo kontaktet"</item>
+    <item msgid="8802152411647068">"Modifiko kontaktet"</item>
+    <item msgid="229544934599698735">"Lexo ditarin e telefonatave"</item>
+    <item msgid="7396102294405899613">"Modifiko ditarin e telefonatave"</item>
+    <item msgid="3597797992398484655">"Lexo kalendarin"</item>
+    <item msgid="2705975774250907343">"Modifiko kalendarin"</item>
+    <item msgid="4668747371441932697">"Vendndodhja"</item>
+    <item msgid="1487578921720243646">"Posto njoftimin"</item>
+    <item msgid="4636080349724146638">"Vendndodhja"</item>
+    <item msgid="673510900286463926">"Telefono telefonin"</item>
+    <item msgid="542083422784609790">"Lexo SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Shkruaj SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Prano SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Merr SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Merr SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Merr SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Dërgo SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Lexo SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Shkruaj SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Modifiko cilësimet"</item>
+    <item msgid="8705854389991425629">"Vizato sipër"</item>
+    <item msgid="5861356020344153651">"Qasu te njoftimet"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Regjistro audio"</item>
+    <item msgid="4516840825756409490">"Luaj audio"</item>
+    <item msgid="6811712502798183957">"Lexo memorien e fragmenteve"</item>
+    <item msgid="2780369012602289114">"Modifiko memorien e fragmenteve"</item>
+    <item msgid="2331359440170850868">"Butonat e \"medias\""</item>
+    <item msgid="6133599737122751231">"Përqendrimi i audios"</item>
+    <item msgid="6844485713404805301">"Kontrollo volumin"</item>
+    <item msgid="1600379420669104929">"Volumi i zërit"</item>
+    <item msgid="6296768210470214866">"Volumi i ziles"</item>
+    <item msgid="510690696071629241">"Volumi i medias"</item>
+    <item msgid="406861638631430109">"Volumi i alarmit"</item>
+    <item msgid="4715864795872233884">"Volumi i njoftimit"</item>
+    <item msgid="2311478519251301183">"Volumi i \"Bluetooth-it\""</item>
+    <item msgid="5133991377896747027">"Mbaje të zgjuar"</item>
+    <item msgid="2464189519136248621">"Vendndodhja"</item>
+    <item msgid="2062677934050803037">"Vendndodhja"</item>
+    <item msgid="1735171933192715957">"Gjej statistika të përdorimit"</item>
+    <item msgid="1014093788778383554">"Çaktivizo/aktivizo mikrofonin"</item>
+    <item msgid="4199297950608622850">"Shfaq kodin toast"</item>
+    <item msgid="2527962435313398821">"Projekto median"</item>
+    <item msgid="5117506254221861929">"Aktivizo rrjetin VPN"</item>
+    <item msgid="8291198322681891160">"Shkruaj në imazhin e sfondit"</item>
+    <item msgid="7106921284621230961">"Ndihmo strukturën"</item>
+    <item msgid="4496533640894624799">"Ndihmo pamjen e ekranit"</item>
+    <item msgid="2598847264853993611">"Lexo gjendjen e telefonit"</item>
+    <item msgid="9215610846802973353">"Shto postë zanore"</item>
+    <item msgid="9186411956086478261">"Përdor kodin sip"</item>
+    <item msgid="6884763100104539558">"Përpuno thirrjen dalëse"</item>
+    <item msgid="125513972170580692">"Gjurma e gishtit"</item>
+    <item msgid="2556071024281275619">"Sensorët e trupit"</item>
+    <item msgid="617168514928339387">"Lexo transmetimet celulare"</item>
+    <item msgid="7134693570516523585">"Vendndodhja e simuluar"</item>
+    <item msgid="7224489175375229399">"Lexo hapësirën ruajtëse"</item>
+    <item msgid="8472735063903258202">"Shkruaj hapësirën ruajtëse"</item>
+    <item msgid="4069276819909595110">"Ndiz ekranin"</item>
+    <item msgid="1228338896751121025">"Merr llogaritë"</item>
+    <item msgid="3181581793459233672">"Ekzekuto në sfond"</item>
+    <item msgid="2340936043025374076">"Volumi i qasshmërisë"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"E shkurtër"</item>
     <item msgid="4816511817309094890">"Mesatare"</item>
@@ -247,15 +369,35 @@
     <item msgid="4627069151979553527">"I pjerrët"</item>
     <item msgid="6896773537705206194">"Shkronja të mëdha të minimizuara"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (8019330250538856521) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Shumë e vogël"</item>
+    <item msgid="5091603983404027034">"E vogël"</item>
+    <item msgid="176844712416932112">"Normale"</item>
+    <item msgid="2784236342175159295">"I madh"</item>
+    <item msgid="218913203203160606">"Shumë e madhe"</item>
+  </string-array>
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="3865198759294188069">"E parazgjedhur"</item>
+    <item msgid="6488643537808152001">"Asnjë"</item>
+    <item msgid="552332815156010137">"Kontur"</item>
+    <item msgid="7187891159463789272">"Me hijezim"</item>
+    <item msgid="8019330250538856521">"I ngritur"</item>
+    <item msgid="8987385315647049787">"I ulur"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="313003243371588365">"25%"</item>
     <item msgid="4665048002584838262">"50%"</item>
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"E parazgjedhur"</item>
+    <item msgid="8611890312638868524">"E bardhë mbi të zezë"</item>
+    <item msgid="5891360837786277638">"E zezë mbi të bardhë"</item>
+    <item msgid="2798457065945456853">"E verdhë mbi të zezë"</item>
+    <item msgid="5799049811524553967">"E verdhë mbi të kaltër"</item>
+    <item msgid="3673930830658169860">"Personalizo"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"VPN PPTP"</item>
     <item msgid="1349760781118368659">"Rrjeti VPN L2TP/IPSec me çelësat e ndarë paraprakisht"</item>
@@ -264,16 +406,36 @@
     <item msgid="3319427315593649917">"Rrjeti VPN IPSec me certifikata dhe me verifikimin Xauth"</item>
     <item msgid="8258927774145391041">"Rrjeti VPN IPSec me certifikata dhe me vërtetim hibrid"</item>
   </string-array>
-    <!-- no translation found for vpn_proxy_settings:0 (2958623927055120839) -->
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_proxy_settings">
+    <item msgid="2958623927055120839">"Asnjë"</item>
+    <item msgid="1157046369795346308">"Manuale"</item>
+  </string-array>
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"I shkëputur"</item>
+    <item msgid="8754480102834556765">"Po fillon..."</item>
+    <item msgid="3351334355574270250">"Po lidhet..."</item>
+    <item msgid="8303882153995748352">"Lidhur"</item>
+    <item msgid="9135049670787351881">"Koha e pritjes"</item>
+    <item msgid="2124868417182583926">"Pa sukses"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"Pyet"</item>
     <item msgid="7718817231348607934">"Mos lejo asnjëherë"</item>
     <item msgid="8184570120217958741">"Lejo gjithmonë"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normale"</item>
+    <item msgid="5101233285497327432">"E moderuar"</item>
+    <item msgid="1555861583162930714">"I ulët"</item>
+    <item msgid="1719683776264798117">"Kritik"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normale"</item>
+    <item msgid="6107138933849816768">"E moderuar"</item>
+    <item msgid="182695359839047859">"I ulët"</item>
+    <item msgid="8577246509202964244">"Kritike"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Pa ndalim"</item>
     <item msgid="167418068739176448">"Aktiviteti kryesor"</item>
diff --git a/tests/CarDeveloperOptions/res/values-sq/strings.xml b/tests/CarDeveloperOptions/res/values-sq/strings.xml
index dd535eb..258a1ef 100644
--- a/tests/CarDeveloperOptions/res/values-sq/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-sq/strings.xml
@@ -23,8 +23,8 @@
     <string name="deny" msgid="3998166389989144025">"Refuzo"</string>
     <string name="device_info_default" msgid="1548919563979154348">"I panjohur"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="3953785659137161981">
-      <item quantity="other">Tani je <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> hapa larg të qenët programues.</item>
-      <item quantity="one">Tani je <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> hap larg të qenët programues.</item>
+      <item quantity="other">Tani të duhen edhe <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> hapa për t\'u bërë zhvillues.</item>
+      <item quantity="one">Tani të duhet edhe <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> hap për t\'u bërë zhvillues.</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"Tani je zhvillues!"</string>
     <string name="show_dev_already" msgid="7665948832405148689">"Nuk ka nevojë, ti je programues tashmë!"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Bëje tekstin në ekran më të vogël ose më të madh."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Zvogëlo"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Zmadho"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Teksti shembull"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Magjistari i mrekullueshëm i Ozit"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Kapitulli 11: Qyteti i mrekullueshëm i smeraldtë i Ozit"</string>
@@ -419,7 +418,7 @@
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"U krye"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Përdor fytyrën për"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Shkyçja e pajisjes"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Identifikimi dhe pagesat e aplikacionit"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Identifikim në aplikacion dhe pagesa"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Hap sytë për të shkyçur"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Kur përdor vërtetimin me fytyrë, sytë duhet të jenë të hapur"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Kërko gjithmonë konfirmimin"</string>
@@ -596,7 +595,7 @@
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"Çakt. kyçjen e ekranit"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"Të hiqet mbrojtja e pajisjes?"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"Të hiqet mbrojtja e profilit?"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"Funksionet e mbrojtjes së pajisjes nuk do të funksionojnë pa motivin tënd."</string>
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"Veçoritë e mbrojtjes së pajisjes nuk do të funksionojnë pa motivin tënd."</string>
     <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"Funksionet e mbrojtjes së pajisjes nuk do të funksionojnë pa motivin tënd.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>Gjurmët e gishtave të ruajtura do të hiqen nga kjo pajisje dhe nuk do të jesh në gjendje të shkyçësh telefonin, të autorizosh blerjet apo të identifikohesh në aplikacione me to."</string>
@@ -850,7 +849,7 @@
     <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Hap njoftimin e rrjetit"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Njofto kur ofrohet një rrjet publik me cilësi të lartë"</string>
     <string name="wifi_wakeup" msgid="4963732992164721548">"Aktivizo automatikisht Wi‑Fi"</string>
-    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi-Fi do të aktivizohet përsëri në afërsi të rrjeteve të ruajtura me cilësi të lartë, si p.sh. rrjetin e shtëpisë"</string>
+    <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi-Fi do të aktivizohet përsëri në afërsi të rrjeteve të ruajtura me cilësi të lartë, si p.sh. rrjeti i shtëpisë"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="3007457288587966962">"Nuk ofrohet sepse vendndodhja është e çaktivizuar. Aktivizo "<annotation id="link">"vendndodhjen"</annotation>"."</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="6820040651529910914">"Nuk ofrohet sepse skanimi i Wi-Fi është çaktivizuar"</string>
     <string name="wifi_wakeup_summary_scoring_disabled" msgid="7067018832237903151">"Për ta përdorur, zgjidh një ofrues të vlerësimit të rrjetit"</string>
@@ -906,7 +905,7 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Fut SSID-në"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Siguria"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Rrjet i fshehur"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Nëse rrugëzuesi nuk po transmeton një ID rrjeti, por dëshiron të lidhesh me të në të ardhmen, mund ta caktosh rrjetin si të fshehur.\n\nKjo mund të krijojë një rrezik për sigurinë pasi telefoni yt do të transmetojë rregullisht sinjalin e tij për të gjetur rrjetin.\n\nCaktimi i rrjetit si të fshehur nuk do të ndryshojë cilësimet e router-it."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Nëse router-i nuk po transmeton një ID rrjeti, por dëshiron të lidhesh me të në të ardhmen, mund ta caktosh rrjetin si të fshehur.\n\nKjo mund të krijojë një rrezik për sigurinë pasi telefoni yt do të transmetojë rregullisht sinjalin e tij për të gjetur rrjetin.\n\nCaktimi i rrjetit si të fshehur nuk do të ndryshojë cilësimet e router-it."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Fuqia e sinjalit"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Statusi"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"Shpejtësia e lidhjes së transmetimit"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Celular"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Nëse Wi‑Fi nuk ofrohet, përdor rrjetin celular"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Nëse rrjeti celular nuk ofrohet, përdor Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Telefono nëpërmjet Wi-Fi. Nëse humb Wi‑Fi, telefonata do të mbyllet."</string>
@@ -1942,9 +1944,9 @@
     <string name="language_input_gesture_summary_on_with_assist" msgid="315262339899294132"></string>
     <string name="language_input_gesture_summary_on_non_assist" msgid="6054599939153669225"></string>
     <string name="language_input_gesture_summary_off" msgid="4108509077072348546"></string>
-    <string name="language_settings" msgid="3551012802762495835">"Gjuhët dhe të dhënat"</string>
+    <string name="language_settings" msgid="3551012802762495835">"Gjuhët dhe metodat e hyrjes"</string>
     <string name="language_empty_list_user_restricted" msgid="3837176532474949716">"Nuk ke leje të ndryshosh gjuhën e pajisjes."</string>
-    <string name="language_keyboard_settings_title" msgid="2672573191605298938">"Gjuhët dhe të dhënat"</string>
+    <string name="language_keyboard_settings_title" msgid="2672573191605298938">"Gjuhët dhe metodat e hyrjes"</string>
     <string name="input_assistance" msgid="6442646949054057707">"Veglat"</string>
     <string name="keyboard_settings_category" msgid="5857591390023852850">"Tastiera dhe metodat e hyrjes"</string>
     <string name="phone_language" msgid="8471728119195198790">"Gjuhët"</string>
@@ -2036,7 +2038,7 @@
     <string name="accessibility_settings_title" msgid="1687226556576913576">"Cilësimet e qasjes"</string>
     <string name="accessibility_settings_summary" msgid="5742379519336396561">"Lexues ekrani, ekran, kontrolle ndërveprimi"</string>
     <string name="vision_settings_title" msgid="7315352351051423944">"Cilësimet e shikimit"</string>
-    <string name="vision_settings_description" msgid="3476589459009287332">"Mund ta personalizosh këtë pajisje për t\'iu përshtatur nevojave të tua. Këto funksione të qasjes mund të ndryshohen më vonë te \"Cilësimet\"."</string>
+    <string name="vision_settings_description" msgid="3476589459009287332">"Mund ta personalizosh këtë pajisje për t\'iu përshtatur nevojave të tua. Këto veçori të qasshmërisë mund të ndryshohen më vonë te \"Cilësimet\"."</string>
     <string name="vision_settings_suggestion_title" msgid="7268661419110951128">"Ndrysho madhësinë e shkrimit"</string>
     <string name="screen_reader_category_title" msgid="6300714148519645544">"Lexuesit e ekranit"</string>
     <string name="audio_and_captions_category_title" msgid="6140472938769619212">"Audioja dhe teksti në ekran"</string>
@@ -2278,7 +2280,7 @@
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Aktivizo \"Kursyesin e baterisë\""</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Bateria mund të mbarojë më herët se zakonisht"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"\"Kursyesi i baterisë\" është i aktivizuar"</string>
-    <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Disa funksione mund të jenë të kufizuara"</string>
+    <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Disa veçori mund të jenë të kufizuara"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefoni është përdorur më shumë se zakonisht"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Tableti është përdorur më shumë se zakonisht"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Pajisja është përdorur më shumë se zakonisht"</string>
@@ -3042,7 +3044,7 @@
     <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"Asistenti, aplikacionet së fundi, aplikacionet e parazgjedhura"</string>
     <string name="notification_settings_work_profile" msgid="7190550347842400029">"Qasja te njoftimet nuk ofrohet për aplikacionet në profilin e punës."</string>
     <string name="account_dashboard_title" msgid="4734300939532555885">"Llogaritë"</string>
-    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"Nuk u shtua asnjë llogari"</string>
+    <string name="account_dashboard_default_summary" msgid="6822549669771936206">"Nuk është shtuar asnjë llogari"</string>
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"Apl. e parazgjedhura"</string>
     <string name="system_dashboard_summary" msgid="6582464466735779394">"Gjuhët, gjestet, koha, rezervimi"</string>
     <string name="search_results_title" msgid="4160717656435503940">"Cilësimet"</string>
diff --git a/tests/CarDeveloperOptions/res/values-sr/arrays.xml b/tests/CarDeveloperOptions/res/values-sr/arrays.xml
index e6f117a..9ba8c58 100644
--- a/tests/CarDeveloperOptions/res/values-sr/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-sr/arrays.xml
@@ -214,7 +214,7 @@
   </string-array>
   <string-array name="app_ops_categories">
     <item msgid="1102693344156734891">"Локација"</item>
-    <item msgid="6842381562497597649">"Лични"</item>
+    <item msgid="6842381562497597649">"Лично"</item>
     <item msgid="3966700236695683444">"Размена порука"</item>
     <item msgid="8563996233342430477">"Медији"</item>
     <item msgid="5323851085993963783">"Уређај"</item>
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"рад у позадини"</item>
     <item msgid="6423861043647911030">"јачина звука за приступачност"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Локација"</item>
+    <item msgid="6656077694190491067">"Локација"</item>
+    <item msgid="8790228218278477369">"Локација"</item>
+    <item msgid="7836406246005211990">"Вибрација"</item>
+    <item msgid="3951439024549922598">"Читање контаката"</item>
+    <item msgid="8802152411647068">"Мењање контаката"</item>
+    <item msgid="229544934599698735">"Читање евиденције позива"</item>
+    <item msgid="7396102294405899613">"Мењање евиденције позива"</item>
+    <item msgid="3597797992398484655">"Читање календара"</item>
+    <item msgid="2705975774250907343">"Мењање календара"</item>
+    <item msgid="4668747371441932697">"Локација"</item>
+    <item msgid="1487578921720243646">"Постављање обавештења"</item>
+    <item msgid="4636080349724146638">"Локација"</item>
+    <item msgid="673510900286463926">"Позивање телефона"</item>
+    <item msgid="542083422784609790">"Читање SMS/MMS порука"</item>
+    <item msgid="1033780373029588436">"Писање SMS/MMS порука"</item>
+    <item msgid="5647111115517787488">"Пријем SMS/MMS порука"</item>
+    <item msgid="8591105601108455893">"Пријем SMS/MMS порука"</item>
+    <item msgid="7730995008517841903">"Пријем SMS/MMS порука"</item>
+    <item msgid="2613033109026626086">"Пријем SMS/MMS порука"</item>
+    <item msgid="3037159047591081136">"Слање SMS/MMS порука"</item>
+    <item msgid="4726682243833913568">"Читање SMS/MMS порука"</item>
+    <item msgid="6555678522277865572">"Писање SMS/MMS порука"</item>
+    <item msgid="6981734935578130884">"Мењање подешавања"</item>
+    <item msgid="8705854389991425629">"Повлачење на врх"</item>
+    <item msgid="5861356020344153651">"Приступ обавештењима"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Снимање аудио записа"</item>
+    <item msgid="4516840825756409490">"Пуштање аудио записа"</item>
+    <item msgid="6811712502798183957">"Читање меморије"</item>
+    <item msgid="2780369012602289114">"Мењање меморије"</item>
+    <item msgid="2331359440170850868">"Дугмад за медије"</item>
+    <item msgid="6133599737122751231">"Аудио фокус"</item>
+    <item msgid="6844485713404805301">"Главна јачина звука"</item>
+    <item msgid="1600379420669104929">"Јачина звука гласа"</item>
+    <item msgid="6296768210470214866">"Јачина звука звона"</item>
+    <item msgid="510690696071629241">"Јачина звука медија"</item>
+    <item msgid="406861638631430109">"Јачина звука аларма"</item>
+    <item msgid="4715864795872233884">"Јачина звука за обавештења"</item>
+    <item msgid="2311478519251301183">"Јачина звука Bluetooth-а"</item>
+    <item msgid="5133991377896747027">"Задржи ван стања спавања"</item>
+    <item msgid="2464189519136248621">"Локација"</item>
+    <item msgid="2062677934050803037">"Локација"</item>
+    <item msgid="1735171933192715957">"Преузми статистику о коришћењу"</item>
+    <item msgid="1014093788778383554">"Искључи/укључи звук микрофона"</item>
+    <item msgid="4199297950608622850">"Приказивање искачућих пoрука"</item>
+    <item msgid="2527962435313398821">"Медији за пројекат"</item>
+    <item msgid="5117506254221861929">"Активирање VPN-а"</item>
+    <item msgid="8291198322681891160">"Упис на позадину"</item>
+    <item msgid="7106921284621230961">"Структура помоћи"</item>
+    <item msgid="4496533640894624799">"Снимак екрана помоћи"</item>
+    <item msgid="2598847264853993611">"Читање стања телефона"</item>
+    <item msgid="9215610846802973353">"Додавање говорне поште"</item>
+    <item msgid="9186411956086478261">"Коришћење SIP-а"</item>
+    <item msgid="6884763100104539558">"Обрада одлазног позива"</item>
+    <item msgid="125513972170580692">"Отисак прста"</item>
+    <item msgid="2556071024281275619">"Сензори за тело"</item>
+    <item msgid="617168514928339387">"Читање порука за мобилне уређаје на локалитету"</item>
+    <item msgid="7134693570516523585">"Лажна локација"</item>
+    <item msgid="7224489175375229399">"Читање меморијског простора"</item>
+    <item msgid="8472735063903258202">"Упис података у меморијски простор"</item>
+    <item msgid="4069276819909595110">"Укључивање екрана"</item>
+    <item msgid="1228338896751121025">"Приступ налозима"</item>
+    <item msgid="3181581793459233672">"Рад у позадини"</item>
+    <item msgid="2340936043025374076">"Јачина звука за приступачност"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Кратко"</item>
     <item msgid="4816511817309094890">"Средњи"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Никада не дозволи"</item>
     <item msgid="8184570120217958741">"Увек дозволи"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Нормално"</item>
+    <item msgid="5101233285497327432">"Умерено"</item>
+    <item msgid="1555861583162930714">"Ниска"</item>
+    <item msgid="1719683776264798117">"Критична"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Нормална"</item>
+    <item msgid="6107138933849816768">"Умерена"</item>
+    <item msgid="182695359839047859">"Ниска"</item>
+    <item msgid="8577246509202964244">"Критично"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Непрекидна"</item>
     <item msgid="167418068739176448">"Највећа активност"</item>
diff --git a/tests/CarDeveloperOptions/res/values-sr/strings.xml b/tests/CarDeveloperOptions/res/values-sr/strings.xml
index be9bc3e..12c3c5b 100644
--- a/tests/CarDeveloperOptions/res/values-sr/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-sr/strings.xml
@@ -84,8 +84,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Омогућава да текст на екрану буде мањи или већи."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Умањи"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Увећај"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Пример текста"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Чаробњак из Оза"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Поглавље 11: Чудесни Смарагдни град Оза"</string>
@@ -507,7 +506,7 @@
     <string name="fingerprint_delete_title" msgid="3120894112324235536">"Уклоните „<xliff:g id="FINGERPRINT_ID">%1$s</xliff:g>“"</string>
     <string name="fingerprint_delete_message" msgid="5895802741486967970">"Желите ли да избришете овај отисак прста?"</string>
     <string name="fingerprint_last_delete_message" msgid="3346252479778971442">"Нећете моћи да откључавате телефон, одобравате куповине нити да се пријављујете у апликације помоћу отисака прстију"</string>
-    <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Нећете моћи да откључавате профил за Work, одобравате куповине нити да се пријављујете у апликације за Work помоћу отисака прстију"</string>
+    <string name="fingerprint_last_delete_message_profile_challenge" msgid="5385095150532247025">"Нећете моћи да откључавате пословни профил, одобравате куповине нити да се пријављујете у пословне апликације помоћу отисака прстију"</string>
     <string name="fingerprint_last_delete_confirm" msgid="7984595457589664004">"Да, уклони"</string>
     <string name="crypt_keeper_settings_title" msgid="839783588093862748">"Шифровање"</string>
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"Шифруј таблет"</string>
@@ -549,7 +548,7 @@
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="default" msgid="8114514312665251311"></string>
     <string name="lock_settings_picker_title" msgid="1034741644461982205">"Закључавање екрана"</string>
-    <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Изаберите закључавање за Work"</string>
+    <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Изаберите закључавање за посао"</string>
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Заштитите таблет"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Заштитите уређај"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Заштитите телефон"</string>
@@ -564,7 +563,7 @@
     <string name="unlock_set_unlock_launch_picker_title" msgid="2731152716948003853">"Закључавање екрана"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_immediately" msgid="5596186270725220642">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g>/одмах после спавања"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="3861167251234952373">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g>/<xliff:g id="TIMEOUT_STRING">%2$s</xliff:g> после спавања"</string>
-    <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"Закључавање профила за Work"</string>
+    <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"Закључавање пословног профила"</string>
     <string name="unlock_set_unlock_launch_picker_change_title" msgid="32310692507029407">"Промена закључ. екрана"</string>
     <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2072792784866320522">"Мењање или онемогућавање шаблона, PIN кода или безбедности лозинке"</string>
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="9070847611379078795">"Изаберите метод закључавања екрана"</string>
@@ -648,12 +647,12 @@
     <string name="lock_last_pattern_attempt_before_wipe_user" msgid="5194192938934564218">"Ако у следећем покушају унесете нетачан шаблон, избрисаћемо овог корисника"</string>
     <string name="lock_last_pin_attempt_before_wipe_user" msgid="7833852187363499906">"Ако у следећем покушају унесете нетачан PIN, избрисаћемо овог корисника"</string>
     <string name="lock_last_password_attempt_before_wipe_user" msgid="8979742220140001204">"Ако у следећем покушају унесете нетачну лозинку, избрисаћемо овог корисника"</string>
-    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Ако у следећем покушају унесете нетачан шаблон, избрисаћемо профил за Work и његове податке"</string>
-    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Ако у следећем покушају унесете нетачан PIN, избрисаћемо профил за Work и његове податке"</string>
-    <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Ако у следећем покушају унесете нетачну лозинку, избрисаћемо профил за Work и његове податке"</string>
+    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Ако у следећем покушају унесете нетачан шаблон, избрисаћемо пословни профил и његове податке"</string>
+    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Ако у следећем покушају унесете нетачан PIN, избрисаћемо пословни профил и његове податке"</string>
+    <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Ако у следећем покушају унесете нетачну лозинку, избрисаћемо пословни профил и његове податке"</string>
     <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Превише нетачних покушаја. Избрисаћемо податке са овог уређаја."</string>
     <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"Превише нетачних покушаја. Избрисаћемо овог корисника."</string>
-    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Превише нетачних покушаја. Избрисаћемо овај профил за Work и његове податке."</string>
+    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Превише нетачних покушаја. Избрисаћемо овај пословни профил и његове податке."</string>
     <string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="3950582268749037318">"Одбаци"</string>
     <plurals name="lockpassword_password_too_short" formatted="false" msgid="694091983183310827">
       <item quantity="one">Мора да садржи најмање <xliff:g id="COUNT_1">%d</xliff:g> знак</item>
@@ -747,7 +746,7 @@
     <string name="bluetooth_settings" msgid="5228032727293770389">"Bluetooth"</string>
     <string name="bluetooth_settings_title" msgid="7261244857456521825">"Bluetooth"</string>
     <string name="bluetooth_settings_summary" msgid="1221689092429277887">"Управљање везама, подешавање назива и видљивости уређаја"</string>
-    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Упарити са уређајем <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
+    <string name="bluetooth_pairing_request" msgid="7221745525632573125">"Желите да упарите са <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
     <string name="bluetooth_pairing_key_msg" msgid="1139230917419961975">"Кôд за упаривање са Bluetooth уређајем"</string>
     <string name="bluetooth_enter_passkey_msg" msgid="6205151011298670207">"Унесите кôд за упаривање, па притисните Return или Enter"</string>
     <string name="bluetooth_enable_alphanumeric_pin" msgid="9138308197078115672">"PIN садржи слова или симболе"</string>
@@ -945,7 +944,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Аутоматски"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Опсег од 2,4 GHz"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Опсег од 5,0 GHz"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Предност се даје опсегу од 5.0 GHz"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Предност има опсег од 5,0 GHz"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 GHz"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5,0 GHz"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Изаберите барем један опсег за Wi‑Fi хотспот:"</string>
@@ -963,8 +962,8 @@
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"Читање QR кода није успело. Поново центрирајте кôд, па пробајте поново"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"Пробајте поново. Ако се проблем настави, контактирајте произвођача уређаја"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"Дошло је до грешке"</string>
-    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"Уверите се да је уређај прикључен на извор напајања, напуњен и укључен"</string>
-    <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"Уверите се да је уређај прикључен на извор напајања, напуњен и укључен. Ако се проблем настави, контактирајте произвођача уређаја"</string>
+    <string name="wifi_dpp_failure_timeout" msgid="5060065168142109420">"Уверите се да је уређај прикључен на струју, напуњен и укључен"</string>
+    <string name="wifi_dpp_failure_generic" msgid="7840142544736640189">"Уверите се да је уређај прикључен на струју, напуњен и укључен. Ако се проблем настави, контактирајте произвођача уређаја"</string>
     <string name="wifi_dpp_failure_not_supported" msgid="111779621766171626">"Овај уређај не подржава додавање мреже „<xliff:g id="SSID">%1$s</xliff:g>“"</string>
     <string name="wifi_dpp_check_connection_try_again" msgid="7144663015219170999">"Проверите везу и пробајте поново"</string>
     <string name="wifi_dpp_choose_network" msgid="6251424431594491691">"Одаберите мрежу"</string>
@@ -981,7 +980,7 @@
     <string name="wifi_dpp_lockscreen_title" msgid="3910665850075275963">"Потврдите да сте то ви"</string>
     <string name="wifi_dpp_wifi_password" msgid="8007558344032612455">"Лозинка за Wi-Fi: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
     <string name="wifi_dpp_hotspot_password" msgid="6172326289042241924">"Лозинка хотспота: <xliff:g id="PASSWORD">%1$s</xliff:g>"</string>
-    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Додајте уређај"</string>
+    <string name="wifi_dpp_add_device" msgid="1347056725253936358">"Додај уређај"</string>
     <string name="wifi_dpp_connect_network_using_qr_code" msgid="115993715600532357">"Повежите се на ову мрежу помоћу QR кода"</string>
     <string name="retry" msgid="8500839563577344702">"Пробај поново"</string>
     <string name="wifi_shared" msgid="5054256778276524960">"Дели са другим корисницима уређаја"</string>
@@ -1121,7 +1120,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобилни подаци"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ако је Wi‑Fi недоступан, користите мобилну мрежу"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ако мобилна мрежа није доступна, користи Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Позивање преко Wi-Fi-ја. Ако се Wi‑Fi веза изгуби, позив ће се завршити."</string>
@@ -1435,7 +1437,7 @@
     <string name="storage_menu_set_up" msgid="2849170579745958513">"Подеси"</string>
     <string name="storage_menu_explore" msgid="3733439525636202662">"Истражи"</string>
     <string name="storage_menu_free" msgid="6586253660759145508">"Ослободите простор"</string>
-    <string name="storage_menu_manage" msgid="461380717863926516">"Управљај складиштењем"</string>
+    <string name="storage_menu_manage" msgid="461380717863926516">"Управљај меморијским простором"</string>
     <string name="storage_title_usb" msgid="2015671467177303099">"USB уређај је повезан са рачунаром"</string>
     <string name="usb_connection_category" msgid="2888975803638116041">"Повежи као"</string>
     <string name="usb_mtp_title" msgid="6893938968831995500">"Медијски уређај (MTP)"</string>
@@ -1584,7 +1586,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Мобилни оператер не дозвољава називе приступних тачака типа %s."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Враћање подразумеваних подешавања назива приступне тачке."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Ресетуј на подразумевано"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Поновно постављање подразумеваних подешавања назива приступне тачке је завршено"</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Поновно постављање подразумеваних подешавања назива приступне тачке је завршено."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Опције за ресетовање"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Мрежа, апликацијe или уређај могу да се ресетују"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Ресетуј Wi-Fi, мобилну мрежу и Bluetooth"</string>
@@ -1627,17 +1629,17 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"Сачекајте..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"Подешавања позива"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Подешавање гласовне поште, преусмеравања позива, стављања позива на чекање, ИД-а позиваоца"</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB Интернет повезивање"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"USB привезивање"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Преносни хотспот"</string>
     <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Bluetooth привезивање"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Повезивање са интернетом"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Привезивање"</string>
     <string name="tether_settings_title_all" msgid="6935843543433954181">"Хотспот и привезивање"</string>
     <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Хотспот је укључен, привезивање"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Хотспот је укључен"</string>
     <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Привезивање"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Није могуће привезивање нити коришћење преносивих хотспотова док је Уштеда података укључена"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB повезивање"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"USB привезивање"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Дељење интернет везе телефона преко USB-а"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Дељење интернет везе таблета преко USB-а"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Bluetooth привезивање"</string>
@@ -1656,7 +1658,7 @@
     <string name="sms_change_default_no_previous_dialog_text" msgid="4680224695080527907">"Желите ли да користите <xliff:g id="NEW_APP">%s</xliff:g> као апликацију за SMS?"</string>
     <string name="network_scorer_picker_title" msgid="1691073966560952916">"Добављач оцене мреже"</string>
     <string name="network_scorer_picker_none_preference" msgid="6448280557733231737">"Ништа"</string>
-    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Желите да промените Wi‑Fi assistant-а?"</string>
+    <string name="network_scorer_change_active_dialog_title" msgid="4274159562371475090">"Желите да промените Wi‑Fi помоћник?"</string>
     <string name="network_scorer_change_active_dialog_text" msgid="4264089809189760730">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%1$s</xliff:g> уместо апликације <xliff:g id="CURRENT_APP">%2$s</xliff:g> за управљање мрежним везама?"</string>
     <string name="network_scorer_change_active_no_previous_dialog_text" msgid="6394483538843474495">"Желите ли да користите апликацију <xliff:g id="NEW_APP">%s</xliff:g> за управљање мрежним везама?"</string>
     <string name="mobile_unknown_sim_operator" msgid="872589370085135817">"Непознати SIM оператер"</string>
@@ -1674,7 +1676,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Недавни приступ локацији"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Прикажи детаље"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Ниједна апликација није скоро тражила локацију"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Ниједна апликација није недавно тражила локацију"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Ниједна апликација није недавно приступила локацији"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Велика потрошња батерије"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Мала потрошња батерије"</string>
@@ -1747,15 +1749,15 @@
     <string name="lockpassword_confirm_your_pattern_generic" msgid="6146545393074070916">"Употребите шаблон за уређај да бисте наставили"</string>
     <string name="lockpassword_confirm_your_pin_generic" msgid="8732268389177735264">"Унесите PIN уређаја да бисте наставили"</string>
     <string name="lockpassword_confirm_your_password_generic" msgid="6304552647060899594">"Унесите лозинку уређаја да бисте наставили"</string>
-    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"Употребите шаблон за профил за Work да бисте наставили"</string>
-    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"Унесите PIN за профил за Work да бисте наставили"</string>
-    <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"Унесите лозинку за профил за Work да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"Употребите шаблон за пословни профил да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"Унесите PIN за пословни профил да бисте наставили"</string>
+    <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"Унесите лозинку за пословни профил да бисте наставили"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="1014214190135045781">"Ради веће безбедности користите шаблон за уређај"</string>
     <string name="lockpassword_strong_auth_required_device_pin" msgid="24030584350601016">"Ради веће безбедности унесите PIN за уређај"</string>
     <string name="lockpassword_strong_auth_required_device_password" msgid="7746588206458754598">"Ради веће безбедности унесите лозинку за уређај"</string>
-    <string name="lockpassword_strong_auth_required_work_pattern" msgid="6861154706098327320">"Ради веће безбедности користите шаблон за Work"</string>
-    <string name="lockpassword_strong_auth_required_work_pin" msgid="6306902249365524526">"Ради веће безбедности унесите PIN за Work"</string>
-    <string name="lockpassword_strong_auth_required_work_password" msgid="2917338218971012776">"Ради веће безбедности унесите лозинку за Work"</string>
+    <string name="lockpassword_strong_auth_required_work_pattern" msgid="6861154706098327320">"Ради веће безбедности користите шаблон за посао"</string>
+    <string name="lockpassword_strong_auth_required_work_pin" msgid="6306902249365524526">"Ради веће безбедности унесите пословни PIN"</string>
+    <string name="lockpassword_strong_auth_required_work_password" msgid="2917338218971012776">"Ради веће безбедности унесите пословну лозинку"</string>
     <string name="lockpassword_confirm_your_pattern_details_frp" msgid="1085862410379709928">"Телефон је ресетован на фабричка подешавања. Да бисте га користили, унесите претходни шаблон."</string>
     <string name="lockpassword_confirm_your_pin_details_frp" msgid="6849889353126558761">"Телефон је ресетован на фабричка подешавања. Да бисте га користили, унесите претходни PIN."</string>
     <string name="lockpassword_confirm_your_password_details_frp" msgid="3239944795659418737">"Телефон је ресетован на фабричка подешавања. Да бисте га користили, унесите претходну лозинку."</string>
@@ -1792,13 +1794,13 @@
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"Како нацртати шаблон за откључавање"</string>
     <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="3043127997770535921">"Превише нетачних покушаја. Пробајте поново за <xliff:g id="NUMBER">%d</xliff:g> сек."</string>
     <string name="activity_not_found" msgid="3492413375341165453">"Апликација није инсталирана на телефону."</string>
-    <string name="lock_settings_profile_title" msgid="3928992050074556160">"Безбедност профила за Work"</string>
-    <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Закључавање екрана за профил за Work"</string>
+    <string name="lock_settings_profile_title" msgid="3928992050074556160">"Безбедност пословног профила"</string>
+    <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Закључавање екрана за пословни профил"</string>
     <string name="lock_settings_profile_unification_title" msgid="2629698644191935287">"Користи једно закључавање"</string>
-    <string name="lock_settings_profile_unification_summary" msgid="4797188229308317207">"Користите једно закључавање екрана за профил за Work и уређај"</string>
+    <string name="lock_settings_profile_unification_summary" msgid="4797188229308317207">"Користите једно закључавање екрана за пословни профил и уређај"</string>
     <string name="lock_settings_profile_unification_dialog_title" msgid="1690211342491067179">"Желите ли да користите једно закључавање?"</string>
-    <string name="lock_settings_profile_unification_dialog_body" msgid="8629158560032603101">"Уређај ће користити закључавање екрана за Work профил. Смернице за Work ће се примењивати на оба закључавања."</string>
-    <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="1217609779267643474">"Закључавање екрана за профил за Work није у складу са безбедносним захтевима ваше организације. Можете да користите исто закључавање екрана за уређај и профил за Work, али ће се примењивати све смернице за закључавање екрана за Work."</string>
+    <string name="lock_settings_profile_unification_dialog_body" msgid="8629158560032603101">"Уређај ће користити закључавање екрана за пословни профил. Смернице за посао ће се примењивати на оба закључавања."</string>
+    <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="1217609779267643474">"Закључавање екрана за пословни профил није у складу са безбедносним захтевима ваше организације. Можете да користите исто закључавање екрана за уређај и пословни профил, али ће се примењивати све смернице за закључавање екрана за посао."</string>
     <string name="lock_settings_profile_unification_dialog_confirm" msgid="888942752619181804">"Користи једно закључавање"</string>
     <string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8046452284593057185">"Користи једно закључавање"</string>
     <string name="lock_settings_profile_unified_summary" msgid="5347244550751740962">"Исто као закључавање екрана уређаја"</string>
@@ -1992,7 +1994,7 @@
     <string name="show_ime_summary" msgid="3246628154011464373">"Задржи је на екрану док је физичка тастатура активна"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"Помоћ за тастерске пречице"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Приказ доступних пречица"</string>
-    <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Тастатуре и алатке за профил за Work"</string>
+    <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Тастатуре и алатке за пословни профил"</string>
     <string name="virtual_keyboards_for_work_title" msgid="3968291646938204523">"Виртуелна тастатура за посао"</string>
     <string name="default_keyboard_layout" msgid="9171704064451242230">"Подразумевано"</string>
     <string name="pointer_speed" msgid="800691982011350432">"Брзина показивача"</string>
@@ -2304,7 +2306,7 @@
     <string name="battery_tip_smart_battery_title" product="tablet" msgid="203494973250969040">"Продужите трајање батерије таблета"</string>
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"Продужите трајање батерије уређаја"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"Укључите менаџер батерије"</string>
-    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Укључи уштеду батерије"</string>
+    <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Укључите уштеду батерије"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Батерија може да се испразни раније него обично"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Уштеда батерије је укључена"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Неке функције могу да буду ограничене"</string>
@@ -2599,7 +2601,7 @@
     <string name="fullbackup_erase_dialog_message" msgid="2588536036471144070">"Желите ли да зауставите прављење резервних копија података уређаја (попут Wi-Fi лозинки и историје позива) и података апликација (попут подешавања и датотека сачуваних у апликацијама) и избришете све копије на удаљеним серверима?"</string>
     <string name="fullbackup_data_summary" msgid="406274198094268556">"Аутоматски правите резервне копије података уређаја (попут Wi-Fi лозинки и историје позива) и података апликација (попут подешавања и датотека сачуваних у апликацијама) даљински.\n\nКада укључите аутоматско прављење резервних копија, подаци уређаја и апликација се повремено чувају даљински. Подаци апликација могу да буду било који подаци које је апликација сачувала (на основу подешавања програмера), укључујући потенцијално осетљиве податке као што су контакти, поруке и слике."</string>
     <string name="device_admin_settings_title" msgid="2074319456047334589">"Подешавања администратора уређаја"</string>
-    <string name="active_device_admin_msg" msgid="6929247869516924549">"Апликација за администраторе уређаја"</string>
+    <string name="active_device_admin_msg" msgid="6929247869516924549">"Апликација за администратора уређаја"</string>
     <string name="remove_device_admin" msgid="4413438593788336400">"Деактивирај ову апликацију за администратора уређаја"</string>
     <string name="uninstall_device_admin" msgid="9017499299961719830">"Деинсталирај апликацију"</string>
     <string name="remove_and_uninstall_device_admin" msgid="5607703579731496253">"Деактивирај и деинсталирај"</string>
@@ -2614,7 +2616,7 @@
     <string name="add_device_admin" msgid="1621152410207260584">"Активирај ову апликацију за администраторе уређаја"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"Администратор уређаја"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"Активирање ове апликације за администраторе омогућиће апликацији <xliff:g id="APP_NAME">%1$s</xliff:g> да обави следеће операције:"</string>
-    <string name="device_admin_status" msgid="5424944611789040723">"Ова апликација за администраторе је активна и омогућава апликацији <xliff:g id="APP_NAME">%1$s</xliff:g> да обави следеће операције:"</string>
+    <string name="device_admin_status" msgid="5424944611789040723">"Ова апликација за администратора је активна и омогућава апликацији <xliff:g id="APP_NAME">%1$s</xliff:g> да обави следеће операције:"</string>
     <string name="profile_owner_add_title" msgid="735805919754362791">"Активирати Менаџера профила?"</string>
     <string name="adding_profile_owner_warning" msgid="1284541194547382194">"Ако наставите, корисником ће управљати администратор, који ће можда моћи да чува и повезане податке, поред личних података.\n\nАдминистратор може да прати подешавања, приступ, апликације и податке повезане са овим корисником, укључујући активности на мрежи и информације о локацији уређаја, као и да управља њима."</string>
     <string name="admin_disabled_other_options" msgid="8097063307730025707">"Администратор је онемогућио друге опције"</string>
@@ -2632,7 +2634,7 @@
     <string name="sync_is_failing" msgid="8284618104132302644">"Синхронизација тренутно има проблема. Ускоро ће се вратити."</string>
     <string name="add_account_label" msgid="4461298847239641874">"Додај налог"</string>
     <string name="managed_profile_not_available_label" msgid="8784246681719821917">"Пословни профил још увек није доступан"</string>
-    <string name="work_mode_label" msgid="6845849194740195757">"Профил за Work"</string>
+    <string name="work_mode_label" msgid="6845849194740195757">"Пословни профил"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Овим управља организација"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"Апликације и обавештења су искључени"</string>
     <string name="remove_managed_profile_label" msgid="4625542553784793536">"Уклони профил за посао"</string>
@@ -2875,7 +2877,7 @@
       <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> су инсталирала ауторитете за издавање сертификата на уређају, што може да им омогући да прате активности уређаја на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nКонтактирајте администратора да бисте добили више информација о овим сертификатима.</item>
     </plurals>
     <plurals name="ssl_ca_cert_info_message" formatted="false" msgid="8271858091418779584">
-      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> је инсталирао ауторитете за издавање сертификата за профил за Work, што може да му омогући да прати активности на пословној мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nКонтактирајте администратора да бисте добили више информација о овим сертификатима.</item>
+      <item quantity="one"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> је инсталирао ауторитете за издавање сертификата за пословни профил, што може да му омогући да прати активности на пословној мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nКонтактирајте администратора да бисте добили више информација о овим сертификатима.</item>
       <item quantity="few"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> су инсталирала ауторитете за издавање сертификата на уређају, што може да им омогући да прате активности уређаја на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nКонтактирајте администратора да бисте добили више информација о овим сертификатима.</item>
       <item quantity="other"><xliff:g id="MANAGING_DOMAIN_1">%s</xliff:g> су инсталирала ауторитете за издавање сертификата на уређају, што може да им омогући да прате активности уређаја на мрежи, укључујући имејлове, апликације и безбедне веб-сајтове.\n\nКонтактирајте администратора да бисте добили више информација о овим сертификатима.</item>
     </plurals>
@@ -3132,7 +3134,7 @@
     <string name="keywords_color_temperature" msgid="2255253972992035046">"боја, температура, D65, D73, бела, жута, плава, топла, хладна"</string>
     <string name="keywords_lockscreen" msgid="4936846554280830394">"превлачење за откључавање, лозинка, шаблон, PIN"</string>
     <string name="keywords_profile_challenge" msgid="8653718001253979611">"work изазов, work, профил"</string>
-    <string name="keywords_unification" msgid="2020759909366983593">"профил за Work, профил којим се управља, обједини, обједињавање, Work, профил"</string>
+    <string name="keywords_unification" msgid="2020759909366983593">"пословни профил, профил којим се управља, обједини, обједињавање, Work, профил"</string>
     <string name="keywords_gesture" msgid="5031323247529869644">"покрети"</string>
     <string name="keywords_payment_settings" msgid="4745023716567666052">"платите, додирните, плаћања"</string>
     <string name="keywords_backup" msgid="7433356270034921627">"резервна копија, правити резервну копију"</string>
@@ -3253,10 +3255,10 @@
     <string name="zen_mode_block_effects_screen_off" msgid="6380935819882837552">"Када је екран искључен"</string>
     <string name="zen_mode_block_effect_sound" msgid="1499243540186357631">"Искључи звук и вибрацију"</string>
     <string name="zen_mode_block_effect_intent" msgid="5666951244667422668">"Не укључуј екран"</string>
-    <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Не користи треперење лампице"</string>
+    <string name="zen_mode_block_effect_light" msgid="8679333758037487644">"Не трепери лампицом"</string>
     <string name="zen_mode_block_effect_peek" msgid="6075662813575910221">"Не приказуј искачућа обавештења на екрану"</string>
     <string name="zen_mode_block_effect_status" msgid="6516614225115681068">"Сакриј иконе статусне траке у врху"</string>
-    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Сакриј тачке за обав. на иконама апл."</string>
+    <string name="zen_mode_block_effect_badge" msgid="3891743027347075136">"Сакриј тачке за обавештења на иконама апликација"</string>
     <string name="zen_mode_block_effect_ambient" msgid="6382013125863616197">"Не буди због обавештења"</string>
     <string name="zen_mode_block_effect_list" msgid="6081548478844912181">"Не приказуј на листи обавештења"</string>
     <string name="zen_mode_block_effect_summary_none" msgid="7166175186759564510">"Никад"</string>
@@ -3314,7 +3316,7 @@
     <string name="zen_custom_settings_notifications_header" msgid="7469592764589354302">"Обавештења"</string>
     <string name="zen_custom_settings_duration_header" msgid="1806465684026300942">"Трајање"</string>
     <string name="zen_msg_event_reminder_title" msgid="8685224436389816905">"Поруке, догађаји и подсетници"</string>
-    <string name="zen_msg_event_reminder_footer" msgid="164400918479831580">"Када је укључен режим Не узнемиравај, звукови обавештења за поруке, подсетнике и догађаје ће бити искључени, осим за ставке које сте дозволили изнад. Можете да прилагодите подешавања да бисте дозволили пријатељима, члановима породице или другим контактима да вас контактирају."</string>
+    <string name="zen_msg_event_reminder_footer" msgid="164400918479831580">"Када је укључен режим Не узнемиравај, звукови обавештења за поруке, подсетнике и догађаје ће бити искључени, осим за ставке које сте дозволили изнад. Можете да прилагодите подешавања и дозволите пријатељима, члановима породице или другим контактима да допру до вас."</string>
     <string name="zen_onboarding_ok" msgid="6403635918125323678">"Готово"</string>
     <string name="zen_onboarding_settings" msgid="1416466597876383322">"Подешавања"</string>
     <string name="zen_onboarding_new_setting_title" msgid="3622673375041304362">"Без звучног сигнала или визуелног обавештења"</string>
@@ -3322,16 +3324,16 @@
     <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"Нећете видети нити чути обавештења. Позиви од контаката са звездицом и поновних позивалаца су дозвољени."</string>
     <string name="zen_onboarding_current_setting_summary" msgid="3569246708507270821">"(тренутно подешавање)"</string>
     <string name="zen_onboarding_dnd_visual_disturbances_header" msgid="7584229011611927613">"Желите ли да промените подешавања обавештења за режим Не узнемиравај?"</string>
-    <string name="sound_work_settings" msgid="4140215240360927923">"Звуци за профил за Work"</string>
+    <string name="sound_work_settings" msgid="4140215240360927923">"Звуци за пословни профил"</string>
     <string name="work_use_personal_sounds_title" msgid="531727195073003599">"Користи звуке личног профила"</string>
-    <string name="work_use_personal_sounds_summary" msgid="2886871383995187441">"Звукови профила за Work су исти као и звукови за личне профиле"</string>
-    <string name="work_ringtone_title" msgid="5499360583947410224">"Мелодија звона за телефон за Work"</string>
+    <string name="work_use_personal_sounds_summary" msgid="2886871383995187441">"Звукови пословног профила су исти као и звукови за личне профиле"</string>
+    <string name="work_ringtone_title" msgid="5499360583947410224">"Мелодија звона пословног телефона"</string>
     <string name="work_notification_ringtone_title" msgid="8059159087214025757">"Подразумевани звук обавештења за посао"</string>
     <string name="work_alarm_ringtone_title" msgid="5328487181385375130">"Подразумевани звук аларма за посао"</string>
     <string name="work_sound_same_as_personal" msgid="7728560881697159758">"Исто као и за лични профил"</string>
     <string name="work_sync_dialog_title" msgid="4799120971202956837">"Желите ли да замените звукове?"</string>
     <string name="work_sync_dialog_yes" msgid="2110726233746476066">"Замени"</string>
-    <string name="work_sync_dialog_message" msgid="944233463059129156">"Звуци са личног профила ће се користити за профил за Work"</string>
+    <string name="work_sync_dialog_message" msgid="944233463059129156">"Звуци са личног профила ће се користити за пословни профил"</string>
     <string name="ringtones_install_custom_sound_title" msgid="210551218424553671">"Додати прилагођени звук?"</string>
     <string name="ringtones_install_custom_sound_content" msgid="6683649115132255452">"Ова датотека ће бити копирана у директоријум <xliff:g id="FOLDER_NAME">%s</xliff:g>"</string>
     <string name="ringtones_category_preference_title" msgid="4491932700769815470">"Мелодије звона"</string>
@@ -3340,7 +3342,7 @@
     <string name="recent_notifications" msgid="8125865995065032049">"Недавно послато"</string>
     <string name="recent_notifications_see_all_title" msgid="4089007770442871469">"Погледајте све из последњих 7 дана"</string>
     <string name="advanced_section_header" msgid="984680389373090015">"Напредна"</string>
-    <string name="profile_section_header" msgid="5471479005472037417">"Обавештења за Work"</string>
+    <string name="profile_section_header" msgid="5471479005472037417">"Пословна обавештења"</string>
     <string name="asst_capability_prioritizer_title" msgid="3488284760645922160">"Аутоматско давање приоритета за обавештења"</string>
     <string name="asst_capability_prioritizer_summary" msgid="3525640645743790796">"Аутоматски искључује звук и поставља на дно мање важна обавештења"</string>
     <string name="asst_capabilities_actions_replies_title" msgid="3929395108744251338">"Паметне радње и одговори"</string>
@@ -3362,14 +3364,14 @@
     <string name="swipe_direction_rtl" msgid="4521416787262888813">"Превуците улево да бисте одбацили, удесно да би се приказао мени"</string>
     <string name="notification_pulse_title" msgid="4861418327614907116">"Укључи треперење лампице"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"На закључаном екрану"</string>
-    <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Када је профил за Work закључан"</string>
+    <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Када је пословни профил закључан"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Прикажи сав садржај обавештења"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Сакриј осетљив садржај"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Не приказуј никаква обавештења"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Када је уређај закључан, како желите да се обавештења приказују?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"Обавештења"</string>
-    <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Приказуј сав садржај обавештења о профилу за Work"</string>
-    <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Сакриј осетљив садржај профила за Work"</string>
+    <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Приказуј сав садржај обавештења о пословном профилу"</string>
+    <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Сакриј осетљив садржај пословног профила"</string>
     <string name="lock_screen_notifications_interstitial_message_profile" msgid="3324187664458600354">"Када је уређај закључан, како желите да се приказују обавештења о профилу?"</string>
     <string name="lock_screen_notifications_interstitial_title_profile" msgid="4043621508889929254">"Обавештења о профилу"</string>
     <string name="notifications_title" msgid="8334011924253810654">"Обавештења"</string>
@@ -3403,7 +3405,7 @@
     <string name="notifications_sent_weekly" msgid="5859675428990259432">"~<xliff:g id="NUMBER">%1$s</xliff:g> недељно"</string>
     <string name="notifications_sent_never" msgid="237997329598144638">"Никад"</string>
     <string name="manage_notification_access_title" msgid="5348743662189787547">"Приступ обавештењима"</string>
-    <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Приступ обавештењима профила за Work је блокиран"</string>
+    <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Приступ обавештењима пословног профила је блокиран"</string>
     <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"Апликације не могу да читају обавештења"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="8496218948429646792">
       <item quantity="one">%d апликација може да чита обавештења</item>
@@ -3526,7 +3528,7 @@
     <string name="zen_mode_calls" msgid="1844534357711539325">"Дозволи позиве"</string>
     <string name="zen_mode_calls_title" msgid="2024387562355793661">"Позиви"</string>
     <string name="zen_mode_calls_footer" msgid="6319824006810688433">"Да бисте били сигурни да ће се дозвољени позиви чути, проверите да ли је уређај подешен да звони, вибрира или је у нечујном режиму."</string>
-    <string name="zen_mode_custom_calls_footer" msgid="7329231648477682337">"Долазни позиви су блокирани за „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Можете да прилагодите подешавања да бисте дозволили пријатељима, члановима породице или другим контактима да вас контактирају."</string>
+    <string name="zen_mode_custom_calls_footer" msgid="7329231648477682337">"Долазни позиви су блокирани за „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Можете да прилагодите подешавања и дозволите пријатељима, члановима породице или другим контактима да допру до вас."</string>
     <string name="zen_mode_starred_contacts_title" msgid="7099621384597127058">"Контакти са звездицом"</string>
     <plurals name="zen_mode_starred_contacts_summary_additional_contacts" formatted="false" msgid="1904181007981570805">
       <item quantity="one">Још <xliff:g id="NUM_PEOPLE">%d</xliff:g> особа</item>
@@ -3535,7 +3537,7 @@
     </plurals>
     <string name="zen_mode_messages" msgid="2908722562188394107">"Дозволи поруке"</string>
     <string name="zen_mode_messages_footer" msgid="5048951937714668561">"Да бисте били сигурни да ће се дозвољене поруке чути, проверите да ли је уређај подешен да звони, вибрира или је у нечујном режиму."</string>
-    <string name="zen_mode_custom_messages_footer" msgid="5566007423100361691">"Долазне поруке су блокиране за „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Можете да прилагодите подешавања да бисте дозволили пријатељима, члановима породице или другим контактима да вас контактирају."</string>
+    <string name="zen_mode_custom_messages_footer" msgid="5566007423100361691">"Долазне поруке су блокиране за „<xliff:g id="SCHEDULE_NAME">%1$s</xliff:g>“. Можете да прилагодите подешавања и дозволите пријатељима, члановима породице или другим контактима да допру до вас."</string>
     <string name="zen_mode_messages_title" msgid="786261471294055181">"SMS, MMS и апликације за размену порука"</string>
     <string name="zen_mode_from_anyone" msgid="7778836826814131083">"Од било кога"</string>
     <string name="zen_mode_from_contacts" msgid="267034158294332688">"Само од контаката"</string>
@@ -3543,7 +3545,7 @@
     <string name="zen_calls_summary_starred_repeat" msgid="9191394641577678207">"Од контаката са звездицом и поновних позивалаца"</string>
     <string name="zen_calls_summary_contacts_repeat" msgid="7747592096431111510">"Од контаката и поновних позивалаца"</string>
     <string name="zen_calls_summary_repeat_only" msgid="8839703337232747964">"Само од поновних позивалаца"</string>
-    <string name="zen_mode_from_none" msgid="7683889985618637010">"Ни од кога"</string>
+    <string name="zen_mode_from_none" msgid="7683889985618637010">"Нико"</string>
     <string name="zen_mode_from_none_calls" msgid="2967739140346917546">"Не дозволи позиве"</string>
     <string name="zen_mode_from_none_messages" msgid="9069143820057833634">"Не дозвољавај никакве поруке"</string>
     <string name="zen_mode_alarms" msgid="5528707742250954290">"Дозволи аларме"</string>
@@ -3610,7 +3612,7 @@
     <string name="screen_pinning_unlock_pin" msgid="1441705536015645023">"Тражи PIN пре откачињања"</string>
     <string name="screen_pinning_unlock_password" msgid="1017776884000170841">"Тражи лозинку пре откачињања"</string>
     <string name="screen_pinning_unlock_none" msgid="9183040569733226911">"Закључај уређај пре откачињања"</string>
-    <string name="opening_paragraph_delete_profile_unknown_company" msgid="2350380017136403670">"Овим профилом за Work управља:"</string>
+    <string name="opening_paragraph_delete_profile_unknown_company" msgid="2350380017136403670">"Овим пословним профилом управља:"</string>
     <string name="managing_admin" msgid="3212584016377581608">"Управља <xliff:g id="ADMIN_APP_LABEL">%s</xliff:g>"</string>
     <string name="experimental_preference" msgid="5903223408406906322">"(Експериментално)"</string>
     <string name="encryption_interstitial_header" msgid="3298397268731647519">"Безбедно покретање"</string>
@@ -3768,8 +3770,8 @@
     <string name="high_power_off" msgid="5906679734326490426">"Оптимизација коришћења батерије"</string>
     <string name="high_power_system" msgid="739584574711292753">"Оптимизација батерије није доступна"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Не примењујте оптимизацију батерије. Може брже да испразни батерију."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Желите ли да дозволите да апликација увек буде активна у позадини?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Ако дозволите да апликација <xliff:g id="APP_NAME">%1$s</xliff:g> увек буде активна у позадини, то може да смањи трајање батерије. \n\nКасније можете то да промените у одељку Подешавања &gt; Апликације и обавештења."</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Дозвољавате да апликација увек буде активна у позадини?"</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Ако дозволите да апликација <xliff:g id="APP_NAME">%1$s</xliff:g> увек буде активна у позадини, то може да скрати трајање батерије. \n\nКасније можете то да промените у одељку Подешавања &gt; Апликације и обавештења."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Потрошено је <xliff:g id="PERCENTAGE">%1$s</xliff:g> од последњег потпуног пуњења"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Управљање напајањем"</string>
     <string name="no_battery_summary" msgid="4105932628367471314">"Батерија није коришћена од последњег потпуног пуњења"</string>
@@ -3855,7 +3857,7 @@
     <string name="ignore_optimizations_off_desc" msgid="5598702251817814289">"Препоручено за дуже трајање батерије"</string>
     <string name="ignore_optimizations_title" msgid="7924345545276166305">"Желите ли да дозволите апликацији <xliff:g id="APP">%s</xliff:g> да игнорише оптимизације батерије?"</string>
     <string name="app_list_preference_none" msgid="7100409177446935028">"Ништа"</string>
-    <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Искључивање приступа коришћењу за ову апликацију не спречава администратора да прати потрошњу података за апликације на профилу за Work"</string>
+    <string name="work_profile_usage_access_warning" msgid="403208064382097510">"Искључивање приступа коришћењу за ову апликацију не спречава администратора да прати потрошњу података за апликације на пословном профилу"</string>
     <string name="accessibility_lock_screen_progress" msgid="8242917828598820049">"Употребљени знакови: <xliff:g id="COUNT_0">%1$d</xliff:g> од <xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="draw_overlay" msgid="2878665072530660668">"Приказ преко других апликација"</string>
     <string name="system_alert_window_settings" msgid="3024330223417646567">"Приказ преко других апликација"</string>
@@ -3939,7 +3941,7 @@
     <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"Не можете да отворите ову апликацију"</string>
     <string name="default_admin_support_msg" msgid="5789424433689798637">"Ако имате питања, обратите се ИТ администратору"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"Још детаља"</string>
-    <string name="admin_profile_owner_message" msgid="3199544166281052845">"Администратор може да надгледа апликације и податке повезане са профилом за Work, укључујући подешавања, дозволе, корпоративни приступ, активности на мрежи и информације о локацији уређаја, као и да управља њима."</string>
+    <string name="admin_profile_owner_message" msgid="3199544166281052845">"Администратор може да надгледа апликације и податке повезане са пословним профилом, укључујући подешавања, дозволе, корпоративни приступ, активности на мрежи и информације о локацији уређаја, као и да управља њима."</string>
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"Администратор може да надгледа апликације и податке повезане са овим корисником, укључујући подешавања, дозволе, корпоративни приступ, активности на мрежи и информације о локацији уређаја, као и да управља њима."</string>
     <string name="admin_device_owner_message" msgid="1823477572459610869">"Администратор може да прати апликације и податке повезане са овим уређајем, укључујући подешавања, дозволе, корпоративни приступ, активности на мрежи и информације о локацији уређаја, као и да управља њима."</string>
     <string name="condition_turn_off" msgid="4395150881365143558">"Искључи"</string>
@@ -3958,7 +3960,7 @@
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Интернет је доступан само преко Wi‑Fi мреже"</string>
     <string name="condition_bg_data_title" msgid="184684435298857712">"Уштеда података"</string>
     <string name="condition_bg_data_summary" msgid="5194942860807136682">"Функције су ограничене"</string>
-    <string name="condition_work_title" msgid="9046811302347490371">"Профил за Work је искључен"</string>
+    <string name="condition_work_title" msgid="9046811302347490371">"Пословни профил је искључен"</string>
     <string name="condition_work_summary" msgid="5586134491975748565">"За апликације и обавештења"</string>
     <string name="condition_device_muted_action_turn_on_sound" msgid="5849285946804815263">"Укључи звук"</string>
     <string name="condition_device_muted_title" msgid="3930542786434609976">"Звук звона је искључен"</string>
@@ -4017,7 +4019,7 @@
     </plurals>
     <string name="operator_warning" msgid="4676042739221117031">"Обрачун података код мобилног оператера се можда разликује од обрачуна уређаја."</string>
     <string name="data_used_template" msgid="761605393453849477">"Потрошили сте <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="set_data_warning" msgid="8115980184415563941">"Подешавање упозорења о подацима"</string>
+    <string name="set_data_warning" msgid="8115980184415563941">"Подеси упозорење о подацима"</string>
     <string name="data_warning" msgid="2699207195535036240">"Упозорење за потрошњу података"</string>
     <string name="data_warning_footnote" msgid="965724845580257305">"Упозорење за потрошњу података и ограничење потрошње података активира мерење уређаја. То може да се разликује од мерења мобилног оператера."</string>
     <string name="set_data_limit" msgid="5043770023229990674">"Подеси ограничење за податке"</string>
@@ -4267,11 +4269,11 @@
     <string name="enterprise_privacy_input_method_name" msgid="439610095825218563">"Подешено је на <xliff:g id="APP_LABEL">%s</xliff:g>"</string>
     <string name="enterprise_privacy_always_on_vpn_device" msgid="2022700916516458213">"Стално укључен VPN је укључен"</string>
     <string name="enterprise_privacy_always_on_vpn_personal" msgid="5644065780843002044">"Стално укључен VPN је укључен на личном профилу"</string>
-    <string name="enterprise_privacy_always_on_vpn_work" msgid="6443089897985373564">"Стално укључен VPN је укључен на профилу за Work"</string>
+    <string name="enterprise_privacy_always_on_vpn_work" msgid="6443089897985373564">"Стално укључен VPN је укључен на пословном профилу"</string>
     <string name="enterprise_privacy_global_http_proxy" msgid="3862135895716080830">"Глобални HTTP прокси је подешен"</string>
     <string name="enterprise_privacy_ca_certs_device" msgid="7715658848470643878">"Поуздани акредитиви"</string>
     <string name="enterprise_privacy_ca_certs_personal" msgid="1356447417193483802">"Поуздани акредитиви на личном профилу"</string>
-    <string name="enterprise_privacy_ca_certs_work" msgid="836419648894546893">"Поуздани акредитиви на профилу за Work"</string>
+    <string name="enterprise_privacy_ca_certs_work" msgid="836419648894546893">"Поуздани акредитиви на пословном профилу"</string>
     <plurals name="enterprise_privacy_number_ca_certs" formatted="false" msgid="7953528945502561752">
       <item quantity="one">Најмање <xliff:g id="COUNT_1">%d</xliff:g> CA сертификат</item>
       <item quantity="few">Најмање <xliff:g id="COUNT_1">%d</xliff:g> CA сертификата</item>
@@ -4280,7 +4282,7 @@
     <string name="enterprise_privacy_lock_device" msgid="1533125067038409945">"Администратор може да закључава уређај и ресетује лозинку"</string>
     <string name="enterprise_privacy_wipe_device" msgid="7555287990273929922">"Администратор може да брише све податке са уређаја"</string>
     <string name="enterprise_privacy_failed_password_wipe_device" msgid="4101502079202483156">"Неуспели покушаји уноса лозинке пре брисања свих података са уређаја"</string>
-    <string name="enterprise_privacy_failed_password_wipe_work" msgid="2881646286634693392">"Неуспели покушаји уноса лозинке пре брисања података са профила за Work"</string>
+    <string name="enterprise_privacy_failed_password_wipe_work" msgid="2881646286634693392">"Неуспели покушаји уноса лозинке пре брисања података са пословног профила"</string>
     <plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="562550414712223382">
       <item quantity="one"><xliff:g id="COUNT_1">%d</xliff:g> покушај</item>
       <item quantity="few"><xliff:g id="COUNT_1">%d</xliff:g> покушаја</item>
@@ -4554,7 +4556,7 @@
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Желите ли да уклоните овај предлог?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Предлог је уклоњен"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Опозови"</string>
-    <string name="low_storage_summary" msgid="4562224870189133400">"Преостало је мало слободног меморијског простора. <xliff:g id="PERCENTAGE">%1$s</xliff:g> је искоришћено – <xliff:g id="FREE_SPACE">%2$s</xliff:g> је слободно"</string>
+    <string name="low_storage_summary" msgid="4562224870189133400">"Нема много простора. <xliff:g id="PERCENTAGE">%1$s</xliff:g> је искоришћено – <xliff:g id="FREE_SPACE">%2$s</xliff:g> је слободно"</string>
     <string name="contextual_card_feedback_send" msgid="8698649023854350623">"Пошаљите повратне информације"</string>
     <string name="contextual_card_feedback_confirm_message" msgid="3987973028353264878">"Желите ли да нам пошаљете повратне информације за овај предлог?"</string>
     <string name="copyable_slice_toast" msgid="1357518174923789947">"Копирано је у привремену меморију: <xliff:g id="COPY_CONTENT">%1$s</xliff:g>"</string>
diff --git a/tests/CarDeveloperOptions/res/values-sv/arrays.xml b/tests/CarDeveloperOptions/res/values-sv/arrays.xml
index 8b5cdd4..d416ac4 100644
--- a/tests/CarDeveloperOptions/res/values-sv/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-sv/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Tillåt aldrig"</item>
     <item msgid="8184570120217958741">"Tillåt alltid"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Medel"</item>
+    <item msgid="1555861583162930714">"Låg"</item>
+    <item msgid="1719683776264798117">"Kritisk"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Måttlig"</item>
+    <item msgid="182695359839047859">"Låg"</item>
+    <item msgid="8577246509202964244">"Kritisk"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Ihållande"</item>
     <item msgid="167418068739176448">"Toppaktivitet"</item>
diff --git a/tests/CarDeveloperOptions/res/values-sv/strings.xml b/tests/CarDeveloperOptions/res/values-sv/strings.xml
index b22c73f..3a0b627 100644
--- a/tests/CarDeveloperOptions/res/values-sv/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-sv/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Gör texten på skärmen större eller mindre."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Förminska"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Förstora"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Exempeltext"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Den fantastiska trollkarlen från Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Kapitel 11: Den underbara Smaragdstaden i Oz"</string>
@@ -116,7 +115,7 @@
     <string name="bluetooth_empty_list_user_restricted" msgid="3616298363281495777">"Du saknar behörighet att ändra Bluetooth-inställningarna."</string>
     <string name="bluetooth_pairing_pref_title" msgid="2904954138013884029">"Parkoppla en ny enhet"</string>
     <string name="bluetooth_is_visible_message" msgid="6341088682252805612">"Enheter i närheten kan se <xliff:g id="DEVICE_NAME">%1$s</xliff:g> när Bluetooth är på."</string>
-    <string name="bluetooth_footer_mac_message" product="default" msgid="335341476746836260">"Mobilens Bluetooth-adress: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
+    <string name="bluetooth_footer_mac_message" product="default" msgid="335341476746836260">"Telefonens Bluetooth-adress: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_footer_mac_message" product="tablet" msgid="6033609611245782463">"Surfplattans Bluetooth-adress: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_footer_mac_message" product="device" msgid="7639919867088358038">"Enhetens Bluetooth-adress: <xliff:g id="BLUETOOTH_MAC_ADDRESS">%1$s</xliff:g>"</string>
     <string name="bluetooth_is_disconnect_question" msgid="6180709281434591654">"Vill du koppla från <xliff:g id="DEVICE_NAME">%1$s</xliff:g>?"</string>
@@ -364,9 +363,9 @@
     <string name="owner_info_settings_summary" msgid="4208702251226725583">"Inget"</string>
     <string name="owner_info_settings_status" msgid="8049975536717685126">"<xliff:g id="COUNT_0">%1$d</xliff:g>/<xliff:g id="COUNT_1">%2$d</xliff:g>"</string>
     <string name="owner_info_settings_edit_text_hint" msgid="2250029417257939706">"T.ex. Jockes Android."</string>
-    <string name="user_info_settings_title" msgid="1125111518759995748">"Användarinfo"</string>
+    <string name="user_info_settings_title" msgid="1125111518759995748">"Användarinformation"</string>
     <string name="show_profile_info_on_lockscreen_label" msgid="5204282771893683026">"Visa profilinfo på den låsta skärmen"</string>
-    <string name="profile_info_settings_title" msgid="4855892878512562551">"Profilinfo"</string>
+    <string name="profile_info_settings_title" msgid="4855892878512562551">"Profilinformation"</string>
     <string name="Accounts_settings_title" msgid="7901374987121953746">"Konton"</string>
     <string name="location_settings_title" msgid="2707201457572301030">"Plats"</string>
     <string name="location_settings_master_switch_title" msgid="3108016866082816733">"Använd plats"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Aktivera NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC skickar och tar emot data till och från denna enhet samt andra enheter eller mål i närheten, t.ex. betalningsterminaler, tillgänglighetsläsare och interaktiva annonser eller taggar."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Säker NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Tillåt endast betalningar och överföringar via NFC när skärmen är upplåst"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Tillåt endast användning i kollektivtrafiken och överföringar via NFC när skärmen är upplåst"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Redo att överföra appinnehåll via NFC"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Av"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobil enhet"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Använd mobilnätverk om Wi‑Fi inte är tillgängligt"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Använd Wi‑Fi om mobilnätverket inte är tillgängligt"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Ring via Wi‑Fi. Samtalet avslutas om Wi-Fi-anslutningen Wi-Fi bryts."</string>
@@ -1619,11 +1621,11 @@
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Det går inte att använda internetdelning eller trådlösa surfzoner när Databesparing är aktiverat."</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
     <string name="usb_tethering_button_text" msgid="6242228383142012332">"Delning via USB"</string>
-    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Dela mobilens internetanslutning via USB"</string>
+    <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Dela telefonens internetanslutning via USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Dela surfplattans internetanslutning via USB"</string>
     <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Delning via Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Dela surfplattans internetanslutning via Bluetooth"</string>
-    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Dela mobilens internetanslutning via Bluetooth"</string>
+    <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Dela telefonens internetanslutning via Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"<xliff:g id="DEVICE_NAME">%1$d</xliff:g>s internetanslutning delas via Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Det går inte att dela med mer än <xliff:g id="MAXCONNECTION">%1$d</xliff:g> enheter."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> kopplas från."</string>
@@ -1840,7 +1842,7 @@
     <string name="show_running_services" msgid="1895994322704667543">"Visa tjänster som körs"</string>
     <string name="show_background_processes" msgid="88012264528093617">"Visa cachade processer"</string>
     <string name="default_emergency_app" msgid="286530070173495823">"App för nödsituationer"</string>
-    <string name="reset_app_preferences" msgid="1426500030595212077">"Återställ inställningarna"</string>
+    <string name="reset_app_preferences" msgid="1426500030595212077">"Återställ appinställningarna"</string>
     <string name="reset_app_preferences_title" msgid="792909865493673598">"Vill du återställa?"</string>
     <string name="reset_app_preferences_desc" msgid="7935273005301096031">"Detta återställer alla inställningar för:\n\n "<li>"inaktiverade appar"</li>\n" "<li>"inaktiverade appaviseringar"</li>\n" "<li>"standardappar för åtgärder"</li>\n" "<li>"begränsningar i bakgrundsdata för appar"</li>\n" "<li>"begränsningar för alla behörigheter."</li>\n\n" Ingen appdata kommer att försvinna."</string>
     <string name="reset_app_preferences_button" msgid="2041894727477934656">"Återställ appar"</string>
@@ -2266,7 +2268,7 @@
     <string name="controls_subtitle" msgid="6920199888882834620">"Justera strömförbrukningen"</string>
     <string name="packages_subtitle" msgid="6506269487892204413">"Inkluderade paket"</string>
     <string name="battery_tip_summary_title" msgid="2750922152518825526">"Appar körs som vanligt"</string>
-    <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"Batteriförbrukningen i bakgrunden är normal på mobilen"</string>
+    <string name="battery_tip_summary_summary" product="default" msgid="6294900413896440006">"Batteriförbrukningen i bakgrunden är normal på telefonen"</string>
     <string name="battery_tip_summary_summary" product="tablet" msgid="5280099016800644130">"Batteriförbrukningen i bakgrunden är normal på surfplattan"</string>
     <string name="battery_tip_summary_summary" product="device" msgid="4459840492610842705">"Batteriförbrukningen i bakgrunden är normal på enheten"</string>
     <string name="battery_tip_low_battery_title" msgid="6784043681672161175">"Låg batterikapacitet"</string>
@@ -2279,7 +2281,7 @@
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Batteriet kan ta slut snabbare än vanligt"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Batterisparläget är aktiverat"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Vissa funktioner kan begränsas"</string>
-    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Mobilen används mer än vanligt"</string>
+    <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Telefonen används mer än vanligt"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Surfplattan används mer än vanligt"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Enheten används mer än vanligt"</string>
     <string name="battery_tip_high_usage_summary" msgid="5514749872957528189">"Batteriet kan ta slut snabbare än vanligt"</string>
@@ -2315,7 +2317,7 @@
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Den här appen kan dra batteri i bakgrunden. Batteriet kan ta slut snabbare än beräknat."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Ta bort"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Avbryt"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Batteriförbrukningen för apparna är normal. Om apparnas batteriförbrukning är för hög visas förslag på mobilen om åtgärder du kan vidta.\n\nOm batteriet börjar ta slut kan du aktivera batterisparläget."</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Batteriförbrukningen för apparna är normal. Om apparnas batteriförbrukning är för hög visas förslag på telefonen om åtgärder du kan vidta.\n\nOm batteriet börjar ta slut kan du aktivera batterisparläget."</string>
     <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"Batteriförbrukningen för apparna är normal. Om apparnas batteriförbrukning är för hög visas förslag på surfplattan om åtgärder du kan vidta.\n\nOm batteriet börjar ta slut kan du aktivera batterisparläget."</string>
     <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"Batteriförbrukningen för apparna är normal. Om apparnas batteriförbrukning är för hög visas förslag på enheten om åtgärder du kan vidta.\n\nOm batteriet börjar ta slut kan du aktivera batterisparläget."</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"Battery Manager"</string>
@@ -2676,7 +2678,7 @@
     <string name="data_usage_label_foreground" msgid="2471091128648754601">"Förgrund"</string>
     <string name="data_usage_label_background" msgid="1618794447370396845">"Bakgrund"</string>
     <string name="data_usage_app_restricted" msgid="7569077654579299326">"begränsad"</string>
-    <string name="data_usage_disable_mobile" msgid="4125335076749119451">"Vill du inaktivera mobildatan?"</string>
+    <string name="data_usage_disable_mobile" msgid="4125335076749119451">"Vill du inaktivera mobildata?"</string>
     <string name="data_usage_disable_mobile_limit" msgid="1937796699758613667">"Ange gräns för mobildata"</string>
     <string name="data_usage_disable_4g_limit" msgid="7131367986548147266">"Ange gräns för data via 4G"</string>
     <string name="data_usage_disable_3g_limit" msgid="6746819313032692220">"Ange gräns för data via 2G-3G"</string>
@@ -2713,7 +2715,7 @@
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Ange gräns för dataanvändning"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"Begränsa dataanvändningen"</string>
     <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"När mobildatan når den gräns du har angett inaktiveras den av surfplattan.\n\nVi föreslår att du anger en något lägre gräns eftersom dataanvändningen mäts med din surfplatta och din leverantör kan mäta användningen på ett annat sätt."</string>
-    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"När mobildatan når den gräns du har angett inaktiveras den av mobilen.\n\nVi föreslår att du anger en något lägre gräns eftersom dataanvändningen mäts med din mobil och din leverantör kan mäta användningen på ett annat sätt."</string>
+    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"När mobildatan når den gräns du har angett inaktiveras den av telefonen.\n\nVi föreslår att du anger en något lägre gräns eftersom dataanvändningen mäts med din telefon och din leverantör kan mäta användningen på ett annat sätt."</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"Vill du begränsa bakgrundsdata?"</string>
     <string name="data_usage_restrict_background" msgid="995811034744808575">"Om du begränsar mobildatan i bakgrunden fungerar vissa appar och tjänster endast när du är ansluten till ett Wi-Fi-nätverk."</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"Om du begränsar mobildatan i bakgrunden fungerar vissa appar och tjänster endast när du är ansluten till ett Wi-Fi-nätverk.\n\nAlla användare på den här surfplattan påverkas av inställningen."</string>
@@ -2848,7 +2850,7 @@
     <string name="user_settings_title" msgid="7917598650933179545">"Flera användare"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"Dela enheten genom att lägga till nya användare. Varje användare får ett personligt utrymme på enheten med egna startskärmar, konton, appar, inställningar med mera."</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"Dela surfplattan genom att lägga till nya användare. Varje användare får ett personligt utrymme på surfplattan med egna startskärmar, konton, appar, inställningar med mera."</string>
-    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"Dela mobilen genom att lägga till nya användare. Varje användare får ett personligt utrymme på mobilen med egna startskärmar, konton, appar, inställningar med mera."</string>
+    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"Dela telefonen genom att lägga till nya användare. Varje användare får ett personligt utrymme på telefonen med egna startskärmar, konton, appar, inställningar med mera."</string>
     <string name="user_list_title" msgid="6670258645246192324">"Användare och profiler"</string>
     <string name="user_add_user_or_profile_menu" msgid="4220679989900149336">"Lägg till användare eller profil"</string>
     <string name="user_add_user_menu" msgid="9006572936456324794">"Lägg till användare"</string>
@@ -2914,7 +2916,7 @@
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Utöka appens inställningar"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Tryck och betala"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Så fungerar det"</string>
-    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Betala med mobilen i butiker"</string>
+    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Betala med telefonen i butiker"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"Standardapp för betalning"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Har inte angetts"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> – <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Förutom när en annan betalningsapp är öppen"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Vid en Tryck och betala-terminal betalar du med:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Betala vid en kassaterminal"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Konfigurera en betalningsapp. Sedan behöver du bara hålla mobilens baksida mot terminaler med symbolen för kontaktlös överföring."</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Konfigurera en betalningsapp. Sedan behöver du bara hålla telefonens baksida mot terminaler med symbolen för kontaktlös överföring."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"OK"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Mer ..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Vill du ange den här som standard?"</string>
@@ -3159,7 +3161,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"Signaler"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Vibrationer"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Ljud vid uppstart"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"Realtidstextning"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"Live Caption"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"Texta media automatiskt"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Aldrig"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3199,7 +3201,7 @@
     <string name="zen_mode_restrict_notifications_mute_footer" msgid="3049522809520549054">"Inga ljud eller vibrationer används när du tar emot aviseringar på mobilen."</string>
     <string name="zen_mode_restrict_notifications_hide" msgid="3296933643539682552">"Inga synliga eller hörbara aviseringar"</string>
     <string name="zen_mode_restrict_notifications_hide_summary" msgid="1449301153755270168">"Aviseringar varken syns eller hörs"</string>
-    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"Mobilen visar inte nya eller befintliga aviseringar och varken vibrerar eller låter. Viktiga aviseringar för aktivitet och status för mobilen visas fortfarande.\n\nNär du inaktiverar Stör ej kan du visa dina aviseringar genom att svepa nedåt från skärmens överkant."</string>
+    <string name="zen_mode_restrict_notifications_hide_footer" msgid="7617688597593946765">"Telefonen visar inte nya eller befintliga aviseringar och varken vibrerar eller låter. Viktiga aviseringar för aktivitet och status för telefonen visas fortfarande.\n\nNär du inaktiverar Stör ej kan du visa dina aviseringar genom att svepa nedåt från skärmens överkant."</string>
     <string name="zen_mode_restrict_notifications_custom" msgid="3167252482570424133">"Anpassa"</string>
     <string name="zen_mode_restrict_notifications_enable_custom" msgid="6376983315529894440">"Aktivera anpassad inställning"</string>
     <string name="zen_mode_restrict_notifications_disable_custom" msgid="8004212081465043044">"Ta bort anpassad inställning"</string>
@@ -3757,7 +3759,7 @@
     <string name="background_check_pref" msgid="664081406854758392">"Bakgrundskontroll"</string>
     <string name="background_check_title" msgid="4136736684290307970">"Fullständig bakgrundsåtkomst"</string>
     <string name="assist_access_context_title" msgid="2274614501747710439">"Använda text från skärmen"</string>
-    <string name="assist_access_context_summary" msgid="5867997494395842785">"Tillåt att assistentappen får åtkomst till innehåll på skärmen, till exempel text"</string>
+    <string name="assist_access_context_summary" msgid="5867997494395842785">"Tillåt att assistentappen får åtkomst till innehåll på skärmen som text"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"Använda skärmdump"</string>
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Tillåt att assistentappen får åtkomst till en bild på skärmen"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Lys upp skärmen"</string>
@@ -4118,24 +4120,24 @@
     <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"Svep uppåt från hemknappen om du vill byta app. Svep uppåt igen om du vill se alla appar. Du kan göra detta oavsett vilken skärm som är öppen. Det finns inte längre någon knapp för översikt nere till höger på skärmen."</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"Testa den nya hemknappen"</string>
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Aktivera den nya rörelsen för att byta mellan appar"</string>
-    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Tryck snabbt två gånger för att kolla mobilen"</string>
+    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Tryck snabbt två gånger för att kolla telefonen"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Tryck snabbt två gånger för att kolla surfplattan"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Tryck snabbt två gånger för att kolla enheten"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"Visa tid, aviseringar och annan information genom att trycka snabbt två gånger på skärmen."</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Lyft för att kolla mobilen"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Lyft för att kolla telefonen"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Plocka upp för att kolla surfplattan"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"Plocka upp för att kolla enheten"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"Skrämväckning"</string>
-    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Visa tid, aviseringar och annan information genom att plocka upp mobilen."</string>
+    <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"Visa tid, aviseringar och annan information genom att plocka upp telefonen."</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"Visa tid, aviseringar och annan information genom att plocka upp surfplattan."</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"Visa tid, aviseringar och annan information genom att plocka upp enheten."</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Tryck för att kolla mobilen"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"Tryck för att kolla telefonen"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Tryck för att kolla surfplattan"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Tryck för att kolla enheten"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Visa tid, aviseringar och annan information genom att trycka på skärmen."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Svep över fingeravtryckssensorn för aviseringar"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Svep över fingeravtryckssensorn"</string>
-    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av mobilen."</string>
+    <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av telefonen."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av surfplattan."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av enheten."</string>
     <string name="fingerprint_swipe_for_notifications_suggestion_title" msgid="948946491233738823">"Visa aviseringar snabbt"</string>
diff --git a/tests/CarDeveloperOptions/res/values-sw/arrays.xml b/tests/CarDeveloperOptions/res/values-sw/arrays.xml
index 1d26443..0bfc1db 100644
--- a/tests/CarDeveloperOptions/res/values-sw/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-sw/arrays.xml
@@ -85,7 +85,7 @@
     <item msgid="8058143476674427024">"Inaunganisha kwa <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
     <item msgid="7547609081339573756">"Uhalalishaji kwa <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
     <item msgid="5145158315060185414">"Kupata anwani ya IP kutoka <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
-    <item msgid="3283243151651124831">" Umeunganishwa kwa<xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="3283243151651124831">"Umeunganishwa kwenye <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
     <item msgid="6600156231416890902">"Imetanguliwa"</item>
     <item msgid="4133290864821295785">"inakatisha muunganisho kutoka <xliff:g id="NETWORK_NAME">%1$s</xliff:g>…"</item>
     <item msgid="3980154971187953257">"Haijaunganishwa"</item>
@@ -276,7 +276,7 @@
     <item msgid="7692440726415391408">"tumia sip"</item>
     <item msgid="8572453398128326267">"chakata simu uliyopiga"</item>
     <item msgid="7775674394089376306">"alama ya kidole"</item>
-    <item msgid="3182815133441738779">"vihisi vya mwili"</item>
+    <item msgid="3182815133441738779">"vitambua shughuli za mwili"</item>
     <item msgid="2793100005496829513">"soma matangazo ya simu"</item>
     <item msgid="2633626056029384366">"eneo la jaribio"</item>
     <item msgid="8356842191824684631">"soma hifadhi"</item>
@@ -343,7 +343,7 @@
     <item msgid="9186411956086478261">"Tumia sip"</item>
     <item msgid="6884763100104539558">"Chakata simu uliyopiga"</item>
     <item msgid="125513972170580692">"Alama ya kidole"</item>
-    <item msgid="2556071024281275619">"Vihisi vya mwili"</item>
+    <item msgid="2556071024281275619">"Vitambua shughuli za mwili"</item>
     <item msgid="617168514928339387">"Soma matangazo ya simu"</item>
     <item msgid="7134693570516523585">"Eneo la jaribio"</item>
     <item msgid="7224489175375229399">"Soma hifadhi"</item>
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Usiruhusu kamwe"</item>
     <item msgid="8184570120217958741">"Ruhusu kila wakati"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Kawaida"</item>
+    <item msgid="5101233285497327432">"Ya wastani"</item>
+    <item msgid="1555861583162930714">"Chini"</item>
+    <item msgid="1719683776264798117">"Imepungua sana"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Kawaida"</item>
+    <item msgid="6107138933849816768">"Wastani"</item>
+    <item msgid="182695359839047859">"Chini"</item>
+    <item msgid="8577246509202964244">"Imepungua sana"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Endelevu"</item>
     <item msgid="167418068739176448">"Shughuli maarufu"</item>
@@ -445,7 +455,7 @@
   <string-array name="color_picker">
     <item msgid="3151827842194201728">"Kijani"</item>
     <item msgid="3228505970082457852">"Samawati"</item>
-    <item msgid="6590260735734795647">"Bluu"</item>
+    <item msgid="6590260735734795647">"Nili"</item>
     <item msgid="3521763377357218577">"Zambarau"</item>
     <item msgid="5932337981182999919">"Waridi"</item>
     <item msgid="5642914536624000094">"Nyekundu"</item>
@@ -467,7 +477,7 @@
     <item msgid="1008268820118852416">"Tumia kama mtandao usiopima data"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"Anwani ya MAC bila utaratibu wowote (chaguomsingi)"</item>
+    <item msgid="6545683814310036454">"Anwani ya MAC ya nasibu (chaguomsingi)"</item>
     <item msgid="214234417308375326">"Tumia anwani ya MAC ya kifaa"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-sw/strings.xml b/tests/CarDeveloperOptions/res/values-sw/strings.xml
index a2b211b..8f1f7fb 100644
--- a/tests/CarDeveloperOptions/res/values-sw/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-sw/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Kuongeza au kupunguza ukubwa wa maandishi kwenye skrini."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Punguza"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Kuza"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Sampuli ya maandishi"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Wachawi wa Ajabu kutoka Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Sura ya 11: Mji wa Ajabu wa Johari wa Oz"</string>
@@ -197,7 +196,7 @@
     <string name="proxy_settings_title" msgid="6014901859338211713">"Seva mbadala"</string>
     <string name="proxy_clear_text" msgid="498317431076294101">"Futa"</string>
     <string name="proxy_port_label" msgid="8285157632538848509">"Mlango wa seva mbadala"</string>
-    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Proksi ya Bypass ya"</string>
+    <string name="proxy_exclusionlist_label" msgid="8179084955547941904">"Seva mbadala ya kando ya"</string>
     <string name="proxy_defaultView_text" msgid="5785775257042403261">"Rejesha kwa chaguo misingi"</string>
     <string name="proxy_action_text" msgid="814511434843981413">"Nimemaliza"</string>
     <string name="proxy_hostname_label" msgid="6798891831427287847">"Jina la mpangishaji wa seva mbadala"</string>
@@ -325,7 +324,7 @@
     <string name="date_and_time_settings_summary" msgid="4617979434474713417">"Weka tarehe, saa, saa za eneo na fomati"</string>
     <string name="date_time_auto" msgid="2679132152303750218">"Tumia saa ya mtandao"</string>
     <string name="zone_auto_title" msgid="5500880975376882488">"Tumia saa za eneo kutoka kwenye mtandao"</string>
-    <string name="date_time_24hour_auto" msgid="7499659679134962547">"Tumia lugha chaguomsingi"</string>
+    <string name="date_time_24hour_auto" msgid="7499659679134962547">"Tumia chaguomsingi la eneo"</string>
     <string name="date_time_24hour_title" msgid="6209923858891621283">"Mfumo wa saa 24"</string>
     <string name="date_time_24hour" msgid="1265706705061608742">"Tumia mpangilio wa saa 24"</string>
     <string name="date_time_set_time_title" msgid="7116850506333406367">"Saa"</string>
@@ -414,7 +413,7 @@
     <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Hukukamilisha kujiandikishaji"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"Sawa"</string>
     <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Muda wa kuandikisha uso umefikia kikomo. Jaribu tena."</string>
-    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Imeshindwa kuandikisha uso."</string>
+    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Imeshindwa kusajili uso."</string>
     <string name="security_settings_face_enroll_finish_title" msgid="6800717857394410769">"Tayari kabisa. Safi."</string>
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Nimemaliza"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Tumia uso wako kwa"</string>
@@ -426,7 +425,7 @@
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"Iombe uthibitishaji kila wakati unapothibitisha katika programu"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Ondoa data ya uso"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Unaweza kutumia uso wako kufungua kifaa chako na kufikia programu. "<annotation id="url">"Pata maelezo zaidi"</annotation></string>
-    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Je, ungependa kufuta data ya uso?"</string>
+    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"Ungependa kufuta data ya uso?"</string>
     <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"Data iliyorekodiwa na kipengele cha kufungua kwa uso itafutwa kabisa kwa njia salama. Ikishafutwa, utahitaji PIN, mchoro au nenosiri lako ili kufungua simu yako, kuingia kwenye akaunti za programu na kuthibitisha malipo."</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"Kitambulisho"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"Dhibiti vitambulisho"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Washa NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC hubadilisha data kati ya kifaa hiki na malengo au vifaa vingine vya karibu nawe, kama vile vituo vya malipo, visomaji vya data ya kadi na lebo au matangazo yanayoshirikisha mtumiaji."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Imarisha usalama wa NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Ruhusu tu matumizi katika Usafiri wa Umma na Malipo ya NFC wakati skrini imefunguliwa"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Ruhusu matumizi katika Usafiri wa Umma na Malipo ya NFC wakati tu skrini imefunguliwa"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Programu iko tayari kusambaza maudhui kupitia NFC"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Imezimwa"</string>
@@ -847,7 +846,7 @@
     <string name="wifi_error" msgid="5605801874484465557">"Hitilafu"</string>
     <string name="wifi_sap_no_channel_error" msgid="6881796988574851628">"Mitabendi ya GHz 5 haipatikani katika nchi hii"</string>
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"Hali ya ndegeni imewashwa"</string>
-    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Fungua arifa za mtandao"</string>
+    <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Arifu kuhusu mitandao wazi"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Tuma arifa wakati mtandao wenye ubora wa juu unapatikana"</string>
     <string name="wifi_wakeup" msgid="4963732992164721548">"Washa Wi‑Fi kiotomatiki"</string>
     <string name="wifi_wakeup_summary" msgid="1152699417411690">"Wi-Fi itaanza kutumika tena mitandao iliyohifadhiwa ya ubora wa juu itakapopatikana, kama vile mtandao wa nyumbani"</string>
@@ -916,7 +915,7 @@
     <string name="passpoint_label" msgid="7429247462404128615">"Imehifadhiwa kupitia"</string>
     <string name="passpoint_content" msgid="340527524510304327">"Kitambulisho cha <xliff:g id="NAME">%1$s</xliff:g>"</string>
     <string name="wifi_eap_method" msgid="3752116941487485859">"Mtindo wa EAP"</string>
-    <string name="please_select_phase2" msgid="5848080896810435677">"Uhalalishaji wa awamu ya 2"</string>
+    <string name="please_select_phase2" msgid="5848080896810435677">"Uthibitisho wa awamu ya pili"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"Cheti cha CA"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Kikoa"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Cheti cha mtumiaji"</string>
@@ -928,7 +927,7 @@
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Otomatiki"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Bendi ya GHz 2.4"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Bendi ya GHz 5.0"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Imechagua Bendi ya GHz 5.0"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Bendi ya GHz 5.0 (inapendelewa)"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"GHz 2.4"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"GHz 5.0"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Chagua angalau bendi moja ya mtandaopepe wa Wi‑Fi:"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mtandao wa simu"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Ikiwa Wi-Fi haipatikani, tumia mtandao wa simu"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Ikiwa mtandao wa simu haupatikani, tumia Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Piga simu kupitia WI-FI. Ikiwa Wi-Fi haipatikani, simu itakatika."</string>
@@ -1207,15 +1209,15 @@
     <string name="adaptive_sleep_summary_on" msgid="6670369739228487082">"Imewashwa / Skrini haitazima ikiwa unaiangalia"</string>
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"Imezimwa"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"Huzuia skrini yako kuzima ikiwa unaiangalia."</string>
-    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Kipengele cha utashi wa skrini kinatumia kamera ya mbele ili kuona ikiwa kuna mtu anayeangalia skrini. Hufanya kazi kwenye kifaa na picha hazihifadhiwi wala kutumwa kwa Google."</string>
+    <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"Kipengele cha utashi wa skrini kinatumia kamera ya mbele ili kuona ikiwa kuna mtu anayeangalia skrini. Kipengele hiki hufanya kazi kwenye kifaa na picha hazihifadhiwi wala kutumwa kwa Google."</string>
     <string name="night_display_title" msgid="1305002424893349814">"Mwanga wa Usiku"</string>
     <string name="night_display_text" msgid="5330502493684652527">"Mwanga wa Usiku hugeuza rangi ya skrini yako kuwa manjano. Hali hii hufanya iwe rahisi kuangalia skrini yako au kusoma katika mwangaza hafifu na inaweza kukusaidia ulale kwa urahisi zaidi."</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Ratiba"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Hamna"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Iwake wakati maalum"</string>
     <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Iwake usiku kucha"</string>
-    <string name="night_display_start_time_title" msgid="1069255169673371077">"Itawashwa"</string>
-    <string name="night_display_end_time_title" msgid="2760793157124245911">"Itazimwa"</string>
+    <string name="night_display_start_time_title" msgid="1069255169673371077">"Kuwaka"</string>
+    <string name="night_display_end_time_title" msgid="2760793157124245911">"Kuzima"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"Hali"</string>
     <string name="night_display_temperature_title" msgid="8375126629902616296">"Ukolezaji"</string>
     <string name="night_display_summary_off" msgid="8850539785332228069">"Imezimwa. <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -1244,7 +1246,7 @@
     <string name="wallpaper_suggestion_summary" msgid="4247262938988875842">"Weka mapendeleo ya skrini yako"</string>
     <string name="wallpaper_settings_fragment_title" msgid="1503701065297188901">"Chagua mandhari kutoka"</string>
     <string name="screensaver_settings_title" msgid="7720091234133721021">"Taswira ya skrini"</string>
-    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"Inapochaji au imeunganishwa na kifaa kingine"</string>
+    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"Wakati imeunganishwa na kifaa kingine au inapochaji"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"Yoyote kati ya hizi mbili"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"Inapochaji"</string>
     <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"Wakati imeunganishwa na kifaa kingine"</string>
@@ -1529,7 +1531,7 @@
     <string name="apn_not_set" msgid="5344235604466825691">"Haijawekwa"</string>
     <string name="apn_name" msgid="8431432886706852226">"Jina"</string>
     <string name="apn_apn" msgid="190519449579357696">"APN"</string>
-    <string name="apn_http_proxy" msgid="8816906767987944465">"Ndogo"</string>
+    <string name="apn_http_proxy" msgid="8816906767987944465">"Seva mbadala"</string>
     <string name="apn_http_port" msgid="5789193688960075486">"Mlango"</string>
     <string name="apn_user" msgid="6979724587671704006">"Jina la mtumiaji"</string>
     <string name="apn_password" msgid="7140724726108226386">"Nenosiri"</string>
@@ -1539,17 +1541,17 @@
     <string name="apn_mms_port" msgid="6606572282014819299">"Mlango wa  MMS"</string>
     <string name="apn_mcc" msgid="9138301167194779180">"MCC"</string>
     <string name="apn_mnc" msgid="1276161191283274976">"MNC"</string>
-    <string name="apn_auth_type" msgid="4286147728662523362">"Aina ya uhalalishaji"</string>
+    <string name="apn_auth_type" msgid="4286147728662523362">"Aina ya uthibitishaji"</string>
     <string name="apn_auth_type_none" msgid="3679273936413404046">"Hamna"</string>
     <string name="apn_auth_type_pap" msgid="6155876141679480864">"PAP"</string>
     <string name="apn_auth_type_chap" msgid="5484031368454788686">"CHAP"</string>
     <string name="apn_auth_type_pap_chap" msgid="2977833804460109203">"PAP au CHAP"</string>
     <string name="apn_type" msgid="6725346490902871146">"Aina ya APN"</string>
     <string name="apn_protocol" msgid="1240197323563960912">"Itifaki ya APN"</string>
-    <string name="apn_roaming_protocol" msgid="6913336248771263497">"Itifaki ya urandaji ya APN"</string>
-    <string name="carrier_enabled" msgid="1819916725305365581">"APN Wezesha/Lemaza"</string>
-    <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN imewezeshwa"</string>
-    <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN imelemazwa"</string>
+    <string name="apn_roaming_protocol" msgid="6913336248771263497">"Itifaki ya APN: mitandao ya nga\'ambo"</string>
+    <string name="carrier_enabled" msgid="1819916725305365581">"APN washa/zima"</string>
+    <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"APN imewashwa"</string>
+    <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"APN imezimwa"</string>
     <string name="bearer" msgid="4378444317087536401">"Mwenye"</string>
     <string name="mvno_type" msgid="3150755279048149624">"Aina ya MVNO"</string>
     <string name="mvno_match_data" msgid="629287305803195245">"Thamani ya MVNO"</string>
@@ -1569,8 +1571,8 @@
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Chaguo za kubadilisha mipangilio"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Unaweza kubadilisha mipangilio ya mtandao, programu au kifaa"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Badilisha mipangilio ya Wi-Fi, data ya simu na Bluetooth"</string>
-    <string name="reset_network_desc" msgid="4982633363916261109">"Hatua hii itabadilisha mipangilio yote ya mtandao ikiwa ni pamoja:\n\n"<li>"Wi‑Fi"</li>\n<li>"Data ya simu"</li>\n<li>"Bluetooth"</li></string>
-    <string name="reset_esim_title" msgid="7630781767040831893">"Futa data iliyopakuliwa kwenye SIMs"</string>
+    <string name="reset_network_desc" msgid="4982633363916261109">"Hatua hii itabadilisha mipangilio yote ya mtandao ikiwa ni pamoja na:\n\n"<li>"Wi‑Fi"</li>\n<li>"Data ya simu"</li>\n<li>"Bluetooth"</li></string>
+    <string name="reset_esim_title" msgid="7630781767040831893">"Futa SIM zilizopakuliwa"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"Ili upakue SIM za kubadilisha, wasiliana na mtoa huduma wako. Hatua hii haitaghairi mipango yoyote ya huduma za simu."</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"Badilisha mipangilio"</string>
     <string name="reset_network_final_desc" msgid="2463817067048751373">"Je, ungependa kubadilisha mipangilio yote ya mtandao? Huwezi kutendua kitendo hiki."</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Tafadhali weka SIM kadi kisha uzime na uwashe"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Tafadhali unganisha kwenye Intaneti"</string>
     <string name="location_title" msgid="8664674161765477168">"Mahali pangu"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Eneo la wasifu wa kazini"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Wasifu wa kazi kutambua mahali"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Ruhusa ya programu"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Utambuzi wa mahali umezimwa"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1662,7 +1664,7 @@
     <string name="location_scanning_wifi_always_scanning_title" msgid="6750542206763112172">"Kutafuta Wi-Fi"</string>
     <string name="location_scanning_wifi_always_scanning_description" msgid="4956048135941851712">"Ruhusu programu na huduma zitafute mitandao ya Wi-Fi wakati wowote, hata wakati umezima Wi-Fi. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali."</string>
     <string name="location_scanning_bluetooth_always_scanning_title" msgid="196241746742607453">"Kutafuta Bluetooth"</string>
-    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Ruhusu programu na huduma itafute vifaa vilivyo karibu wakati wowote, hata wakati umezima Bluetooth. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali."</string>
+    <string name="location_scanning_bluetooth_always_scanning_description" msgid="3796673798637848690">"Ruhusu programu na huduma zitafute vifaa vilivyo karibu wakati wowote, hata wakati umezima Bluetooth. Hali hii inaweza kutumika, kwa mfano, kuboresha huduma na vipengele vinavyohusiana na mahali."</string>
     <string name="managed_profile_location_services" msgid="224925483299159541">"Huduma za Mahali za kazini"</string>
     <string name="location_network_based" msgid="1535812159327454835">"Eneo la mtandao wa Wi-Fi na wa simu"</string>
     <string name="location_neighborhood_level" msgid="8459352741296587916">"Ruhusu programu zitumie huduma ya Google ya mahali ili kukadiria ulipo kwa haraka. Data ya mahali isiyokutambulisha itakusanywa na kutumwa kwa Google."</string>
@@ -1803,7 +1805,7 @@
     <string name="screen_compatibility_label" msgid="3638271673726075815">"Utangamanifu wa skrini"</string>
     <string name="permissions_label" msgid="7341733648403464213">"Ruhusa"</string>
     <string name="cache_header_label" msgid="3202284481380361966">"Akiba"</string>
-    <string name="clear_cache_btn_text" msgid="107507684844780651">"Futa akiba"</string>
+    <string name="clear_cache_btn_text" msgid="107507684844780651">"Futa data iliyoakibishwa"</string>
     <string name="cache_size_label" msgid="6205173678102220499">"Akiba"</string>
     <plurals name="uri_permissions_text" formatted="false" msgid="8938478333743197020">
       <item quantity="other">Vipengee %d</item>
@@ -1823,7 +1825,7 @@
     <string name="install_text" msgid="2798092278891807849">"Weka"</string>
     <string name="disable_text" msgid="5065834603951474397">"Zima"</string>
     <string name="enable_text" msgid="7179141636849225884">"Washa"</string>
-    <string name="clear_user_data_text" msgid="8894073247302821764">"Futa hifadhi"</string>
+    <string name="clear_user_data_text" msgid="8894073247302821764">"Futa data ya hifadhi"</string>
     <string name="app_factory_reset" msgid="8718986000278776272">"Ondoa masasisho"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"Umechagua kuzindua programu hii kwa mbadala kwa baadhi ya vitendo."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"Umechagua kuruhusu programu hii kuunda wijeti na kufikia data yao."</string>
@@ -1958,7 +1960,7 @@
     <string name="auto_punctuate_summary" msgid="245694025030386370">"Bonyeza kibonye cha \'Space\' mara mbili ili uweke \".\""</string>
     <string name="show_password" msgid="620964020348073739">"Onyesha manenosiri"</string>
     <string name="show_password_summary" msgid="1403805089582258620">"Onyesha herufi kwa muda mfupi unapoandika"</string>
-    <string name="spellchecker_security_warning" msgid="792070474432612097">"Kisasishaji hiki kinaweza kukusanya maandishi yote wakati unaangika, pamoja na data za kibinafsi kama nenosiri na namari za kadi ya mkopo. Inatoka kwa programu <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. Tumia kisasishaji hiki?"</string>
+    <string name="spellchecker_security_warning" msgid="792070474432612097">"Kikagua tahajia hiki kinaweza kukusanya maandishi yote wakati unaandika, ikiwemo data ya binafsi kama nenosiri na nambari za kadi za mikopo. Kinatoka kwa programu ya <xliff:g id="SPELLCHECKER_APPLICATION_NAME">%1$s</xliff:g>. Ungependa kutumia kikagua tahajia hiki?"</string>
     <string name="spellchecker_quick_settings" msgid="5193036510190696655">"Mipangilio"</string>
     <string name="spellchecker_language" msgid="5168501692418112444">"Lugha"</string>
     <string name="keyboard_and_input_methods_category" msgid="5870292843201629800">"Kibodi"</string>
@@ -2082,7 +2084,7 @@
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"Wakati wa kusoma"</string>
     <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"Wakati wa kuchukua hatua"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"Chagua muda ambao ungependa kuonyesha ujumbe unaohitaji kusoma, lakini unaonekana kwa muda mfupi. \n\nBaadhi ya programu hazitumii mipangilio hii."</string>
-    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Chagua muda ambao ungependa kuonyesha ujumbe unaokuomba uchukue hatua, lakini utaonekana kwa muda mfupi.\n\nBaadhi ya programu hazitumii mipangilio hii."</string>
+    <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"Chagua muda ambao ungependa kuonyesha ujumbe unaokuomba uchukue hatua, unaoonekana kwa muda mfupi.\n\nBaadhi ya programu hazitumii mipangilio hii."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Muda wa kugusa na kushikilia"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Ugeuzaji rangi"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Huenda ikaathiri utendaji"</string>
@@ -2278,7 +2280,7 @@
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"Washa Kiokoa Betri"</string>
     <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"Huenda chaji ikaisha haraka zaidi"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"Kiokoa Betri kimewashwa"</string>
-    <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Huenda ikadhibiti baadhi ya vipengele"</string>
+    <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"Huenda baadhi ya vipengele vimedhibitiwa"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"Simu imetumika sana kuliko kawaida"</string>
     <string name="battery_tip_high_usage_title" product="tablet" msgid="1019583260005768965">"Kompyuta kibao imetumika sana kuliko kawaida"</string>
     <string name="battery_tip_high_usage_title" product="device" msgid="8304138287288309490">"Kifaa kimetumika sana kuliko kawaida"</string>
@@ -2312,7 +2314,7 @@
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"Ili uokoe betri, zuia programu hizi zisitumie chaji chinichini. Huenda programu zilizozuiliwa zisifanye kazi vizuri na huenda arifa zikachelewa.\n\nProgramu:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"Zuia"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"Ungependa kuondoa kizuizi?"</string>
-    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Programu hii itatumia chaji chinichini. Hali hii inaweza kusababisha chaji ya betri iishe haraka."</string>
+    <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"Programu hii itatumia chaji chinichini. Hali hii inaweza kufanya chaji ya betri iishe haraka."</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"Ondoa"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"Ghairi"</string>
     <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"Programu zako zinatumia kiwango cha kawaida cha betri. Programu zikitumia kiwango cha juu zaidi cha betri, simu yako itapendekeza hatua unazoweza kuchukua.\n\nUnaweza kuwasha Kiokoa Betri wakati wowote, kama chaji ya betri yako inakaribia kuisha."</string>
@@ -2450,10 +2452,10 @@
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Kulingana na ratiba yako"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Kulingana na asilimia"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Kiokoa betri huwashwa kama betri yako inakaribia kuisha kabla ya muda wako wa kawaida wa kuchaji"</string>
-    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Itawashwa ikiwa <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Kitawaka ikifika <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Weka ratiba"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Zima kiokoa betri inapojazwa chaji"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Kiokoa betri hujizima simu yako inapokuwa na <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Kiokoa betri hujizima simu yako inapofika <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"Kiokoa betri hujizima kompyuta yako kibao inapokuwa na <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"Kiokoa betri hujizima kifaa chako kinapokuwa na <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2712,8 +2714,8 @@
     <string name="data_usage_warning_editor_title" msgid="1431385383278389290">"Weka onyo kwa matumizi ya data"</string>
     <string name="data_usage_limit_editor_title" msgid="1687908662154108293">"Weka kikomo cha matumizi ya data"</string>
     <string name="data_usage_limit_dialog_title" msgid="8804760847110131518">"Kupunguza matumizi ya data"</string>
-    <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"Kompyuta kibao yako itazima data ya mtandao wa simu pindi itakapofikia kikomo cha matumizi ulichoweka.\n\nKwa kuwa kompyuta kibao yako ndiyo huwa inapima matumizi ya data, na kampuni inayokupa huduma za mtandao huenda ikahesabu matumizi kwa njia tofauti, unashauriwa kuweka kikomo kisicho kamili sana."</string>
-    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"Simu yako itazima data ya mtandao wa simu pindi itakapofikia kikomo cha matumizi ya data ulichoweka. \n\nKwa kuwa simu yako ndiyo huwa inapima matumizi ya data, na kampuni inayokupa huduma za mtandao huenda ikahesabu matumizi kwa njia tofauti, unashauriwa kuweka kikomo kisicho kamili sana."</string>
+    <string name="data_usage_limit_dialog_mobile" product="tablet" msgid="2000713577999830647">"Kompyuta kibao yako itazima data ya mtandao wa simu pindi itakapofikia kikomo cha matumizi ulichoweka.\n\nKwa kuwa kompyuta kibao yako ndiyo huwa inapima matumizi ya data, na kampuni inayokupa huduma za mtandao huenda ikahesabu matumizi kwa njia tofauti, unashauriwa kuweka kikomo cha wastani."</string>
+    <string name="data_usage_limit_dialog_mobile" product="default" msgid="943546278705619205">"Simu yako itazima data ya mtandao wa simu pindi itakapofikia kikomo cha matumizi ya data ulichoweka. \n\nKwa kuwa simu yako ndiyo huwa inapima matumizi ya data, na kampuni inayokupa huduma za mtandao huenda ikahesabu matumizi kwa njia tofauti, unashauriwa kuweka kikomo cha wastani."</string>
     <string name="data_usage_restrict_background_title" msgid="3568746530413220844">"Zuia data ya mandhari nyuma?"</string>
     <string name="data_usage_restrict_background" msgid="995811034744808575">"Ukidhibiti matumizi ya chini chini ya data ya mitandao ya simu, baadhi ya programu na huduma hazitafanya kazi mpaka uunganishe kwenye Wi-Fi tena."</string>
     <string name="data_usage_restrict_background_multiuser" product="tablet" msgid="6032810839234864814">"Ukidhibiti matumizi ya chini chini ya data ya mtandao wa simu, baadhi ya programu na huduma hazitafanya kazi mpaka uunganishe kwenye Wi-Fi.\n\nMipangilio hii itaathiri watumiaji wote wa kompyuta kibao hii."</string>
@@ -2818,8 +2820,8 @@
     <string name="user_credential_title" msgid="6237611303219831419">"Maelezo ya kitambulisho"</string>
     <string name="user_credential_removed" msgid="6243576567538844852">"Imeondoa kitambulisho: <xliff:g id="CREDENTIAL_NAME">%s</xliff:g>"</string>
     <string name="user_credential_none_installed" msgid="4129252817676332368">"Hakuna kitambulisho cha mtumiaji kilichowekwa"</string>
-    <string name="spellcheckers_settings_title" msgid="1687210427248364327">"Kikagua maendelezo"</string>
-    <string name="spellcheckers_settings_for_work_title" msgid="7461318390801573022">"Kikagua maendelezo cha kazini"</string>
+    <string name="spellcheckers_settings_title" msgid="1687210427248364327">"Kikagua tahajia"</string>
+    <string name="spellcheckers_settings_for_work_title" msgid="7461318390801573022">"Kikagua tahajia cha kazini"</string>
     <string name="current_backup_pw_prompt" msgid="8914812770233159610">"Andika nenosiri unalotumia kuhifadhi nakala kamili"</string>
     <string name="new_backup_pw_prompt" msgid="4949729756223335850">"Andika nenosiri jipya la kuhifadhi nakala kamili"</string>
     <string name="confirm_new_backup_pw_prompt" msgid="3357847425183550770">"Andika tena nenosiri lako la kuhifadhi nakala kamili"</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Mtumiaji"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Wasifu uliozuiwa"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Ungependa kuongeza mtumiaji?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Unaweza kutumia kifaa hiki pamoja na watu wengine kwa kuongeza watumiaji wa ziada. Kila mtumiaji ana nafasi yake mwenyewe, ambayo anaweza kuweka programu, mandhari na vipengee vingine anavyopenda. Watumiaji pia wanaweza kurekebisha mipangilio ya kifaa inayoathiri kila mtu kama vile Wi-Fi.\n\nUnapomwongeza mtumiaji mpya, mtu huyo anahitaji kujitayarishia nafasi yake.\n\nMtumiaji yeyote anaweza kuwasasishia watumiaji wengine wote programu. Huenda mipangilio na huduma za walio na matatizo ya kuona na kusikia zisihamishiwe mtumiaji mgeni."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Unaweza kutumia kifaa hiki pamoja na watu wengine kwa kuongeza watumiaji wa ziada. Kila mtumiaji ana nafasi yake mwenyewe, ambayo anaweza kuweka programu, mandhari na vipengee vingine anavyopenda. Watumiaji pia wanaweza kurekebisha mipangilio ya kifaa inayoathiri kila mtu kama vile Wi-Fi.\n\nUnapomwongeza mtumiaji mpya, mtu huyo anahitaji kujitayarishia nafasi yake.\n\nMtumiaji yeyote anaweza kuwasasishia watumiaji wengine wote programu. Huenda mipangilio na huduma za ufikivu zisihamishiwe mtumiaji mgeni."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Mtumiaji mpya utakayemwongeza atahitaji kuongeza akaunti yake.\n\nMtumiaji yoyote anaweza kusasisha programu kwa niaba ya wengine wote."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Mtumiaji aongezwe sasa?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"Hakikisha kuwa mtu huyu anaweza kuchukua kifaa na kuweka mapendeleo yake"</string>
@@ -3694,7 +3696,7 @@
     <string name="process_format" msgid="8575347150598564509">"<xliff:g id="APP_NAME">%1$s</xliff:g> (<xliff:g id="COUNT">%2$d</xliff:g>)"</string>
     <string name="high_power_apps" msgid="2518319744362028920">"Kuboresha matumizi ya betri"</string>
     <string name="additional_battery_info" msgid="6877663897819271203">"Arifa za matumizi"</string>
-    <string name="show_all_apps" msgid="5442552004569634846">"Onyesha matumizi ya kifaa kilichojaa"</string>
+    <string name="show_all_apps" msgid="5442552004569634846">"Onyesha matumizi kamili ya kifaa"</string>
     <string name="hide_extra_apps" msgid="6798261081113299441">"Onyesha matumizi ya programu"</string>
     <plurals name="power_high_usage_summary" formatted="false" msgid="4658343710126205199">
       <item quantity="other">Programu <xliff:g id="NUMBER">%2$d</xliff:g> hazifanyi kazi vizuri</item>
@@ -3734,7 +3736,7 @@
     <string name="usb_use_tethering" msgid="4250626730173163846">"Kusambaza mtandao kupitia USB"</string>
     <string name="usb_use_MIDI" msgid="4710632870781041401">"MIDI"</string>
     <string name="usb_use_MIDI_desc" msgid="1770966187150010947">"Tumia kifaa hiki kama MIDI"</string>
-    <string name="usb_use" msgid="8940500223316278632">"Tumia USB kwa ajili ya"</string>
+    <string name="usb_use" msgid="8940500223316278632">"Tumia USB"</string>
     <string name="usb_default_label" msgid="7471316635263936101">"Mipangilio chaguomsingi ya USB"</string>
     <string name="usb_default_info" msgid="953775292571786528">"Wakati kifaa kingine kimeunganishwa na simu yako imefunguliwa, mipangilio hii itatumika. Unganisha kwenye vifaa unavyoamini pekee."</string>
     <string name="usb_pref" msgid="6194821550693495068">"USB"</string>
@@ -3831,7 +3833,7 @@
     <string name="screen_zoom_title" msgid="164369086350486104">"Ukubwa wa vipengee"</string>
     <string name="screen_zoom_short_summary" msgid="5508079362742276703">"Kuongeza au kupunguza ukubwa wa vipengee kwenye skrini"</string>
     <string name="screen_zoom_keywords" msgid="8358462497896524092">"onyesha uzito, kukuza skrini, kipimo, kupima"</string>
-    <string name="screen_zoom_summary" msgid="5294003755961312560">"Ongeza au upunguze ukubwa wa vipengee kwenye skrini yako. Baadhi ya programu kwenye skrini yako huenda zikabadilisha mahali zilipo."</string>
+    <string name="screen_zoom_summary" msgid="5294003755961312560">"Ongeza au upunguze ukubwa wa vipengee kwenye skrini yako. Huenda baadhi ya programu kwenye skrini yako zikabadilisha mahali zilipo."</string>
     <string name="screen_zoom_preview_title" msgid="2924312934036753091">"Kagua kwanza"</string>
     <string name="screen_zoom_make_smaller_desc" msgid="1374501139722916729">"Punguza"</string>
     <string name="screen_zoom_make_larger_desc" msgid="5306684807895846141">"Kuza"</string>
@@ -3864,7 +3866,7 @@
     <string name="display_dashboard_nowallpaper_summary" msgid="8612534364908229000">"Hali tuli, ukubwa wa fonti"</string>
     <string name="display_summary_example" msgid="4555020581960719296">"Iweke katika hali tuli baada ya dakika 10 za kutokuwa na shughuli"</string>
     <string name="memory_summary" msgid="9121871336058042600">"Takriban <xliff:g id="USED_MEMORY">%1$s</xliff:g> kati ya <xliff:g id="TOTAL_MEMORY">%2$s</xliff:g> za hifadhi zimetumika"</string>
-    <string name="users_summary" msgid="6693338169439092387">"Umeingia katika akaunti ukitumia <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
+    <string name="users_summary" msgid="6693338169439092387">"Umeingia katika akaunti kama <xliff:g id="USER_NAME">%1$s</xliff:g>"</string>
     <string name="payment_summary" msgid="1381646849276543242">"<xliff:g id="APP_NAME">%1$s</xliff:g> ni chaguomsingi"</string>
     <string name="backup_disabled" msgid="6941165814784765643">"Kipengee cha kuhifadhi nakala kimezimwa"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"Imesasishwa na inatumia Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
@@ -3940,7 +3942,7 @@
     <string name="cell_data_template" msgid="5473177306229738078">"Data ya mtandao wa simu <xliff:g id="AMOUNT">^1</xliff:g>"</string>
     <string name="wifi_data_template" msgid="3146090439147042068">"Data ya Wi-Fi <xliff:g id="AMOUNT">^1</xliff:g>"</string>
     <string name="ethernet_data_template" msgid="6414118030827090119">"Data ya ethaneti <xliff:g id="AMOUNT">^1</xliff:g>"</string>
-    <string name="billing_cycle" msgid="5740717948341713190">"Onyo la upeo na matumizi ya data"</string>
+    <string name="billing_cycle" msgid="5740717948341713190">"Onyo la kikomo na matumizi ya data"</string>
     <string name="app_usage_cycle" msgid="213483325132959663">"Awamu ya matumizi ya data ya programu"</string>
     <string name="cell_data_warning" msgid="8902740337286652689">"Onyo la matumizi ya data: <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"Kikomo cha data: <xliff:g id="ID_1">^1</xliff:g>"</string>
@@ -3951,7 +3953,7 @@
       <item quantity="other">Vizuizi <xliff:g id="COUNT">%1$d</xliff:g></item>
       <item quantity="one">Kizuizi 1</item>
     </plurals>
-    <string name="operator_warning" msgid="4676042739221117031">"Huenda hesabu ya data ya mtoa huduma ikawa tofauti na ya kifaa chako."</string>
+    <string name="operator_warning" msgid="4676042739221117031">"Huenda hesabu ya data ya mtoa huduma ikawa tofauti na ya kifaa chako"</string>
     <string name="data_used_template" msgid="761605393453849477">"<xliff:g id="ID_1">%1$s</xliff:g> zimetumika"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"Weka onyo la matumizi ya data"</string>
     <string name="data_warning" msgid="2699207195535036240">"Onyo kuhusu data"</string>
@@ -3986,7 +3988,7 @@
     <string name="data_saver_title" msgid="7903308134514179256">"Kiokoa Data"</string>
     <string name="unrestricted_data_saver" msgid="9139401849550738720">"Data bila kipimo"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"Data ya chini chini imezimwa"</string>
-    <string name="data_saver_on" msgid="7281809065420480881">"Kimewashwa"</string>
+    <string name="data_saver_on" msgid="7281809065420480881">"Imewashwa"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"Kimezimwa"</string>
     <string name="data_saver_switch_title" msgid="8244008132112735207">"Tumia Kiokoa Data"</string>
     <string name="unrestricted_app_title" msgid="4390661122069905122">"Matumizi ya data bila vikwazo"</string>
@@ -4007,8 +4009,8 @@
     <string name="not_battery_optimizing" msgid="2616044774307734160">"Haitumii kipengele cha kuboresha matumizi ya betri"</string>
     <string name="lockscreen_remote_input" msgid="3363310613165354434">"Ikiwa kifaa kimefungwa, usiruhusu uchapaji wa majibu au maandishi mengine kwenye arifa"</string>
     <string name="default_spell_checker" msgid="8636661093243189533">"Kikagua tahajia chaguomsingi"</string>
-    <string name="choose_spell_checker" msgid="7619860861923582868">"Chagua kikagua maendelezo"</string>
-    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Tumia kikagua maendelezo"</string>
+    <string name="choose_spell_checker" msgid="7619860861923582868">"Chagua kikagua tahajia"</string>
+    <string name="spell_checker_master_switch_title" msgid="5712693172227400668">"Tumia kikagua tahajia"</string>
     <string name="spell_checker_not_selected" msgid="331034541988255137">"Hakijachaguliwa"</string>
     <string name="notification_log_no_title" msgid="3668232437235348628">"(hamna)"</string>
     <string name="notification_log_details_delimiter" msgid="5485526744689532908">": "</string>
@@ -4438,7 +4440,7 @@
     <string name="cdma_subscription_summary" msgid="2298861419202726628">"Badilisha kati ya RUIM/SIM na NV"</string>
     <string name="cdma_subscription_dialogtitle" msgid="232485231569225126">"usajili"</string>
     <string name="register_automatically" msgid="1858081641661493109">"Usajili wa kiotomatiki…"</string>
-    <string name="roaming_alert_title" msgid="1849237823113454475">"Ungependa kuruhusu matumizi ya mitandao ya ng\'ambo?"</string>
+    <string name="roaming_alert_title" msgid="1849237823113454475">"Data itumike kwenye mitandao ya ng\'ambo?"</string>
     <string name="roaming_check_price_warning" msgid="5883499714594419439">"Wasiliana na mtoa huduma za mtandao kwa maelezo kuhusu bei."</string>
     <string name="mobile_data_usage_title" msgid="2376358672434990037">"Matumizi ya data ya programu"</string>
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"Hali ya Mtandao Isiyo sahihi <xliff:g id="NETWORKMODEID">%1$d</xliff:g>. Puuza"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ta/arrays.xml b/tests/CarDeveloperOptions/res/values-ta/arrays.xml
index 291f762..94d834c 100644
--- a/tests/CarDeveloperOptions/res/values-ta/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ta/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 நிமிடங்கள்"</item>
     <item msgid="6677424950124253938">"30 நிமிடங்கள்"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ஒருபோதும் வேண்டாம்"</item>
+    <item msgid="2517785806387977252">"15 வினாடிகள்"</item>
+    <item msgid="6347954399441173672">"30 விநாடிகள்"</item>
+    <item msgid="4858305253279921789">"1 நிமிடம்"</item>
+    <item msgid="8109273437140044073">"2 நிமிடங்கள்"</item>
+    <item msgid="2788593551142462622">"5 நிமிடங்கள்"</item>
+    <item msgid="8012672183888404961">"10 நிமிடங்கள்"</item>
+    <item msgid="8271452751594598661">"30 நிமிடங்கள்"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"உடனடியாக"</item>
     <item msgid="2038544972632026612">"5 வினாடிகள்"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 நிமிடங்கள்"</item>
     <item msgid="7258394417241706272">"30 நிமிடங்கள்"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"சிறிது"</item>
+    <item msgid="591935967183159581">"இயல்பு"</item>
+    <item msgid="1714184661981538355">"பெரியது"</item>
+    <item msgid="6195563047686707484">"மிகப் பெரியது"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"தேடுகிறது..."</item>
+    <item msgid="5597394826455877834">"இணைக்கிறது..."</item>
+    <item msgid="5848277343965362748">"அங்கீகரிக்கிறது…"</item>
+    <item msgid="3391238031431440676">"IP முகவரியைப் பெறுகிறது…"</item>
+    <item msgid="5257597310494000224">"இணைக்கப்பட்டது"</item>
+    <item msgid="8472497592913050396">"இடைநீக்கப்பட்டது"</item>
+    <item msgid="1228072488815999109">"துண்டிக்கிறது..."</item>
+    <item msgid="7253087004422991731">"தொடர்பு துண்டிக்கப்பட்டது"</item>
+    <item msgid="4169850917304751227">"தோல்வி"</item>
+    <item msgid="6266658166690831131">"தடுக்கப்பட்டது"</item>
+    <item msgid="4517230805854909775">"வேகம் குறைந்த இணைப்பைத் தற்காலிகமாகத் தவிர்க்கிறது"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"தேடுகிறது…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> இல் இணைக்கிறது…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> மூலம் அங்கீகரிக்கிறது…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> இலிருந்து IP முகவரியைப் பெறுகிறது…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> உடன் இணைக்கப்பட்டது"</item>
+    <item msgid="6600156231416890902">"இடைநீக்கப்பட்டது"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> இலிருந்து தொடர்பு துண்டிக்கப்படுகிறது…"</item>
+    <item msgid="3980154971187953257">"தொடர்பு துண்டிக்கப்பட்டது"</item>
+    <item msgid="2847316776634969068">"தோல்வி"</item>
+    <item msgid="4390990424746035383">"தடுக்கப்பட்டது"</item>
+    <item msgid="3618248791367063949">"வேகம் குறைந்த இணைப்பைத் தற்காலிகமாகத் தவிர்க்கிறது"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"புஷ் பட்டன்"</item>
+    <item msgid="7401896200768713930">"பியர் சாதனத்திலிருந்து பின்"</item>
+    <item msgid="4526848028011846710">"இந்தச் சாதனத்தில் உள்ள பின்"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"இணைக்கப்பட்டது"</item>
     <item msgid="983792611851499732">"அழைக்கப்பட்டது"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"மோசம்"</item>
+    <item msgid="7882129634982603782">"மோசம்"</item>
+    <item msgid="6457357501905996224">"சுமார்"</item>
+    <item msgid="405271628162918841">"நன்று"</item>
+    <item msgid="999948812884919584">"பிரமாதம்"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"கடந்த 30 நாட்கள்"</item>
     <item msgid="3211287705232736964">"பயன்பாட்டு சுழற்சியை அமை..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"நிலையானது"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"ஏதுமில்லை"</item>
     <item msgid="1464741437353223198">"கைமுறை"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"பின்புலத்தில் இயங்கு"</item>
     <item msgid="6423861043647911030">"அணுகல்தன்மைக்கான ஒலியளவு"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"இருப்பிடம்"</item>
+    <item msgid="6656077694190491067">"இருப்பிடம்"</item>
+    <item msgid="8790228218278477369">"இருப்பிடம்"</item>
+    <item msgid="7836406246005211990">"அதிர்வு"</item>
+    <item msgid="3951439024549922598">"தொடர்புகளைப் படி"</item>
+    <item msgid="8802152411647068">"தொடர்புகளை மாற்று"</item>
+    <item msgid="229544934599698735">"அழைப்புப் பதிவைப் படி"</item>
+    <item msgid="7396102294405899613">"அழைப்புப் பதிவை மாற்று"</item>
+    <item msgid="3597797992398484655">"கேலெண்டரைப் படி"</item>
+    <item msgid="2705975774250907343">"கேலெண்டரை மாற்று"</item>
+    <item msgid="4668747371441932697">"இருப்பிடம்"</item>
+    <item msgid="1487578921720243646">"அறிவிப்பை இடுகையிடு"</item>
+    <item msgid="4636080349724146638">"இருப்பிடம்"</item>
+    <item msgid="673510900286463926">"தொலைபேசியில் அழை"</item>
+    <item msgid="542083422784609790">"SMS/MMS ஐப் படி"</item>
+    <item msgid="1033780373029588436">"SMS/MMS எழுது"</item>
+    <item msgid="5647111115517787488">"SMS/MMS பெறு"</item>
+    <item msgid="8591105601108455893">"SMS/MMS பெறு"</item>
+    <item msgid="7730995008517841903">"SMS/MMS பெறு"</item>
+    <item msgid="2613033109026626086">"SMS/MMS பெறு"</item>
+    <item msgid="3037159047591081136">"SMS/MMS அனுப்பு"</item>
+    <item msgid="4726682243833913568">"SMS/MMS ஐப் படி"</item>
+    <item msgid="6555678522277865572">"SMS/MMS எழுது"</item>
+    <item msgid="6981734935578130884">"அமைப்புகளை மாற்று"</item>
+    <item msgid="8705854389991425629">"மேலே வரை"</item>
+    <item msgid="5861356020344153651">"அறிவிப்புகளை அணுகு"</item>
+    <item msgid="78432174621628659">"கேமரா"</item>
+    <item msgid="3986116419882154794">"ஆடியோவைப் பதிவுசெய்"</item>
+    <item msgid="4516840825756409490">"ஆடியோவை இயக்கு"</item>
+    <item msgid="6811712502798183957">"கிளிப்போர்டைப் படி"</item>
+    <item msgid="2780369012602289114">"கிளிப்போர்ட்டை மாற்று"</item>
+    <item msgid="2331359440170850868">"மீடியா பொத்தான்கள்"</item>
+    <item msgid="6133599737122751231">"ஆடியோவை மையப்படுத்து"</item>
+    <item msgid="6844485713404805301">"முதன்மை ஒலியளவு"</item>
+    <item msgid="1600379420669104929">"குரல் ஒலியளவு"</item>
+    <item msgid="6296768210470214866">"அழைப்பு - ஒலியளவு"</item>
+    <item msgid="510690696071629241">"மீடியா ஒலியளவு"</item>
+    <item msgid="406861638631430109">"அலார ஒலியளவு"</item>
+    <item msgid="4715864795872233884">"அறிவிப்பின் ஒலியளவு"</item>
+    <item msgid="2311478519251301183">"புளூடூத் ஒலியளவு"</item>
+    <item msgid="5133991377896747027">"எப்போதும் விழிப்பில்"</item>
+    <item msgid="2464189519136248621">"இருப்பிடம்"</item>
+    <item msgid="2062677934050803037">"இருப்பிடம்"</item>
+    <item msgid="1735171933192715957">"பயன்பாட்டு புள்ளிவிவரத்தைப் பெறுக"</item>
+    <item msgid="1014093788778383554">"மைக்ரோஃபோனை முடக்கு/இயக்கு"</item>
+    <item msgid="4199297950608622850">"டோஸ்ட்டைக் காட்டு"</item>
+    <item msgid="2527962435313398821">"மீடியாவை புராஜக்ட் செய்"</item>
+    <item msgid="5117506254221861929">"VPNஐ இயக்கு"</item>
+    <item msgid="8291198322681891160">"வால்பேப்பரை எழுது"</item>
+    <item msgid="7106921284621230961">"கட்டமைப்புக்கு உதவு"</item>
+    <item msgid="4496533640894624799">"ஸ்கிரீன்ஷாட்டுக்கு உதவு"</item>
+    <item msgid="2598847264853993611">"ஃபோன் நிலையைப் படி"</item>
+    <item msgid="9215610846802973353">"குரலஞ்சலைச் சேர்"</item>
+    <item msgid="9186411956086478261">"sipஐப் பயன்படுத்து"</item>
+    <item msgid="6884763100104539558">"வெளிச்செல்லும் அழைப்பைச் செயலாக்கு"</item>
+    <item msgid="125513972170580692">"கைரேகை"</item>
+    <item msgid="2556071024281275619">"உடல் சென்சார்கள்"</item>
+    <item msgid="617168514928339387">"செல் பிராட்காஸ்ட்களைப் படி"</item>
+    <item msgid="7134693570516523585">"போலியான இருப்பிடம்"</item>
+    <item msgid="7224489175375229399">"சேமிப்பகத்தைப் படி"</item>
+    <item msgid="8472735063903258202">"சேமிப்பகத்தை எழுது"</item>
+    <item msgid="4069276819909595110">"திரையை இயக்கு"</item>
+    <item msgid="1228338896751121025">"கணக்குகளைப் பெறு"</item>
+    <item msgid="3181581793459233672">"பின்புலத்தில் இயங்கு"</item>
+    <item msgid="2340936043025374076">"அணுகல்தன்மைக்கான ஒலியளவு"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"குறுகியது"</item>
     <item msgid="4816511817309094890">"நடுத்தர முக்கியத்துவம்"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"இணைவெழுத்து முறை"</item>
     <item msgid="6896773537705206194">"சிறிய எழுத்துகள்"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"மிகச் சிறியது"</item>
+    <item msgid="5091603983404027034">"சிறியது"</item>
+    <item msgid="176844712416932112">"சராசரி"</item>
+    <item msgid="2784236342175159295">"பெரியது"</item>
+    <item msgid="218913203203160606">"மிகப் பெரியது"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"இயல்பு"</item>
     <item msgid="6488643537808152001">"ஏதுமில்லை"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"ஆப்ஸ் இயல்புகளை பயன்படுத்து"</item>
+    <item msgid="8611890312638868524">"கருப்பில் வெண்மை"</item>
+    <item msgid="5891360837786277638">"வெண்மையில் கருப்பு"</item>
+    <item msgid="2798457065945456853">"கருப்பில் மஞ்சள்"</item>
+    <item msgid="5799049811524553967">"நீலத்தில் மஞ்சள்"</item>
+    <item msgid="3673930830658169860">"பிரத்தியேகமானது"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"பாதுகாப்பு விசைகளுடன் கூடிய L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"ஏதுமில்லை"</item>
     <item msgid="1157046369795346308">"கைமுறை"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"தொடர்பு துண்டிக்கப்பட்டது"</item>
+    <item msgid="8754480102834556765">"தொடங்குகிறது..."</item>
+    <item msgid="3351334355574270250">"இணைக்கிறது..."</item>
+    <item msgid="8303882153995748352">"இணைக்கப்பட்டது"</item>
+    <item msgid="9135049670787351881">"நேரம் முடிந்தது"</item>
+    <item msgid="2124868417182583926">"தோல்வி"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"கேள்"</item>
     <item msgid="7718817231348607934">"ஒருபோதும் அனுமதிக்காதே"</item>
     <item msgid="8184570120217958741">"எப்போதும் அனுமதி"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"இயல்பானது"</item>
+    <item msgid="5101233285497327432">"நடுத்தரம்"</item>
+    <item msgid="1555861583162930714">"குறைவு"</item>
+    <item msgid="1719683776264798117">"நெருக்கடி"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"இயல்பு"</item>
+    <item msgid="6107138933849816768">"நடுத்தரம்"</item>
+    <item msgid="182695359839047859">"குறைவு"</item>
+    <item msgid="8577246509202964244">"மிகவும் குறைவு"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"தொடர்நிலை"</item>
     <item msgid="167418068739176448">"அதிக செயல்பாடு"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ta/strings.xml b/tests/CarDeveloperOptions/res/values-ta/strings.xml
index 8399953..018bfc0 100644
--- a/tests/CarDeveloperOptions/res/values-ta/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ta/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"திரையில் காட்டப்படும் உரையைச் சிறிதாக்கும் அல்லது பெரிதாக்கும்."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"சிறிதாக்கு"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"பெரிதாக்கு"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"மாதிரி உரை"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"தி விசார்ட் ஆஃப் ஓஸ்"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"அத்தியாயம் 11: ஓஸின் அற்புதமான மரகத நகரம்"</string>
@@ -440,9 +439,9 @@
     <string name="security_settings_fingerprint_preference_summary_none" msgid="3613424536269750172"></string>
     <string name="security_settings_fingerprint_enroll_introduction_title" msgid="889558002683900544">"கைரேகை மூலம் திறக்கலாம்"</string>
     <string name="security_settings_fingerprint_enroll_introduction_title_unlock_disabled" msgid="7915504118657864429">"கைரேகையைப் பயன்படுத்தவும்"</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message" msgid="5586198131986682472">"மொபைலைத் திறக்க, வாங்குவதை அங்கீகரிக்க அல்லது பயன்பாடுகளில் உள்நுழைய, கைரேகை சென்சாரைத் தொட்டால் போதும். கைரேகையைப் பயன்படுத்தி மேலே குறிப்பிட்டுள்ளவற்றைச் செய்ய முடியும் என்பதால், அனைவரின் கைரேகைகளையும் இதில் சேர்க்க வேண்டாம்.\n\nகுறிப்பு: எளிதில் ஊகிக்க முடியாத வடிவம் அல்லது பின்னைப் பயன்படுத்தும் போது கிடைக்கும் பாதுகாப்பை விட, கைரேகையைப் பயன்படுத்தும் போது குறைவான பாதுகாப்பே கிடைக்கும்."</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message" msgid="5586198131986682472">"மொபைலைத் திறக்க, வாங்குவதை அங்கீகரிக்க அல்லது பயன்பாடுகளில் உள்நுழைய, கைரேகை சென்சாரைத் தொட்டால் போதும். கைரேகையைப் பயன்படுத்தி மேலே குறிப்பிட்டுள்ளவற்றைச் செய்ய முடியும் என்பதால், அனைவரின் கைரேகைகளையும் இதில் சேர்க்க வேண்டாம்.\n\nகுறிப்பு: எளிதில் ஊகிக்க முடியாத பேட்டர்ன் அல்லது பின்னைப் பயன்படுத்தும் போது கிடைக்கும் பாதுகாப்பை விட, கைரேகையைப் பயன்படுத்தும் போது குறைவான பாதுகாப்பே கிடைக்கும்."</string>
     <string name="security_settings_fingerprint_enroll_introduction_message_unlock_disabled" msgid="1640839304679275468">"மொபைலைத் திறக்க அல்லது வாங்குவதை அங்கீகரிக்க, உங்கள் கைரேகையைப் பயன்படுத்தவும்.\n\n குறிப்பு: இந்தச் சாதனத்தைத் திறக்க, கைரேகையைப் பயன்படுத்த முடியாது. மேலும் தகவலுக்கு, உங்கள் நிறுவனத்தின் நிர்வாகியைத் தொடர்புகொள்ளவும்."</string>
-    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6734490666593320711">"மொபைலைத் திறக்க அல்லது வாங்குவதை அங்கீகரிக்க, உங்கள் கைரேகையைப் பயன்படுத்தவும்.\nகுறிப்பு: எளிதில் ஊகிக்க முடியாத வடிவம் அல்லது பின்னைப் பயன்படுத்தும் போது கிடைக்கும் பாதுகாப்பை விட, கைரேகையைப் பயன்படுத்தும் போது குறைவான பாதுகாப்பே கிடைக்கும்.\n"</string>
+    <string name="security_settings_fingerprint_enroll_introduction_message_setup" msgid="6734490666593320711">"மொபைலைத் திறக்க அல்லது வாங்குவதை அங்கீகரிக்க, உங்கள் கைரேகையைப் பயன்படுத்தவும்.\nகுறிப்பு: எளிதில் ஊகிக்க முடியாத பேட்டர்ன் அல்லது பின்னைப் பயன்படுத்தும் போது கிடைக்கும் பாதுகாப்பை விட, கைரேகையைப் பயன்படுத்தும் போது குறைவான பாதுகாப்பே கிடைக்கும்.\n"</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel" msgid="9168637333731599827">"ரத்துசெய்"</string>
     <string name="security_settings_fingerprint_enroll_introduction_continue" msgid="271662150372486535">"தொடரவும்"</string>
     <string name="security_settings_fingerprint_enroll_introduction_cancel_setup" msgid="756928427429893070">"தவிர்"</string>
@@ -509,8 +508,8 @@
     <string name="crypt_keeper_encrypt_title" product="tablet" msgid="2292129135369853167">"டேப்லெட்டை என்க்ரிப்ட் செய்"</string>
     <string name="crypt_keeper_encrypt_title" product="default" msgid="3110852053238357832">"மொபைலை என்க்ரிப்ட் செய்"</string>
     <string name="crypt_keeper_encrypted_summary" msgid="2438498691741626642">"என்க்ரிப்ட் செய்யப்பட்டது"</string>
-    <string name="crypt_keeper_desc" product="tablet" msgid="9142792050252407734">"உங்கள் கணக்குகள், அமைப்புகள், பதிவிறக்கிய ஆப்ஸ் மற்றும் அவற்றின் தரவு, மீடியா மற்றும் பிற கோப்புகள் என அனைத்தையும் என்க்ரிப்ட் செய்யலாம். உங்கள் டேப்லெட்டை என்க்ரிப்ட் செய்த பிறகு, திரைப்பூட்டை (அதாவது வடிவம் அல்லது பின் அல்லது கடவுச்சொல்) அமைத்திருந்தால், ஒவ்வொரு முறையும் டேப்லெட்டை இயக்கும்போது குறிநீக்குவதற்கு திரையைத் திறக்க வேண்டும். உங்களின் எல்லா தரவையும் அழித்து, ஆரம்ப நிலைக்கு மீட்டமைப்பதே குறிநீக்குவதற்கான மற்றொரு வழியாகும்.\n\nஎன்க்ரிப்ட் செய்வதற்கு ஒரு மணிநேரம் அல்லது அதற்கு மேல் ஆகலாம். சார்ஜ் செய்த பேட்டரியுடன் தொடங்கி, செயல் முடியும் வரை சார்ஜ் ஆகும் நிலையிலேயே வைக்கவும். செயலில் குறுக்கிட்டால், உங்கள் தரவில் சிலவற்றை அல்லது மொத்தத்தையும் இழப்பீர்கள்."</string>
-    <string name="crypt_keeper_desc" product="default" msgid="1996334685607444282">"உங்கள் கணக்குகள், அமைப்புகள், பதிவிறக்கிய ஆப்ஸ் மற்றும் அவற்றின் தரவு, மீடியா மற்றும் பிற கோப்புகள் என அனைத்தையும் என்க்ரிப்ட் செய்யலாம். உங்கள் மொபைலை என்க்ரிப்ட் செய்த பிறகு, திரைப்பூட்டை (அதாவது வடிவம் அல்லது பின் அல்லது கடவுச்சொல்) அமைத்திருந்தால், ஒவ்வொரு முறையும் மொபைலை இயக்கும்போது குறிநீக்குவதற்கு திரையைத் திறக்க வேண்டும். உங்களின் எல்லா தரவையும் அழித்து, ஆரம்ப நிலைக்கு மீட்டமைப்பதே குறிநீக்குவதற்கான மற்றொரு வழியாகும்.\n\nஎன்க்ரிப்ட் செய்வதற்கு ஒரு மணிநேரம் அல்லது அதற்கு மேல் ஆகலாம். சார்ஜ் செய்த பேட்டரியுடன் தொடங்கி, செயல் முடியும் வரை சார்ஜ் ஆகும் நிலையிலேயே வைக்கவும். செயலில் குறுக்கிட்டால், உங்கள் தரவில் சிலவற்றை அல்லது மொத்தத்தையும் இழப்பீர்கள்."</string>
+    <string name="crypt_keeper_desc" product="tablet" msgid="9142792050252407734">"உங்கள் கணக்குகள், அமைப்புகள், பதிவிறக்கிய ஆப்ஸ் மற்றும் அவற்றின் தரவு, மீடியா மற்றும் பிற கோப்புகள் என அனைத்தையும் என்க்ரிப்ட் செய்யலாம். உங்கள் டேப்லெட்டை என்க்ரிப்ட் செய்த பிறகு, திரைப்பூட்டை (அதாவது பேட்டர்ன் அல்லது பின் அல்லது கடவுச்சொல்) அமைத்திருந்தால், ஒவ்வொரு முறையும் டேப்லெட்டை இயக்கும்போது குறிநீக்குவதற்கு திரையைத் திறக்க வேண்டும். உங்களின் எல்லா தரவையும் அழித்து, ஆரம்ப நிலைக்கு மீட்டமைப்பதே குறிநீக்குவதற்கான மற்றொரு வழியாகும்.\n\nஎன்க்ரிப்ட் செய்வதற்கு ஒரு மணிநேரம் அல்லது அதற்கு மேல் ஆகலாம். சார்ஜ் செய்த பேட்டரியுடன் தொடங்கி, செயல் முடியும் வரை சார்ஜ் ஆகும் நிலையிலேயே வைக்கவும். செயலில் குறுக்கிட்டால், உங்கள் தரவில் சிலவற்றை அல்லது மொத்தத்தையும் இழப்பீர்கள்."</string>
+    <string name="crypt_keeper_desc" product="default" msgid="1996334685607444282">"உங்கள் கணக்குகள், அமைப்புகள், பதிவிறக்கிய ஆப்ஸ் மற்றும் அவற்றின் தரவு, மீடியா மற்றும் பிற கோப்புகள் என அனைத்தையும் என்க்ரிப்ட் செய்யலாம். உங்கள் மொபைலை என்க்ரிப்ட் செய்த பிறகு, திரைப்பூட்டை (அதாவது பேட்டர்ன் அல்லது பின் அல்லது கடவுச்சொல்) அமைத்திருந்தால், ஒவ்வொரு முறையும் மொபைலை இயக்கும்போது குறிநீக்குவதற்கு திரையைத் திறக்க வேண்டும். உங்களின் எல்லா தரவையும் அழித்து, ஆரம்ப நிலைக்கு மீட்டமைப்பதே குறிநீக்குவதற்கான மற்றொரு வழியாகும்.\n\nஎன்க்ரிப்ட் செய்வதற்கு ஒரு மணிநேரம் அல்லது அதற்கு மேல் ஆகலாம். சார்ஜ் செய்த பேட்டரியுடன் தொடங்கி, செயல் முடியும் வரை சார்ஜ் ஆகும் நிலையிலேயே வைக்கவும். செயலில் குறுக்கிட்டால், உங்கள் தரவில் சிலவற்றை அல்லது மொத்தத்தையும் இழப்பீர்கள்."</string>
     <string name="crypt_keeper_button_text" product="tablet" msgid="7918671468758813824">"டேப்லெட்டை என்க்ரிப்ட் செய்"</string>
     <string name="crypt_keeper_button_text" product="default" msgid="8737394386627318489">"மொபைலை என்க்ரிப்ட் செய்"</string>
     <string name="crypt_keeper_low_charge_text" msgid="1422879728632636311">"உங்கள் பேட்டரியை சார்ஜ் செய்து மீண்டும் முயற்சிக்கவும்."</string>
@@ -562,13 +561,13 @@
     <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="3861167251234952373">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / உறக்கத்திற்குப் பின் <xliff:g id="TIMEOUT_STRING">%2$s</xliff:g>"</string>
     <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"பணிச் சுயவிவரப் பூட்டு"</string>
     <string name="unlock_set_unlock_launch_picker_change_title" msgid="32310692507029407">"லாக் ஸ்கிரீனை மாற்றவும்"</string>
-    <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2072792784866320522">"வடிவம், பின் அல்லது கடவுச்சொல் பாதுகாப்பை மாற்றவும் அல்லது முடக்கவும்."</string>
+    <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2072792784866320522">"பேட்டர்ன், பின் அல்லது கடவுச்சொல் பாதுகாப்பை மாற்றவும் அல்லது முடக்கவும்."</string>
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="9070847611379078795">"திரையைப் பூட்டுவதற்கான முறையைத் தேர்வுசெய்யவும்"</string>
     <string name="unlock_set_unlock_off_title" msgid="5049876793411416079">"ஏதுமில்லை"</string>
     <string name="unlock_set_unlock_off_summary" msgid="3997346045783359119"></string>
     <string name="unlock_set_unlock_none_title" msgid="1922027966983146392">"ஸ்வைப்"</string>
     <string name="unlock_set_unlock_none_summary" msgid="4044529413627659031">"பாதுகாப்பு இல்லை"</string>
-    <string name="unlock_set_unlock_pattern_title" msgid="7533759994999423587">"வடிவம்"</string>
+    <string name="unlock_set_unlock_pattern_title" msgid="7533759994999423587">"பேட்டர்ன்"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8858697834522201333">"மிதமான பாதுகாப்பு"</string>
     <string name="unlock_set_unlock_pin_title" msgid="361479901761948207">"பின்"</string>
     <string name="unlock_set_unlock_pin_summary" msgid="8076921768675948228">"மிதமானது முதல் அதிக பாதுகாப்பு"</string>
@@ -576,7 +575,7 @@
     <string name="unlock_set_unlock_password_summary" msgid="7042787631866059147">"அதிகப் பாதுகாப்பு"</string>
     <string name="unlock_set_do_later_title" msgid="2939110070503695956">"இப்போது வேண்டாம்"</string>
     <string name="current_screen_lock" msgid="398328543694154510">"தற்போதைய திரைப் பூட்டு"</string>
-    <string name="fingerprint_unlock_set_unlock_pattern" msgid="132337696546315927">"கைரேகை + வடிவம்"</string>
+    <string name="fingerprint_unlock_set_unlock_pattern" msgid="132337696546315927">"கைரேகை + பேட்டர்ன்"</string>
     <string name="fingerprint_unlock_set_unlock_pin" msgid="886426673328906002">"கைரேகை + பின்"</string>
     <string name="fingerprint_unlock_set_unlock_password" msgid="3325527833422156515">"கைரேகை + கடவுச்சொல்"</string>
     <string name="fingerprint_unlock_skip_fingerprint" msgid="2063700014903801639">"கைரேகையின்றி தொடர்க"</string>
@@ -589,14 +588,14 @@
     <string name="unlock_set_unlock_disabled_summary" msgid="1713159782896140817">"நிர்வாகி, என்கிரிப்ஷன் பாலிசி/நற்சான்று சேமிப்பகம் காரணமாக முடக்கப்பட்டது"</string>
     <string name="unlock_set_unlock_mode_off" msgid="2950701212659081973">"ஏதுமில்லை"</string>
     <string name="unlock_set_unlock_mode_none" msgid="3441605629077912292">"ஸ்வைப்"</string>
-    <string name="unlock_set_unlock_mode_pattern" msgid="8564909572968419459">"வடிவம்"</string>
+    <string name="unlock_set_unlock_mode_pattern" msgid="8564909572968419459">"பேட்டர்ன்"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="7828354651668392875">"பின்"</string>
     <string name="unlock_set_unlock_mode_password" msgid="397703731925549447">"கடவுச்சொல்"</string>
     <string name="unlock_setup_wizard_fingerprint_details" msgid="6515136915205473675">"திரைப் பூட்டு அமைத்ததும், அமைப்புகள் &gt; பாதுகாப்பு என்பதற்குச் சென்று கைரேகையை அமைக்கலாம்."</string>
     <string name="unlock_disable_lock_title" msgid="3508492427073600294">"திரைப் பூட்டை முடக்கு"</string>
     <string name="unlock_disable_frp_warning_title" msgid="5858589970505254193">"சாதனப் பாதுகாப்பை அகற்றவா?"</string>
     <string name="unlock_disable_frp_warning_title_profile" msgid="3814123014295965266">"சுயவிவரப் பாதுகாப்பை அகற்றவா?"</string>
-    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"வடிவம் இல்லாமல் சாதனப் பாதுகாப்பு அம்சங்கள் செயல்படாது."</string>
+    <string name="unlock_disable_frp_warning_content_pattern" msgid="1843950215687159135">"பேட்டர்ன் இல்லாமல் சாதனப் பாதுகாப்பு அம்சங்கள் செயல்படாது."</string>
     <string name="unlock_disable_frp_warning_content_pattern_fingerprint" msgid="8846957650251741548">"பேட்டர்ன் இல்லாமல் சாதனப் பாதுகாப்பு அம்சங்கள் செயல்படாது.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>சேமிக்கப்பட்டிருக்கும் கைரேகைகளும் இந்தச் சாதனத்திலிருந்து அகற்றப்படும். எனவே அவற்றின் மூலம் உங்களால் மொபைலைத் திறக்கவோ, வாங்குவதை அங்கீகரிக்கவோ அல்லது பயன்பாடுகளில் உள்நுழையவோ முடியாது."</string>
@@ -612,7 +611,7 @@
     <string name="unlock_disable_frp_warning_content_unknown_fingerprint" msgid="5775815077478538855">"திரைப் பூட்டு இல்லாமல் சாதனப் பாதுகாப்பு அம்சங்கள் செயல்படாது.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>சேமிக்கப்பட்டிருக்கும் கைரேகைகளும் இந்தச் சாதனத்திலிருந்து அகற்றப்படும். எனவே அவற்றின் மூலம் உங்களால் மொபைலைத் திறக்கவோ, வாங்குவதை அங்கீகரிக்கவோ அல்லது பயன்பாடுகளில் உள்நுழையவோ முடியாது."</string>
-    <string name="unlock_disable_frp_warning_content_pattern_profile" msgid="2369992898062808499">"வடிவம் இல்லாமல் சுயவிவரப் பாதுகாப்பு அம்சங்கள் செயல்படாது."</string>
+    <string name="unlock_disable_frp_warning_content_pattern_profile" msgid="2369992898062808499">"பேட்டர்ன் இல்லாமல் சுயவிவரப் பாதுகாப்பு அம்சங்கள் செயல்படாது."</string>
     <string name="unlock_disable_frp_warning_content_pattern_fingerprint_profile" msgid="8511105093090018735">"பேட்டர்ன் இல்லாமல் சுயவிவரப் பாதுகாப்பு அம்சங்கள் செயல்படாது.<xliff:g id="EMPTY_LINE">
 
 </xliff:g>சேமிக்கப்பட்டிருக்கும் கைரேகைகளும் இந்தச் சுயவிவரத்திலிருந்து அகற்றப்படும். எனவே அவற்றின் மூலம் உங்களால் சுயவிவரத்தைத் திறக்கவோ, வாங்குவதை அங்கீகரிக்கவோ அல்லது பயன்பாடுகளில் உள்நுழையவோ முடியாது."</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"வைஃபை"</item>
+    <item msgid="2271962426654621656">"மொபைல்"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"வைஃபை இணைப்பு இல்லை எனில் மொபைல் நெட்வொர்க்கைப் பயன்படுத்தும்"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"மொபைல் நெட்வொர்க் இல்லை எனில் வைஃபை இணைப்பைப் பயன்படுத்தும்"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"வைஃபை மூலம் அழை. வைஃபை இணைப்பை இழந்தால் அழைப்பும் துண்டிக்கப்படும்."</string>
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"சமீபத்திய இருப்பிட அணுகல்"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"விவரங்களைக் காட்டு"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"எந்தப் பயன்பாடுகளும் சமீபத்தில் இருப்பிடத்தைக் கோரவில்லை"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"எந்த ஆப்ஸும் சமீபத்தில் இருப்பிடத்தைக் கோரவில்லை"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"சமீபத்தில் எந்த ஆப்ஸும் இருப்பிடத்தை அணுகவில்லை"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"அதிகப் பேட்டரி பயன்பாடு"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"குறைவான பேட்டரி பயன்பாடு"</string>
@@ -1720,7 +1722,7 @@
     <string name="lockpassword_choose_lock_generic_header" msgid="4418423132980560119">"எப்படித் திறக்க வேண்டும்?"</string>
     <string name="lockpassword_password_set_toast" msgid="601928982984489868">"கடவுச்சொல் அமைக்கப்பட்டது"</string>
     <string name="lockpassword_pin_set_toast" msgid="172594825722240059">"பின் அமைக்கப்பட்டது"</string>
-    <string name="lockpassword_pattern_set_toast" msgid="6923260369475481406">"வடிவம் அமைக்கப்பட்டது"</string>
+    <string name="lockpassword_pattern_set_toast" msgid="6923260369475481406">"பேட்டர்ன் அமைக்கப்பட்டது"</string>
     <string name="lockpassword_choose_your_password_header_for_face" msgid="8823110536502072216">"முக அங்கீகாரத்துக்கு, கடவுச்சொல்லை அமை"</string>
     <string name="lockpassword_choose_your_pattern_header_for_face" msgid="5563793748503883666">"முக அங்கீகாரத்துக்கு, பேட்டர்னை அமை"</string>
     <string name="lockpassword_choose_your_pin_header_for_face" msgid="7238352632535405068">"முக அங்கீகாரத்துக்கு, பின்னை அமை"</string>
@@ -1744,23 +1746,23 @@
     <string name="lockpassword_confirm_your_password_header_frp" msgid="7326670978891793470">"கடவுச்சொல்லைச் சரிபார்க்கவும்"</string>
     <string name="lockpassword_invalid_pin" msgid="3059022215815900137">"தவறான பின்"</string>
     <string name="lockpassword_invalid_password" msgid="8374331995318204099">"தவறான கடவுச்சொல்"</string>
-    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"தவறான வடிவம்"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"தவறான பேட்டர்ன்"</string>
     <string name="lock_settings_title" msgid="233657584969886812">"சாதனப் பாதுகாப்பு"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="333149762562581510">"திறக்கும் வடிவத்தை மாற்று"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"திறப்பதற்கான பின்னை மாற்று"</string>
-    <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"திறப்பதற்கான வடிவத்தை வரைக"</string>
+    <string name="lockpattern_recording_intro_header" msgid="2262005028838969839">"திறப்பதற்கான பேட்டர்னை வரைக"</string>
     <string name="lockpattern_recording_intro_footer" msgid="5426745740754065099">"உதவிக்கு மெனுவை அழுத்தவும்."</string>
     <string name="lockpattern_recording_inprogress" msgid="4060818382176523671">"முடிந்ததும் விரலை எடுக்கவும்"</string>
     <string name="lockpattern_recording_incorrect_too_short" msgid="6374760294545431845">"குறைந்தது <xliff:g id="NUMBER">%d</xliff:g> புள்ளிகளை இணைக்கவும். மீண்டும் முயற்சிக்கவும்."</string>
-    <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"வடிவம் பதிவுசெய்யப்பட்டது"</string>
+    <string name="lockpattern_pattern_entered_header" msgid="2108106638322637851">"பேட்டர்ன் பதிவுசெய்யப்பட்டது"</string>
     <string name="lockpattern_need_to_confirm" msgid="4079482507985867389">"உறுதிப்படுத்துவதற்கு வடிவத்தை மீண்டும் வரையவும்"</string>
-    <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"திறப்பதற்கான புதிய வடிவம்"</string>
+    <string name="lockpattern_pattern_confirmed_header" msgid="5603156929428721407">"திறப்பதற்கான புதிய பேட்டர்ன்"</string>
     <string name="lockpattern_confirm_button_text" msgid="7059311304112902598">"உறுதிசெய்க"</string>
     <string name="lockpattern_restart_button_text" msgid="4322968353922529868">"மீண்டும் வரைக"</string>
     <string name="lockpattern_retry_button_text" msgid="5473976578241534298">"அழி"</string>
     <string name="lockpattern_continue_button_text" msgid="3328913552656376892">"தொடர்க"</string>
-    <string name="lockpattern_settings_title" msgid="5152005866870766842">"திறப்பதற்கான வடிவம்"</string>
-    <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"வடிவம் தேவை"</string>
+    <string name="lockpattern_settings_title" msgid="5152005866870766842">"திறப்பதற்கான பேட்டர்ன்"</string>
+    <string name="lockpattern_settings_enable_title" msgid="8508410891939268080">"பேட்டர்ன் தேவை"</string>
     <string name="lockpattern_settings_enable_summary" msgid="8027605503917737512">"திரையைத் திறப்பதற்கான வடிவத்தை வரைய வேண்டும்"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"வடிவத்தைக் காணும்படி செய்"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"சுயவிவரப் பேட்டர்னை வரையும் போது காட்டு"</string>
@@ -2084,7 +2086,7 @@
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"நீங்கள் வாசிக்க விரும்பும், தற்காலிகமாகத் தெரியும் மெசேஜ்கள் எவ்வளவு நேரம் காட்டப்பட வேண்டும் என்பதைத் தேர்வுசெய்யலாம்.\n\nஇந்த அமைப்பு அனைத்து ஆப்ஸிலும் ஆதரிக்கப்படாது."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"உங்களைச் செயல்படும்படி கூறும் மெசேஜ்களை எவ்வளவு நேரம் காட்டலாம் என்பதைத் தேர்வுசெய்யவும். இவை சற்று நேரத்திற்கு மட்டுமே காட்டப்படும்.\n\nஇந்த அமைப்பு அனைத்து ஆப்ஸாலும் ஆதரிக்கப்படாது."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"தொட்டுப் பிடித்தல் தாமதம்"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"வண்ணத்தின் நேர்மாறான முறை"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"கலர் இன்வெர்ஷன்"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"செயல்திறனைப் பாதிக்கலாம்"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"இருப்பு நேரம்"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"நீங்கள் மவுஸைப் பயன்படுத்துகிறீர்கள் எனில், ஒரு குறிப்பிட்ட நேரத்திற்குக் கர்சர் நகராமல் இருக்கும்போது, அது தானாகவே என்ன செய்யவேண்டுமென அமைத்துக்கொள்ளலாம்."</string>
@@ -2307,7 +2309,7 @@
       <item quantity="other">%1$d ஆப்ஸைக் கட்டுப்படுத்தவா?</item>
       <item quantity="one">பயன்பாட்டைக் கட்டுப்படுத்தவா?</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"பேட்டரியைச் சேமிக்க, பின்னணியில் பேட்டரியை உபயோகிப்பதிலிருந்து <xliff:g id="APP">%1$s</xliff:g> பயன்பாட்டைத் தடுக்கவும். இந்த ஆப்ஸ் சரியாகச் செயல்படாமல் இருக்கலாம், அத்துடன் இதற்கான அறிவிப்புகளும் தாமதமாக வரலாம்."</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"பேட்டரியைச் சேமிக்க, பின்னணியில் பேட்டரியை உபயோகிப்பதிலிருந்து <xliff:g id="APP">%1$s</xliff:g> ஆப்ஸைத் தடுக்கவும். இந்த ஆப்ஸ் சரியாகச் செயல்படாமல் இருக்கலாம், அத்துடன் இதற்கான அறிவிப்புகளும் தாமதமாக வரலாம்."</string>
     <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"பேட்டரியைச் சேமிக்க, பின்னணியில் பேட்டரியைப் பயன்படுத்துவதிலிருந்து இந்த ஆப்ஸைத் தடுக்கவும். தடுக்கப்பட்ட ஆப்ஸ் சரியாகச் செயல்படாமல் இருக்கலாம், அத்துடன் இவற்றுக்கான அறிவிப்புகளும் தாமதமாக வரலாம்.\n\nஆப்ஸ்:"</string>
     <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"பேட்டரியைச் சேமிக்க, பின்னணியில் பேட்டரியைப் பயன்படுத்துவதிலிருந்து இந்த ஆப்ஸைத் தடுக்கவும். தடுக்கப்பட்ட ஆப்ஸ் சரியாகச் செயல்படாமல் இருக்கலாம். அத்துடன் இவற்றுக்கான அறிவிப்புகளும் தாமதமாக வரலாம்.\n\nஆப்ஸ்:\n<xliff:g id="APP_LIST">%1$s</xliff:g>."</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"கட்டுப்படுத்து"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"இப்போது ஒத்திசைக்க, தட்டவும்<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"கேலெண்டர்"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"தொடர்புகள்"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google ஒத்திசைவுக்கு வரவேற்கிறோம்!"</font>" \nநீங்கள் எங்கிருந்தாலும் உங்கள் தொடர்புகள், அப்பாயிண்ட்மெண்ட்டுகள் மற்றும் பலவற்றுக்கான அணுகலை அனுமதிப்பதற்காக Google தரவை ஒத்திசைக்கிறது."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"ஆப்ஸ் ஒத்திசைவு அமைப்பு"</string>
@@ -2636,7 +2638,7 @@
     <string name="enter_password" msgid="2963496904625715235">"Androidஐத் தொடங்க, கடவுச்சொல்லை உள்ளிடவும்"</string>
     <string name="enter_pin" msgid="7140938268709546890">"Androidஐத் தொடங்க, PINஐ உள்ளிடவும்"</string>
     <string name="enter_pattern" msgid="1653841963422825336">"Androidஐத் தொடங்க, வடிவத்தை வரையவும்"</string>
-    <string name="cryptkeeper_wrong_pattern" msgid="4580105105385125467">"தவறான வடிவம்"</string>
+    <string name="cryptkeeper_wrong_pattern" msgid="4580105105385125467">"தவறான பேட்டர்ன்"</string>
     <string name="cryptkeeper_wrong_password" msgid="1709534330303983166">"தவறான கடவுச்சொல்"</string>
     <string name="cryptkeeper_wrong_pin" msgid="857757190077859245">"தவறான பின்"</string>
     <string name="checking_decryption" msgid="5927759912073053101">"சரிபார்க்கிறது..."</string>
@@ -2880,7 +2882,7 @@
     <string name="user_cannot_add_accounts_message" msgid="5993561303748749097">"வரையறுக்கப்பட்ட சுயவிவரங்களால் கணக்குகளைச் சேர்க்க முடியாது"</string>
     <string name="user_remove_user_menu" msgid="3505139157217459864">"சாதனத்திலிருந்து <xliff:g id="USER_NAME">%1$s</xliff:g> ஐ நீக்கு"</string>
     <string name="user_lockscreen_settings" msgid="3820813814848394568">"லாக் ஸ்கிரீன் அமைப்புகள்"</string>
-    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"லாக் ஸ்கிரீனிலிருந்து பயனர்களைச் சேர்"</string>
+    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"பூட்டுத் திரையிலிருந்து பயனர்களைச் சேர்"</string>
     <string name="user_new_user_name" msgid="3880395219777884838">"புதியவர்"</string>
     <string name="user_new_profile_name" msgid="3074939718101489937">"புதிய சுயவிவரம்"</string>
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"உங்களை நீக்கவா?"</string>
@@ -3039,7 +3041,7 @@
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"புளூடூத், NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"புளூடூத்"</string>
     <string name="app_and_notification_dashboard_title" msgid="8448096608058843730">"ஆப்ஸ் &amp; அறிவிப்புகள்"</string>
-    <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"அசிஸ்டண்ட், சமீபத்திய ஆப்ஸ், இயல்பான ஆப்ஸ்"</string>
+    <string name="app_and_notification_dashboard_summary" msgid="4165181440955038145">"Assistant, சமீபத்திய ஆப்ஸ், இயல்பான ஆப்ஸ்"</string>
     <string name="notification_settings_work_profile" msgid="7190550347842400029">"பணிக் கணக்கில், ஆப்ஸுற்கான அறிவிப்பு அணுகல் இல்லை."</string>
     <string name="account_dashboard_title" msgid="4734300939532555885">"கணக்குகள்"</string>
     <string name="account_dashboard_default_summary" msgid="6822549669771936206">"கணக்குகள் எதுவும் சேர்க்கப்படவில்லை"</string>
@@ -3089,7 +3091,7 @@
     <string name="keywords_ignore_optimizations" msgid="9127632532176249438">"மேம்படுத்தல்களைத் தவிர்த்தல், பேட்டரியைக் குறைவாகப் பயன்படுத்துதல், ஆப்ஸ் காத்திருப்பு நிலை"</string>
     <string name="keywords_color_mode" msgid="8893345199519181751">"அதிர்வு, RGB, sRGB, வண்ணம், இயற்கை, நிலையானது"</string>
     <string name="keywords_color_temperature" msgid="2255253972992035046">"வண்ணம், வண்ண வெப்பநிலை, D65, D73, வெள்ளை, மஞ்சள், நீலம், அடர், வெளிர்"</string>
-    <string name="keywords_lockscreen" msgid="4936846554280830394">"திறப்பதற்கு ஸ்லைடு செய்தல், கடவுச்சொல், வடிவம், பின்"</string>
+    <string name="keywords_lockscreen" msgid="4936846554280830394">"திறப்பதற்கு ஸ்லைடு செய்தல், கடவுச்சொல், பேட்டர்ன், பின்"</string>
     <string name="keywords_profile_challenge" msgid="8653718001253979611">"பணிச்சுமை, பணி, சுயவிவரம்"</string>
     <string name="keywords_unification" msgid="2020759909366983593">"பணிக் கணக்கு, நிர்வகிக்கப்படும் சுயவிவரம், ஒருங்கிணை, ஒருங்கிணைத்தல், பணி, சுயவிவரம்"</string>
     <string name="keywords_gesture" msgid="5031323247529869644">"சைகைகள்"</string>
@@ -3567,7 +3569,7 @@
     <string name="encryption_interstitial_message_pattern" msgid="5620724295995735120">"இந்தச் சாதனத்தைத் துவக்கும் முன், பேட்டர்ன் தேவைப்படுமாறு அமைத்து, மேலும் பாதுகாக்கலாம். சாதனம் துவங்கும் வரை, அழைப்புகள், செய்திகள் அல்லது அலாரங்கள் உள்ளிட்ட அறிவிப்புகளை இதில் பெற முடியாது. \n\nஉங்கள் சாதனம் தொலைந்து போனாலோ திருடப்பட்டாலோ, அதில் உள்ள உங்கள் டேட்டாவைப் பாதுகாக்க இதைக் கடைபிடிக்கலாம். சாதனத்தைத் தொடங்கும் போது, பேட்டர்னைக் கேட்பதை அமைக்கவா?"</string>
     <string name="encryption_interstitial_message_password" msgid="7236688467386126401">"இந்தச் சாதனத்தைத் துவக்கும் முன், கடவுச்சொல் தேவைப்படுமாறு அமைத்து, மேலும் பாதுகாக்கலாம். சாதனம் துவங்கும் வரை, அழைப்புகள், செய்திகள் அல்லது அலாரங்கள் உள்ளிட்ட அறிவிப்புகளை இதில் பெற முடியாது. \n\nஉங்கள் சாதனம் தொலைந்து போனாலோ திருடப்பட்டாலோ, அதில் உள்ள உங்கள் டேட்டாவைப் பாதுகாக்க இதைக் கடைபிடிக்கலாம். சாதனத்தைத் தொடங்கும் போது, கடவுச்சொல்லைக் கேட்பதை அமைக்கவா?"</string>
     <string name="encryption_interstitial_message_pin_for_fingerprint" msgid="3706009740537484517">"சாதனத்தைத் திறக்க கைரேகையைப் பயன்படுத்துவதுடன் சேர்த்து, பின் தேவைப்படுமாறு அமைத்து உங்கள் சாதனத்திற்குக் கூடுதல் பாதுகாப்பு வழங்கிடலாம். சாதனம் துவங்கும் வரை, அழைப்புகள், செய்திகள் அல்லது அலாரங்கள் உள்ளிட்ட அறிவிப்புகளை இதில் பெற முடியாது. \n\nஉங்கள் சாதனம் தொலைந்து போனாலோ திருடப்பட்டாலோ, அதில் உள்ள உங்கள் டேட்டாவைப் பாதுகாக்க இதைக் கடைபிடிக்கலாம். சாதனத்தைத் தொடங்கும் போது, பின்னைக் கேட்பதை அமைக்கவா?"</string>
-    <string name="encryption_interstitial_message_pattern_for_fingerprint" msgid="5230877866699023998">"சாதனத்தைத் திறக்க கைரேகையைப் பயன்படுத்துவதுடன் சேர்த்து, வடிவம் தேவைப்படுமாறு அமைத்து உங்கள் சாதனத்திற்குக் கூடுதல் பாதுகாப்பு வழங்கிடலாம். சாதனம் துவங்கும் வரை, அழைப்புகள், செய்திகள் அல்லது அலாரங்கள் உள்ளிட்ட அறிவிப்புகளை இதில் பெற முடியாது. \n\nஉங்கள் சாதனம் தொலைந்து போனாலோ திருடப்பட்டாலோ, அதில் உள்ள உங்கள் டேட்டாவைப் பாதுகாக்க இதைக் கடைபிடிக்கலாம். சாதனத்தைத் தொடங்கும் போது, பேட்டர்னைக் கேட்பதை அமைக்கவா?"</string>
+    <string name="encryption_interstitial_message_pattern_for_fingerprint" msgid="5230877866699023998">"சாதனத்தைத் திறக்க கைரேகையைப் பயன்படுத்துவதுடன் சேர்த்து, பேட்டர்ன் தேவைப்படுமாறு அமைத்து உங்கள் சாதனத்திற்குக் கூடுதல் பாதுகாப்பு வழங்கிடலாம். சாதனம் துவங்கும் வரை, அழைப்புகள், செய்திகள் அல்லது அலாரங்கள் உள்ளிட்ட அறிவிப்புகளை இதில் பெற முடியாது. \n\nஉங்கள் சாதனம் தொலைந்து போனாலோ திருடப்பட்டாலோ, அதில் உள்ள உங்கள் டேட்டாவைப் பாதுகாக்க இதைக் கடைபிடிக்கலாம். சாதனத்தைத் தொடங்கும் போது, பேட்டர்னைக் கேட்பதை அமைக்கவா?"</string>
     <string name="encryption_interstitial_message_password_for_fingerprint" msgid="8451977276748128814">"சாதனத்தைத் திறக்க கைரேகையைப் பயன்படுத்துவதுடன் சேர்த்து, கடவுச்சொல் தேவைப்படுமாறு அமைத்து உங்கள் சாதனத்திற்குக் கூடுதல் பாதுகாப்பு வழங்கிடலாம். சாதனம் தொடங்கும் வரை, அழைப்புகள், செய்திகள் அல்லது அலாரங்கள் உள்ளிட்ட அறிவிப்புகளை இதில் பெற முடியாது. \n\nஉங்கள் சாதனம் தொலைந்து போனாலோ திருடப்பட்டாலோ, அதில் உள்ள உங்கள் டேட்டாவைப் பாதுகாக்க இதைக் கடைபிடிக்கலாம். சாதனத்தைத் தொடங்கும் போது, கடவுச்சொல்லைக் கேட்பதை அமைக்கவா?"</string>
     <string name="encryption_interstitial_message_pin_for_face" msgid="7469243836881325172">"சாதனத்தைத் திறப்பதற்கு உங்கள் முகத்தைப் பயன்படுத்துவது மட்டுமல்லாமல், சாதனம் தொடங்கும் முன்பாக, பின்னை உள்ளிடும்படி அமைத்து, கூடுதல் பாதுகாப்பை வழங்கலாம். சாதனம் தொடங்கும்வரை, அழைப்புகள், மெசேஜ்கள், அலாரங்கள் உள்ளிட்ட எவற்றையும் சாதனத்தால் பெற இயலாது.\n\nசாதனம் தொலைந்துவிட்டாலோ திருடப்பட்டாலோ, அதிலுள்ள தரவைப் பாதுகாக்க இது உதவும். சாதனத்தைத் தொடங்கும்போது கடவுச்சொல்லைக் கேட்குமாறு அமைக்கவா?"</string>
     <string name="encryption_interstitial_message_pattern_for_face" msgid="9221235885895441797">"சாதனத்தைத் திறப்பதற்கு உங்கள் முகத்தைப் பயன்படுத்துவது மட்டுமல்லாமல், சாதனம் தொடங்கும் முன்பாக, பேட்டர்னை உள்ளிடும்படி அமைத்து, கூடுதல் பாதுகாப்பை வழங்கலாம். சாதனம் தொடங்கும்வரை, அழைப்புகள், மெசேஜ்கள், அலாரங்கள் உள்ளிட்ட எவற்றையும் சாதனத்தால் பெற இயலாது. \n\nசாதனம் தொலைந்துவிட்டாலோ திருடப்பட்டாலோ, அதிலுள்ள தரவைப் பாதுகாக்க இது உதவும். சாதனத்தைத் தொடங்கும்போது கடவுச்சொல்லைக் கேட்குமாறு அமைக்கவா?"</string>
@@ -3577,7 +3579,7 @@
     <string name="restricted_true_label" msgid="1545180379083441282">"கட்டுப்படுத்தியது"</string>
     <string name="restricted_false_label" msgid="4512495920090068495">"ஆப்ஸ் கட்டுப்படுத்தப்படவில்லை"</string>
     <string name="encrypt_talkback_dialog_require_pin" msgid="2781758476498571031">"பின் தேவையா?"</string>
-    <string name="encrypt_talkback_dialog_require_pattern" msgid="8705104812047332411">"வடிவம் தேவையா?"</string>
+    <string name="encrypt_talkback_dialog_require_pattern" msgid="8705104812047332411">"பேட்டர்ன் தேவையா?"</string>
     <string name="encrypt_talkback_dialog_require_password" msgid="5070710417271353306">"கடவுச்சொல் தேவையா?"</string>
     <string name="encrypt_talkback_dialog_message_pin" msgid="1912533826818077891">"இந்தச் சாதனத்தைத் துவக்க பின்னை நீங்கள் பயன்படுத்தினால், <xliff:g id="SERVICE">%1$s</xliff:g> போன்ற அணுகல்தன்மை சேவைகள் கிடைக்காது."</string>
     <string name="encrypt_talkback_dialog_message_pattern" msgid="4415837749933863432">"இந்தச் சாதனத்தைத் துவக்க வடிவத்தை நீங்கள் பயன்படுத்தினால், <xliff:g id="SERVICE">%1$s</xliff:g> போன்ற அணுகல்தன்மை சேவைகள் கிடைக்காது."</string>
@@ -3761,7 +3763,7 @@
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"ஸ்கிரீன் ஷாட்டைப் பயன்படுத்து"</string>
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"திரையின் படத்தை அணுக, அசிஸ்ட் ஆப்ஸை அனுமதிக்கும்"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"திரையில் ஃபிளாஷ்"</string>
-    <string name="assist_flash_summary" msgid="6697095786317559129">"அசிஸ்ட் பயன்பாடானது திரை அல்லது ஸ்கிரீன் ஷாட்டிலிருந்து உரையை அணுகும் போது, திரையில் ஃபிளாஷ் மின்னும்"</string>
+    <string name="assist_flash_summary" msgid="6697095786317559129">"அசிஸ்ட் ஆப்ஸானது திரை அல்லது ஸ்கிரீன் ஷாட்டிலிருந்து உரையை அணுகும் போது, திரையில் ஃபிளாஷ் மின்னும்"</string>
     <string name="assist_footer" msgid="7030121180457472165">"நீங்கள் பார்க்கும் திரையில் உள்ள தகவலின் அடிப்படையில் அசிஸ்ட் ஆப்ஸ் உங்களுக்கு உதவும். ஒருங்கிணைந்த உதவியைப் பெறுவதற்காக சில ஆப்ஸ்களில், துவக்கி மற்றும் குரல் உள்ளீட்டுச் சேவைகள் ஆகிய இரண்டையும் பயன்படுத்தலாம்."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"சராசரி நினைவக உபயோகம்"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"அதிகபட்ச நினைவக உபயோகம்"</string>
@@ -3994,7 +3996,7 @@
     <string name="home_app" msgid="3695063566006954160">"முகப்பு"</string>
     <string name="no_default_home" msgid="1518949210961918497">"இயல்பு முகப்பு இல்லை"</string>
     <string name="lockpattern_settings_require_cred_before_startup" msgid="63693894094570367">"பாதுகாப்பான தொடக்கம்"</string>
-    <string name="lockpattern_settings_require_pattern_before_startup_summary" msgid="2330543541999937953">"சாதனத்தைத் தொடங்க, வடிவம் தேவை. முடக்கப்பட்டிருக்கும் போது, இந்தச் சாதனம் அழைப்புகள், செய்திகள், அறிவிப்புகள் அல்லது அலாரங்கள் ஆகியவற்றைப் பெற முடியாது."</string>
+    <string name="lockpattern_settings_require_pattern_before_startup_summary" msgid="2330543541999937953">"சாதனத்தைத் தொடங்க, பேட்டர்ன் தேவை. முடக்கப்பட்டிருக்கும் போது, இந்தச் சாதனம் அழைப்புகள், செய்திகள், அறிவிப்புகள் அல்லது அலாரங்கள் ஆகியவற்றைப் பெற முடியாது."</string>
     <string name="lockpattern_settings_require_pin_before_startup_summary" msgid="1058173991832208485">"சாதனத்தைத் தொடங்க, பின் தேவை. முடக்கப்பட்டிருக்கும் போது, இந்தச் சாதனம் அழைப்புகள், செய்திகள், அறிவிப்புகள் அல்லது அலாரங்கள் ஆகியவற்றைப் பெற முடியாது."</string>
     <string name="lockpattern_settings_require_password_before_startup_summary" msgid="1266300087760553585">"சாதனத்தைத் தொடங்க, கடவுச்சொல் தேவை. முடக்கப்பட்டிருக்கும் போது, இந்தச் சாதனம் அழைப்புகள், செய்திகள், அறிவிப்புகள் அல்லது அலாரங்கள் ஆகியவற்றைப் பெற முடியாது."</string>
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"மற்றொரு கைரேகையைச் சேர்க்கவும்"</string>
diff --git a/tests/CarDeveloperOptions/res/values-te/arrays.xml b/tests/CarDeveloperOptions/res/values-te/arrays.xml
index c616699..1ae209a 100644
--- a/tests/CarDeveloperOptions/res/values-te/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-te/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 నిమిషాలు"</item>
     <item msgid="6677424950124253938">"30 నిమిషాలు"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"ఎప్పటికీ వద్దు"</item>
+    <item msgid="2517785806387977252">"15 సెకన్లు"</item>
+    <item msgid="6347954399441173672">"30 సెకన్లు"</item>
+    <item msgid="4858305253279921789">"1 నిమిషం"</item>
+    <item msgid="8109273437140044073">"2 నిమిషాలు"</item>
+    <item msgid="2788593551142462622">"5 నిమిషాలు"</item>
+    <item msgid="8012672183888404961">"10 నిమిషాలు"</item>
+    <item msgid="8271452751594598661">"30 నిమిషాలు"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"తక్షణమే"</item>
     <item msgid="2038544972632026612">"5 సెకన్లు"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 నిమిషాలు"</item>
     <item msgid="7258394417241706272">"30 నిమిషాలు"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"చిన్నది"</item>
+    <item msgid="591935967183159581">"డిఫాల్ట్"</item>
+    <item msgid="1714184661981538355">"పెద్దది"</item>
+    <item msgid="6195563047686707484">"అతి పెద్దగా"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"స్కాన్ చేస్తోంది…"</item>
+    <item msgid="5597394826455877834">"కనెక్ట్ చేస్తోంది..."</item>
+    <item msgid="5848277343965362748">"ప్రామాణీకరిస్తోంది…"</item>
+    <item msgid="3391238031431440676">"IP చిరునామాను పొందుతోంది…"</item>
+    <item msgid="5257597310494000224">"కనెక్ట్ అయింది"</item>
+    <item msgid="8472497592913050396">"తాత్కాలికంగా రద్దు చేయబడింది"</item>
+    <item msgid="1228072488815999109">"డిస్‌కనెక్ట్ చేస్తోంది..."</item>
+    <item msgid="7253087004422991731">"డిస్‌కనెక్ట్ చేయబడింది"</item>
+    <item msgid="4169850917304751227">"విఫలమైంది"</item>
+    <item msgid="6266658166690831131">"బ్లాక్ చేయబడింది"</item>
+    <item msgid="4517230805854909775">"బలహీన కనెక్షన్‌ను తాత్కాలికంగా నివారిస్తోంది"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"స్కాన్ చేస్తోంది…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>కి కనెక్ట్ చేస్తోంది…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>తో ప్రామాణీకరిస్తోంది…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> నుండి IP చిరునామాను పొందుతోంది…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g>కి కనెక్ట్ చేయబడింది"</item>
+    <item msgid="6600156231416890902">"తాత్కాలికంగా రద్దు చేయబడింది"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> నుండి డిస్‌కనెక్ట్ చేస్తోంది…"</item>
+    <item msgid="3980154971187953257">"డిస్‌కనెక్ట్ చేయబడింది"</item>
+    <item msgid="2847316776634969068">"విఫలమైంది"</item>
+    <item msgid="4390990424746035383">"బ్లాక్ చేయబడింది"</item>
+    <item msgid="3618248791367063949">"బలహీన కనెక్షన్‌ను తాత్కాలికంగా నివారిస్తోంది"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"పుష్ బటన్"</item>
+    <item msgid="7401896200768713930">"పీర్ డివైజ్ నుండి పిన్‌"</item>
+    <item msgid="4526848028011846710">"ఈ డివైజ్ నుండి పిన్‌"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"కనెక్ట్ అయింది"</item>
     <item msgid="983792611851499732">"ఆహ్వానించబడింది"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"బాగాలేదు"</item>
+    <item msgid="7882129634982603782">"బాగాలేదు"</item>
+    <item msgid="6457357501905996224">"ఫర్వాలేదు"</item>
+    <item msgid="405271628162918841">"బాగుంది"</item>
+    <item msgid="999948812884919584">"అద్భుతం"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"గత 30 రోజులు"</item>
     <item msgid="3211287705232736964">"విని. పునరా. సెట్ చేయి..."</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"స్థిరం"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"ఏదీ వద్దు"</item>
     <item msgid="1464741437353223198">"మాన్యువల్"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"నేపథ్యంలో అమలు చేయడం"</item>
     <item msgid="6423861043647911030">"యాక్సెస్ సామర్థ్య వాల్యూమ్"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"స్థానం"</item>
+    <item msgid="6656077694190491067">"స్థానం"</item>
+    <item msgid="8790228218278477369">"స్థానం"</item>
+    <item msgid="7836406246005211990">"వైబ్రేట్"</item>
+    <item msgid="3951439024549922598">"కాంటాక్ట్‌లను చదవండి"</item>
+    <item msgid="8802152411647068">"పరిచయాలను సవరించండి"</item>
+    <item msgid="229544934599698735">"కాల్ లాగ్‌ను చదవండి"</item>
+    <item msgid="7396102294405899613">"కాల్ లాగ్‌ను సవరించండి"</item>
+    <item msgid="3597797992398484655">"క్యాలెండర్‌ను చదవండి"</item>
+    <item msgid="2705975774250907343">"క్యాలెండర్‌ను సవరించండి"</item>
+    <item msgid="4668747371441932697">"స్థానం"</item>
+    <item msgid="1487578921720243646">"నోటిఫికేషన్‌ను పోస్ట్ చేయండి"</item>
+    <item msgid="4636080349724146638">"స్థానం"</item>
+    <item msgid="673510900286463926">"ఫోన్‌కు కాల్ చేయండి"</item>
+    <item msgid="542083422784609790">"SMS/MMSను చదవండి"</item>
+    <item msgid="1033780373029588436">"SMS/MMSను వ్రాయండి"</item>
+    <item msgid="5647111115517787488">"SMS/MMSను స్వీకరించండి"</item>
+    <item msgid="8591105601108455893">"SMS/MMSను స్వీకరించండి"</item>
+    <item msgid="7730995008517841903">"SMS/MMSను స్వీకరించండి"</item>
+    <item msgid="2613033109026626086">"SMS/MMSను స్వీకరించండి"</item>
+    <item msgid="3037159047591081136">"SMS/MMSను పంపండి"</item>
+    <item msgid="4726682243833913568">"SMS/MMSను చదవండి"</item>
+    <item msgid="6555678522277865572">"SMS/MMSను వ్రాయండి"</item>
+    <item msgid="6981734935578130884">"సెట్టింగ్‌లను సవరించండి"</item>
+    <item msgid="8705854389991425629">"పైభాగంలో గీయండి"</item>
+    <item msgid="5861356020344153651">"నోటిఫికేషన్‌లను యాక్సెస్ చేయండి"</item>
+    <item msgid="78432174621628659">"కెమెరా"</item>
+    <item msgid="3986116419882154794">"ఆడియోను రికార్డ్ చేయండి"</item>
+    <item msgid="4516840825756409490">"ఆడియో ప్లే చేయండి"</item>
+    <item msgid="6811712502798183957">"క్లిప్‌బోర్డ్‌ను చదవండి"</item>
+    <item msgid="2780369012602289114">"క్లిప్‌బోర్డ్‌ను సవరించండి"</item>
+    <item msgid="2331359440170850868">"మీడియా బటన్‌లు"</item>
+    <item msgid="6133599737122751231">"ఆడియో కేంద్రీకరణ"</item>
+    <item msgid="6844485713404805301">"మాస్టర్ వాల్యూమ్"</item>
+    <item msgid="1600379420669104929">"వాయిస్ వాల్యూమ్"</item>
+    <item msgid="6296768210470214866">"రింగ్ వాల్యూమ్"</item>
+    <item msgid="510690696071629241">"మీడియా వాల్యూమ్"</item>
+    <item msgid="406861638631430109">"అలారం వాల్యూమ్"</item>
+    <item msgid="4715864795872233884">"నోటిఫికేషన్ వాల్యూమ్"</item>
+    <item msgid="2311478519251301183">"బ్లూటూత్ వాల్యూమ్"</item>
+    <item msgid="5133991377896747027">"సక్రియంగా ఉంచండి"</item>
+    <item msgid="2464189519136248621">"లొకేషన్"</item>
+    <item msgid="2062677934050803037">"స్థానం"</item>
+    <item msgid="1735171933192715957">"వినియోగ గణాంకాలను పొందండి"</item>
+    <item msgid="1014093788778383554">"మైక్రోఫోన్‌ను మ్యూట్ చేయండి/అన్‌మ్యూట్ చేయండి"</item>
+    <item msgid="4199297950608622850">"టోస్ట్‌ను చూపడం"</item>
+    <item msgid="2527962435313398821">"మీడియాని ప్రొజెక్ట్ చేయడం"</item>
+    <item msgid="5117506254221861929">"VPNని సక్రియం చేయడం"</item>
+    <item msgid="8291198322681891160">"వాల్‌పేపర్ వ్రాయండి"</item>
+    <item msgid="7106921284621230961">"నిర్మాణంలో సహాయం"</item>
+    <item msgid="4496533640894624799">"స్క్రీన్‌షాట్‌కు సహాయం"</item>
+    <item msgid="2598847264853993611">"ఫోన్ స్థితిని చదవడం"</item>
+    <item msgid="9215610846802973353">"వాయిస్ మెయిల్‌ను జోడించడం"</item>
+    <item msgid="9186411956086478261">"sipని ఉపయోగించడం"</item>
+    <item msgid="6884763100104539558">"వెళ్లే కాల్‌ను ప్రాసెస్ చేయడం"</item>
+    <item msgid="125513972170580692">"వేలిముద్ర"</item>
+    <item msgid="2556071024281275619">"శరీర సెన్సార్‌లు"</item>
+    <item msgid="617168514928339387">"సెల్ ప్రసారాలను చదవడం"</item>
+    <item msgid="7134693570516523585">"స్థానాన్ని నకిలీ చేయడం"</item>
+    <item msgid="7224489175375229399">"నిల్వను చదవడం"</item>
+    <item msgid="8472735063903258202">"నిల్వలో వ్రాయడం"</item>
+    <item msgid="4069276819909595110">"స్క్రీన్‌ను ఆన్ చేయడం"</item>
+    <item msgid="1228338896751121025">"ఖాతాలను పొందడం"</item>
+    <item msgid="3181581793459233672">"నేపథ్యంలో అమలు చేయడం"</item>
+    <item msgid="2340936043025374076">"యాక్సెస్ సామర్థ్య వాల్యూమ్"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"తక్కువ సేపు"</item>
     <item msgid="4816511817309094890">"మధ్యస్థం"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"కర్సివ్"</item>
     <item msgid="6896773537705206194">"చిన్న క్యాపిటల్‌లు"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"చాలా చిన్నది"</item>
+    <item msgid="5091603983404027034">"చిన్నది"</item>
+    <item msgid="176844712416932112">"సాధారణం"</item>
+    <item msgid="2784236342175159295">"పెద్దది"</item>
+    <item msgid="218913203203160606">"చాలా పెద్దది"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"డిఫాల్ట్"</item>
     <item msgid="6488643537808152001">"ఏదీ వద్దు"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"యాప్‌ ఢిఫాల్ట్‌లను ఉపయోగించు"</item>
+    <item msgid="8611890312638868524">"నలుపు నేపథ్యంలో తెలుపు రంగు"</item>
+    <item msgid="5891360837786277638">"తెలుపు మీద నలుపు"</item>
+    <item msgid="2798457065945456853">"నలుపు నేపథ్యంలో పసుపు రంగు"</item>
+    <item msgid="5799049811524553967">"నీలి నేపథ్యంలో పసుపు రంగు"</item>
+    <item msgid="3673930830658169860">"అనుకూలం"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"పూర్వ-భాగస్వామ్య కీలతో L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"ఏదీ వద్దు"</item>
     <item msgid="1157046369795346308">"మాన్యువల్"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"డిస్‌కనెక్ట్ చేయబడింది"</item>
+    <item msgid="8754480102834556765">"ప్రారంభిస్తోంది..."</item>
+    <item msgid="3351334355574270250">"కనెక్ట్ చేస్తోంది..."</item>
+    <item msgid="8303882153995748352">"కనెక్ట్ అయింది"</item>
+    <item msgid="9135049670787351881">"గడువు ముగింపు"</item>
+    <item msgid="2124868417182583926">"విఫలమైంది"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"అడగండి"</item>
     <item msgid="7718817231348607934">"ఎప్పటికీ అనుమతించవద్దు"</item>
     <item msgid="8184570120217958741">"ఎల్లప్పుడూ అనుమతించు"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"సాధారణం"</item>
+    <item msgid="5101233285497327432">"మధ్యస్థం"</item>
+    <item msgid="1555861583162930714">"తక్కువ"</item>
+    <item msgid="1719683776264798117">"క్లిష్టం"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"సాధారణం"</item>
+    <item msgid="6107138933849816768">"మధ్యస్థం"</item>
+    <item msgid="182695359839047859">"తక్కువ"</item>
+    <item msgid="8577246509202964244">"క్లిష్టం"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"స్థిరం"</item>
     <item msgid="167418068739176448">"ప్రముఖ కార్యకలాపం"</item>
@@ -338,7 +477,7 @@
     <item msgid="1008268820118852416">"గణించబడనిదిగా పరిగణించండి"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
-    <item msgid="6545683814310036454">"యాదృచ్ఛిక MAC అడ్రస్‌ని ఉపయోగించండి (డిఫాల్ట్)"</item>
+    <item msgid="6545683814310036454">"ర్యాండ‌మ్‌గా రూపొందించిన MAC అడ్రస్‌ను ఉపయోగించండి (ఆటోమేటిక్‌)"</item>
     <item msgid="214234417308375326">"MAC పరికరాన్ని ఉపయోగించండి"</item>
   </string-array>
   <string-array name="wifi_hidden_entries">
diff --git a/tests/CarDeveloperOptions/res/values-te/strings.xml b/tests/CarDeveloperOptions/res/values-te/strings.xml
index 3414c85..9bd5ad0 100644
--- a/tests/CarDeveloperOptions/res/values-te/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-te/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"స్క్రీన్‌పై ఉండే వచనాన్ని చిన్నదిగా లేదా పెద్దదిగా చేస్తుంది."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"చిన్నదిగా చేస్తుంది"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"పెద్దదిగా చేస్తుంది"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"నమూనా వచనం"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"ది వండర్‌ఫుల్ విజర్డ్ ఆఫ్ ఆజ్"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"అధ్యాయం 11: ది వండర్‌ఫుల్ ఎమరాల్డ్ సిటీ ఆఫ్ ఆజ్"</string>
@@ -128,7 +127,7 @@
     <string name="bluetooth_notif_title" msgid="5090288898529286011">"జత చేయడానికి అభ్యర్థన"</string>
     <string name="bluetooth_notif_message" msgid="6612367890895077938">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g>తో జత చేయడానికి నొక్కండి."</string>
     <string name="bluetooth_show_received_files" msgid="5060846395852236652">"స్వీకరించిన ఫైల్‌లు"</string>
-    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"బ్లూటూత్ ద్వారా ఫైల్‌లు స్వీకరించబడ్డాయి"</string>
+    <string name="bluetooth_show_files_received_via_bluetooth" msgid="1699095577431389560">"బ్లూటూత్ ద్వారా అందుకున్న ఫైల్‌లు"</string>
     <string name="device_picker" msgid="8345264486071697705">"బ్లూటూత్ పరికరాన్ని ఎంచుకోండి"</string>
     <string name="bluetooth_ask_enablement" msgid="8716802066127746062">"<xliff:g id="APP_NAME">%1$s</xliff:g> బ్లూటూత్‌ను ఆన్ చేయాలనుకుంటోంది"</string>
     <string name="bluetooth_ask_disablement" msgid="7125319551097350783">"<xliff:g id="APP_NAME">%1$s</xliff:g> బ్లూటూత్‌ను ఆఫ్ చేయాలనుకుంటోంది"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"మీరు పోర్ట్ ఫీల్డ్‌ను పూర్తి చేయాల్సి ఉంటుంది."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"హోస్ట్ ఫీల్డ్ ఖాళీగా ఉంటే పోర్ట్ ఫీల్డ్ తప్పనిసరిగా ఖాళీగా ఉండాలి."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"మీరు టైప్ చేసిన పోర్ట్ చెల్లదు."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP ప్రాక్సీని బ్రౌజరే ఉపయోగిస్తుంది, ఇతర అనువర్తనాల ఉపయోగించకపోవచ్చు."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"బ్రౌజ‌ర్, HTTP ప్రాక్సీని ఉపయోగిస్తుంది కానీ ఇతర యాప్‌లు ఉపయోగించకపోవచ్చు."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL బ్యాండ్‌విడ్త్ (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL బ్యాండ్‌విడ్త్ (kbps):"</string>
@@ -354,7 +353,7 @@
     <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"లాక్ స్క్రీన్‌లో యజమాని సమాచారాన్ని చూపు"</string>
     <string name="owner_info_settings_title" msgid="2537966178998339896">"లాక్ స్క్రీన్ సందేశం"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"విడ్జెట్‌లను ప్రారంభించు"</string>
-    <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"నిర్వాహకులు నిలిపివేసారు"</string>
+    <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"అడ్మిన్ డిజేబుల్ చేశారు"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"అన్నీ లాక్ చేయి ఎంపికను చూపు"</string>
     <string name="lockdown_settings_summary" msgid="7270756909878256174">"Smart Lock, వేలిముద్ర అన్‌లాకింగ్ మరియు లాక్ స్క్రీన్‌లో నోటిఫికేషన్‌లను ఆఫ్ చేసే పవర్ బటన్ ఎంపికను ప్రదర్శించు"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"విశ్వ‌స‌నీయ ఏజెంట్లు మాత్ర‌మే అన్‌లాక్‌ను పొడిగిస్తాయి"</string>
@@ -388,7 +387,7 @@
     <string name="security_settings_summary" msgid="5210109100643223686">"నా స్థానాన్ని, స్క్రీన్ అన్‌లాక్‌ను, సిమ్ కార్డు లాక్‌ను, ఆధారాల నిల్వ లాక్‌ను సెట్ చేయి"</string>
     <string name="cdma_security_settings_summary" msgid="1783066617800041869">"నా స్థానాన్ని, స్క్రీన్ అన్‌లాక్‌ను, ఆధారాల నిల్వ లాక్‌ను సెట్ చేయండి"</string>
     <string name="security_passwords_title" msgid="6853942836045862315">"గోప్యత"</string>
-    <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"నిర్వాహకులు నిలిపివేసారు"</string>
+    <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"అడ్మిన్ డిజేబుల్ చేశారు"</string>
     <string name="security_status_title" msgid="1261960357751754428">"భద్రత స్థితి"</string>
     <string name="security_dashboard_summary_face" msgid="2536136110153593745">"స్క్రీన్ లాక్, ముఖం అన్‌లాక్"</string>
     <string name="security_dashboard_summary" msgid="4048877125766167227">"స్క్రీన్ లాక్, వేలిముద్ర"</string>
@@ -414,7 +413,7 @@
     <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"నమోదు పూర్తి కాలేదు"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"సరే"</string>
     <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"ముఖ నమోదు సమయ పరిమితి చేరుకుంది. మళ్లీ ప్రయత్నించండి."</string>
-    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"ముఖ నమోదు పని చేయలేదు."</string>
+    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"ఫేస్ నమోదు పని చేయలేదు."</string>
     <string name="security_settings_face_enroll_finish_title" msgid="6800717857394410769">"మొత్తం పూర్తయింది. చూడడానికి భాగుంది."</string>
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"పూర్తయింది"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"ముఖాన్ని వాడండి"</string>
@@ -919,7 +918,7 @@
     <string name="please_select_phase2" msgid="5848080896810435677">"2వ దశ ప్రామాణీకరణ"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"CA సర్టిఫికెట్"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"డొమైన్"</string>
-    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"వినియోగదారు సర్టిఫికెట్"</string>
+    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"యూజర్ సర్టిఫికెట్"</string>
     <string name="wifi_eap_identity" msgid="5280457017705738773">"గుర్తింపు"</string>
     <string name="wifi_eap_anonymous" msgid="6352344972490839958">"అనామక గుర్తింపు"</string>
     <string name="wifi_password" msgid="6942983531275177771">"పాస్‌వర్డ్"</string>
@@ -1040,7 +1039,7 @@
     <string name="wifi_dns1" msgid="5250809981658822505">"DNS 1"</string>
     <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
     <string name="wifi_gateway" msgid="7455334454444443397">"గేట్‌వే"</string>
-    <string name="wifi_network_prefix_length" msgid="1941206966133010633">"నెట్‌వర్క్ ఆదిప్రత్యయం పొడవు"</string>
+    <string name="wifi_network_prefix_length" msgid="1941206966133010633">"నెట్‌వర్క్ ప్రిఫిక్స్ పొడవు"</string>
     <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi‑Fi Direct"</string>
     <string name="wifi_p2p_device_info" msgid="4717490498956029237">"పరికర సమాచారం"</string>
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"ఈ కనెక్షన్‌ను గుర్తుంచుకో"</string>
@@ -1070,7 +1069,7 @@
     <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"AP బ్యాండ్"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"మీ ఇతర పరికరాల కోసం Wi-Fi నెట్‌వర్క్‌ని సృష్టించడానికి హాట్‌స్పాట్‌ని ఉపయోగించండి. హాట్‌స్పాట్ అనేది మీ మొబైల్ డేటా కనెక్షన్‌ని ఉపయోగించి ఇంటర్నెట్‌ని అందిస్తుంది. అదనపు మొబైల్ డేటా ఛార్జీలు చెల్లించాల్సి రావచ్చు."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"యాప్‌లు సమీప పరికరాలతో కంటెంట్‌ని షేర్ చేయడం కోసం హాట్‌స్పాట్‌ని సృష్టించవచ్చు."</string>
-    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"హాట్‌స్పాట్‌ని ఆటోమేటిక్‌గా ఆఫ్ చేయి"</string>
+    <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"హాట్‌స్పాట్‌ను ఆటోమేటిక్‌గా ఆఫ్ చేయి"</string>
     <string name="wifi_hotspot_auto_off_summary" msgid="3866769400624802105">"పరికరాలు ఏవీ కనెక్ట్ కాకపోతే Wi‑Fi హాట్‌స్పాట్‌ ఆఫ్ అవుతుంది"</string>
     <string name="wifi_tether_starting" msgid="7676952148471297900">"హాట్‌స్పాట్‌ను ప్రారంభిస్తోంది…"</string>
     <string name="wifi_tether_stopping" msgid="7478561853791953349">"హాట్‌స్పాట్‌ను ఆపివేస్తోంది…"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"మొబైల్"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Wi‑Fi అందుబాటులో లేకుంటే, మొబైల్ నెట్‌వర్క్‌ను ఉపయోగిస్తుంది"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"మొబైల్ నెట్‌వర్క్ అందుబాటులో లేకపోతే, Wi‑Fiని ఉపయోగించు"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi ద్వారా కాల్ చేయగలరు. Wi‑Fiని కోల్పోతే, కాల్ ముగిసిపోతుంది."</string>
@@ -1567,7 +1569,7 @@
     <string name="menu_restore" msgid="3799288817317293115">"డిఫాల్ట్‌కు రీసెట్ చేయి"</string>
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"డిఫాల్ట్ APN సెట్టింగ్‌లను రీసెట్ చేయడం పూర్తయింది."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"రీసెట్ ఎంపికలు"</string>
-    <string name="reset_dashboard_summary" msgid="8778383341461126642">"నెట్‌వర్క్, యాప్‌లు లేదా పరికరాన్ని రీసెట్ చేయవచ్చు"</string>
+    <string name="reset_dashboard_summary" msgid="8778383341461126642">"నెట్‌వర్క్, యాప్‌లు లేదా డివైజ్‌ను రీసెట్ చేయవచ్చు"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Wi-Fi, మొబైల్ &amp; బ్లూటూత్‌ని రీసెట్ చేయండి"</string>
     <string name="reset_network_desc" msgid="4982633363916261109">"ఇది అన్ని నెట్‌వర్క్ సెట్టింగ్‌లను రీసెట్ చేస్తుంది, వీటితో సహా:\n\n"<li>"Wi‑Fi"</li>\n<li>"మొబైల్ డేటా"</li>\n<li>"బ్లూటూత్"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"డౌన్‌లోడ్ చేసిన SIMలు తొలగించు"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"దయచేసి సిమ్ కార్డును చొప్పించి, పునఃప్రారంభించండి"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"దయచేసి ఇంటర్నెట్‌కు కనెక్ట్ చేయండి"</string>
     <string name="location_title" msgid="8664674161765477168">"నా స్థానం"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"కార్యాలయ ప్రొఫైల్ యొక్క స్థానం"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ఆఫీస్ ప్రొఫైల్ కోసం లొకేషన్"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"యాప్ అనుమతి"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"స్థానం ఆఫ్‌లో ఉంది"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"ఇటీవలి స్థాన యాక్సెస్"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"వివరాలను చూడండి"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"స్థానాన్ని ఇటీవల అనువర్తనాలు ఏవీ అభ్యర్థించలేదు"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"యాప్‌లు ఏవీ లొకేషన్‌ను ఇటీవల అభ్యర్థించలేదు"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"యాప్‌లు ఏవీ స్థానాన్ని ఇటీవల యాక్సెస్ చేయలేదు"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"అధిక బ్యాటరీ వినియోగం"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"తక్కువ బ్యాటరీ వినియోగం"</string>
@@ -1798,7 +1800,7 @@
     <string name="advanced_settings_summary" msgid="5912237062506771716">"మరిన్ని సెట్టింగ్‌ల ఎంపికలను ప్రారంభించు"</string>
     <string name="application_info_label" msgid="3886253474964599105">"యాప్ సమాచారం"</string>
     <string name="storage_label" msgid="1109537840103290384">"నిల్వ"</string>
-    <string name="auto_launch_label" msgid="47089737922907379">"డిఫాల్ట్‌గా తెరువు"</string>
+    <string name="auto_launch_label" msgid="47089737922907379">"ఆటోమేటిక్‌గా తెరువు"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"డిఫాల్ట్‌లు"</string>
     <string name="screen_compatibility_label" msgid="3638271673726075815">"స్క్రీన్ అనుకూలత"</string>
     <string name="permissions_label" msgid="7341733648403464213">"అనుమతులు"</string>
@@ -2084,7 +2086,7 @@
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"మీరు చదవాల్సిన సందేశాలను స్క్రీన్‌పై తాత్కాలికంగా ఎంతసేపు చూపాలనేది ఎంచుకోవచ్చు.\n\nఈ సెట్టింగ్‌కు అన్ని యాప్‌లలో మద్దతు ఉండదు."</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"మిమ్మల్ని ఏదో ఒక చర్యని తీసుకోమంటూ, తాత్కాలికంగా స్క్రీన్‌పై కనిపించే సందేశాలు ఎంతసేపు అలాగే ఉండాలనేది ఎంచుకోవచ్చు.\n\nఈ సెట్టింగ్‌కు అన్ని యాప్‌లలో మద్దతు ఉండదు."</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"తాకి ఉంచాల్సిన సమయం"</string>
-    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"వర్ణ విలోమం"</string>
+    <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"కలర్ మార్పిడి"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"పనితీరుపై ప్రభావం చూపవచ్చు"</string>
     <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"డ్వెల్ టైమింగ్"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"మీరు మౌస్‌ని ఉపయోగిస్తున్నట్లయితే, కర్సర్ నిర్దిష్ట సమయం పాటు కదలడం ఆగిపోయినప్పుడు అది ఆటోమేటిక్‌గా చర్య తీసుకునే విధంగా దానిని సెట్ చేయండి."</string>
@@ -2574,7 +2576,7 @@
     <string name="sms_access_restriction_enabled" msgid="3006320256764718303">"SMS &amp; కాల్ లాగ్ యాక్సెస్‌ను పరిమితం చేయండి"</string>
     <string name="sms_access_restriction_enabled_summary" msgid="9011946580977780063">"కేవలం డిఫాల్ట్ ఫోన్ మరియు సందేశ యాప్‌లు మాత్రమే SMS &amp; లాగ్ అనుమతులను కలిగి ఉన్నాయి"</string>
     <string name="no_trust_agents" msgid="5757792915019113084">"విశ్వసనీయ ఏజెంట్‌లు అందుబాటులో లేరు"</string>
-    <string name="add_device_admin_msg" msgid="3573765823476931173">"పరికర నిర్వాహకుల యాప్‌ను యాక్టివేట్‌ చేయాలా?"</string>
+    <string name="add_device_admin_msg" msgid="3573765823476931173">"డివైజ్ నిర్వాహకుల యాప్‌ను యాక్టివేట్‌ చేయాలా?"</string>
     <string name="add_device_admin" msgid="1621152410207260584">"ఈ పరికరం నిర్వాహకుల యాప్‌ను యాక్టివేట్‌ చేయి"</string>
     <string name="device_admin_add_title" msgid="6097881332139146897">"పరికర నిర్వాహకులు"</string>
     <string name="device_admin_warning" msgid="4421817419326480449">"ఈ \'నిర్వాహకుల యాప్‌\'ను యాక్టివేట్‌ చేస్తే, కింది చర్యలను చేయడానికి <xliff:g id="APP_NAME">%1$s</xliff:g> యాప్ అనుమతించబడుతుంది:"</string>
@@ -2617,7 +2619,7 @@
     <string name="sync_one_time_sync" msgid="6005174168405784256">"ఇప్పుడే సమకాలీకరించడానికి నొక్కండి<xliff:g id="LAST_SYNC_TIME">
 %1$s</xliff:g>"</string>
     <string name="sync_gmail" msgid="4457967084840001296">"Gmail"</string>
-    <string name="sync_calendar" msgid="6573708019827519372">"క్యాలెండర్"</string>
+    <string name="sync_calendar" msgid="6573708019827519372">"Calendar"</string>
     <string name="sync_contacts" msgid="5687434785723746534">"పరిచయాలు"</string>
     <string name="sync_plug" msgid="6703804441408427257"><font fgcolor="#ffffffff">"Google సమకాలీకరణకు స్వాగతం!"</font>" \nమీరు ఎక్కడ ఉన్నా సరే మీ పరిచయాలు, నియామకాలు మరియు మరిన్నింటికి ప్రాప్యతను అనుమతించడం కోసం డేటాను సమకాలీకరించడానికి Google అవలంబించే విధానం."</string>
     <string name="header_application_sync_settings" msgid="4581847153669774489">"అనువర్తన సమకాలీకరణ సెట్టింగ్‌లు"</string>
@@ -2668,8 +2670,8 @@
     <string name="data_usage_menu_sim_cards" msgid="8508154611676507088">"సిమ్ కార్డులు"</string>
     <string name="data_usage_cellular_data_summary" msgid="9162777397135709280">"పరిమితి చేరు. పాజ్ చేయబ."</string>
     <string name="account_settings_menu_auto_sync" msgid="2673669556006027506">"డేటా స్వీయ-సమకాలీకరణ"</string>
-    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"వ్యక్తిగత డేటాను స్వయంచాలకంగా సమకాలీకరించు"</string>
-    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"కార్యాలయ డేటాను స్వయంచాలకంగా సమకాలీకరించు"</string>
+    <string name="account_settings_menu_auto_sync_personal" msgid="3235831897309033754">"వ్యక్తిగత డేటా ఆటో-సింక్"</string>
+    <string name="account_settings_menu_auto_sync_work" msgid="5721442464286552815">"ఆఫీస్ డేటాను ఆటో-సింక్ చేయి"</string>
     <string name="data_usage_change_cycle" msgid="447761920472170031">"సైకిల్‌ను మార్చు…"</string>
     <string name="data_usage_pick_cycle_day" msgid="6319750879145917066">"డేటా వినియోగ సైకిల్‌ను రీసెట్ చేయాల్సిన నెలలోని రోజు:"</string>
     <string name="data_usage_empty" msgid="7981405723435034032">"ఈ వ్యవధిలో డేటాను ఏ అనువర్తనాలు ఉపయోగించలేదు."</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"వినియోగదారు"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"పరిమితం చేయబడిన ప్రొఫైల్"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"కొత్త వినియోగదారుని జోడించాలా?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"అదనపు వినియోగదారులను సృష్టించడం ద్వారా మీరు ఈ పరికరాన్ని ఇతరులతో షేర్ చేయవచ్చు. ప్రతి వినియోగదారుకు వారికంటూ ప్రత్యేక స్థలం ఉంటుంది, వారు ఆ స్థలాన్ని యాప్‌లు, వాల్‌పేపర్ మొదలైనవాటితో అనుకూలీకరించవచ్చు. వినియోగదారులు ప్రతి ఒక్కరిపై ప్రభావం చూపే Wi‑Fi వంటి పరికర సెట్టింగ్‌లను కూడా సర్దుబాటు చేయవచ్చు.\n\nమీరు కొత్త వినియోగదారును జోడించినప్పుడు, ఆ వ్యక్తి వారికంటూ స్వంత స్థలం సెట్ చేసుకోవాలి.\n\nఏ వినియోగదారు అయినా మిగిలిన అందరు వినియోగదారుల కోసం యాప్‌లను అప్‌డేట్ చేయవచ్చు. యాక్సెస్ సామర్ధ్యం సెట్టింగ్‌లు మరియు సేవలు కొత్త వినియోగదారుకి బదిలీ కాకపోవచ్చు."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"అదనపు యూజర్‌లను సృష్టించడం ద్వారా మీరు ఈ దేవైజ్‌ను ఇతరులతో షేర్ చేయవచ్చు. ప్రతి యూజర్‌కు వారికంటూ ప్రత్యేక స్థలం ఉంటుంది, వారు ఆ స్థలాన్ని యాప్‌లు, వాల్‌పేపర్ మొదలైనవాటితో అనుకూలీకరించవచ్చు. యూజర్‌లు ప్రతి ఒక్కరిపై ప్రభావం చూపే Wi‑Fi వంటి పరికర సెట్టింగ్‌లను కూడా సర్దుబాటు చేయవచ్చు.\n\nమీరు కొత్త యూజర్‌ను జోడించినప్పుడు, ఆ వ్యక్తి వారికంటూ స్వంత స్థలం సెట్ చేసుకోవాలి.\n\nఏ యూజర్‌ అయినా మిగిలిన అందరు వినియోగదారుల కోసం యాప్‌లను అప్‌డేట్ చేయవచ్చు. యాక్సెస్ సామర్ధ్యం సెట్టింగ్‌లు మరియు సేవలు కొత్త యూజర్‌కి బదిలీ కాకపోవచ్చు."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"మీరు కొత్త వినియోగదారుని జోడించినప్పుడు, ఆ వ్యక్తి తన స్థలాన్ని సెటప్ చేసుకోవాలి.\n\nఏ వినియోగదారు అయినా మిగతా అందరు వినియోగదారుల కోసం యాప్‌లను అప్‌డేట్‌ చేయగలరు."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"ఇప్పుడు వినియోగదారుని సెటప్ చేయాలా?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"పరికరాన్ని తీసుకోవడానికి వ్యక్తి అందుబాటులో ఉన్నారని నిర్ధారించుకొని, ఆపై వారికి నిల్వ స్థలాన్ని సెటప్ చేయండి"</string>
@@ -2880,7 +2882,7 @@
     <string name="user_cannot_add_accounts_message" msgid="5993561303748749097">"పరిమిత ప్రొఫైల్‌లు ఖాతాలను జోడించడం సాధ్యపడదు"</string>
     <string name="user_remove_user_menu" msgid="3505139157217459864">"ఈ పరికరం నుండి <xliff:g id="USER_NAME">%1$s</xliff:g>ని తొలగించు"</string>
     <string name="user_lockscreen_settings" msgid="3820813814848394568">"లాక్ స్క్రీన్ సెట్టింగ్‌లు"</string>
-    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"లాక్ స్క్రీన్ నుండి వినియోగదారులను జోడించండి"</string>
+    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"లాక్ స్క్రీన్ నుండి యూజ‌ర్‌ల‌ను జోడించండి"</string>
     <string name="user_new_user_name" msgid="3880395219777884838">"కొత్త వినియోగదారు"</string>
     <string name="user_new_profile_name" msgid="3074939718101489937">"కొత్త ప్రొఫైల్"</string>
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"మిమ్మల్ని తొలగించాలా?"</string>
@@ -3380,7 +3382,7 @@
     <string name="vr_listener_security_warning_title" msgid="7019322246707645361">"<xliff:g id="SERVICE">%1$s</xliff:g> కోసం VR సేవ ప్రాప్యతను అనుమతించాలా?"</string>
     <string name="vr_listener_security_warning_summary" msgid="5093225583584522067">"మీరు వర్చువల్ రియాలిటీ మోడ్‌లో అనువర్తనాలను ఉపయోగిస్తున్నప్పుడు <xliff:g id="VR_LISTENER_NAME">%1$s</xliff:g> అమలు కాగలదు."</string>
     <string name="display_vr_pref_title" msgid="1088464812293416981">"పరికరం VRలో ఉన్నప్పుడు"</string>
-    <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"అస్పష్టతను తగ్గించు (సిఫార్సు చేయబడింది)"</string>
+    <string name="display_vr_pref_low_persistence" msgid="3132583929174794245">"బ్లర్ తగ్గించు (సిఫార్సు చేయబడింది)"</string>
     <string name="display_vr_pref_off" msgid="4681320968818852691">"ప్ర‌కాశంలో అస్థిర‌త‌ను త‌గ్గించు"</string>
     <string name="picture_in_picture_title" msgid="4960733106166035448">"చిత్రంలో చిత్రం"</string>
     <string name="picture_in_picture_empty_text" msgid="8664071475324685241">"చిత్రంలో చిత్రానికి మద్దతిచ్చే అనువర్తనాలు ఏవీ ఇన్‌స్టాల్ చేయబడలేదు"</string>
@@ -3588,7 +3590,7 @@
     <string name="imei_information_title" msgid="7666097743700170757">"IMEI సమాచారం"</string>
     <string name="imei_information_summary" msgid="716516316022275083">"IMEI సంబంధిత సమాచారం"</string>
     <string name="slot_number" msgid="785422579177068698">"(స్లాట్<xliff:g id="SLOT_NUM">%1$d</xliff:g>)"</string>
-    <string name="launch_by_default" msgid="6106985160202769725">"డిఫాల్ట్‌గా తెరువు"</string>
+    <string name="launch_by_default" msgid="6106985160202769725">"ఆటోమేటిక్‌గా తెరువు"</string>
     <string name="app_launch_domain_links_title" msgid="2987289657348349133">"లింక్‌లను తెరవడం"</string>
     <string name="app_launch_open_domain_urls_title" msgid="8595126859922391331">"మద్దతిచ్చే లింక్‌లను తెరవండి"</string>
     <string name="app_launch_open_domain_urls_summary" msgid="6803029846855502366">"అడగకుండానే తెరవాలి"</string>
@@ -3758,7 +3760,7 @@
     <string name="usb_summary_MIDI_power" msgid="7685597621357005180">"MIDI మరియు విద్యుత్తు శక్తి సరఫరా"</string>
     <string name="background_check_pref" msgid="664081406854758392">"బ్యాక్‌గ్రౌండ్ తనిఖీ"</string>
     <string name="background_check_title" msgid="4136736684290307970">"పూర్తి నేపథ్య యాక్సెస్"</string>
-    <string name="assist_access_context_title" msgid="2274614501747710439">"స్క్రీన్‌లోని వచనాన్ని ఉపయోగించండి"</string>
+    <string name="assist_access_context_title" msgid="2274614501747710439">"స్క్రీన్‌లోని టెక్స్ట్‌ను ఉపయోగించండి"</string>
     <string name="assist_access_context_summary" msgid="5867997494395842785">"స్క్రీన్ కంటెంట్‌లను వచన రూపంలో యాక్సెస్ చేయడానికి సహాయక యాప్‌ను అనుమతిస్తుంది"</string>
     <string name="assist_access_screenshot_title" msgid="1991014038776117688">"స్క్రీన్‌షాట్‌ను ఉపయోగించండి"</string>
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"స్క్రీన్ చిత్రాన్ని యాక్సెస్ చేయడానికి సహాయక యాప్‌ను అనుమతిస్తుంది"</string>
@@ -4473,8 +4475,8 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"గోప్యత"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"అనుమతులు, ఖాతా కార్యకలాపం, వ్యక్తిగత డేటా"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"తీసివేయి"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"ఉంచండి"</string>
-    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"ఈ సూచనని తీసివేయలా?"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Keep"</string>
+    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"ఈ సూచనని తీసేయాలా?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"సూచన తీసివేయబడింది"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"చర్యరద్దు"</string>
     <string name="low_storage_summary" msgid="4562224870189133400">"నిల్వ తక్కువగా ఉంది: <xliff:g id="PERCENTAGE">%1$s</xliff:g> వినియోగించబడింది - <xliff:g id="FREE_SPACE">%2$s</xliff:g> ఖాళీగా ఉంది"</string>
diff --git a/tests/CarDeveloperOptions/res/values-th/arrays.xml b/tests/CarDeveloperOptions/res/values-th/arrays.xml
index b0bf1de..5803dc8 100644
--- a/tests/CarDeveloperOptions/res/values-th/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-th/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"ทำงานในพื้นหลัง"</item>
     <item msgid="6423861043647911030">"ระดับเสียงการเข้าถึง"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"ตำแหน่ง"</item>
+    <item msgid="6656077694190491067">"ตำแหน่ง"</item>
+    <item msgid="8790228218278477369">"ตำแหน่ง"</item>
+    <item msgid="7836406246005211990">"สั่น"</item>
+    <item msgid="3951439024549922598">"อ่านรายชื่อติดต่อ"</item>
+    <item msgid="8802152411647068">"แก้ไขรายชื่อติดต่อ"</item>
+    <item msgid="229544934599698735">"อ่านประวัติการโทร"</item>
+    <item msgid="7396102294405899613">"แก้ไขประวัติการโทร"</item>
+    <item msgid="3597797992398484655">"อ่านปฏิทิน"</item>
+    <item msgid="2705975774250907343">"แก้ไขปฏิทิน"</item>
+    <item msgid="4668747371441932697">"ตำแหน่ง"</item>
+    <item msgid="1487578921720243646">"การแจ้งเตือนโพสต์"</item>
+    <item msgid="4636080349724146638">"ตำแหน่ง"</item>
+    <item msgid="673510900286463926">"โทรเข้าโทรศัพท์"</item>
+    <item msgid="542083422784609790">"อ่าน SMS/MMS"</item>
+    <item msgid="1033780373029588436">"เขียน SMS/MMS"</item>
+    <item msgid="5647111115517787488">"รับ SMS/MMS"</item>
+    <item msgid="8591105601108455893">"รับ SMS/MMS"</item>
+    <item msgid="7730995008517841903">"รับ SMS/MMS"</item>
+    <item msgid="2613033109026626086">"รับ SMS/MMS"</item>
+    <item msgid="3037159047591081136">"ส่ง SMS/MMS"</item>
+    <item msgid="4726682243833913568">"อ่าน SMS/MMS"</item>
+    <item msgid="6555678522277865572">"เขียน SMS/MMS"</item>
+    <item msgid="6981734935578130884">"แก้ไขการตั้งค่า"</item>
+    <item msgid="8705854389991425629">"วาดด้านบน"</item>
+    <item msgid="5861356020344153651">"เข้าถึงการแจ้งเตือน"</item>
+    <item msgid="78432174621628659">"กล้องถ่ายรูป"</item>
+    <item msgid="3986116419882154794">"บันทึกเสียง"</item>
+    <item msgid="4516840825756409490">"เล่นเสียง"</item>
+    <item msgid="6811712502798183957">"อ่านคลิปบอร์ด"</item>
+    <item msgid="2780369012602289114">"แก้ไขคลิปบอร์ด"</item>
+    <item msgid="2331359440170850868">"ปุ่มสื่อ"</item>
+    <item msgid="6133599737122751231">"โฟกัสอัตโนมัติ"</item>
+    <item msgid="6844485713404805301">"ระดับเสียงหลัก"</item>
+    <item msgid="1600379420669104929">"ระดับเสียงสนทนา"</item>
+    <item msgid="6296768210470214866">"ระดับเสียงเรียกเข้า"</item>
+    <item msgid="510690696071629241">"ระดับเสียงของสื่อ"</item>
+    <item msgid="406861638631430109">"ระดับเสียงปลุก"</item>
+    <item msgid="4715864795872233884">"ระดับเสียงของการแจ้งเตือน"</item>
+    <item msgid="2311478519251301183">"ระดับบลูทูธ"</item>
+    <item msgid="5133991377896747027">"ทำงานตลอดเวลา"</item>
+    <item msgid="2464189519136248621">"ตำแหน่ง"</item>
+    <item msgid="2062677934050803037">"ตำแหน่ง"</item>
+    <item msgid="1735171933192715957">"ดูสถิติการใช้งาน"</item>
+    <item msgid="1014093788778383554">"ปิด/เปิดเสียงไมโครโฟน"</item>
+    <item msgid="4199297950608622850">"แสดงข้อความโทสต์"</item>
+    <item msgid="2527962435313398821">"สื่อของโครงการ"</item>
+    <item msgid="5117506254221861929">"เปิดใช้งาน VPN"</item>
+    <item msgid="8291198322681891160">"เขียนวอลเปเปอร์"</item>
+    <item msgid="7106921284621230961">"สนับสนุนโครงสร้าง"</item>
+    <item msgid="4496533640894624799">"สนับสนุนภาพหน้าจอ"</item>
+    <item msgid="2598847264853993611">"อ่านสถานะโทรศัพท์"</item>
+    <item msgid="9215610846802973353">"เพิ่มข้อความเสียง"</item>
+    <item msgid="9186411956086478261">"ใช้ SIP"</item>
+    <item msgid="6884763100104539558">"โทรออก"</item>
+    <item msgid="125513972170580692">"ลายนิ้วมือ"</item>
+    <item msgid="2556071024281275619">"เซ็นเซอร์ร่างกาย"</item>
+    <item msgid="617168514928339387">"อ่านการส่งข้อมูลเตือนภัยทางมือถือ (CB)"</item>
+    <item msgid="7134693570516523585">"จำลองสถานที่"</item>
+    <item msgid="7224489175375229399">"อ่านพื้นที่เก็บข้อมูล"</item>
+    <item msgid="8472735063903258202">"เขียนพื้นที่เก็บข้อมูล"</item>
+    <item msgid="4069276819909595110">"เปิดหน้าจอ"</item>
+    <item msgid="1228338896751121025">"สร้างบัญชี"</item>
+    <item msgid="3181581793459233672">"ทำงานในพื้นหลัง"</item>
+    <item msgid="2340936043025374076">"ระดับเสียงการเข้าถึง"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"สั้น"</item>
     <item msgid="4816511817309094890">"ปานกลาง"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"ไม่อนุญาตเลย"</item>
     <item msgid="8184570120217958741">"อนุญาตเสมอ"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"ปกติ"</item>
+    <item msgid="5101233285497327432">"ปานกลาง"</item>
+    <item msgid="1555861583162930714">"ต่ำ"</item>
+    <item msgid="1719683776264798117">"วิกฤต"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"ปกติ"</item>
+    <item msgid="6107138933849816768">"ปานกลาง"</item>
+    <item msgid="182695359839047859">"ต่ำ"</item>
+    <item msgid="8577246509202964244">"วิกฤต"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"ต่อเนื่อง"</item>
     <item msgid="167418068739176448">"กิจกรรมแรก"</item>
diff --git a/tests/CarDeveloperOptions/res/values-th/strings.xml b/tests/CarDeveloperOptions/res/values-th/strings.xml
index fdf64aa..84368da 100644
--- a/tests/CarDeveloperOptions/res/values-th/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-th/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"ปรับขนาดข้อความบนหน้าจอให้เล็กลงหรือใหญ่ขึ้น"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"ทำให้เล็กลง"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"ทำให้ใหญ่ขึ้น"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"ข้อความตัวอย่าง"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"พ่อมดมหัศจรรย์แห่งออซ"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"บทที่ 11: เมืองมรกตมหัศจรรย์แห่งออซ"</string>
@@ -356,7 +355,7 @@
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"เปิดใช้งานวิดเจ็ต"</string>
     <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"ปิดใช้โดยผู้ดูแลระบบ"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"แสดงตัวเลือกการปิดล็อก"</string>
-    <string name="lockdown_settings_summary" msgid="7270756909878256174">"แสดงตัวเลือกปุ่มเปิด/ปิดที่จะปิด Smart Lock การปลดล็อกด้วยลายนิ้วมือ และการแจ้งเตือนในหน้าจอล็อก"</string>
+    <string name="lockdown_settings_summary" msgid="7270756909878256174">"แสดงตัวเลือกปุ่มเปิด/ปิดที่จะปิด Smart Lock, การปลดล็อกด้วยลายนิ้วมือ และการแจ้งเตือนในหน้าจอล็อก"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"เอเจนต์ความน่าเชื่อถือขยายเฉพาะการปลดล็อก"</string>
     <string name="trust_agents_extend_unlock_summary" msgid="3543997596586078084">"หากเปิดใช้ เอเจนต์ความน่าเชื่อถือจะปลดล็อกอุปกรณ์ค้างไว้นานขึ้น แต่จะปลดล็อกอุปกรณ์ที่ล็อกอยู่ไม่ได้อีกต่อไป"</string>
     <string name="trust_lost_locks_screen_title" msgid="3094736590690459372">"หน้าจอล็อกเมื่อสภาพแวดล้อมไม่น่าเชื่อถือ"</string>
@@ -378,7 +377,7 @@
     <string name="location_settings_loading_app_permission_stats" msgid="7818169326621327628">"กำลังโหลด…"</string>
     <string name="account_settings_title" msgid="7870321267198486578">"บัญชี"</string>
     <string name="security_settings_title" msgid="8228075165942416425">"ความปลอดภัย"</string>
-    <string name="encryption_and_credential_settings_title" msgid="6911729638397745353">"การเข้ารหัสลับและข้อมูลรับรอง"</string>
+    <string name="encryption_and_credential_settings_title" msgid="6911729638397745353">"การเข้ารหัสและข้อมูลเข้าสู่ระบบ"</string>
     <string name="encryption_and_credential_settings_summary" product="default" msgid="468749700109808546">"โทรศัพท์ที่เข้ารหัส"</string>
     <string name="decryption_settings_summary" product="default" msgid="7401802133199522441">"โทรศัพท์ไม่ได้เข้ารหัส"</string>
     <string name="encryption_and_credential_settings_summary" product="tablet" msgid="8170667308598998791">"อุปกรณ์ที่เข้ารหัส"</string>
@@ -390,7 +389,7 @@
     <string name="security_passwords_title" msgid="6853942836045862315">"ความเป็นส่วนตัว"</string>
     <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"ปิดใช้โดยผู้ดูแลระบบ"</string>
     <string name="security_status_title" msgid="1261960357751754428">"สถานะความปลอดภัย"</string>
-    <string name="security_dashboard_summary_face" msgid="2536136110153593745">"ล็อกหน้าจอ, Face Unlock"</string>
+    <string name="security_dashboard_summary_face" msgid="2536136110153593745">"ล็อกหน้าจอ, ปลดล็อกด้วยใบหน้า"</string>
     <string name="security_dashboard_summary" msgid="4048877125766167227">"ล็อกหน้าจอ ลายนิ้วมือ"</string>
     <string name="security_dashboard_summary_no_fingerprint" msgid="8861903321053490658">"ล็อกหน้าจอ"</string>
     <string name="security_settings_face_preference_summary" msgid="4437701024542221434">"เพิ่มใบหน้าแล้ว"</string>
@@ -427,7 +426,7 @@
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"นำข้อมูลใบหน้าออก"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"ใช้ใบหน้าของคุณเพื่อปลดล็อกอุปกรณ์และเข้าถึงแอปได้ "<annotation id="url">"ดูข้อมูลเพิ่มเติม"</annotation></string>
     <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"ลบข้อมูลใบหน้าไหม"</string>
-    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"ระบบจะลบข้อมูลที่ Face Unlock บันทึกไว้อย่างถาวรและปลอดภัย หลักจากที่นำออกแล้ว คุณจะต้องใช้ PIN รูปแบบ หรือรหัสผ่านเพื่อปลดล็อกโทรศัพท์ ลงชื่อเข้าใช้แอป และยืนยันการชำระเงิน"</string>
+    <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"ระบบจะลบข้อมูลที่การปลดล็อกด้วยใบหน้าบันทึกไว้อย่างถาวรและปลอดภัย หลักจากที่นำออกแล้ว คุณจะต้องใช้ PIN รูปแบบ หรือรหัสผ่านเพื่อปลดล็อกโทรศัพท์ ลงชื่อเข้าใช้แอป และยืนยันการชำระเงิน"</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"ลายนิ้วมือ"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"จัดการลายนิ้วมือ"</string>
     <string name="fingerprint_usage_category_title" msgid="7298369141954599706">"ใช้ลายนิ้วมือเพื่อ"</string>
@@ -881,7 +880,7 @@
     <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"ไม่เปิด Wi‑Fi อีกครั้งโดยอัตโนมัติ"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"เครือข่าย Wi-Fi"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"ตัวเลือกอื่น"</string>
-    <string name="wifi_menu_p2p" msgid="4945665601551289791">"WiFi Direct"</string>
+    <string name="wifi_menu_p2p" msgid="4945665601551289791">"Wi-Fi Direct"</string>
     <string name="wifi_menu_scan" msgid="9082691677803181629">"สแกน"</string>
     <string name="wifi_menu_advanced" msgid="5984484498045511072">"ขั้นสูง"</string>
     <string name="wifi_menu_configure" msgid="52192491120701266">"กำหนดค่า"</string>
@@ -915,7 +914,7 @@
     <string name="wifi_ip_address" msgid="5572539114989914831">"ที่อยู่ IP"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"บันทึกผ่านทาง"</string>
     <string name="passpoint_content" msgid="340527524510304327">"ข้อมูลรับรองของ <xliff:g id="NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_eap_method" msgid="3752116941487485859">"วิธีการ EAP"</string>
+    <string name="wifi_eap_method" msgid="3752116941487485859">"เมธอด EAP"</string>
     <string name="please_select_phase2" msgid="5848080896810435677">"การตรวจสอบสิทธิ์เฟส 2"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"ใบรับรอง CA"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"โดเมน"</string>
@@ -936,13 +935,13 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"ความเป็นส่วนตัว"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"MAC แบบสุ่ม"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"เพิ่มอุปกรณ์"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"ถือให้โค้ด QR อยู่กลางช่องด้านล่างเพื่อเพิ่มอุปกรณ์ไปยัง “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"ให้คิวอาร์โค้ดอยู่กลางช่องด้านล่างเพื่อเพิ่มอุปกรณ์ไปยัง “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"สแกนคิวอาร์โค้ด"</string>
-    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"ถือให้โค้ด QR อยู่กลางช่องด้านล่างเพื่อเชื่อมต่อไปยัง “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
-    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"เข้าร่วม Wi‑Fi โดยการสแกนคิวอาร์โค้ด"</string>
+    <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"ให้คิวอาร์โค้ดอยู่กลางช่องด้านล่างเพื่อเชื่อมต่อไปยัง “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
+    <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"ร่วมใช้ Wi‑Fi โดยการสแกนคิวอาร์โค้ด"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"แชร์ Wi‑Fi"</string>
-    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"สแกนโค้ด QR นี้เพื่อเชื่อมต่อกับ “<xliff:g id="SSID">%1$s</xliff:g>” และแชร์รหัสผ่าน"</string>
-    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"สแกนโค้ด QR นี้เพื่อเชื่อมต่อกับ “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
+    <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"สแกนคิวอาร์โค้ดนี้เพื่อเชื่อมต่อกับ “<xliff:g id="SSID">%1$s</xliff:g>” และแชร์รหัสผ่าน"</string>
+    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"สแกนคิวอาร์โค้ดนี้เพื่อเชื่อมต่อกับ “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"อ่านโค้ด QR ไม่ได้ เล็งให้โค้ดอยู่กึ่งกลางอีกครั้งแล้วลองใหม่"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"ลองอีกครั้ง หากยังแก้ปัญหาไม่ได้ ให้ติดต่อผู้ผลิตอุปกรณ์"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"มีข้อผิดพลาดเกิดขึ้น"</string>
@@ -1041,7 +1040,7 @@
     <string name="wifi_dns2" msgid="1905876166783761641">"DNS 2"</string>
     <string name="wifi_gateway" msgid="7455334454444443397">"เกตเวย์"</string>
     <string name="wifi_network_prefix_length" msgid="1941206966133010633">"ความยาวรหัสนำเครือข่าย"</string>
-    <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"WiFi Direct"</string>
+    <string name="wifi_p2p_settings_title" msgid="3213180637906683308">"Wi-Fi Direct"</string>
     <string name="wifi_p2p_device_info" msgid="4717490498956029237">"ข้อมูลอุปกรณ์"</string>
     <string name="wifi_p2p_persist_network" msgid="1110453878886476660">"จำการเชื่อมต่อนี้"</string>
     <string name="wifi_p2p_menu_search" msgid="8207638860263805291">"ค้นหาอุปกรณ์"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"อินเทอร์เน็ตมือถือ"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"ใช้เครือข่ายมือถือหาก Wi-Fi ไม่พร้อมใช้งาน"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"ใช้ Wi‑Fi หากเครือข่ายมือถือไม่พร้อมใช้งาน"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"โทรผ่าน Wi-Fi สายจะตัดหากสัญญาณ Wi‑Fi ขาดหาย"</string>
@@ -1213,7 +1215,7 @@
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"กำหนดเวลา"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"ไม่มี"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"เปิดในเวลาที่กำหนด"</string>
-    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"เปิดตั้งแต่อาทิตย์ตกจนขึ้น"</string>
+    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"เปิดตั้งแต่พระอาทิตย์ตกจนขึ้น"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"เวลาเริ่มต้น"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"เวลาสิ้นสุด"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"สถานะ"</string>
@@ -1244,7 +1246,7 @@
     <string name="wallpaper_suggestion_summary" msgid="4247262938988875842">"ปรับเปลี่ยนหน้าจอในแบบของคุณ"</string>
     <string name="wallpaper_settings_fragment_title" msgid="1503701065297188901">"เลือกวอลเปเปอร์จาก"</string>
     <string name="screensaver_settings_title" msgid="7720091234133721021">"โปรแกรมรักษาหน้าจอ"</string>
-    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"ขณะชาร์จหรือเสียบกับแท่นชาร์จ"</string>
+    <string name="screensaver_settings_summary_either_long" msgid="6078038506795498288">"ขณะชาร์จหรือวางอยู่บนแท่นชาร์จ"</string>
     <string name="screensaver_settings_summary_either_short" msgid="2453772128682850053">"แบบใดก็ได้"</string>
     <string name="screensaver_settings_summary_sleep" msgid="6097363596749362692">"ขณะที่ชาร์จ"</string>
     <string name="screensaver_settings_summary_dock" msgid="6297808146601570196">"ขณะวางอยู่บนแท่นชาร์จ"</string>
@@ -1335,7 +1337,7 @@
     <string name="status_number_sim_slot" product="tablet" msgid="4518232285651165459">"MDN (ช่องซิม %1$d)"</string>
     <string name="status_number_sim_slot" product="default" msgid="3660851494421332328">"หมายเลขโทรศัพท์ (ช่องซิม %1$d)"</string>
     <string name="status_number_sim_status" product="tablet" msgid="8069693515860290952">"MDN ในซิม"</string>
-    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"หมายเลขโทรศัพท์ในซิม"</string>
+    <string name="status_number_sim_status" product="default" msgid="6602562692270457610">"หมายเลขโทรศัพท์ของซิม"</string>
     <string name="status_min_number" msgid="8346889546673707777">"นาที"</string>
     <string name="status_msid_number" msgid="7808175928664357661">"MSID"</string>
     <string name="status_prl_version" msgid="5634561205739199042">"รุ่น PRL"</string>
@@ -1550,7 +1552,7 @@
     <string name="carrier_enabled" msgid="1819916725305365581">"เปิด/ปิดใช้งาน APN"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"เปิดใช้งาน APN แล้ว"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"ปิดใช้งาน APN แล้ว"</string>
-    <string name="bearer" msgid="4378444317087536401">"ผู้ถือ"</string>
+    <string name="bearer" msgid="4378444317087536401">"Bearer"</string>
     <string name="mvno_type" msgid="3150755279048149624">"ประเภท MVNO"</string>
     <string name="mvno_match_data" msgid="629287305803195245">"ค่า MVNO"</string>
     <string name="menu_delete" msgid="8646081395424055735">"ลบ APN"</string>
@@ -1568,8 +1570,8 @@
     <string name="restore_default_apn_completed" msgid="5671734152740058937">"รีเซ็ตการตั้งค่า APN กลับเป็นค่าเริ่มต้นเรียบร้อยแล้ว"</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"ตัวเลือกการรีเซ็ต"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"สามารถรีเซ็ตเครือข่าย แอป หรืออุปกรณ์ได้"</string>
-    <string name="reset_network_title" msgid="8944059136930806211">"รีเซ็ต Wi-Fi, เน็ตมือถือ และบลูทูธ"</string>
-    <string name="reset_network_desc" msgid="4982633363916261109">"การดำเนินการนี้จะรีเซ็ตการตั้งค่าเครือข่ายทั้งหมด รวมถึง:\n\n"<li>"Wi‑Fi"</li>\n<li>"อินเทอร์เน็ตมือถือ"</li>\n<li>"บลูทูธ"</li></string>
+    <string name="reset_network_title" msgid="8944059136930806211">"รีเซ็ต Wi-Fi เน็ตมือถือ และบลูทูธ"</string>
+    <string name="reset_network_desc" msgid="4982633363916261109">"การดำเนินการนี้จะรีเซ็ตการตั้งค่าเครือข่ายทั้งหมด ได้แก่\n\n"<li>"Wi‑Fi"</li>\n<li>"อินเทอร์เน็ตมือถือ"</li>\n<li>"บลูทูธ"</li></string>
     <string name="reset_esim_title" msgid="7630781767040831893">"ลบซิมที่ดาวน์โหลด"</string>
     <string name="reset_esim_desc" msgid="433226911566802">"โปรดติดต่อผู้ให้บริการเพื่อดาวน์โหลดซิมทดแทน การดำเนินการนี้จะไม่ยกเลิกแพ็กเกจอินเทอร์เน็ตมือถือของคุณ"</string>
     <string name="reset_network_button_text" msgid="4293271046867912819">"รีเซ็ตการตั้งค่า"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"โปรดใส่ซิมการ์ดและรีสตาร์ท"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"โปรดเชื่อมต่ออินเทอร์เน็ต"</string>
     <string name="location_title" msgid="8664674161765477168">"ตำแหน่งของฉัน"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"สถานที่สำหรับโปรไฟล์งาน"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"ตำแหน่งสำหรับโปรไฟล์งาน"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"สิทธิ์ของแอป"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"ตำแหน่งปิดอยู่"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"การเข้าถึงตำแหน่งล่าสุด"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"ดูรายละเอียด"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"ไม่มีแอปใดทำการขอตำแหน่งเมื่อเร็วๆ นี้"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"ไม่มีแอปใดขอตำแหน่งเมื่อเร็วๆ นี้"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"ไม่มีแอปที่เข้าถึงตำแหน่งเมื่อเร็วๆ นี้"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"ใช้แบตเตอรี่มาก"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"ใช้แบตเตอรี่น้อย"</string>
@@ -2086,7 +2088,7 @@
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"การหน่วงเวลาด้วยการแตะค้างไว้"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"การกลับสี"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"อาจส่งผลกระทบต่อประสิทธิภาพ"</string>
-    <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"ระยะเวลาที่ไม่ขยับเมาส์"</string>
+    <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"เวลาที่ไม่มีการขยับเมาส์"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"หากใช้เมาส์อยู่ คุณตั้งค่าเคอร์เซอร์ให้ดำเนินการโดยอัตโนมัติเมื่อเมาส์หยุดเคลื่อนที่ครู่หนึ่งได้"</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="8303022510942147049">"หน่วงเวลาก่อนคลิก"</string>
     <string name="accessibility_vibration_settings_title" msgid="1902649657883159406">"การสั่น"</string>
@@ -2097,15 +2099,15 @@
     <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"ใช้การแก้สี"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"ใช้คำบรรยาย"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"ต่อไป"</string>
-    <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"เครื่องช่วยการได้ยิน"</string>
-    <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"ไม่ได้เชื่อมต่อเครื่องช่วยการได้ยิน"</string>
-    <string name="accessibility_hearingaid_adding_summary" msgid="4139031880828714300">"เพิ่มเครื่องช่วยการได้ยิน"</string>
-    <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"หากต้องการจับคู่กับเครื่องช่วยการได้ยิน ให้ค้นหาและแตะอุปกรณ์ในหน้าจอถัดไป"</string>
-    <string name="accessibility_hearingaid_pair_instructions_second_message" msgid="1584538735488464991">"ตรวจสอบว่าเครื่องช่วยการได้ยินอยู่ในโหมดการจับคู่"</string>
+    <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"เครื่องช่วยฟัง"</string>
+    <string name="accessibility_hearingaid_not_connected_summary" msgid="634573930469952213">"ไม่ได้เชื่อมต่อเครื่องช่วยฟัง"</string>
+    <string name="accessibility_hearingaid_adding_summary" msgid="4139031880828714300">"เพิ่มเครื่องช่วยฟัง"</string>
+    <string name="accessibility_hearingaid_pair_instructions_first_message" msgid="2671518890909750740">"หากต้องการจับคู่กับเครื่องช่วยฟัง ให้ค้นหาและแตะอุปกรณ์ในหน้าจอถัดไป"</string>
+    <string name="accessibility_hearingaid_pair_instructions_second_message" msgid="1584538735488464991">"ตรวจสอบว่าเครื่องช่วยฟังอยู่ในโหมดการจับคู่"</string>
     <string name="accessibility_hearingaid_active_device_summary" msgid="6081382497207168885">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> ใช้งานอยู่"</string>
     <plurals name="show_number_hearingaid_count" formatted="false" msgid="7906547154695855096">
-      <item quantity="other">บันทึกเครื่องช่วยการได้ยิน <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> เครื่องแล้ว</item>
-      <item quantity="one">บันทึกเครื่องช่วยการได้ยิน <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> เครื่องแล้ว</item>
+      <item quantity="other">บันทึกเครื่องช่วยฟัง <xliff:g id="NUMBER_DEVICE_COUNT_1">%1$d</xliff:g> เครื่องแล้ว</item>
+      <item quantity="one">บันทึกเครื่องช่วยฟัง <xliff:g id="NUMBER_DEVICE_COUNT_0">%1$d</xliff:g> เครื่องแล้ว</item>
     </plurals>
     <string name="accessibility_summary_state_enabled" msgid="7357731696603247963">"เปิด"</string>
     <string name="accessibility_summary_state_disabled" msgid="9197369047683087620">"ปิด"</string>
@@ -2149,7 +2151,7 @@
     <string name="captioning_standard_options_title" msgid="4124898413348084226">"ตัวเลือกมาตรฐาน"</string>
     <string name="captioning_locale" msgid="4734464353806207943">"ภาษา"</string>
     <string name="captioning_text_size" msgid="1707122517246408084">"ขนาดข้อความ"</string>
-    <string name="captioning_preset" msgid="7429888317480872337">"รูปแบบคำบรรยายภาพ"</string>
+    <string name="captioning_preset" msgid="7429888317480872337">"รูปแบบคำบรรยาย"</string>
     <string name="captioning_custom_options_title" msgid="4530479671071326732">"ตัวเลือกที่กำหนดเอง"</string>
     <string name="captioning_background_color" msgid="2434458880326292180">"สีพื้นหลัง"</string>
     <string name="captioning_background_opacity" msgid="8178926599201811936">"ความทึบแสงของพื้นหลัง"</string>
@@ -2160,7 +2162,7 @@
     <string name="captioning_edge_color" msgid="4330622137047993780">"สีขอบ"</string>
     <string name="captioning_edge_type" msgid="4414946407430588162">"ชนิดขอบ"</string>
     <string name="captioning_typeface" msgid="7893208796949341767">"ชุดแบบอักษร"</string>
-    <string name="captioning_preview_text" msgid="4877753964772618049">"คำอธิบายภาพจะมีหน้าตาแบบนี้"</string>
+    <string name="captioning_preview_text" msgid="4877753964772618049">"คำบรรยายจะมีหน้าตาแบบนี้"</string>
     <string name="captioning_preview_characters" msgid="6469599599352973561">"Aa"</string>
     <string name="locale_default" msgid="910074908458214054">"ค่าเริ่มต้น"</string>
     <string name="color_title" msgid="132875486061816584">"สี"</string>
@@ -2193,8 +2195,8 @@
     <string name="print_settings" msgid="7886184656544483072">"การพิมพ์"</string>
     <string name="print_settings_summary_no_service" msgid="634173687975841526">"ปิด"</string>
     <plurals name="print_settings_summary" formatted="false" msgid="7580293760281445137">
-      <item quantity="other">บริการการพิมพ์เปิดอยู่ <xliff:g id="COUNT">%1$d</xliff:g> รายการ</item>
-      <item quantity="one">บริการการพิมพ์เปิดอยู่ 1 รายการ</item>
+      <item quantity="other">บริการพิมพ์เปิดอยู่ <xliff:g id="COUNT">%1$d</xliff:g> รายการ</item>
+      <item quantity="one">บริการพิมพ์เปิดอยู่ 1 รายการ</item>
     </plurals>
     <plurals name="print_jobs_summary" formatted="false" msgid="6180308415569432845">
       <item quantity="other">งานพิมพ์ <xliff:g id="COUNT">%1$d</xliff:g> รายการ</item>
@@ -2231,7 +2233,7 @@
     <string name="power_usage_level_and_status" msgid="8873534076894160727">"<xliff:g id="LEVEL">%1$s</xliff:g> - <xliff:g id="STATUS">%2$s</xliff:g>"</string>
     <string name="power_discharge_remaining" msgid="3461915627093471868">"เหลืออีก <xliff:g id="REMAIN">%1$s</xliff:g>"</string>
     <string name="power_charge_remaining" msgid="2730510256218879651">"อีก <xliff:g id="UNTIL_CHARGED">%1$s</xliff:g> จะชาร์จเต็ม"</string>
-    <string name="background_activity_title" msgid="7207836362312111483">"การจำกัดการใช้งานในพื้นหลัง"</string>
+    <string name="background_activity_title" msgid="7207836362312111483">"การจำกัดการทำงานในเบื้องหลัง"</string>
     <string name="background_activity_summary" msgid="582372194738538145">"อนุญาตให้แอปทำงานในเบื้องหลัง"</string>
     <string name="background_activity_summary_disabled" msgid="457944930942085876">"ไม่อนุญาตให้แอปทำงานในพื้นหลัง"</string>
     <string name="background_activity_summary_whitelisted" msgid="4713321059375873828">"จำกัดการใช้งานในพื้นหลังไม่ได้"</string>
@@ -2239,7 +2241,7 @@
     <string name="background_activity_warning_dialog_text" msgid="8242749826732375096">"แอปอาจทำงานผิดพลาดหากคุณจำกัดกิจกรรมในพื้นหลัง"</string>
     <string name="background_activity_disabled_dialog_text" msgid="4234598000779459640">"เนื่องจากแอปนี้ไม่ได้ตั้งค่าให้เพิ่มประสิทธิภาพแบตเตอรี่ คุณจึงจำกัดการใช้งานไม่ได้\n\nหากต้องการจำกัด ให้เปิดการเพิ่มประสิทธิภาพแบตเตอรี่ก่อน"</string>
     <string name="device_screen_usage" msgid="4470485475363132750">"การใช้งานหน้าจอตั้งแต่ชาร์จจนเต็ม"</string>
-    <string name="power_usage_list_summary" msgid="4314438658308211057">"การใช้งานแบตเตอรี่ตั้งแต่ชาร์จจนเต็ม"</string>
+    <string name="power_usage_list_summary" msgid="4314438658308211057">"การใช้งานแบตเตอรี่ตั้งแต่ชาร์จเต็ม"</string>
     <string name="screen_usage_summary" msgid="263396144684078341">"ระยะเวลาที่หน้าจอเปิดตั้งแต่ชาร์จจนเต็ม"</string>
     <string name="device_usage_list_summary" msgid="8299017481332816368">"การใช้งานอุปกรณ์ตั้งแต่ชาร์จจนเต็ม"</string>
     <string name="battery_since_unplugged" msgid="6486555910264026856">"การใช้แบตเตอรี่ตั้งแต่ถอดปลั๊ก"</string>
@@ -2307,9 +2309,9 @@
       <item quantity="other">จำกัดแอป %1$d แอปใช่ไหม</item>
       <item quantity="one">จำกัดแอปใช่ไหม</item>
     </plurals>
-    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"หากต้องการประหยัดแบตเตอรี่ ต้องไม่ให้แอป <xliff:g id="APP">%1$s</xliff:g> ใช้งานแบตเตอรี่ในพื้นหลัง แอปนี้อาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า"</string>
-    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"หากต้องการประหยัดแบตเตอรี่ ต้องไม่ให้แอปเหล่านี้ใช้งานแบตเตอรี่ในพื้นหลัง แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า\n\nแอปดังกล่าวได้แก่"</string>
-    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"หากต้องการประหยัดแบตเตอรี่ ต้องไม่ให้แอปเหล่านี้ใช้งานแบตเตอรี่ในพื้นหลัง แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า\n\nแอปดังกล่าวได้แก่\n<xliff:g id="APP_LIST">%1$s</xliff:g>"</string>
+    <string name="battery_tip_restrict_app_dialog_message" msgid="6905822297507947381">"หากต้องการประหยัดแบตเตอรี่ ต้องไม่ให้แอป <xliff:g id="APP">%1$s</xliff:g> ใช้งานแบตเตอรี่ในเบื้องหลัง แอปนี้อาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า"</string>
+    <string name="battery_tip_restrict_apps_less_than_5_dialog_message" msgid="4225881888543582456">"หากต้องการประหยัดแบตเตอรี่ ต้องไม่ให้แอปเหล่านี้ใช้งานแบตเตอรี่ในเบื้องหลัง แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า\n\nแอปดังกล่าวได้แก่"</string>
+    <string name="battery_tip_restrict_apps_more_than_5_dialog_message" msgid="1748375562539446634">"หากต้องการประหยัดแบตเตอรี่ ต้องไม่ให้แอปเหล่านี้ใช้งานแบตเตอรี่ในเบื้องหลัง แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า\n\nแอปดังกล่าวได้แก่\n<xliff:g id="APP_LIST">%1$s</xliff:g>"</string>
     <string name="battery_tip_restrict_app_dialog_ok" msgid="2573410775701913487">"จำกัด"</string>
     <string name="battery_tip_unrestrict_app_dialog_title" msgid="812458516399125710">"นำการจำกัดออกใช่ไหม"</string>
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"แอปนี้จะใช้แบตเตอรี่ในเบื้องหลังได้ แบตเตอรี่จึงอาจจะหมดเร็วกว่าที่คาดไว้"</string>
@@ -2326,11 +2328,11 @@
     <string name="smart_battery_footer" product="device" msgid="3971715848890205632">"เมื่อตัวจัดการแบตเตอรี่ตรวจพบว่าแอปทำให้แบตเตอรี่หมดเร็ว คุณจะมีตัวเลือกในการจำกัดแอปเหล่านี้ แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า"</string>
     <string name="restricted_app_title" msgid="4957644700640127606">"แอปที่ถูกจำกัด"</string>
     <plurals name="restricted_app_summary" formatted="false" msgid="7609538735465186040">
-      <item quantity="other">การจำกัดการใช้งานแบตเตอรี่ของแอป %1$d</item>
-      <item quantity="one">การจำกัดการใช้งานแบตเตอรี่ของแอป %1$d</item>
+      <item quantity="other">การจำกัดการใช้งานแบตเตอรี่ของแอป %1$d แอป</item>
+      <item quantity="one">การจำกัดการใช้งานแบตเตอรี่ของแอป %1$d แอป</item>
     </plurals>
     <string name="restricted_app_time_summary" msgid="5205881852523135226">"จำกัดเมื่อ <xliff:g id="TIME">%1$s</xliff:g>"</string>
-    <string name="restricted_app_detail_footer" msgid="482460517275754465">"แอปเหล่านี้ใช้งานแบตเตอรี่ในพื้นหลัง แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า"</string>
+    <string name="restricted_app_detail_footer" msgid="482460517275754465">"แอปเหล่านี้ใช้งานแบตเตอรี่ในเบื้องหลัง แอปที่ถูกจำกัดอาจไม่ทำงานตามปกติและการแจ้งเตือนอาจล่าช้า"</string>
     <string name="battery_auto_restriction_title" msgid="488905332794794076">"ใช้ตัวจัดการแบตเตอรี่"</string>
     <string name="battery_auto_restriction_summary" msgid="1638072655581821837">"ตรวจจับเมื่อแอปทำให้แบตเตอรี่หมดเร็ว"</string>
     <string name="battery_manager_on" msgid="5626982529932239656">"เปิด/ตรวจจับเมื่อแอปทำให้แบตเตอรี่หมดเร็ว"</string>
@@ -2446,14 +2448,14 @@
     <string name="process_dex2oat_label" msgid="8249082119748556085">"การเพิ่มประสิทธิภาพแอป"</string>
     <string name="battery_saver" msgid="3989710213758938398">"โหมดประหยัดแบตเตอรี่"</string>
     <string name="battery_saver_auto_title" msgid="4158659069641849952">"เปิดอัตโนมัติ"</string>
-    <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"ไม่มีกำหนดเวลา"</string>
+    <string name="battery_saver_auto_no_schedule" msgid="739814529432092706">"ไม่มีกำหนดการ"</string>
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"อิงตามกิจวัตรของคุณ"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"อิงตามเปอร์เซ็นต์แบตเตอรี่"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"โหมดประหยัดแบตเตอรี่จะเปิดเมื่อมีแนวโน้มว่าแบตเตอรี่จะหมดก่อนถึงเวลาที่คุณจะชาร์จอุปกรณ์เป็นประจำ"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"จะเปิดเมื่อเหลือแบตเตอรี่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"ตั้งกำหนดเวลา"</string>
-    <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"ปิดเมื่อชาร์จเต็ม"</string>
-    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"โหมดประหยัดแบตเตอรี่จะปิดเมื่อแบตเตอรี่โทรศัพท์อยู่ที่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"ตั้งกำหนดการ"</string>
+    <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"ปิดเมื่อชาร์จเต็มแล้ว"</string>
+    <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"โหมดประหยัดแบตเตอรี่จะปิดเมื่อมีแบตเตอรี่โทรศัพท์อยู่ที่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"โหมดประหยัดแบตเตอรี่จะปิดเมื่อแบตเตอรี่แท็บเล็ตอยู่ที่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <string name="battery_saver_sticky_description_new" product="device" msgid="5056520668081504111">"โหมดประหยัดแบตเตอรี่จะปิดเมื่อแบตเตอรี่อุปกรณ์อยู่ที่ <xliff:g id="PERCENT">%1$s</xliff:g>"</string>
     <!-- no translation found for battery_saver_seekbar_title (7607123201469333645) -->
@@ -2922,8 +2924,8 @@
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"ทุกครั้ง"</string>
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"ยกเว้นเมื่อแอปการชำระเงินอื่นเปิดอยู่"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"ที่เครื่องแตะและจ่าย ให้ชำระเงินด้วย:"</string>
-    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"การชำระเงินที่เครื่องเทอร์มินัล"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ตั้งค่าแอปการชำระเงิน แล้วแตะด้านหลังของโทรศัพท์กับเทอร์มินัลเครื่องใดก็ได้ที่มีสัญลักษณ์ \"ไร้สัมผัส\""</string>
+    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"การชำระเงินที่เครื่องชำระเงิน"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ตั้งค่าแอปการชำระเงิน แล้วแตะด้านหลังของโทรศัพท์กับเครื่องชำระเงินเครื่องใดก็ได้ที่มีสัญลักษณ์ \"ไม่ต้องสัมผัส\""</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"รับทราบ"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"เพิ่มเติม..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"ตั้งเป็นค่ากำหนดของคุณไหม"</string>
@@ -2941,7 +2943,7 @@
     <string name="extreme_threats_summary" msgid="4967919167246852181">"รับการแจ้งเตือนภัยคุกคามต่อชีวิตและทรัพย์สินระดับสูงสุด"</string>
     <string name="severe_threats_title" msgid="1987698359027211862">"ภัยคุกคามที่ร้ายแรง"</string>
     <string name="severe_threats_summary" msgid="1148147804181873835">"รับการแจ้งเตือนภัยคุกคามที่ร้ายแรงต่อชีวิตและทรัพย์สิน"</string>
-    <string name="amber_alerts_title" msgid="8274651933750533271">"การแจ้งเตือน AMBER Alert"</string>
+    <string name="amber_alerts_title" msgid="8274651933750533271">"การแจ้งเตือน AMBER"</string>
     <string name="amber_alerts_summary" msgid="7570943549000256418">"รับกระดานข่าวสารเกี่ยวกับการลักพาตัวเด็ก"</string>
     <string name="repeat_title" msgid="507090203366188931">"เล่นซ้ำ"</string>
     <string name="call_manager_enable_title" msgid="6345443572463650308">"เปิดใช้ Call Manager"</string>
@@ -3034,7 +3036,7 @@
     <string name="network_dashboard_summary_data_usage" msgid="4695629715072542102">"ปริมาณการใช้อินเทอร์เน็ต"</string>
     <string name="network_dashboard_summary_hotspot" msgid="3928610802321995214">"ฮอตสปอต"</string>
     <string name="connected_devices_dashboard_title" msgid="7795222675849060444">"อุปกรณ์ที่เชื่อมต่อ"</string>
-    <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"บลูทูธ, โหมดขับรถ, NFC"</string>
+    <string name="connected_devices_dashboard_summary" msgid="1072664369515033179">"บลูทูธ โหมดขับรถ NFC"</string>
     <string name="connected_devices_dashboard_no_nfc_summary" msgid="2610085597733526722">"บลูทูธ, โหมดขับรถ"</string>
     <string name="connected_devices_dashboard_no_driving_mode_summary" msgid="3524409078596318803">"บลูทูธ, NFC"</string>
     <string name="connected_devices_dashboard_no_driving_mode_no_nfc_summary" msgid="7881286613528299400">"บลูทูธ"</string>
@@ -3159,7 +3161,7 @@
     <string name="emergency_tone_alert" msgid="907868135091891015">"มีเสียง"</string>
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"การสั่น"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"เสียงเปิดเครื่อง"</string>
-    <string name="live_caption_title" msgid="7926591158657997051">"คำบรรยายภาพสด"</string>
+    <string name="live_caption_title" msgid="7926591158657997051">"คำบรรยายสด"</string>
     <string name="live_caption_summary" msgid="9064771862352393125">"แสดงคำบรรยายสื่อโดยอัตโนมัติ"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"ไม่เลย"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
@@ -3185,7 +3187,7 @@
     <string name="zen_mode_automation_suggestion_title" msgid="4921779962633710347">"ปิดเสียงโทรศัพท์ในบางช่วงเวลา"</string>
     <string name="zen_mode_automation_suggestion_summary" msgid="2709837472884371037">"ตั้งกฎห้ามรบกวน"</string>
     <string name="zen_mode_schedule_title" msgid="5275268813192802631">"กำหนดเวลา"</string>
-    <string name="zen_mode_use_automatic_rule" msgid="446326253915861824">"ใช้กำหนดเวลา"</string>
+    <string name="zen_mode_use_automatic_rule" msgid="446326253915861824">"ใช้กำหนดการ"</string>
     <string name="zen_mode_option_important_interruptions" msgid="5173944276846940149">"เฉพาะเรื่องสำคัญ"</string>
     <string name="zen_mode_option_alarms" msgid="4843278125235203076">"เฉพาะปลุกเท่านั้น"</string>
     <string name="zen_mode_option_no_interruptions" msgid="4723700274519260852">"ปิดเสียงทั้งหมด"</string>
@@ -3434,13 +3436,13 @@
     <string name="zen_mode_rule_delete_button" msgid="6763486487220471193">"ลบ"</string>
     <string name="zen_mode_rule_rename_button" msgid="1428130397306726792">"เปลี่ยนชื่อ"</string>
     <string name="zen_mode_rule_name" msgid="8583652780885724670">"ชื่อกำหนดเวลา"</string>
-    <string name="zen_mode_rule_name_hint" msgid="6569877315858105901">"ระบุชื่อกำหนดเวลา"</string>
+    <string name="zen_mode_rule_name_hint" msgid="6569877315858105901">"ระบุชื่อกำหนดการ"</string>
     <string name="zen_mode_rule_name_warning" msgid="4773465816059587512">"มีการใช้ชื่อกำหนดเวลานี้แล้ว"</string>
     <string name="zen_mode_add_rule" msgid="7200004557856029928">"เพิ่มอีก"</string>
     <string name="zen_mode_add_event_rule" msgid="1398181272397489506">"เพิ่มกำหนดการตามกิจกรรม"</string>
     <string name="zen_mode_add_time_rule" msgid="5999467757140524729">"เพิ่มกำหนดการตามเวลา"</string>
     <string name="zen_mode_delete_rule" msgid="2292933835997203801">"ลบกำหนดเวลา"</string>
-    <string name="zen_mode_choose_rule_type" msgid="8877138307319450306">"เลือกประเภทกำหนดเวลา"</string>
+    <string name="zen_mode_choose_rule_type" msgid="8877138307319450306">"เลือกประเภทกำหนดการ"</string>
     <string name="zen_mode_delete_rule_confirmation" msgid="2646596466259025978">"ลบกฎ \"<xliff:g id="RULE">%1$s</xliff:g>\" ใช่ไหม"</string>
     <string name="zen_mode_delete_rule_button" msgid="611058106279881991">"ลบ"</string>
     <string name="zen_mode_rule_type_unknown" msgid="2819480113355191421">"ไม่ทราบ"</string>
@@ -3648,7 +3650,7 @@
     <string name="tap_to_wake" msgid="1902991239401652323">"แตะเพื่อปลุก"</string>
     <string name="tap_to_wake_summary" msgid="8485222120721006793">"แตะที่ใดก็ได้บนหน้าจอ 2 ครั้งเพื่อปลุกอุปกรณ์"</string>
     <string name="domain_urls_title" msgid="7939209950373945367">"การเปิดลิงก์"</string>
-    <string name="domain_urls_summary_none" msgid="5401203416941265109">"อย่าเปิดลิงก์ที่สนับสนุน"</string>
+    <string name="domain_urls_summary_none" msgid="5401203416941265109">"อย่าเปิดลิงก์ที่รองรับ"</string>
     <string name="domain_urls_summary_one" msgid="3893975485064803435">"เปิด <xliff:g id="DOMAIN">%s</xliff:g>"</string>
     <string name="domain_urls_summary_some" msgid="2130534984153210797">"เปิด <xliff:g id="DOMAIN">%s</xliff:g> และ URL อื่นๆ"</string>
     <string name="domain_urls_apps_summary_off" msgid="1110203970617922543">"ไม่มีแอปใดเปิดลิงก์ที่รองรับได้เลย"</string>
@@ -3828,7 +3830,7 @@
     <string name="camera_gesture_desc" msgid="7751841175916789527">"เปิดแอปกล้องถ่ายรูปโดยบิดข้อมือ 2 ครั้ง"</string>
     <string name="camera_double_tap_power_gesture_title" msgid="8874747801078147525">"กดปุ่มเปิด/ปิด 2 ครั้งสำหรับกล้อง"</string>
     <string name="camera_double_tap_power_gesture_desc" msgid="6166349645433682873">"เปิดกล้องอย่างรวดเร็วโดยไม่ต้องปลดล็อกหน้าจอ"</string>
-    <string name="screen_zoom_title" msgid="164369086350486104">"ขนาดที่แสดง"</string>
+    <string name="screen_zoom_title" msgid="164369086350486104">"ขนาดการแสดงผล"</string>
     <string name="screen_zoom_short_summary" msgid="5508079362742276703">"ทำให้รายการบนหน้าจอมีขนาดใหญ่ขึ้นหรือเล็กลง"</string>
     <string name="screen_zoom_keywords" msgid="8358462497896524092">"ความหนาแน่นในการแสดงผล, ซูมหน้าจอ, ระดับ, การปรับระดับ"</string>
     <string name="screen_zoom_summary" msgid="5294003755961312560">"ปรับขนาดข้อความบนหน้าจอให้เล็กลงหรือใหญ่ขึ้น แอปบางส่วนบนหน้าจออาจเปลี่ยนตำแหน่ง"</string>
@@ -3951,7 +3953,7 @@
       <item quantity="other">ข้อจำกัด <xliff:g id="COUNT">%1$d</xliff:g> ข้อ</item>
       <item quantity="one">ข้อจำกัด 1 ข้อ</item>
     </plurals>
-    <string name="operator_warning" msgid="4676042739221117031">"การบันทึกบัญชีข้อมูลของผู้ให้บริการอาจแตกต่างจากการบันทึกบัญชีของอุปกรณ์"</string>
+    <string name="operator_warning" msgid="4676042739221117031">"การบันทึกการใช้อินเทอร์เน็ตของผู้ให้บริการอาจแตกต่างไปจากการบันทึกในอุปกรณ์"</string>
     <string name="data_used_template" msgid="761605393453849477">"ใช้ไป <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"ตั้งค่าเตือนการใช้อินเทอร์เน็ต"</string>
     <string name="data_warning" msgid="2699207195535036240">"เตือนปริมาณอินเทอร์เน็ต"</string>
@@ -4249,7 +4251,7 @@
     <string name="app_info_storage_title" msgid="6643391804949509308">"พื้นที่ที่ใช้ไป"</string>
     <string name="webview_uninstalled_for_user" msgid="3407952144444040557">"(ถอนการติดตั้งแล้วสำหรับ <xliff:g id="USER">%s</xliff:g>)"</string>
     <string name="webview_disabled_for_user" msgid="8057805373224993504">"(ปิดใช้อยู่สำหรับ <xliff:g id="USER">%s</xliff:g>)"</string>
-    <string name="autofill_app" msgid="3990765434980280073">"บริการป้อนอัตโนมัติ"</string>
+    <string name="autofill_app" msgid="3990765434980280073">"บริการป้อนข้อความอัตโนมัติ"</string>
     <string name="autofill_keywords" msgid="7717726766232862218">"ป้อน, อัตโนมัติ, ป้อนอัตโนมัติ"</string>
     <string name="autofill_confirmation_message" msgid="1385894598730361304">"&lt;b&gt;ตรวจดูว่าคุณเชื่อถือแอปนี้ได้&lt;/b&gt; &lt;br/&gt; &lt;br/&gt; &lt;xliff:g id=app_name example=Google ป้อนอัตโนมัติ&gt;%1$s&lt;/xliff:g&gt; ใช้สิ่งที่อยู่บนหน้าจอเพื่อดูว่าจะป้อนข้อมูลใดโดยอัตโนมัติได้บ้าง"</string>
     <string name="debug_autofill_category" msgid="6262526615416295645">"ป้อนอัตโนมัติ"</string>
diff --git a/tests/CarDeveloperOptions/res/values-tl/arrays.xml b/tests/CarDeveloperOptions/res/values-tl/arrays.xml
index 87099a2..de090b6 100644
--- a/tests/CarDeveloperOptions/res/values-tl/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-tl/arrays.xml
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"patakbuhin sa background"</item>
     <item msgid="6423861043647911030">"dami ng pagiging naa-access"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Lokasyon"</item>
+    <item msgid="6656077694190491067">"Lokasyon"</item>
+    <item msgid="8790228218278477369">"Lokasyon"</item>
+    <item msgid="7836406246005211990">"Pag-vibrate"</item>
+    <item msgid="3951439024549922598">"Magbasa ng mga contact"</item>
+    <item msgid="8802152411647068">"Baguhin ang mga contact"</item>
+    <item msgid="229544934599698735">"Basahin ang log ng tawag"</item>
+    <item msgid="7396102294405899613">"Baguhin ang log ng tawag"</item>
+    <item msgid="3597797992398484655">"Magbasa ng kalendaryo"</item>
+    <item msgid="2705975774250907343">"Baguhin ang kalendaryo"</item>
+    <item msgid="4668747371441932697">"Lokasyon"</item>
+    <item msgid="1487578921720243646">"Mag-post ng notification"</item>
+    <item msgid="4636080349724146638">"Lokasyon"</item>
+    <item msgid="673510900286463926">"Tumawag sa telepono"</item>
+    <item msgid="542083422784609790">"Magbasa ng SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Magsulat ng SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Tumanggap ng SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Tumanggap ng SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Tumanggap ng SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Tumanggap ng SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Magpadala ng SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Magbasa ng SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Magsulat ng SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Baguhin ang mga setting"</item>
+    <item msgid="8705854389991425629">"Gumuhit sa tuktok"</item>
+    <item msgid="5861356020344153651">"I-access ang mga notification"</item>
+    <item msgid="78432174621628659">"Camera"</item>
+    <item msgid="3986116419882154794">"I-record ang audio"</item>
+    <item msgid="4516840825756409490">"I-play ang audio"</item>
+    <item msgid="6811712502798183957">"Basahin ang clipboard"</item>
+    <item msgid="2780369012602289114">"Baguhin ang clipboard"</item>
+    <item msgid="2331359440170850868">"Mga media button"</item>
+    <item msgid="6133599737122751231">"Focus ng audio"</item>
+    <item msgid="6844485713404805301">"Master volume"</item>
+    <item msgid="1600379420669104929">"Volume ng boses"</item>
+    <item msgid="6296768210470214866">"Volume ng pag-ring"</item>
+    <item msgid="510690696071629241">"Volume ng media"</item>
+    <item msgid="406861638631430109">"Volume ng alarm"</item>
+    <item msgid="4715864795872233884">"Volume ng notification"</item>
+    <item msgid="2311478519251301183">"Volume ng Bluetooth"</item>
+    <item msgid="5133991377896747027">"Panatilihing bukas"</item>
+    <item msgid="2464189519136248621">"Lokasyon"</item>
+    <item msgid="2062677934050803037">"Lokasyon"</item>
+    <item msgid="1735171933192715957">"Kumuha ng stats sa paggamit"</item>
+    <item msgid="1014093788778383554">"I-mute/i-unmute ang mikropono"</item>
+    <item msgid="4199297950608622850">"Ipakita ang toast"</item>
+    <item msgid="2527962435313398821">"I-project ang media"</item>
+    <item msgid="5117506254221861929">"I-activate ang VPN"</item>
+    <item msgid="8291198322681891160">"Write wallpaper"</item>
+    <item msgid="7106921284621230961">"Assist structure"</item>
+    <item msgid="4496533640894624799">"Assist screenshot"</item>
+    <item msgid="2598847264853993611">"Basahin ang katayuan ng telepono"</item>
+    <item msgid="9215610846802973353">"Magdagdag ng voicemail"</item>
+    <item msgid="9186411956086478261">"Gamitin ang sip"</item>
+    <item msgid="6884763100104539558">"Iproseso ang papalabas na tawag"</item>
+    <item msgid="125513972170580692">"Fingerprint"</item>
+    <item msgid="2556071024281275619">"Mga sensor ng katawan"</item>
+    <item msgid="617168514928339387">"Basahin ang mga cell broadcast"</item>
+    <item msgid="7134693570516523585">"Kunwaring lokasyon"</item>
+    <item msgid="7224489175375229399">"Basahin ang storage"</item>
+    <item msgid="8472735063903258202">"I-write ang storage"</item>
+    <item msgid="4069276819909595110">"I-on ang screen"</item>
+    <item msgid="1228338896751121025">"Kunin ang mga account"</item>
+    <item msgid="3181581793459233672">"Patakbuhin sa background"</item>
+    <item msgid="2340936043025374076">"Dami ng pagiging naa-access"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Maikli"</item>
     <item msgid="4816511817309094890">"Katamtaman"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Huwag kailanman payagan"</item>
     <item msgid="8184570120217958741">"Palaging payagan"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Katamtaman"</item>
+    <item msgid="1555861583162930714">"Mababa"</item>
+    <item msgid="1719683776264798117">"Kritikal"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Katamtaman"</item>
+    <item msgid="182695359839047859">"Mababa"</item>
+    <item msgid="8577246509202964244">"Kritikal"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Tuluy-tuloy"</item>
     <item msgid="167418068739176448">"Nangungunang gawain"</item>
diff --git a/tests/CarDeveloperOptions/res/values-tl/strings.xml b/tests/CarDeveloperOptions/res/values-tl/strings.xml
index 440bf79..3acabe0 100644
--- a/tests/CarDeveloperOptions/res/values-tl/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-tl/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Gawing mas maliit o mas malaki ang text sa screen."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Paliitin"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Palakihin"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Sample na text"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Kabanata 11: The Wonderful Emerald City of Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobile"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Kung hindi available ang Wi‑Fi, gamitin ang mobile network"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Kung hindi available ang mobile network, gamitin ang Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Tumawag gamit ang Wi‑Fi. Kung mawawala ang Wi‑Fi, matatapos ang tawag."</string>
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"Pag-vibrate kapag nag-ring"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"Pag-vibrate sa pagpindot"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Gamitin ang serbisyo"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Gumamit ng pagwawasto ng kulay"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Gumamit ng pagtatama ng kulay"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Gumamit ng mga caption"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Magpatuloy"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Mga hearing aid"</string>
diff --git a/tests/CarDeveloperOptions/res/values-tr/arrays.xml b/tests/CarDeveloperOptions/res/values-tr/arrays.xml
index af817b5..6b1d63c 100644
--- a/tests/CarDeveloperOptions/res/values-tr/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-tr/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Asla izin verme"</item>
     <item msgid="8184570120217958741">"Her zaman izin ver"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Orta"</item>
+    <item msgid="1555861583162930714">"Düşük"</item>
+    <item msgid="1719683776264798117">"Kritik düzeyde"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Orta"</item>
+    <item msgid="182695359839047859">"Düşük"</item>
+    <item msgid="8577246509202964244">"Kritik düzeyde"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Kalıcı"</item>
     <item msgid="167418068739176448">"En üstteki etkinlik"</item>
@@ -463,8 +473,8 @@
   </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"Otomatik olarak algıla"</item>
-    <item msgid="773943026484148895">"Sınırlı olarak ele al"</item>
-    <item msgid="1008268820118852416">"Sınırsız olarak ele al"</item>
+    <item msgid="773943026484148895">"Sınırlı gibi kullan"</item>
+    <item msgid="1008268820118852416">"Sınırsız gibi kullan"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="6545683814310036454">"Rastgele MAC kullan (varsayılan)"</item>
diff --git a/tests/CarDeveloperOptions/res/values-tr/strings.xml b/tests/CarDeveloperOptions/res/values-tr/strings.xml
index 89e58f7..1a96948 100644
--- a/tests/CarDeveloperOptions/res/values-tr/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-tr/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Ekrandaki metni daha küçük veya daha büyük yapın."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Küçült"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Büyüt"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Örnek metin"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Muhteşem Oz Büyücüsü"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11. Bölüm: Oz\'un Muhteşem Zümrüt Kenti"</string>
@@ -422,7 +421,7 @@
     <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Uygulamada oturum açma ve ödemeler"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Kilidi açmak için gözler açık"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Yüzle kimlik doğrulamayı kullanırken gözleriniz açık olmalıdır"</string>
-    <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Her zaman onay gerektir"</string>
+    <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Her zaman onay gerekli"</string>
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"Uygulamalarda kimlik doğrulaması yapılırken her zaman onay gerektir"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"Yüz verisini kaldır"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"Yüzünüzü kullanarak cihazınızın kilidini açabilir ve uygulamalara erişebilirsiniz. "<annotation id="url">"Daha fazla bilgi"</annotation></string>
@@ -849,7 +848,7 @@
     <string name="wifi_in_airplane_mode" msgid="4729571191578262246">"Uçak modunda"</string>
     <string name="wifi_notify_open_networks" msgid="4782239203624619655">"Açık ağ bildirimi"</string>
     <string name="wifi_notify_open_networks_summary" msgid="1383681260705466715">"Herkese açık yüksek kaliteli bir ağ kullanılabilir olduğunda bildir"</string>
-    <string name="wifi_wakeup" msgid="4963732992164721548">"Kablosuz özelliğini otomatik olarak aç"</string>
+    <string name="wifi_wakeup" msgid="4963732992164721548">"Kablosuz ağı otomatik olarak aç"</string>
     <string name="wifi_wakeup_summary" msgid="1152699417411690">"Ev ağınız gibi yüksek kaliteli kayıtlı ağların yakınında olduğunuzda kablosuz özelliği tekrar açılır"</string>
     <string name="wifi_wakeup_summary_no_location" msgid="3007457288587966962">"Konum kapalı olduğundan kullanılamıyor. "<annotation id="link">"Konum"</annotation>"\'u açın."</string>
     <string name="wifi_wakeup_summary_scanning_disabled" msgid="6820040651529910914">"Kablosuz ağ taraması kapalı olduğu için kullanılamıyor"</string>
@@ -878,7 +877,7 @@
     <string name="wifi_add_network" msgid="4094957940791876640">"Ağ ekle"</string>
     <string name="wifi_configure_settings_preference_title" msgid="2678534679408777268">"Kablosuz tercihleri"</string>
     <string name="wifi_configure_settings_preference_summary_wakeup_on" msgid="5714892572614655675">"Kablosuz özelliği otomatik olarak tekrar açılır"</string>
-    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Kablosuz özelliği otomatik olarak tekrar açılmaz"</string>
+    <string name="wifi_configure_settings_preference_summary_wakeup_off" msgid="286904094152909651">"Kablosuz ağ otomatik olarak tekrar açılmaz"</string>
     <string name="wifi_access_points" msgid="1647976498906871869">"Kablosuz ağlar"</string>
     <string name="wifi_menu_more_options" msgid="8318269834264035524">"Diğer seçenekler"</string>
     <string name="wifi_menu_p2p" msgid="4945665601551289791">"Kablosuz Doğrudan Bağlantı"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Kablosuz"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Kablosuz ağ bağlantısı kullanılamıyorsa mobil ağı kullanın"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Mobil ağ kullanılamıyorsa kablosuz ağı kullan"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Kablosuz ağ üzerinden çağrı. Kablosuz ağ bağlantısı kesilirse çağrı sonlandırılır."</string>
@@ -2296,8 +2298,8 @@
       <item quantity="one">%1$s yakın zamanda kısıtlandı</item>
     </plurals>
     <plurals name="battery_tip_restrict_summary" formatted="false" msgid="984148373944071669">
-      <item quantity="other">%2$d uygulama yüksek düzeyde arka plan pil kullanımına yol açıyor</item>
-      <item quantity="one">%1$s yüksek düzeyde arka plan pil kullanımına yol açıyor</item>
+      <item quantity="other">%2$d uygulama arka planda yüksek düzeyde pil kullanıyor</item>
+      <item quantity="one">%1$s arka planda yüksek düzeyde pil kullanıyor</item>
     </plurals>
     <plurals name="battery_tip_restrict_handled_summary" formatted="false" msgid="469696766640020557">
       <item quantity="other">Bu uygulamalar arka planda çalışamaz</item>
@@ -2450,7 +2452,7 @@
     <string name="battery_saver_auto_routine" msgid="886514412067906980">"Rutininize göre"</string>
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"Yüzdeye göre"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"Piliniz, genellikle şarj ettiğiniz saatten önce bitecek gibiyse Pil Tasarrufu etkinleştirilir"</string>
-    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"<xliff:g id="PERCENT">%1$s</xliff:g> düzeyinde açılacak"</string>
+    <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"Pil <xliff:g id="PERCENT">%1$s</xliff:g> olduğunda açılacak"</string>
     <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"Bir plan belirleyin"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"Tam olarak şarj edildiğinde kapat"</string>
     <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"Pil Tasarrufu, telefonunuzun gücü <xliff:g id="PERCENT">%1$s</xliff:g> olduğunda kapanır"</string>
@@ -2868,7 +2870,7 @@
     <string name="user_add_user_item_title" msgid="6835385073795492410">"Kullanıcı"</string>
     <string name="user_add_profile_item_title" msgid="4932743891449790664">"Kısıtlı profil"</string>
     <string name="user_add_user_title" msgid="2320897397066676472">"Yeni kullanıcı eklensin mi?"</string>
-    <string name="user_add_user_message_long" msgid="686637203224195465">"Ek kullanıcılar oluşturarak bu cihazı başkalarıyla paylaşabilirsiniz. Her kullanıcının uygulamalarla, duvar kağıdıyla ve başka ayarlarla özelleştirebileceği kendi alanı olur. Kullanıcılar ayrıca kablosuz ağ gibi herkesi etkileyen cihaz ayarlarını değiştirebilirler.\n\nYeni bir kullanıcı eklediğinizde, ilgili kişinin kendi alanını ayarlaması gerekir.\n\nHer kullanıcı diğer tüm kullanıcılar için uygulamaları güncelleyebilir."</string>
+    <string name="user_add_user_message_long" msgid="686637203224195465">"Ek kullanıcılar oluşturarak bu cihazı başkalarıyla paylaşabilirsiniz. Her kullanıcının uygulamalarla, duvar kağıdıyla ve başka ayarlarla özelleştirebileceği kendi alanı olur. Kullanıcılar ayrıca kablosuz ağ gibi herkesi etkileyen cihaz ayarlarını değiştirebilirler.\n\nYeni bir kullanıcı eklediğinizde, ilgili kişinin kendi alanını ayarlaması gerekir.\n\nHer kullanıcı diğer tüm kullanıcılar için uygulamaları güncelleyebilir. Erişilebilirlik ayarları ve hizmetleri yeni kullanıcıya aktarılamayabilir."</string>
     <string name="user_add_user_message_short" msgid="1802594476285458254">"Yeni bir kullanıcı eklediğinizde, bu kişinin kendi alanını ayarlaması gerekir.\n\nHerhangi bir kullanıcı, diğer tüm kullanıcılar için uygulamaları güncelleyebilir."</string>
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"Kullanıcı şimdi ayarlansın mı?"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"İlgili kişinin cihazı almak ve kendi alanını ayarlamak için müsait olduğundan emin olun"</string>
@@ -3709,7 +3711,7 @@
     <string name="high_power_off" msgid="5906679734326490426">"Pil kullanımı optimize ediliyor"</string>
     <string name="high_power_system" msgid="739584574711292753">"Pil optimizasyonu kullanılamıyor"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Pil optimizasyonu uygulanmasın. Bu seçenek, pilinizi daha hızlı tüketebilir."</string>
-    <string name="high_power_prompt_title" msgid="2805745781720454052">"Uygulamanın her zaman arka planda çalıştırılmasına izin verilsin mi?"</string>
+    <string name="high_power_prompt_title" msgid="2805745781720454052">"Uygulama arka planda çalışmaya devam etsin mi?"</string>
     <string name="high_power_prompt_body" msgid="8067395096053552289">"<xliff:g id="APP_NAME">%1$s</xliff:g> uygulamasının her zaman arka planda çalıştırılmasına izin vermeniz pil ömrünü kısaltabilir. \n\nBunu daha sonra Ayarlar &gt; Uygulamalar ve bildirimler seçeneğinden değiştirebilirsiniz."</string>
     <string name="battery_summary" msgid="4345690800899981339">"Son kez tamamen şarj olduktan sonra <xliff:g id="PERCENTAGE">%1$s</xliff:g> kullanıldı"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Güç yönetimi"</string>
diff --git a/tests/CarDeveloperOptions/res/values-uk/arrays.xml b/tests/CarDeveloperOptions/res/values-uk/arrays.xml
index 2409764..912df33 100644
--- a/tests/CarDeveloperOptions/res/values-uk/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-uk/arrays.xml
@@ -125,7 +125,7 @@
     <item msgid="1709949377823900951">"Слабкий"</item>
     <item msgid="7882129634982603782">"Слабкий"</item>
     <item msgid="6457357501905996224">"Задовільний"</item>
-    <item msgid="405271628162918841">"Добрий"</item>
+    <item msgid="405271628162918841">"Хороший"</item>
     <item msgid="999948812884919584">"Відмінний"</item>
   </string-array>
   <string-array name="data_usage_data_range">
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"працювати у фоновому режимі"</item>
     <item msgid="6423861043647911030">"спеціальні можливості: гучність"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Місцезнаходження"</item>
+    <item msgid="6656077694190491067">"Місцезнаходження"</item>
+    <item msgid="8790228218278477369">"Місцезнаходження"</item>
+    <item msgid="7836406246005211990">"Вібросигнал"</item>
+    <item msgid="3951439024549922598">"Читати контакти"</item>
+    <item msgid="8802152411647068">"Змінювати контакти"</item>
+    <item msgid="229544934599698735">"Читати журнал викликів"</item>
+    <item msgid="7396102294405899613">"Змінювати журнал викликів"</item>
+    <item msgid="3597797992398484655">"Перегляд календаря"</item>
+    <item msgid="2705975774250907343">"Змінювати календар"</item>
+    <item msgid="4668747371441932697">"Місцезнаходження"</item>
+    <item msgid="1487578921720243646">"Публікувати сповіщення"</item>
+    <item msgid="4636080349724146638">"Місцезнаходження"</item>
+    <item msgid="673510900286463926">"Телефонувати"</item>
+    <item msgid="542083422784609790">"Читати SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Писати SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Отримувати SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Отримувати SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Отримувати SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Отримувати SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Надсилати SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Читати SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Писати SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Змінювати налаштування"</item>
+    <item msgid="8705854389991425629">"Відображати зверху"</item>
+    <item msgid="5861356020344153651">"Отримувати доступ до сповіщень"</item>
+    <item msgid="78432174621628659">"Камера"</item>
+    <item msgid="3986116419882154794">"Записувати аудіо"</item>
+    <item msgid="4516840825756409490">"Відтворювати аудіо"</item>
+    <item msgid="6811712502798183957">"Читати буфер обміну"</item>
+    <item msgid="2780369012602289114">"Змінювати буфер обміну"</item>
+    <item msgid="2331359440170850868">"Кнопки медіа"</item>
+    <item msgid="6133599737122751231">"Активізація звуку"</item>
+    <item msgid="6844485713404805301">"Загальна гучність"</item>
+    <item msgid="1600379420669104929">"Гучність голосу"</item>
+    <item msgid="6296768210470214866">"Гучність дзвінка"</item>
+    <item msgid="510690696071629241">"Гучність медіа"</item>
+    <item msgid="406861638631430109">"Гучність будильника"</item>
+    <item msgid="4715864795872233884">"Гучність сповіщень"</item>
+    <item msgid="2311478519251301183">"Гучність Bluetooth"</item>
+    <item msgid="5133991377896747027">"Залишати активним"</item>
+    <item msgid="2464189519136248621">"Місцезнаходження"</item>
+    <item msgid="2062677934050803037">"Місцезнаходження"</item>
+    <item msgid="1735171933192715957">"Отримати статистику використання"</item>
+    <item msgid="1014093788778383554">"Вимкнути або ввімкнути мікрофон"</item>
+    <item msgid="4199297950608622850">"Показувати підказки"</item>
+    <item msgid="2527962435313398821">"Транслювати вміст"</item>
+    <item msgid="5117506254221861929">"Активувати VPN"</item>
+    <item msgid="8291198322681891160">"Написаний фоновий малюнок"</item>
+    <item msgid="7106921284621230961">"Допоміжна структура"</item>
+    <item msgid="4496533640894624799">"Допоміжний знімок екрана"</item>
+    <item msgid="2598847264853993611">"Переглядати статус телефона"</item>
+    <item msgid="9215610846802973353">"Додавати голосову пошту"</item>
+    <item msgid="9186411956086478261">"Використовувати протокол SIP"</item>
+    <item msgid="6884763100104539558">"Обробляти вихідні виклики"</item>
+    <item msgid="125513972170580692">"Відбиток пальця"</item>
+    <item msgid="2556071024281275619">"Датчики на тілі"</item>
+    <item msgid="617168514928339387">"Переглядати повідомлення Cell Broadcast"</item>
+    <item msgid="7134693570516523585">"Фіктивне місцезнаходження"</item>
+    <item msgid="7224489175375229399">"Переглядати дані про пам’ять"</item>
+    <item msgid="8472735063903258202">"Додавати дані в пам’ять і змінювати їх"</item>
+    <item msgid="4069276819909595110">"Вмикати екран"</item>
+    <item msgid="1228338896751121025">"Отримувати дані облікових записів"</item>
+    <item msgid="3181581793459233672">"Працювати у фоновому режимі"</item>
+    <item msgid="2340936043025374076">"Спеціальні можливості: гучність"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Коротка"</item>
     <item msgid="4816511817309094890">"Звичайне сповіщення"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Ніколи не дозволяти"</item>
     <item msgid="8184570120217958741">"Завжди дозволяти"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Звичайний"</item>
+    <item msgid="5101233285497327432">"Прийнятно"</item>
+    <item msgid="1555861583162930714">"Низька"</item>
+    <item msgid="1719683776264798117">"Критичний"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Нормальний"</item>
+    <item msgid="6107138933849816768">"Середній"</item>
+    <item msgid="182695359839047859">"Низька"</item>
+    <item msgid="8577246509202964244">"Критичний"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Постійний"</item>
     <item msgid="167418068739176448">"Перші дії"</item>
diff --git a/tests/CarDeveloperOptions/res/values-uk/strings.xml b/tests/CarDeveloperOptions/res/values-uk/strings.xml
index 38b465d..2816cc8 100644
--- a/tests/CarDeveloperOptions/res/values-uk/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-uk/strings.xml
@@ -85,8 +85,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Збільшуйте або зменшуйте текст на екрані."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Зменшити"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Збільшити"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Зразок тексту"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Чарівник країни Оз"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Глава 11. Дивовижне Смарагдове місто країни Оз"</string>
@@ -425,7 +424,7 @@
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Готово"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Налаштування за обличчям"</string>
     <string name="security_settings_face_settings_use_face_unlock_phone" msgid="318274519126401671">"Пристрій розблоковується"</string>
-    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Вхід у додатки та платежі"</string>
+    <string name="security_settings_face_settings_use_face_for_apps" msgid="5479369083370664351">"Вхід у додатки й оплата"</string>
     <string name="security_settings_face_settings_require_attention" msgid="2755140150841557225">"Розблоковувати, коли очі відкриті"</string>
     <string name="security_settings_face_settings_require_attention_details" msgid="2557060433599942587">"Використовуючи автентифікацію облич, відкрийте очі"</string>
     <string name="security_settings_face_settings_require_confirmation" msgid="7312024271060416438">"Завжди просити підтвердження"</string>
@@ -836,7 +835,7 @@
     <string name="wifi_display_settings_title" msgid="8718182672694575456">"Трансляція"</string>
     <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"Увімкнути бездротовий екран"</string>
     <string name="wifi_display_no_devices_found" msgid="186501729518830451">"Не знайдено пристроїв поблизу."</string>
-    <string name="wifi_display_status_connecting" msgid="3799827425457383349">"Під’єднуються"</string>
+    <string name="wifi_display_status_connecting" msgid="3799827425457383349">"Підключення"</string>
     <string name="wifi_display_status_connected" msgid="85692409327461403">"Під’єднані"</string>
     <string name="wifi_display_status_in_use" msgid="7646114501132773174">"Використовується"</string>
     <string name="wifi_display_status_not_available" msgid="5600448733204688205">"Недоступно"</string>
@@ -953,16 +952,16 @@
     <string name="please_select_phase2" msgid="5848080896810435677">"Друга фаза автентифікації"</string>
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"Сертифікат ЦС"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Домен"</string>
-    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Сертиф. корист-ча"</string>
-    <string name="wifi_eap_identity" msgid="5280457017705738773">"Ідентифік."</string>
-    <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Анонімна ідентиф-ція"</string>
+    <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Сертифікат користувача"</string>
+    <string name="wifi_eap_identity" msgid="5280457017705738773">"Ідентифікація"</string>
+    <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Анонімна ідентифікація"</string>
     <string name="wifi_password" msgid="6942983531275177771">"Пароль"</string>
     <string name="wifi_show_password" msgid="7878398590772942202">"Показати пароль"</string>
     <string name="wifi_ap_band_config" msgid="6565016368079288433">"Виберіть діапазон частот точки доступу"</string>
     <string name="wifi_ap_choose_auto" msgid="7927637960569365785">"Автоматично"</string>
     <string name="wifi_ap_choose_2G" msgid="43198403259714736">"Діапазон 2,4 ГГц"</string>
     <string name="wifi_ap_choose_5G" msgid="2624859713183683146">"Діапазон 5 ГГц"</string>
-    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Бажано використовувати діапазон 5,0 ГГц"</string>
+    <string name="wifi_ap_prefer_5G" msgid="8339172330471170142">"Діапазон 5,0 ГГц (рекомендовано)"</string>
     <string name="wifi_ap_2G" msgid="5793110086517338494">"2,4 ГГц"</string>
     <string name="wifi_ap_5G" msgid="4584892544393675403">"5 ГГц"</string>
     <string name="wifi_ap_band_select_one" msgid="4409754936554360355">"Виберіть принаймні один діапазон для точки доступу Wi-Fi:"</string>
@@ -1139,7 +1138,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Мобільні"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Використовувати мобільну мережу, коли немає Wi-Fi"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Використовувати Wi-Fi, якщо немає мобільної мережі"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Телефонувати через Wi-Fi. У разі втрати з’єднання з Wi-Fi виклик буде завершено."</string>
@@ -1147,7 +1149,7 @@
     <string name="wifi_calling_off_explanation_2" msgid="8648609693875720408"></string>
     <string name="emergency_address_title" msgid="5779915349686787024">"Екстрена адреса"</string>
     <string name="emergency_address_summary" msgid="478668478569851714">"Використовується як адреса, коли ви телефонуєте в екстрені служби через Wi-Fi"</string>
-    <string name="private_dns_help_message" msgid="7633526525131196650"><annotation id="url">"Докладніше"</annotation>" про функції приватної DNS"</string>
+    <string name="private_dns_help_message" msgid="7633526525131196650"><annotation id="url">"Докладніше"</annotation>" про приватний DNS-сервер"</string>
     <string name="wifi_calling_pref_managed_by_carrier" msgid="5458050015417972072">"Налаштуванням керує оператор"</string>
     <string name="wifi_calling_settings_activation_instructions" msgid="2863642668648110908">"Активувати дзвінки через Wi-Fi"</string>
     <string name="wifi_calling_turn_on" msgid="1212277809455062043">"Увімкнути дзвінки через Wi-Fi"</string>
@@ -1683,8 +1685,8 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"Вставте SIM-карту та перезапустіть"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Під’єднайтеся до Інтернету"</string>
     <string name="location_title" msgid="8664674161765477168">"Моє місцезнах."</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Місцезнах.для робочого профілю"</string>
-    <string name="location_app_level_permissions" msgid="1298041503927632960">"Дозвіл додаткам"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Геодані для робочого профілю"</string>
+    <string name="location_app_level_permissions" msgid="1298041503927632960">"Дозвіл для додатків"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Передавання геоданих вимкнено"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
       <item quantity="one">Додатків із необмеженим доступом: <xliff:g id="BACKGROUND_LOCATION_APP_COUNT_2">%1$d</xliff:g> з <xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g></item>
@@ -1694,7 +1696,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Доступ до останніх геоданих"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Переглянути деталі"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Жодна програма не запитувала місцезнаходження останнім часом"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Останнім часом додатки не запитували доступ до геоданих"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Немає додатків, які нещодавно отримували доступ до геоданих"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Значне використання заряду"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Низьке використання заряду"</string>
@@ -1805,7 +1807,7 @@
     <string name="lockpattern_settings_enable_visible_pattern_title" msgid="4935583222709647096">"Зробити ключ видимим"</string>
     <string name="lockpattern_settings_enable_visible_pattern_title_profile" msgid="5338893138982642228">"Зробити ключ профілю видимим"</string>
     <string name="lockpattern_settings_enable_tactile_feedback_title" msgid="3203621862806531947">"Вібрація під час дотику"</string>
-    <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Блокування кнопкою живлення"</string>
+    <string name="lockpattern_settings_enable_power_button_instantly_locks" msgid="5890335732200257777">"Блокувати кнопкою живлення"</string>
     <string name="lockpattern_settings_power_button_instantly_locks_summary" msgid="1279989004145567840">"Якщо <xliff:g id="TRUST_AGENT_NAME">%1$s</xliff:g> не запобігає блокуванню"</string>
     <string name="lockpattern_settings_choose_lock_pattern" msgid="9042142745571386381">"Налашт. ключ розблок."</string>
     <string name="lockpattern_settings_change_lock_pattern" msgid="1456643060737114885">"Змінити ключ розблокув."</string>
@@ -2671,7 +2673,7 @@
     <string name="work_mode_label" msgid="6845849194740195757">"Робочий профіль"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Профілем керує ваша організація"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"Додатки й сповіщення вимкнено"</string>
-    <string name="remove_managed_profile_label" msgid="4625542553784793536">"Видалити службовий профіль"</string>
+    <string name="remove_managed_profile_label" msgid="4625542553784793536">"Видалити робочий профіль"</string>
     <string name="background_data" msgid="8275750862371471171">"Фонові дані"</string>
     <string name="background_data_summary" msgid="799640633948841990">"Програми можуть будь-коли синхроніз., надсил. й отрим. дані"</string>
     <string name="background_data_dialog_title" msgid="8306650658158895976">"Вимкн. фонові дані?"</string>
@@ -4238,10 +4240,10 @@
       <item quantity="other"><xliff:g id="NUMBER">%s</xliff:g> секунди</item>
     </plurals>
     <string name="automatic_storage_manager_settings" msgid="2403621409625820182">"Керувати сховищем"</string>
-    <string name="automatic_storage_manager_text" msgid="4270379105066667493">"Щоб звільнити місце, диспетчер пам’яті видаляє з пристрою резервні копії фото й відео."</string>
+    <string name="automatic_storage_manager_text" msgid="4270379105066667493">"Щоб звільнити місце, менеджер сховища видаляє з пристрою фото й відео, для яких є резервні копії."</string>
     <string name="automatic_storage_manager_days_title" msgid="1783767804707813799">"Видалити фото й відео"</string>
-    <string name="automatic_storage_manager_preference_title" msgid="4668642150512639466">"Диспетчер пам’яті"</string>
-    <string name="automatic_storage_manager_master_switch_title" msgid="1456978117739582562">"Використовувати диспетчер пам’яті"</string>
+    <string name="automatic_storage_manager_preference_title" msgid="4668642150512639466">"Менеджер сховища"</string>
+    <string name="automatic_storage_manager_master_switch_title" msgid="1456978117739582562">"Використовувати менеджер сховища"</string>
     <string name="deletion_helper_automatic_title" msgid="4370975149425263205">"Автоматично"</string>
     <string name="deletion_helper_manual_title" msgid="1011785013431162078">"Вручну"</string>
     <string name="deletion_helper_preference_title" msgid="797270307034242206">"Звільнити місце"</string>
@@ -4274,7 +4276,7 @@
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Торкніться, щоб перевірити пристрій"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Щоб перевірити час, сповіщення та іншу інформацію, торкніться екрана."</string>
     <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Використовувати відбиток для перегляду сповіщень"</string>
-    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Гортання сканером"</string>
+    <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Сканер відбитків"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Щоб переглянути сповіщення, проведіть пальцем униз по сканеру відбитків на задній панелі телефона."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Щоб переглянути сповіщення, проведіть пальцем униз по сканеру відбитків на задній панелі планшета."</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="device" msgid="7950264130913070035">"Щоб переглянути сповіщення, проведіть пальцем униз по сканеру відбитків на задній панелі пристрою."</string>
@@ -4292,7 +4294,7 @@
     <string name="web_action_section_title" msgid="5563229447734734662">"Додатки з миттєвим запуском"</string>
     <string name="instant_apps_settings" msgid="879003203555847537">"Параметри додатків із миттєвим запуском"</string>
     <string name="domain_url_section_title" msgid="206403507921518321">"Установлені додатки"</string>
-    <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"Зараз пам’яттю керує диспетчер пам’яті"</string>
+    <string name="automatic_storage_manager_activation_warning" msgid="2630083316417707308">"Пам’ять пристрою тепер керується менеджером сховища"</string>
     <string name="account_for_section_header" msgid="5975241715840642563">"Облікові записи (<xliff:g id="USER_NAME">%1$s</xliff:g>)"</string>
     <string name="configure_section_header" msgid="6988981883075615136">"Налаштування"</string>
     <string name="auto_sync_account_title" msgid="2394463123733529506">"Автоматично синхронізувати дані"</string>
@@ -4416,11 +4418,11 @@
     <string name="default_theme" msgid="5986996377385956138">"За умовчанням"</string>
     <string name="show_operator_name_title" msgid="5056163028128447308">"Назва мережі"</string>
     <string name="show_operator_name_summary" msgid="6352180285743777497">"Показувати назву мережі в рядку стану"</string>
-    <string name="storage_manager_indicator" msgid="4255140732848476875">"Диспетчер пам’яті: <xliff:g id="STATUS">^1</xliff:g>"</string>
+    <string name="storage_manager_indicator" msgid="4255140732848476875">"Менеджер сховища: <xliff:g id="STATUS">^1</xliff:g>"</string>
     <string name="storage_manager_indicator_off" msgid="6404056007102580777">"Вимкнено"</string>
     <string name="storage_manager_indicator_on" msgid="5295306384982062320">"Увімкнено"</string>
     <string name="install_type_instant" msgid="6248487669862821874">"Додаток із миттєвим запуском"</string>
-    <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"Вимкнути диспетчер пам’яті?"</string>
+    <string name="automatic_storage_manager_deactivation_warning" msgid="7867793739491286374">"Вимкнути менеджер сховища?"</string>
     <string name="storage_movies_tv" msgid="7282484273991655296">"Фільми й серіали"</string>
     <string name="carrier_provisioning" msgid="3309125279191534469">"Інформація про ініціалізацію оператора"</string>
     <string name="trigger_carrier_provisioning" msgid="6284005970057901477">"Активатор ініціалізації оператора"</string>
diff --git a/tests/CarDeveloperOptions/res/values-ur/arrays.xml b/tests/CarDeveloperOptions/res/values-ur/arrays.xml
index e35712a..6c63b7b 100644
--- a/tests/CarDeveloperOptions/res/values-ur/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-ur/arrays.xml
@@ -38,7 +38,16 @@
     <item msgid="5827960506924849753">"10 منٹ"</item>
     <item msgid="6677424950124253938">"30 منٹ"</item>
   </string-array>
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"کبھی نہیں"</item>
+    <item msgid="2517785806387977252">"15 سیکنڈ"</item>
+    <item msgid="6347954399441173672">"30 سیکنڈ"</item>
+    <item msgid="4858305253279921789">"1 منٹ"</item>
+    <item msgid="8109273437140044073">"2 منٹ"</item>
+    <item msgid="2788593551142462622">"5 منٹ"</item>
+    <item msgid="8012672183888404961">"10 منٹ"</item>
+    <item msgid="8271452751594598661">"30 منٹ"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"فوری طور پر"</item>
     <item msgid="2038544972632026612">"5 سیکنڈ"</item>
@@ -50,17 +59,47 @@
     <item msgid="811192536981678974">"10 منٹ"</item>
     <item msgid="7258394417241706272">"30 منٹ"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"چھوٹا"</item>
+    <item msgid="591935967183159581">"ڈیفالٹ"</item>
+    <item msgid="1714184661981538355">"بڑا"</item>
+    <item msgid="6195563047686707484">"سب سے بڑا"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"اسکین کر رہا ہے…"</item>
+    <item msgid="5597394826455877834">"مربوط ہو رہا ہے…"</item>
+    <item msgid="5848277343965362748">"توثیق ہو رہی ہے…"</item>
+    <item msgid="3391238031431440676">"IP پتہ حاصل کر رہا ہے…"</item>
+    <item msgid="5257597310494000224">"منسلک"</item>
+    <item msgid="8472497592913050396">"معطل شدہ"</item>
+    <item msgid="1228072488815999109">"منقطع کیا جارہا ہے…"</item>
+    <item msgid="7253087004422991731">"منقطع"</item>
+    <item msgid="4169850917304751227">"ناکام"</item>
+    <item msgid="6266658166690831131">"مسدود ہے"</item>
+    <item msgid="4517230805854909775">"عارضی طور پر خراب کنکشن سے اجتناب کر رہا ہے"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"اسکین ہو رہا ہے…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے مربوط ہو رہا ہے…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> کے ساتھ توثیق ہو رہی ہے…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے IP پتہ حاصل کر رہا ہے…"</item>
+    <item msgid="3283243151651124831">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے مربوط ہو گیا"</item>
+    <item msgid="6600156231416890902">"معطل شدہ"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> سے منقطع ہو رہا ہے…"</item>
+    <item msgid="3980154971187953257">"منقطع"</item>
+    <item msgid="2847316776634969068">"ناکام"</item>
+    <item msgid="4390990424746035383">"مسدود ہے"</item>
+    <item msgid="3618248791367063949">"عارضی طور پر خراب کنکشن سے اجتناب کر رہا ہے"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"پش بٹن"</item>
+    <item msgid="7401896200768713930">"ہمسر آلہ سے PIN"</item>
+    <item msgid="4526848028011846710">"اس آلہ سے PIN"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"منسلک"</item>
     <item msgid="983792611851499732">"مدعو"</item>
@@ -82,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"ناقص"</item>
+    <item msgid="7882129634982603782">"کمزور"</item>
+    <item msgid="6457357501905996224">"مناسب"</item>
+    <item msgid="405271628162918841">"اچھا"</item>
+    <item msgid="999948812884919584">"عمدہ"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"آخری 30 دن"</item>
     <item msgid="3211287705232736964">"استعمال کا دور سیٹ کریں…"</item>
@@ -119,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"جامد"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"کوئی نہیں"</item>
     <item msgid="1464741437353223198">"مینوئل"</item>
@@ -239,11 +286,73 @@
     <item msgid="1165623660533024666">"پس منظر میں چلائیں"</item>
     <item msgid="6423861043647911030">"ایکسیسبیلٹی والیوم"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"مقام"</item>
+    <item msgid="6656077694190491067">"مقام"</item>
+    <item msgid="8790228218278477369">"مقام"</item>
+    <item msgid="7836406246005211990">"وائبریٹ"</item>
+    <item msgid="3951439024549922598">"رابطوں کو پڑھیں"</item>
+    <item msgid="8802152411647068">"رابطوں میں ترمیم کریں"</item>
+    <item msgid="229544934599698735">"کال لاگ پڑھیں"</item>
+    <item msgid="7396102294405899613">"کال لاگ میں ترمیم کریں"</item>
+    <item msgid="3597797992398484655">"کیلنڈر پڑھیں"</item>
+    <item msgid="2705975774250907343">"کیلنڈر میں ترمیم کریں"</item>
+    <item msgid="4668747371441932697">"مقام"</item>
+    <item msgid="1487578921720243646">"اطلاع شائع کریں"</item>
+    <item msgid="4636080349724146638">"مقام"</item>
+    <item msgid="673510900286463926">"فون پر کال کریں"</item>
+    <item msgid="542083422784609790">"SMS/MMS پڑھیں"</item>
+    <item msgid="1033780373029588436">"SMS/MMS لکھیں"</item>
+    <item msgid="5647111115517787488">"SMS/MMS وصول کریں"</item>
+    <item msgid="8591105601108455893">"SMS/MMS وصول کریں"</item>
+    <item msgid="7730995008517841903">"SMS/MMS وصول کریں"</item>
+    <item msgid="2613033109026626086">"SMS/MMS وصول کریں"</item>
+    <item msgid="3037159047591081136">"SMS/MMS بھیجیں"</item>
+    <item msgid="4726682243833913568">"SMS/MMS پڑھیں"</item>
+    <item msgid="6555678522277865572">"SMS/MMS لکھیں"</item>
+    <item msgid="6981734935578130884">"ترتیبات میں ترمیم کریں"</item>
+    <item msgid="8705854389991425629">"سب سے اوپر ڈرا کریں"</item>
+    <item msgid="5861356020344153651">"اطلاعات تک رسائی حاصل کریں"</item>
+    <item msgid="78432174621628659">"کیمرا"</item>
+    <item msgid="3986116419882154794">"آڈیو ریکارڈ کریں"</item>
+    <item msgid="4516840825756409490">"آڈیو چلائیں"</item>
+    <item msgid="6811712502798183957">"کلپ بورڈ پڑھیں"</item>
+    <item msgid="2780369012602289114">"کلپ بورڈ میں ترمیم کریں"</item>
+    <item msgid="2331359440170850868">"میڈیا بٹنز"</item>
+    <item msgid="6133599737122751231">"آڈیو فوکس"</item>
+    <item msgid="6844485713404805301">"ماسٹر والیوم"</item>
+    <item msgid="1600379420669104929">"صوتی والیوم"</item>
+    <item msgid="6296768210470214866">"رنگ والیوم"</item>
+    <item msgid="510690696071629241">"میڈیا والیوم"</item>
+    <item msgid="406861638631430109">"الارم والیوم"</item>
+    <item msgid="4715864795872233884">"اطلاع کا والیوم"</item>
+    <item msgid="2311478519251301183">"بلوٹوتھ کا والیوم"</item>
+    <item msgid="5133991377896747027">"بیدار رکھیں"</item>
+    <item msgid="2464189519136248621">"مقام"</item>
+    <item msgid="2062677934050803037">"مقام"</item>
+    <item msgid="1735171933192715957">"استعمال کے اعداد و شمار حاصل کریں"</item>
+    <item msgid="1014093788778383554">"مائیکروفون کو خاموش کریں/اس کی آواز چلائیں"</item>
+    <item msgid="4199297950608622850">"ٹوسٹ دکھائیں"</item>
+    <item msgid="2527962435313398821">"میڈیا پروجیکٹ کریں"</item>
+    <item msgid="5117506254221861929">"VPN کو فعال کریں"</item>
+    <item msgid="8291198322681891160">"لکھنے کا وال پیپر"</item>
+    <item msgid="7106921284621230961">"اسٹرکچر اسسٹ کریں"</item>
+    <item msgid="4496533640894624799">"اسکرین شاٹ اسسٹ کریں"</item>
+    <item msgid="2598847264853993611">"فون اسٹیٹ پڑھیں"</item>
+    <item msgid="9215610846802973353">"صوتی میل شامل کریں"</item>
+    <item msgid="9186411956086478261">"سِپ استعمال کریں"</item>
+    <item msgid="6884763100104539558">"باہر جانے والی کال پر کاروائی کریں"</item>
+    <item msgid="125513972170580692">"فنگر پرنٹ"</item>
+    <item msgid="2556071024281275619">"باڈی سینسرز"</item>
+    <item msgid="617168514928339387">"سیل نشریات پڑھیں"</item>
+    <item msgid="7134693570516523585">"مقام فرضی بنائیں"</item>
+    <item msgid="7224489175375229399">"اسٹوریج پڑھیں"</item>
+    <item msgid="8472735063903258202">"اسٹوریج لکھیں"</item>
+    <item msgid="4069276819909595110">"اسکرین آن کریں"</item>
+    <item msgid="1228338896751121025">"اکاؤنٹس حاصل کریں"</item>
+    <item msgid="3181581793459233672">"پس منظر میں چلائیں"</item>
+    <item msgid="2340936043025374076">"ایکسیسبیلٹی والیوم"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"مختصر"</item>
     <item msgid="4816511817309094890">"متوسط"</item>
@@ -260,7 +369,13 @@
     <item msgid="4627069151979553527">"Cursive"</item>
     <item msgid="6896773537705206194">"بڑے حروف چھوٹے سائز میں"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"بہت چھوٹا"</item>
+    <item msgid="5091603983404027034">"چھوٹا"</item>
+    <item msgid="176844712416932112">"عام"</item>
+    <item msgid="2784236342175159295">"بڑا"</item>
+    <item msgid="218913203203160606">"بہت بڑا"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"ڈیفالٹ"</item>
     <item msgid="6488643537808152001">"کوئی نہیں"</item>
@@ -275,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"ایپ کے ڈیفالٹس استعمال کریں"</item>
+    <item msgid="8611890312638868524">"سیاہ پر سفید"</item>
+    <item msgid="5891360837786277638">"سفید پر سیاہ"</item>
+    <item msgid="2798457065945456853">"سیاہ پر پیلا"</item>
+    <item msgid="5799049811524553967">"نیلے پر پیلا"</item>
+    <item msgid="3673930830658169860">"حسب ضرورت"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"پہلے سے اشتراک کردہ کلیدوں کے ساتھ L2TP/IPSec VPN"</item>
@@ -288,15 +410,32 @@
     <item msgid="2958623927055120839">"کوئی نہیں"</item>
     <item msgid="1157046369795346308">"مینوئل"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"منقطع"</item>
+    <item msgid="8754480102834556765">"آغاز کیا جا رہا ہے…"</item>
+    <item msgid="3351334355574270250">"مربوط ہو رہا ہے…"</item>
+    <item msgid="8303882153995748352">"منسلک"</item>
+    <item msgid="9135049670787351881">"ٹائم آؤٹ"</item>
+    <item msgid="2124868417182583926">"ناکام"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"پوچھیں"</item>
     <item msgid="7718817231348607934">"کبھی اجازت نہ دیں"</item>
     <item msgid="8184570120217958741">"ہمیشہ اجازت دیں"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"عام"</item>
+    <item msgid="5101233285497327432">"معتدل"</item>
+    <item msgid="1555861583162930714">"کم"</item>
+    <item msgid="1719683776264798117">"انتہائی کم"</item>
+    <item msgid="1567326459340152525">"؟"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"عام"</item>
+    <item msgid="6107138933849816768">"متوسط"</item>
+    <item msgid="182695359839047859">"کم"</item>
+    <item msgid="8577246509202964244">"انتہائی کم"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"استقلال پذیر"</item>
     <item msgid="167418068739176448">"سرفہرست سرگرمی"</item>
diff --git a/tests/CarDeveloperOptions/res/values-ur/strings.xml b/tests/CarDeveloperOptions/res/values-ur/strings.xml
index 89383c8..7afdece 100644
--- a/tests/CarDeveloperOptions/res/values-ur/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-ur/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"اسکرین پر موجود متن کو چھوٹا یا بڑا کریں۔"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"چھوٹا کریں"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"بڑا کریں"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis.‎"</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"نمونہ متن"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"اوز کا شاندار جادوگر"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"گیارھواں باب: اوز کا شاندار زمردی شہر"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"آپ کو پورٹ فیلڈ مکمل کرنے کی ضرورت ہے۔"</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"اگر میزبان فیلڈ خالی ہے تو پورٹ فیلڈ لازمی طور پر خالی ہونی چاہیے۔"</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"آپ کے ذریعے ٹائپ کردہ پورٹ درست نہیں ہے۔"</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"HTTP پراکسی کا استعمال براؤزر کے ذریعے ہوتا ہے لیکن ممکن ہے دوسری ایپس اسے استعمال نہ کریں۔"</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"براؤزر HTTP پراکسی کا استعمال کرتا ہے لیکن ممکن ہے دوسری ایپس اسے استعمال نہ کریں۔"</string>
     <string name="proxy_url_title" msgid="882042361706435904">"PAC URL:‎ "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL بینڈ وڈتھ (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL بینڈ وڈتھ (kbps):"</string>
@@ -910,8 +909,8 @@
     <string name="wifi_signal" msgid="696548364467704808">"سگنل کی قوت"</string>
     <string name="wifi_status" msgid="3439931558930689940">"اسٹیٹس"</string>
     <string name="tx_wifi_speed" msgid="2571810085003261073">"ترسیل کے لنک کی رفتار"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"لنک کی رفتار وصول کریں"</string>
-    <string name="wifi_frequency" msgid="6132852924995724246">"تعدد"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"وصولی کے لنک کی رفتار"</string>
+    <string name="wifi_frequency" msgid="6132852924995724246">"فریکوئنسی"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"IP پتہ"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"محفوظ کردہ بذریعہ"</string>
     <string name="passpoint_content" msgid="340527524510304327">"<xliff:g id="NAME">%1$s</xliff:g> اسنادات"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"‎@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"‎@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"موبائل"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"اگر Wi‑Fi دستیاب نہیں ہے تو موبائل نیٹ ورک استعمال کریں"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"اگر موبائل نیٹ ورک دستیاب نہ ہو تو Wi‑Fi استعمال کریں"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi پر کال کریں۔ اگر Wi‑Fi منقطع ہو جاتا ہے تو کال ختم ہو جائے گی۔"</string>
@@ -1219,7 +1221,7 @@
     <string name="night_display_status_title" msgid="1727020934735770319">"اسٹیٹس"</string>
     <string name="night_display_temperature_title" msgid="8375126629902616296">"شدت"</string>
     <string name="night_display_summary_off" msgid="8850539785332228069">"آف / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"کبھی بھی خودکار طور پر آن نہیں ہوگا"</string>
+    <string name="night_display_summary_off_auto_mode_never" msgid="8618824386434992487">"کبھی بھی خودکار طور پر آن نہیں ہو گی"</string>
     <string name="night_display_summary_off_auto_mode_custom" msgid="596847003171394411">"<xliff:g id="ID_1">%1$s</xliff:g> پر خودکار طور پر آن ہو جائے گا"</string>
     <string name="night_display_summary_off_auto_mode_twilight" msgid="4071750976585359952">"غروب آفتاب پر خودکار طور پر آن ہو جائے گا"</string>
     <string name="night_display_summary_on" msgid="6580571388791426596">"آن / <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -1687,7 +1689,7 @@
     <string name="contributors_title" msgid="6800028420806884340">"معاونین"</string>
     <string name="manual" msgid="5431859421432581357">"مینوئل"</string>
     <string name="regulatory_labels" msgid="380968489247381025">"ریگولیٹری لیبلز"</string>
-    <string name="safety_and_regulatory_info" msgid="7113766428000920132">"حفاظتی اور انضباطی مینوئل"</string>
+    <string name="safety_and_regulatory_info" msgid="7113766428000920132">"حفاظتی اور ریگولیٹری مینوئل"</string>
     <string name="copyright_title" msgid="3847703367689932190">"کاپی رائٹ"</string>
     <string name="license_title" msgid="7582145947873528540">"لائسنس"</string>
     <string name="terms_title" msgid="1804549588198223771">"شرائط و ضوابط"</string>
@@ -1843,7 +1845,7 @@
     <string name="reset_app_preferences" msgid="1426500030595212077">"ایپ کی ترجیحات کو ری سیٹ کریں"</string>
     <string name="reset_app_preferences_title" msgid="792909865493673598">"ایپ کی ترجیحات کو ری سیٹ کریں؟"</string>
     <string name="reset_app_preferences_desc" msgid="7935273005301096031">"اس سے مندرجہ ذیل کیلئے تمام ترجیحات ری سیٹ ہو جائیں گی:\n\n "<li>"غیر فعال ایپس"</li>\n" "<li>"غیر فعال ایپس کی اطلاعات"</li>\n" "<li>"کارروائیوں کیلئے ڈیفالٹ ایپلیکیشنز"</li>\n" "<li>"ایپس کیلئے پس منظر کے ڈیٹا کی پابندیاں"</li>\n" "<li>"کوئی اجازتی پابندیاں"</li>\n\n" آپ کسی ایپ کے ڈیٹا سے محروم نہیں ہوں گے۔"</string>
-    <string name="reset_app_preferences_button" msgid="2041894727477934656">"ایپس کو دوبارہ ترتیب دیں"</string>
+    <string name="reset_app_preferences_button" msgid="2041894727477934656">"ایپس کو ری سیٹ کریں"</string>
     <string name="manage_space_text" msgid="6166469422303124302">"خالی جگہ کا نظم کریں"</string>
     <string name="filter" msgid="2426943916212457962">"فلٹر"</string>
     <string name="filter_dlg_title" msgid="115313222190512670">"فلٹر کے اختیارات منتخب کریں"</string>
@@ -2035,7 +2037,7 @@
     <string name="accessibility_settings" msgid="9140621093888234485">"ایکسیسبیلٹی"</string>
     <string name="accessibility_settings_title" msgid="1687226556576913576">"ایکسیسبیلٹی ترتیبات"</string>
     <string name="accessibility_settings_summary" msgid="5742379519336396561">"اسکرین قارئین، ڈسپلے، تعامل کے کنٹرولز"</string>
-    <string name="vision_settings_title" msgid="7315352351051423944">"بصارتی ترتیبات"</string>
+    <string name="vision_settings_title" msgid="7315352351051423944">"بصری ترتیبات"</string>
     <string name="vision_settings_description" msgid="3476589459009287332">"آپ اس آلہ کو اپنی ضروریات کے مطابق حسب ضرورت بنا سکتے ہیں۔ یہ ایکسیسبیلٹی خصوصیات بعد میں ترتیبات میں تبدیل ہو سکتی ہیں۔"</string>
     <string name="vision_settings_suggestion_title" msgid="7268661419110951128">"فونٹ سائز تبدیل کریں"</string>
     <string name="screen_reader_category_title" msgid="6300714148519645544">"اسکرین ریڈرز"</string>
@@ -2873,7 +2875,7 @@
     <string name="user_setup_dialog_title" msgid="6748950002206392396">"صارف کو ابھی سیٹ اپ کریں؟"</string>
     <string name="user_setup_dialog_message" msgid="2988559933258353919">"یقینی بنائیں کہ وہ شخص آلہ لینے اور اپنی جگہ کو سیٹ اپ کرنے کیلئے دستیاب ہے"</string>
     <string name="user_setup_profile_dialog_message" msgid="7611900802824048526">"پروفائل کو ابھی ترتیب دیں؟"</string>
-    <string name="user_setup_button_setup_now" msgid="4941459406266856176">"ابھی ترتیب دیں"</string>
+    <string name="user_setup_button_setup_now" msgid="4941459406266856176">"ابھی سیٹ اپ کریں"</string>
     <string name="user_setup_button_setup_later" msgid="6596031428556518752">"ابھی نہیں"</string>
     <string name="user_cannot_manage_message" product="tablet" msgid="7108992906553210763">"صرف ٹیبلٹ کا مالک صارفین کا نظم کر سکتا ہے۔"</string>
     <string name="user_cannot_manage_message" product="default" msgid="915260531390608092">"صرف فون کا مالک صارفین کا نظم کر سکتا ہے۔"</string>
@@ -2923,7 +2925,7 @@
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"علاوہ اس کے کہ کوئی دوسری ادائیگی ایپ کھلی ہو"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"تھپتھپائیں اور ادائیگی کریں ٹرمینل پر، اس کے ساتھ ادائیگی کریں:"</string>
     <string name="nfc_how_it_works_title" msgid="6531433737926327904">"ٹرمینل پر ادا کرنا"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ادائیگی ایپ سیٹ اپ کریں۔ پھر بس اپنے فون کے پچھلے حصے کو کسی بھی بغیر رابطے والی علامت کے ٹرمینل سے لگائیں۔"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"ادائیگی کی ایپ سیٹ اپ کریں۔ پھر بس اپنے فون کے پچھلے حصے کو کسی بھی بغیر رابطے والی علامت کے ٹرمینل کے پاس پکڑ کر رکھیں۔"</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"سمجھ آ گئی"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"مزید…"</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"اپنی ترجیح کے بطور سیٹ کریں؟"</string>
@@ -3704,7 +3706,7 @@
     </plurals>
     <string name="high_power_filter_on" msgid="5294209328473386403">"بہترین بنائی گئی نہیں ہیں"</string>
     <string name="high_power_on" msgid="3573501822510580334">"بہترین بنائی گئی نہیں ہیں"</string>
-    <string name="high_power_off" msgid="5906679734326490426">"بیٹری استعمال کو بہترین بنا رہی ہے"</string>
+    <string name="high_power_off" msgid="5906679734326490426">"بیٹری استعمال کو بہتر بنایا جا رہا ہے"</string>
     <string name="high_power_system" msgid="739584574711292753">"بیٹری بہترین بنانا دستیاب نہیں ہے"</string>
     <string name="high_power_desc" msgid="333756885680362741">"بیٹری بہترین بنانا لاگو مت کریں۔ ممکن ہے یہ آپ کی بیٹری مزید تیزی سے ختم کر دے۔"</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"ایپ کو ہمیشہ پس منظر میں چلنے دیں؟"</string>
@@ -4067,7 +4069,7 @@
     <string name="premium_sms_warning" msgid="7604011651486294515">"ہو سکتا ہے آپ کو پریمیم SMS کے پیسے ادا کرنا پڑیں اور یہ آپ کے کیرئیر بلز میں شامل ہو جائیں گے۔ اگر آپ ایک ایپ کیلئے اجازت فعال کرتے ہیں تو آپ اس ایپ کو استعمال کرکے آپ پریمیم SMS بھیج پائیں گے۔"</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"پریمیم SMS رسائی"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"آف"</string>
-    <string name="bluetooth_connected_summary" msgid="439920840053965217">"<xliff:g id="ID_1">%1$s</xliff:g> سے منسلک کردہ"</string>
+    <string name="bluetooth_connected_summary" msgid="439920840053965217">"‫<xliff:g id="ID_1">%1$s</xliff:g> سے منسلک کردہ"</string>
     <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"متعدد آلات سے منسلک کردہ"</string>
     <string name="demo_mode" msgid="3831081808592541104">"سسٹم UI ڈیمو موڈ"</string>
     <string name="dark_ui_mode" msgid="703844190192599217">"تھیم"</string>
diff --git a/tests/CarDeveloperOptions/res/values-uz/arrays.xml b/tests/CarDeveloperOptions/res/values-uz/arrays.xml
index 2dfcf75..818d6eb 100644
--- a/tests/CarDeveloperOptions/res/values-uz/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-uz/arrays.xml
@@ -29,8 +29,25 @@
     <item msgid="5194868215515664953">"Tinch okeani"</item>
     <item msgid="7044520255415007865">"Hammasi"</item>
   </string-array>
-    <!-- no translation found for screen_timeout_entries:0 (8596143519087753804) -->
-    <!-- no translation found for dream_timeout_entries:7 (8271452751594598661) -->
+  <string-array name="screen_timeout_entries">
+    <item msgid="8596143519087753804">"15 soniya"</item>
+    <item msgid="772029947136115322">"30 soniya"</item>
+    <item msgid="8743663928349474087">"1 daqiqa"</item>
+    <item msgid="1506508631223164814">"2 daqiqa"</item>
+    <item msgid="8664703938127907662">"5 daqiqa"</item>
+    <item msgid="5827960506924849753">"10 daqiqa"</item>
+    <item msgid="6677424950124253938">"30 daqiqa"</item>
+  </string-array>
+  <string-array name="dream_timeout_entries">
+    <item msgid="6487043225269853023">"Hech qachon"</item>
+    <item msgid="2517785806387977252">"15 soniya"</item>
+    <item msgid="6347954399441173672">"30 soniya"</item>
+    <item msgid="4858305253279921789">"1 daqiqa"</item>
+    <item msgid="8109273437140044073">"2 daqiqa"</item>
+    <item msgid="2788593551142462622">"5 daqiqa"</item>
+    <item msgid="8012672183888404961">"10 daqiqa"</item>
+    <item msgid="8271452751594598661">"30 daqiqa"</item>
+  </string-array>
   <string-array name="lock_after_timeout_entries">
     <item msgid="2232921187970351881">"Darhol"</item>
     <item msgid="2038544972632026612">"5 soniya"</item>
@@ -42,17 +59,47 @@
     <item msgid="811192536981678974">"10 daqiqa"</item>
     <item msgid="7258394417241706272">"30 daqiqa"</item>
   </string-array>
-    <!-- no translation found for entries_font_size:0 (2340391964816059553) -->
-    <!-- no translation found for entries_font_size:0 (6490061470416867723) -->
-    <!-- no translation found for entries_font_size:2 (1714184661981538355) -->
-    <!-- no translation found for entries_font_size:2 (1678068858001018666) -->
-    <!-- no translation found for wifi_status:3 (5848277343965362748) -->
-    <!-- no translation found for wifi_status_with_ssid:1 (6816207058895999545) -->
-    <!-- no translation found for wifi_status_with_ssid:3 (7547609081339573756) -->
-    <!-- no translation found for wifi_status_with_ssid:4 (5145158315060185414) -->
+  <string-array name="entries_font_size">
+    <item msgid="2340391964816059553">"Kichik"</item>
+    <item msgid="591935967183159581">"Asosiy"</item>
+    <item msgid="1714184661981538355">"Katta"</item>
+    <item msgid="6195563047686707484">"Maksimal"</item>
+  </string-array>
+  <string-array name="wifi_status">
+    <item msgid="1304883790721412351"></item>
+    <item msgid="4157625910392775808">"Qidiruv…"</item>
+    <item msgid="5597394826455877834">"Ulanmoqda…"</item>
+    <item msgid="5848277343965362748">"Autentifikatsiya qilinmoqda…"</item>
+    <item msgid="3391238031431440676">"IP manzil o‘zlashtirilmoqda…"</item>
+    <item msgid="5257597310494000224">"Ulandi"</item>
+    <item msgid="8472497592913050396">"Muzlatildi"</item>
+    <item msgid="1228072488815999109">"Uzilyapti…"</item>
+    <item msgid="7253087004422991731">"Uzildi"</item>
+    <item msgid="4169850917304751227">"Muvaffaqiyatsiz"</item>
+    <item msgid="6266658166690831131">"Bloklangan"</item>
+    <item msgid="4517230805854909775">"Sifatsiz ulanishdan vaqtinchalik chetlashish"</item>
+  </string-array>
+  <string-array name="wifi_status_with_ssid">
+    <item msgid="4853670665485437464"></item>
+    <item msgid="6816207058895999545">"Qidirilmoqda…"</item>
+    <item msgid="8058143476674427024">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> tarmog‘iga ulanilmoqda…"</item>
+    <item msgid="7547609081339573756">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> nomli tarmoqqa ulanmoqda…"</item>
+    <item msgid="5145158315060185414">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> nomli tarmoqdan IP manzil olinmoqda…"</item>
+    <item msgid="3283243151651124831">"Bunga ulangan: <xliff:g id="NETWORK_NAME">%1$s</xliff:g>"</item>
+    <item msgid="6600156231416890902">"Muzlatildi"</item>
+    <item msgid="4133290864821295785">"<xliff:g id="NETWORK_NAME">%1$s</xliff:g> tarmog‘idan uzilmoqda…"</item>
+    <item msgid="3980154971187953257">"Uzildi"</item>
+    <item msgid="2847316776634969068">"Muvaffaqiyatsiz"</item>
+    <item msgid="4390990424746035383">"Bloklangan"</item>
+    <item msgid="3618248791367063949">"Sifatsiz ulanishdan vaqtinchalik chetlashish"</item>
+  </string-array>
     <!-- no translation found for wifi_tether_security:0 (5586343370515598801) -->
     <!-- no translation found for wifi_tether_security:1 (6136336549994615745) -->
-    <!-- no translation found for wifi_p2p_wps_setup:0 (5390235347963255303) -->
+  <string-array name="wifi_p2p_wps_setup">
+    <item msgid="5390235347963255303">"Push tugmasi"</item>
+    <item msgid="7401896200768713930">"ulashma qurilmadagi PIN-kod"</item>
+    <item msgid="4526848028011846710">"Ushbu qurilmaning PIN kodi"</item>
+  </string-array>
   <string-array name="wifi_p2p_status">
     <item msgid="8741947238021758201">"Ulandi"</item>
     <item msgid="983792611851499732">"Taklif qilingan"</item>
@@ -60,7 +107,12 @@
     <item msgid="4646663015449312554">"Mavjud"</item>
     <item msgid="3230556734162006146">"Chegaradan tashqari"</item>
   </string-array>
-    <!-- no translation found for bluetooth_visibility_timeout_entries:1 (2759776603549270587) -->
+  <string-array name="bluetooth_visibility_timeout_entries">
+    <item msgid="8247986727324120082">"2 daqiqa"</item>
+    <item msgid="2759776603549270587">"5 daqiqa"</item>
+    <item msgid="167772676068860015">"1 soat"</item>
+    <item msgid="5985477119043628504">"Doim yoniq tursin"</item>
+  </string-array>
   <string-array name="bluetooth_max_connected_audio_devices">
     <item msgid="3800257971619063588">"Standart tizim parametrlaridan foydalanish: <xliff:g id="DEFAULT_BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES">%1$d</xliff:g>"</item>
     <item msgid="8572230405241423895">"1"</item>
@@ -69,8 +121,13 @@
     <item msgid="1644506614010085798">"4"</item>
     <item msgid="3132506679404897150">"5"</item>
   </string-array>
-    <!-- no translation found for wifi_signal:1 (7882129634982603782) -->
-    <!-- no translation found for wifi_signal:4 (999948812884919584) -->
+  <string-array name="wifi_signal">
+    <item msgid="1709949377823900951">"Juda past"</item>
+    <item msgid="7882129634982603782">"Juda past"</item>
+    <item msgid="6457357501905996224">"Past"</item>
+    <item msgid="405271628162918841">"Yaxshi"</item>
+    <item msgid="999948812884919584">"Aʼlo"</item>
+  </string-array>
   <string-array name="data_usage_data_range">
     <item msgid="8986775481492954015">"So‘nggi 30 kun"</item>
     <item msgid="3211287705232736964">"Internetdan foyd-sh davri…"</item>
@@ -106,7 +163,10 @@
     <item msgid="7330627471456865502">"MSCHAPV2"</item>
     <item msgid="6255179395132581882">"GTC"</item>
   </string-array>
-    <!-- no translation found for wifi_ip_settings:1 (4377002609760712163) -->
+  <string-array name="wifi_ip_settings">
+    <item msgid="2717196390555072244">"DHCP"</item>
+    <item msgid="4377002609760712163">"Statik"</item>
+  </string-array>
   <string-array name="wifi_proxy_settings">
     <item msgid="9032900195127165132">"Tarmoq yo‘q"</item>
     <item msgid="1464741437353223198">"Qo‘llanma"</item>
@@ -197,7 +257,7 @@
     <item msgid="5420704980305018295">"ovoz balandligi"</item>
     <item msgid="5797363115508970204">"jiringlash tovushi"</item>
     <item msgid="8233154098550715999">"multimedia tovushi"</item>
-    <item msgid="5196715605078153950">"signal tovushi"</item>
+    <item msgid="5196715605078153950">"signal balandligi"</item>
     <item msgid="394030698764284577">"xabarnoma tovush balandligi"</item>
     <item msgid="8952898972491680178">"bluetooth tovush balandligi"</item>
     <item msgid="8506227454543690851">"uyg‘oq turish"</item>
@@ -226,11 +286,73 @@
     <item msgid="1165623660533024666">"fonda ishga tushirish"</item>
     <item msgid="6423861043647911030">"maxsus imkoniyatlar ovozi balandligi"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:3 (7836406246005211990) -->
-    <!-- no translation found for app_ops_labels:4 (3951439024549922598) -->
-    <!-- no translation found for app_ops_labels:8 (3597797992398484655) -->
-    <!-- no translation found for app_ops_labels:20 (3037159047591081136) -->
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Joylashuv"</item>
+    <item msgid="6656077694190491067">"Joylashuv"</item>
+    <item msgid="8790228218278477369">"Joylashuv"</item>
+    <item msgid="7836406246005211990">"Tebranish"</item>
+    <item msgid="3951439024549922598">"Kontaktlarga oid axborotni oʻqish"</item>
+    <item msgid="8802152411647068">"Kontaktlarni o‘zgartirish"</item>
+    <item msgid="229544934599698735">"Qo‘ng‘iroqlar jurnalini ko‘rib chiqish"</item>
+    <item msgid="7396102294405899613">"Qo‘ng‘iroqlar jurnalini o‘zgartirish"</item>
+    <item msgid="3597797992398484655">"Taqvimga oid axborotni oʻqish"</item>
+    <item msgid="2705975774250907343">"Taqvimni o‘zgartirish"</item>
+    <item msgid="4668747371441932697">"Joylashuv"</item>
+    <item msgid="1487578921720243646">"Post qoldirish"</item>
+    <item msgid="4636080349724146638">"Joylashuv"</item>
+    <item msgid="673510900286463926">"Telefonga qo‘ng‘iroq qilish"</item>
+    <item msgid="542083422784609790">"SMS/MMS xabarlarini o‘qish"</item>
+    <item msgid="1033780373029588436">"SMS/MMS xabarlarini yozish"</item>
+    <item msgid="5647111115517787488">"SMS/MMS xabarlarini qabul qilish"</item>
+    <item msgid="8591105601108455893">"SMS/MMS xabarlarini qabul qilish"</item>
+    <item msgid="7730995008517841903">"SMS/MMS xabarlarini qabul qilish"</item>
+    <item msgid="2613033109026626086">"SMS/MMS xabarlarini qabul qilish"</item>
+    <item msgid="3037159047591081136">"SMS/MMS yuborish"</item>
+    <item msgid="4726682243833913568">"SMS/MMS xabarlarini o‘qish"</item>
+    <item msgid="6555678522277865572">"SMS/MMS yozish"</item>
+    <item msgid="6981734935578130884">"Sozlamalarni o‘zgartirish"</item>
+    <item msgid="8705854389991425629">"Ustiga chizish"</item>
+    <item msgid="5861356020344153651">"Xabarnomalarga kirish"</item>
+    <item msgid="78432174621628659">"Kamera"</item>
+    <item msgid="3986116419882154794">"Ovoz yozib olish"</item>
+    <item msgid="4516840825756409490">"Audioqaydni ijro etish"</item>
+    <item msgid="6811712502798183957">"Vaqtinchalik xotira ma‘lumotini o‘qish"</item>
+    <item msgid="2780369012602289114">"Vaqtinchalik xotirani o‘zgartirish"</item>
+    <item msgid="2331359440170850868">"Multimedia tugmalari"</item>
+    <item msgid="6133599737122751231">"Audio fokus"</item>
+    <item msgid="6844485713404805301">"Umumiy tovush balandligi"</item>
+    <item msgid="1600379420669104929">"Ovoz balandligi"</item>
+    <item msgid="6296768210470214866">"Jiringlash tovushi"</item>
+    <item msgid="510690696071629241">"Multimedia tovushi"</item>
+    <item msgid="406861638631430109">"Signal balandligi"</item>
+    <item msgid="4715864795872233884">"Bildirishnomalar ovozi"</item>
+    <item msgid="2311478519251301183">"Bluetooth tovush balandligi"</item>
+    <item msgid="5133991377896747027">"Uyg‘oq turish"</item>
+    <item msgid="2464189519136248621">"Joylashuv"</item>
+    <item msgid="2062677934050803037">"Joylashuv"</item>
+    <item msgid="1735171933192715957">"Foydalanish statistikasini ko‘rish"</item>
+    <item msgid="1014093788778383554">"Mikrofonni o‘chirish/yoqish"</item>
+    <item msgid="4199297950608622850">"Toast dasturini ko‘rsatish"</item>
+    <item msgid="2527962435313398821">"Kontentni translatsiya qilish"</item>
+    <item msgid="5117506254221861929">"VPN tarmog‘ini faollashtirish"</item>
+    <item msgid="8291198322681891160">"Orqa fon rasmiga yozish"</item>
+    <item msgid="7106921284621230961">"Yordam tuzilishi"</item>
+    <item msgid="4496533640894624799">"Yordam ekran rasmi"</item>
+    <item msgid="2598847264853993611">"Telefon holatini o‘qish"</item>
+    <item msgid="9215610846802973353">"Ovozli xabar qo‘shish"</item>
+    <item msgid="9186411956086478261">"SIPdan foydalanish"</item>
+    <item msgid="6884763100104539558">"Chiquvchi qo‘ng‘iroq jarayoni"</item>
+    <item msgid="125513972170580692">"Barmoq izi"</item>
+    <item msgid="2556071024281275619">"Tana sezgichlari"</item>
+    <item msgid="617168514928339387">"Tarqatma xabarlarni o‘qish"</item>
+    <item msgid="7134693570516523585">"Soxta joylashuv"</item>
+    <item msgid="7224489175375229399">"Xotirani o‘qish"</item>
+    <item msgid="8472735063903258202">"Xotiraga yozish"</item>
+    <item msgid="4069276819909595110">"Ekranni yoqish"</item>
+    <item msgid="1228338896751121025">"Hisoblarni olish"</item>
+    <item msgid="3181581793459233672">"Fonda ishga tushirish"</item>
+    <item msgid="2340936043025374076">"Maxsus imkoniyatlar ovozi balandligi"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Qisqa"</item>
     <item msgid="4816511817309094890">"O‘rtacha"</item>
@@ -247,7 +369,13 @@
     <item msgid="4627069151979553527">"Qiya"</item>
     <item msgid="6896773537705206194">"Kichik bosh harflar"</item>
   </string-array>
-    <!-- no translation found for captioning_font_size_selector_titles:3 (2784236342175159295) -->
+  <string-array name="captioning_font_size_selector_titles">
+    <item msgid="1680223634161592855">"Juda kichik"</item>
+    <item msgid="5091603983404027034">"Kichik"</item>
+    <item msgid="176844712416932112">"Normal"</item>
+    <item msgid="2784236342175159295">"Katta"</item>
+    <item msgid="218913203203160606">"Juda katta"</item>
+  </string-array>
   <string-array name="captioning_edge_type_selector_titles">
     <item msgid="3865198759294188069">"Asosiy"</item>
     <item msgid="6488643537808152001">"Tarmoq yo‘q"</item>
@@ -262,7 +390,14 @@
     <item msgid="1874668269931014581">"75%"</item>
     <item msgid="6462911487571123954">"100%"</item>
   </string-array>
-    <!-- no translation found for captioning_preset_selector_titles:2 (5891360837786277638) -->
+  <string-array name="captioning_preset_selector_titles">
+    <item msgid="326819345272910536">"Standart"</item>
+    <item msgid="8611890312638868524">"Qora ustida oq"</item>
+    <item msgid="5891360837786277638">"Oq ustida qora"</item>
+    <item msgid="2798457065945456853">"Qora ustida sariq"</item>
+    <item msgid="5799049811524553967">"Ko‘k ustida sariq"</item>
+    <item msgid="3673930830658169860">"Maxsus"</item>
+  </string-array>
   <string-array name="vpn_types_long">
     <item msgid="6566768880689730097">"PPTP VPN"</item>
     <item msgid="1349760781118368659">"L2TP/IPSec VPN avval ulashilgan kalitlar bilan"</item>
@@ -275,15 +410,32 @@
     <item msgid="2958623927055120839">"Hech biri"</item>
     <item msgid="1157046369795346308">"Qo‘llanma"</item>
   </string-array>
-    <!-- no translation found for vpn_states:4 (9135049670787351881) -->
+  <string-array name="vpn_states">
+    <item msgid="5408915841694583740">"Uzildi"</item>
+    <item msgid="8754480102834556765">"Ishga tushirilmoqda…"</item>
+    <item msgid="3351334355574270250">"Ulanmoqda…"</item>
+    <item msgid="8303882153995748352">"Ulandi"</item>
+    <item msgid="9135049670787351881">"Vaqt tugadi"</item>
+    <item msgid="2124868417182583926">"Muvaffaqiyatsiz"</item>
+  </string-array>
   <string-array name="security_settings_premium_sms_values">
     <item msgid="1164265643455394443">"So‘rash"</item>
     <item msgid="7718817231348607934">"Hech qachon ruxsat berilmasin"</item>
     <item msgid="8184570120217958741">"Har doim ruxsat berilsin"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Normal"</item>
+    <item msgid="5101233285497327432">"Hozircha yetarli"</item>
+    <item msgid="1555861583162930714">"Past"</item>
+    <item msgid="1719683776264798117">"Jiddiy"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Normal"</item>
+    <item msgid="6107138933849816768">"Qoniqarli"</item>
+    <item msgid="182695359839047859">"Past"</item>
+    <item msgid="8577246509202964244">"Jiddiy"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Barqaror"</item>
     <item msgid="167418068739176448">"Eng mashhur harakat"</item>
@@ -303,8 +455,8 @@
   <string-array name="color_picker">
     <item msgid="3151827842194201728">"Moviy"</item>
     <item msgid="3228505970082457852">"Ko‘k"</item>
-    <item msgid="6590260735734795647">"To‘q ko‘k"</item>
-    <item msgid="3521763377357218577">"Binafsharang"</item>
+    <item msgid="6590260735734795647">"Indigo"</item>
+    <item msgid="3521763377357218577">"Siyohrang"</item>
     <item msgid="5932337981182999919">"Pushti"</item>
     <item msgid="5642914536624000094">"Qizil"</item>
   </string-array>
diff --git a/tests/CarDeveloperOptions/res/values-uz/strings.xml b/tests/CarDeveloperOptions/res/values-uz/strings.xml
index b71c9e4..50a9174 100644
--- a/tests/CarDeveloperOptions/res/values-uz/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-uz/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Ekrandagi matnni kattalashtirish yoki kichiklashtirish."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Kichiklashtirish"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Kattalashtirish"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Namunaviy matn"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Oz mamlakati sehrgari"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"11-bob: Oz mamlakatining zumrad shahri"</string>
@@ -484,7 +483,7 @@
     <string name="lock_screen_pin_skip_title" msgid="8217519439213393785">"PIN kod kerak emasmi?"</string>
     <string name="lock_screen_password_skip_title" msgid="3725788215672959827">"Parol kerak emasmi?"</string>
     <string name="lock_screen_pattern_skip_title" msgid="4237030500353932005">"Grafik kalit kerak emasmi?"</string>
-    <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="9036983528330627756">"Ekranni qulfini sozlash"</string>
+    <string name="security_settings_fingerprint_enroll_setup_screen_lock" msgid="9036983528330627756">"Ekran qulfini sozlash"</string>
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Tayyor"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Obbo, bu sensor emas."</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Telefonning orqasida joylashgan sensorga tegining. Ko‘rsatkich barmog‘ingizdan foydalaning."</string>
@@ -545,7 +544,7 @@
     <string name="suggested_fingerprint_lock_settings_summary" product="device" msgid="8114514312665251311"></string>
     <string name="suggested_fingerprint_lock_settings_summary" product="default" msgid="8114514312665251311"></string>
     <string name="lock_settings_picker_title" msgid="1034741644461982205">"Ekran qulfini tanlang"</string>
-    <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Ishchi profil qulfini tanlang"</string>
+    <string name="lock_settings_picker_title_profile" msgid="5086594364428782115">"Ish profili qulfini tanlang"</string>
     <string name="setup_lock_settings_picker_title" product="tablet" msgid="2429667472335773519">"Planshetingizni himoyalang"</string>
     <string name="setup_lock_settings_picker_title" product="device" msgid="4739290104106645233">"Qurilmangizni himoyalang"</string>
     <string name="setup_lock_settings_picker_title" product="default" msgid="3911582328576859628">"Telefoningizni himoyalang"</string>
@@ -560,7 +559,7 @@
     <string name="unlock_set_unlock_launch_picker_title" msgid="2731152716948003853">"Ekran qulfi"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_immediately" msgid="5596186270725220642">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / uyqu rejimidan keyinoq"</string>
     <string name="unlock_set_unlock_launch_picker_summary_lock_after_timeout" msgid="3861167251234952373">"<xliff:g id="UNLOCK_METHOD">%1$s</xliff:g> / uyqu rejimidan <xliff:g id="TIMEOUT_STRING">%2$s</xliff:g>dan keyin"</string>
-    <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"Ishchi profil qulfi"</string>
+    <string name="unlock_set_unlock_launch_picker_title_profile" msgid="7976345264630422921">"Ish profili qulfi"</string>
     <string name="unlock_set_unlock_launch_picker_change_title" msgid="32310692507029407">"Ekran qulfini o‘zgartirish"</string>
     <string name="unlock_set_unlock_launch_picker_change_summary" msgid="2072792784866320522">"Grafik kalit, PIN kod va himoya parolini o‘zgartirish yoki o‘chirib qo‘yish"</string>
     <string name="unlock_set_unlock_launch_picker_enable_summary" msgid="9070847611379078795">"Ekranni qulflash usulini tanlang"</string>
@@ -644,12 +643,12 @@
     <string name="lock_last_pattern_attempt_before_wipe_user" msgid="5194192938934564218">"Agar grafik kalitni xato kiritsangiz, bu foydalanuvchi o‘chirib tashlanadi"</string>
     <string name="lock_last_pin_attempt_before_wipe_user" msgid="7833852187363499906">"Agar PIN kodni xato kiritsangiz, bu foydalanuvchi o‘chirib tashlanadi"</string>
     <string name="lock_last_password_attempt_before_wipe_user" msgid="8979742220140001204">"Agar parolni xato kiritsangiz, bu foydalanuvchi o‘chirib tashlanadi"</string>
-    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Agar grafik kalitni xato kiritsangiz, ishchi profil va undagi ma’lumotlar o‘chirib tashlanadi"</string>
-    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Agar PIN kodni xato kiritsangiz, ishchi profil va undagi ma’lumotlar o‘chirib tashlanadi"</string>
-    <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Agar parolni xato kiritsangiz, ishchi profil va undagi ma’lumotlar o‘chirib tashlanadi"</string>
+    <string name="lock_last_pattern_attempt_before_wipe_profile" msgid="3877613047631174576">"Agar grafik kalitni xato kiritsangiz, ish profili va undagi ma’lumotlar o‘chirib tashlanadi"</string>
+    <string name="lock_last_pin_attempt_before_wipe_profile" msgid="8132438288175428168">"Agar PIN kodni xato kiritsangiz, ish profili va undagi ma’lumotlar o‘chirib tashlanadi"</string>
+    <string name="lock_last_password_attempt_before_wipe_profile" msgid="1535128774464384305">"Agar parolni xato kiritsangiz, ish profili va undagi ma’lumotlar o‘chirib tashlanadi"</string>
     <string name="lock_failed_attempts_now_wiping_device" msgid="8662360098784762828">"Juda ko‘p marta muvaffaqiyatsiz urinishlar amalga oshirildi. Bu qurilmadagi ma’lumotlar o‘chirib tashlanadi."</string>
     <string name="lock_failed_attempts_now_wiping_user" msgid="3793513796171561873">"Juda ko‘p marta muvaffaqiyatsiz urinishlar amalga oshirildi. Bu foydalanuvchi o‘chirib tashlanadi."</string>
-    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Juda ko‘p marta muvaffaqiyatsiz urinishlar amalga oshirildi. Bu ishchi profil va undagi ma’lumotlar o‘chirib tashlanadi."</string>
+    <string name="lock_failed_attempts_now_wiping_profile" msgid="5347108525299038285">"Juda ko‘p marta muvaffaqiyatsiz urinishlar amalga oshirildi. Bu ish profili va undagi ma’lumotlar o‘chirib tashlanadi."</string>
     <string name="lock_failed_attempts_now_wiping_dialog_dismiss" msgid="3950582268749037318">"Yopish"</string>
     <plurals name="lockpassword_password_too_short" formatted="false" msgid="694091983183310827">
       <item quantity="other">Kamida <xliff:g id="COUNT_1">%d</xliff:g> ta belgi</item>
@@ -890,7 +889,7 @@
     <string name="wifi_menu_forget" msgid="7561140554450163075">"Tarmoqni o‘chirish"</string>
     <string name="wifi_menu_modify" msgid="4080178040721021101">"Tarmoqni o‘zgartirish"</string>
     <string name="wifi_empty_list_wifi_off" msgid="272877164691346240">"Mavjud tarmoqlarni ko‘rish uchun Wi‑Fi aloqasini yoqing."</string>
-    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wi‑Fi tarmoqlarini qidirmoqda…"</string>
+    <string name="wifi_empty_list_wifi_on" msgid="881478805041020600">"Wi‑Fi tarmoqlar qidirilmoqda…"</string>
     <string name="wifi_empty_list_user_restricted" msgid="2341613007817352431">"Sizda Wi‑Fi tarmog‘ini o‘zgartirishga ruxsatingiz yo‘q."</string>
     <string name="wifi_more" msgid="3538241640407382185">"Yana"</string>
     <string name="wifi_setup_wps" msgid="6730131677695521321">"Avtomatik ravishda sozlash (WPS)"</string>
@@ -976,7 +975,7 @@
     <string name="wifi_do_not_validate_eap_server" msgid="1892537559682474878">"Tasdiqlanmasin"</string>
     <string name="wifi_do_not_validate_eap_server_warning" msgid="3895397996759837323">"Birorta ham sertifikat ko‘rsatilmagan. Aloqangiz ochiq bo‘ladi."</string>
     <string name="wifi_ssid_too_long" msgid="34911971389775920">"Tarmoq nomi juda uzun."</string>
-    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Domenni ko‘rsating."</string>
+    <string name="wifi_no_domain_warning" msgid="735859919311067606">"Domenni kiriting."</string>
     <string name="wifi_wps_available_first_item" msgid="3221671453930485243">"WPS mavjud"</string>
     <string name="wifi_wps_available_second_item" msgid="5703265526619705185">" (WPS mavjud)"</string>
     <string name="wifi_carrier_connect" msgid="7202618367339982884">"Aloqa operatorining Wi‑Fi tarmog‘i"</string>
@@ -1067,7 +1066,7 @@
     <string name="wifi_hotspot_name_summary_connecting" msgid="5176787959408511889">"<xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> yoqilmoqda…"</string>
     <string name="wifi_hotspot_name_summary_connected" msgid="8387768642326756749">"Boshqa qurilmalar <xliff:g id="WIFI_HOTSPOT_NAME">%1$s</xliff:g> tarmog‘iga ulanishi mumkin"</string>
     <string name="wifi_hotspot_password_title" msgid="4289338152595154889">"Hotspot paroli"</string>
-    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Wi-Fi chastotalari diapazoni"</string>
+    <string name="wifi_hotspot_ap_band_title" msgid="3485744480410441949">"Wi-Fi diapazoni"</string>
     <string name="wifi_hotspot_footer_info_regular" msgid="3876006922622827363">"Boshqa qurilmalaringiz uchun Wi-Fi tarmoq yaratish uchun hotspotdan foydalaning. Hotspot mobil internetingizni tarqatadi. Mobil internet uchun qo‘shimcha to‘lovlar olinishi mumkin."</string>
     <string name="wifi_hotspot_footer_info_local_only" msgid="3339582350894639261">"Ilovalar yaqin-atrofdagi qurilmalarga kontent ulashish uchun hotspot yarata oladi."</string>
     <string name="wifi_hotspot_auto_off_title" msgid="7416022590415189590">"Hotspotni avtomatik faolsizlantirish"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Mobil"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Agar Wi‑Fi ishlamasa, mobil tarmoqdan foydalaning"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Agar mobil tarmoq ishlamasa, Wi-Fi ishlating"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Wi‑Fi orqali chaqiruv. Agar Wi‑Fi oʻchsa, chaqiruv tugatiladi."</string>
@@ -1162,7 +1164,7 @@
     <string name="dock_sounds_enable_summary_off" product="tablet" msgid="2125391395745266946">"Planshetni dokga ulash yoki dokdan chiqarish paytida ovoz yangramasin"</string>
     <string name="dock_sounds_enable_summary_off" product="default" msgid="9075438702849896866">"Telefonni dokka ulash yoki dokdan uzish paytida ovoz chiqarilmasin"</string>
     <string name="account_settings" msgid="1937600532993930396">"Hisoblar"</string>
-    <string name="accessibility_category_work" msgid="2808942060489460727">"Ishchi profil hisoblari – <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
+    <string name="accessibility_category_work" msgid="2808942060489460727">"Ish profili hisoblari – <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="accessibility_category_personal" msgid="1423427301759058762">"Shaxsiy profil hisoblari"</string>
     <string name="accessibility_work_account_title" msgid="3195468574776888011">"Ishchi hisob – <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
     <string name="accessibility_personal_account_title" msgid="7251761883688839354">"Shaxsiy hisob – <xliff:g id="MANAGED_BY">%s</xliff:g>"</string>
@@ -1308,7 +1310,7 @@
     <string name="system_update_settings_list_item_title" msgid="1907497454722790033">"Tizimni yangilash"</string>
     <string name="system_update_settings_list_item_summary" msgid="3497456690691907873"></string>
     <string name="firmware_version" msgid="547095584029938749">"Android versiyasi"</string>
-    <string name="security_patch" msgid="483709031051932208">"Tizim xavfsizligi uchun yangilanish"</string>
+    <string name="security_patch" msgid="483709031051932208">"Android tizim xavfsizligi yangilanishi"</string>
     <string name="model_info" msgid="1729765474260797594">"Model"</string>
     <string name="model_summary" msgid="8781425868254352168">"Model: %1$s"</string>
     <string name="hardware_info" msgid="174270144950621815">"Model va qurilma"</string>
@@ -1600,7 +1602,7 @@
     <string name="master_clear_button_text" product="default" msgid="8000547818499182920">"Hamma narsani tozalash"</string>
     <string name="master_clear_final_desc" msgid="5189365498015339294">"Barcha shaxsiy maʼlumotlaringiz va yuklab olingan ilovalar tozalab tashlanadi. Bu amalni ortga qaytara olmaysiz."</string>
     <string name="master_clear_final_desc_esim" msgid="3058919823436953662">"Barcha shaxsiy maʼlumotlaringiz, jumladan, yuklab olingan ilovalar va SIM kartalar axboroti tozalab tashlanadi. Bu amalni ortga qaytara olmaysiz."</string>
-    <string name="master_clear_final_button_text" msgid="866772743886027768">"Barchasini o‘chirish"</string>
+    <string name="master_clear_final_button_text" msgid="866772743886027768">"Hammasini tozalash"</string>
     <string name="master_clear_failed" msgid="7588397453984229892">"Dastlabki sozlamalarni qaytarib bo\'lmadi, chunki Tizimni tozalash xizmati javob bermayapti."</string>
     <string name="master_clear_confirm_title" msgid="698328669893512402">"Hamma narsa tozalansinmi?"</string>
     <string name="master_clear_not_available" msgid="4676613348163652454">"Ushbu foydalanuvchiga sozlamalarni zavod holatiga qaytarishga ruxsat berilmagan"</string>
@@ -1645,7 +1647,7 @@
     <string name="mobile_insert_sim_card" msgid="7594550403454243732">"SIM karta solib, qurilmani qayta ishga tushiring"</string>
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Iltimos, Internetga ulaning"</string>
     <string name="location_title" msgid="8664674161765477168">"Mening joylashuvim"</string>
-    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Ishchi profil joyi"</string>
+    <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Ish profili uchun joy"</string>
     <string name="location_app_level_permissions" msgid="1298041503927632960">"Ilovalar uchun ruxsatlar"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Joylashuv xizmati yoqilmagan"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Oxirgi joylashuv axboroti"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Tafsilotlar"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Hech qanday ilova yaqin vaqtda joylashuv ma‘lumotini so‘ramadi"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Yaqin-orada hech qanday ilova joylashuv axborotini talab qilmadi"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Hech qanday ilova yaqinda joylashuv axborotidan foydalanmagan"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Yuqori batareya sarfi"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Batareya sarfi kam"</string>
@@ -1704,7 +1706,7 @@
     <string name="settings_safetylegal_activity_unreachable" msgid="3541894966476445833">"Qurilma internetga ulanmagan. Bu ma’lumotni ko‘rish uchun internetga ulangan istalgan kompyuterda %s sahifasini oching."</string>
     <string name="settings_safetylegal_activity_loading" msgid="7680998654145172">"Yuklanmoqda…"</string>
     <string name="confirm_device_credential_use_alternate_method" msgid="1279869272895739941">"Muqobil usuldan foydalanish"</string>
-    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Ekranni qulfini sozlash"</string>
+    <string name="lockpassword_choose_your_screen_lock_header" msgid="6283518876031424798">"Ekran qulfini sozlash"</string>
     <string name="lockpassword_choose_your_password_message" msgid="2838273977481046536">"Xavfsizlik uchun parol o‘rnating"</string>
     <string name="lockpassword_choose_your_password_header_for_fingerprint" msgid="4921343500484160894">"Barmoq izidan foydalanish uchun parol o‘rnating"</string>
     <string name="lockpassword_choose_your_pattern_header_for_fingerprint" msgid="314870151462139417">"Avval grafik kalit yarating"</string>
@@ -1733,9 +1735,9 @@
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="1014214190135045781">"Grafik kalitni kiriting"</string>
     <string name="lockpassword_strong_auth_required_device_pin" msgid="24030584350601016">"Qurilma PIN kodini kiriting"</string>
     <string name="lockpassword_strong_auth_required_device_password" msgid="7746588206458754598">"Qurilma parolini kiriting"</string>
-    <string name="lockpassword_strong_auth_required_work_pattern" msgid="6861154706098327320">"Ishchi profil grafik kalitini kiriting"</string>
-    <string name="lockpassword_strong_auth_required_work_pin" msgid="6306902249365524526">"Ishchi profil PIN kodini kiriting"</string>
-    <string name="lockpassword_strong_auth_required_work_password" msgid="2917338218971012776">"Ishchi profil parolini kiriting"</string>
+    <string name="lockpassword_strong_auth_required_work_pattern" msgid="6861154706098327320">"Ish profili grafik kalitini kiriting"</string>
+    <string name="lockpassword_strong_auth_required_work_pin" msgid="6306902249365524526">"Ish profili PIN kodini kiriting"</string>
+    <string name="lockpassword_strong_auth_required_work_password" msgid="2917338218971012776">"Ish profili parolini kiriting"</string>
     <string name="lockpassword_confirm_your_pattern_details_frp" msgid="1085862410379709928">"Telefoningiz zavod sozlamalariga qaytarildi. Bu telefondan foydalanish uchun avvalgi grafik kalitni kiriting."</string>
     <string name="lockpassword_confirm_your_pin_details_frp" msgid="6849889353126558761">"Telefoningiz zavod sozlamalariga qaytarildi. Bu telefondan foydalanish uchun avvalgi PIN kodni kiriting."</string>
     <string name="lockpassword_confirm_your_password_details_frp" msgid="3239944795659418737">"Telefoningiz zavod sozlamalariga qaytarildi. Bu telefondan foydalanish uchun avvalgi parolni kiriting."</string>
@@ -1772,13 +1774,13 @@
     <string name="lockpattern_settings_help_how_to_record" msgid="6037403647312543908">"Grafik kalit qanday chiziladi"</string>
     <string name="lockpattern_too_many_failed_confirmation_attempts" msgid="3043127997770535921">"Juda ko‘p noto‘g‘ri urinishlar bo‘ldi! <xliff:g id="NUMBER">%d</xliff:g> soniyadan so‘ng qayta urinib ko‘ring."</string>
     <string name="activity_not_found" msgid="3492413375341165453">"Ilova telefoningizga o‘rnatilmagan."</string>
-    <string name="lock_settings_profile_title" msgid="3928992050074556160">"Ishchi profil xavfsizligi"</string>
-    <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Ishchi profil ekran qulfi"</string>
+    <string name="lock_settings_profile_title" msgid="3928992050074556160">"Ish profili xavfsizligi"</string>
+    <string name="lock_settings_profile_screen_lock_title" msgid="285267471459162203">"Ish profili ekran qulfi"</string>
     <string name="lock_settings_profile_unification_title" msgid="2629698644191935287">"Bitta qulfdan foydalanish"</string>
-    <string name="lock_settings_profile_unification_summary" msgid="4797188229308317207">"Ishchi profil va qurilma ekrani uchun bitta qulfdan foydalanish"</string>
+    <string name="lock_settings_profile_unification_summary" msgid="4797188229308317207">"Ish profili va qurilma ekrani uchun bitta qulfdan foydalanish"</string>
     <string name="lock_settings_profile_unification_dialog_title" msgid="1690211342491067179">"Bitta qulfdan foydalanilsinmi?"</string>
-    <string name="lock_settings_profile_unification_dialog_body" msgid="8629158560032603101">"Qurilmangiz ishchi profilingiz ekran qulfidan foydalanadi. Ishchi profil qulfi qoidalari ikkala qulfga ham qo‘llaniladi."</string>
-    <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="1217609779267643474">"Ishchi profilning ekran qulfi sozlamalari tashkilotingiz xavfsizlik qoidalariga mos kelmaydi. Qurilma ekrani va ishchi profil uchun bitta qulfdan foydalanishingiz mumkin. Lekin har qanday ishchi profil qulfi qoidalari qo‘llaniladi."</string>
+    <string name="lock_settings_profile_unification_dialog_body" msgid="8629158560032603101">"Qurilmangiz ishchi profilingiz ekran qulfidan foydalanadi. Ish profili qulfi qoidalari ikkala qulfga ham qo‘llaniladi."</string>
+    <string name="lock_settings_profile_unification_dialog_uncompliant_body" msgid="1217609779267643474">"Ish profilining ekran qulfi sozlamalari tashkilotingiz xavfsizlik qoidalariga mos kelmaydi. Qurilma ekrani va ish profili uchun bitta qulfdan foydalanishingiz mumkin. Lekin har qanday ish profili qulfi qoidalari qo‘llaniladi."</string>
     <string name="lock_settings_profile_unification_dialog_confirm" msgid="888942752619181804">"Bitta qulfdan foydalanish"</string>
     <string name="lock_settings_profile_unification_dialog_uncompliant_confirm" msgid="8046452284593057185">"Bitta qulfdan foydalanish"</string>
     <string name="lock_settings_profile_unified_summary" msgid="5347244550751740962">"Qurilmaning qulflash usulidan foydalanish"</string>
@@ -1798,7 +1800,7 @@
     <string name="advanced_settings_summary" msgid="5912237062506771716">"Qo‘shimcha sozlamalar tanlamalarini yoqib qo‘yish"</string>
     <string name="application_info_label" msgid="3886253474964599105">"Ilova haqida"</string>
     <string name="storage_label" msgid="1109537840103290384">"Xotira"</string>
-    <string name="auto_launch_label" msgid="47089737922907379">"Odatiy tarzda ochish"</string>
+    <string name="auto_launch_label" msgid="47089737922907379">"Birlamchi sifatida ochish"</string>
     <string name="auto_launch_label_generic" msgid="7865828543459493308">"Birlamchi"</string>
     <string name="screen_compatibility_label" msgid="3638271673726075815">"Ekrandagi moslashuv"</string>
     <string name="permissions_label" msgid="7341733648403464213">"Ruxsatlar"</string>
@@ -1827,7 +1829,7 @@
     <string name="app_factory_reset" msgid="8718986000278776272">"Yangilanishlarni o‘chirish"</string>
     <string name="auto_launch_enable_text" msgid="3372898942144027341">"Ushbu ilovaning ba’zi andoza harakatlarini tanladingiz."</string>
     <string name="always_allow_bind_appwidgets_text" msgid="2286211654774611037">"Ushbu ilova vidjetlar yaratish va ularning ma‘lumotlariga kirishiga ruxsat berishni tanladingiz."</string>
-    <string name="auto_launch_disable_text" msgid="8560921288036801416">"Birlamchi sozlamalar o‘rnatilmagan."</string>
+    <string name="auto_launch_disable_text" msgid="8560921288036801416">"Birlamchi sozlamalar belgilanmagan."</string>
     <string name="clear_activities" msgid="2068014972549235347">"Birlamchilarni tozalash"</string>
     <string name="screen_compatibility_text" msgid="1768064020294301496">"Ushbu ilova siznikidaqa ekranlar uchun mos qilib chiqarilmagan. Ekraningiz moslamalarini mana bu yerda o‘zgartirishingiz mumkin."</string>
     <string name="ask_compatibility" msgid="6687958195768084807">"Ishga tushirilganda so‘rash"</string>
@@ -1971,7 +1973,7 @@
     <string name="show_ime_summary" msgid="3246628154011464373">"Jismoniy klaviatura ulanganida ekranda chiqib turadi"</string>
     <string name="keyboard_shortcuts_helper" msgid="6574386807271399788">"Tezkor tugmalar"</string>
     <string name="keyboard_shortcuts_helper_summary" msgid="8024313306403779742">"Tezkor tugmalarni ekranga chiqarish"</string>
-    <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Ishchi profil klaviaturalari va vositalari"</string>
+    <string name="language_and_input_for_work_category_title" msgid="2053255944038892588">"Ish profili klaviaturalari va vositalari"</string>
     <string name="virtual_keyboards_for_work_title" msgid="3968291646938204523">"Ish uchun virtual klaviatura"</string>
     <string name="default_keyboard_layout" msgid="9171704064451242230">"Standart"</string>
     <string name="pointer_speed" msgid="800691982011350432">"Kursor tezligi"</string>
@@ -2086,7 +2088,7 @@
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"Bosganda va bosib turganda kechikish"</string>
     <string name="accessibility_display_inversion_preference_title" msgid="3852635518618938998">"Ranglarni akslantirish"</string>
     <string name="accessibility_display_inversion_preference_subtitle" msgid="69291255322175323">"Unumdorligiga ta’sir qilishi mumkin"</string>
-    <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"Kutish vaqti"</string>
+    <string name="accessibility_autoclick_preference_title" msgid="9164599088410340405">"Kechikish vaqti"</string>
     <string name="accessibility_autoclick_description" msgid="5492414927846407499">"Agar sichqoncha ishlatsangiz, muayyan vaqtdan keyin kursor harakatlanishdan to‘xtaganda u avtomatik ishlashini sozlashingiz mumkin."</string>
     <string name="accessibility_autoclick_delay_preference_title" msgid="8303022510942147049">"Bosishdan oldin biroz kuting"</string>
     <string name="accessibility_vibration_settings_title" msgid="1902649657883159406">"Tebranish"</string>
@@ -2172,7 +2174,7 @@
     <string name="color_red" msgid="7426040122729897596">"Qizil"</string>
     <string name="color_green" msgid="3432648781089648971">"Yashil"</string>
     <string name="color_blue" msgid="4055855996393833996">"Ko‘k"</string>
-    <string name="color_cyan" msgid="7669317410901991453">"Moviy"</string>
+    <string name="color_cyan" msgid="7669317410901991453">"Zangori"</string>
     <string name="color_yellow" msgid="8847327436896180799">"Sariq"</string>
     <string name="color_magenta" msgid="721976999611563071">"Pushtirang"</string>
     <string name="enable_service_title" msgid="2746143093464928251">"<xliff:g id="SERVICE">%1$s</xliff:g> yoqilsinmi?"</string>
@@ -2610,9 +2612,9 @@
     <string name="sync_active" msgid="1112604707180806364">"Sinxronlash faol"</string>
     <string name="account_sync_settings_title" msgid="3344538161552327748">"Sinxronlash"</string>
     <string name="sync_is_failing" msgid="8284618104132302644">"Sinxronizatsiyada muammo bor. Tez orada qayta tiklanadi."</string>
-    <string name="add_account_label" msgid="4461298847239641874">"Hisob qo‘shish"</string>
-    <string name="managed_profile_not_available_label" msgid="8784246681719821917">"Ishchi profil hali mavjud emas"</string>
-    <string name="work_mode_label" msgid="6845849194740195757">"Ishchi profil"</string>
+    <string name="add_account_label" msgid="4461298847239641874">"Hisob kiritish"</string>
+    <string name="managed_profile_not_available_label" msgid="8784246681719821917">"Ish profili hali mavjud emas"</string>
+    <string name="work_mode_label" msgid="6845849194740195757">"Ish profili"</string>
     <string name="work_mode_on_summary" msgid="1682781113156323592">"Tashkilotingiz tomonidan boshqariladi"</string>
     <string name="work_mode_off_summary" msgid="1688885392211178315">"Ilovalar va bildirishnomalar o‘chiq"</string>
     <string name="remove_managed_profile_label" msgid="4625542553784793536">"Ishchi profilni o‘chirish"</string>
@@ -2642,7 +2644,7 @@
     <string name="header_account_settings" msgid="8586173964125512219">"Hisob sozlamalari"</string>
     <string name="remove_account_label" msgid="5885425720323823387">"Hisobni olib tashlash"</string>
     <string name="header_add_an_account" msgid="8482614556580804956">"Hisob kiriting"</string>
-    <string name="really_remove_account_title" msgid="4166512362915154319">"Hisobni olib tashlansinmi?"</string>
+    <string name="really_remove_account_title" msgid="4166512362915154319">"Hisob olib tashlansinmi?"</string>
     <string name="really_remove_account_message" product="tablet" msgid="7403843371045856719">"Ushbu hisob bilan bog‘liq barcha xabarlar, kontaktlar va boshqa ma’lumotlar telefondan o‘chib ketadi."</string>
     <string name="really_remove_account_message" product="default" msgid="8951224626153163914">"Ushbu hisob bilan bog‘liq barcha xabarlar, kontaktlar va boshqa ma’lumotlar telefondan o‘chib ketadi."</string>
     <string name="really_remove_account_message" product="device" msgid="3751798556257519916">"Ushbu hisob o‘chirilganda unga bog‘liq barcha xabar, kontakt va boshqa ma’lumotlar qurilmadan o‘chib ketadi."</string>
@@ -2873,7 +2875,7 @@
     <string name="user_set_lock_button" msgid="4660971133148866612">"Qulf o‘rnatish"</string>
     <string name="user_summary_not_set_up" msgid="6436691939044332679">"Sozlanmagan"</string>
     <string name="user_summary_restricted_not_set_up" msgid="896552290436689508">"Sozlanmagan - Cheklangan profil"</string>
-    <string name="user_summary_managed_profile_not_set_up" msgid="3032986082684011281">"Ishchi profil – sozlanmagan"</string>
+    <string name="user_summary_managed_profile_not_set_up" msgid="3032986082684011281">"Ish profili – sozlanmagan"</string>
     <string name="user_admin" msgid="805802526361071709">"Administrator"</string>
     <string name="user_you" msgid="8212549708652717106">"Siz (<xliff:g id="NAME">%s</xliff:g>)"</string>
     <string name="user_nickname" msgid="1088216221559125529">"Nik nomi"</string>
@@ -3022,7 +3024,7 @@
     <string name="sim_editor_color" msgid="373059962306191123">"SIM karta rangi"</string>
     <string name="sim_card_select_title" msgid="4925862525985187946">"SIM kartani tanlang"</string>
     <string name="color_orange" msgid="3159707916066563431">"To‘q sariq"</string>
-    <string name="color_purple" msgid="4391440966734810713">"Binafsharang"</string>
+    <string name="color_purple" msgid="4391440966734810713">"Siyohrang"</string>
     <string name="sim_no_inserted_msg" msgid="1197884607569714609">"SIM karta solinmagan"</string>
     <string name="sim_status_title" msgid="4483653750844520871">"SIM karta holati"</string>
     <string name="sim_status_title_sim_slot" msgid="416005570947546124">"SIM karta holati (%1$d-SIM uyasi)"</string>
@@ -3107,7 +3109,7 @@
     <string name="keywords_color_temperature" msgid="2255253972992035046">"rang, harorat, D65, D73, oq, sariq, ko‘k, iliq, salqin"</string>
     <string name="keywords_lockscreen" msgid="4936846554280830394">"qulfni ochish uchun surish, parol, grafik kalit, PIN kod"</string>
     <string name="keywords_profile_challenge" msgid="8653718001253979611">"ish vazifasi, ish, profil"</string>
-    <string name="keywords_unification" msgid="2020759909366983593">"ishchi profil, boshqariluvchi profil, birlashtirish, birlashuv, ish, profil"</string>
+    <string name="keywords_unification" msgid="2020759909366983593">"ish profili, boshqariluvchi profil, birlashtirish, birlashuv, ish, profil"</string>
     <string name="keywords_gesture" msgid="5031323247529869644">"imo-ishoralar"</string>
     <string name="keywords_payment_settings" msgid="4745023716567666052">"to‘lash, bosish, to‘lovlar"</string>
     <string name="keywords_backup" msgid="7433356270034921627">"zaxira, zaxira nusxa olish"</string>
@@ -3151,7 +3153,7 @@
     <string name="media_volume_option_title" msgid="3553411883305505682">"Multimedia tovushi"</string>
     <string name="remote_media_volume_option_title" msgid="6355710054191873836">"Translatsiya tovushi balandligi"</string>
     <string name="call_volume_option_title" msgid="5028003296631037334">"Suhbat tovushi"</string>
-    <string name="alarm_volume_option_title" msgid="3184076022438477047">"Signal tovushi"</string>
+    <string name="alarm_volume_option_title" msgid="3184076022438477047">"Signal balandligi"</string>
     <string name="ring_volume_option_title" msgid="2038924918468372264">"Jiringlash tovushi"</string>
     <string name="notification_volume_option_title" msgid="1358512611511348260">"Bildirishnomalar ovozi"</string>
     <string name="ringtone_title" msgid="1409086028485922583">"Telefon ringtoni"</string>
@@ -3176,7 +3178,7 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"Tebranishlar"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"Ovozni yoqish"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"Jonli izoh"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"Avtomatik taglavha mediasi"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"Avtomatik taglavha yaratish"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"Hech qachon"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other"><xliff:g id="ON_COUNT">%d</xliff:g> ta yoqilgan</item>
@@ -3294,7 +3296,7 @@
     <string name="zen_onboarding_new_setting_summary" msgid="8264430315983860075">"Bildirishnomalar chiqmaydi yoki eshittirilmaydi. Yulduzchali kontaktlardan chaqiruvlar va qayta chaqiruvlarga ruxsat berilgan."</string>
     <string name="zen_onboarding_current_setting_summary" msgid="3569246708507270821">"(Joriy parametr)"</string>
     <string name="zen_onboarding_dnd_visual_disturbances_header" msgid="7584229011611927613">"Bezovta qilinmasin rejimining bildirishnomalar sozlamalari o‘zgartirilsinmi?"</string>
-    <string name="sound_work_settings" msgid="4140215240360927923">"Ishchi profil ovozlari"</string>
+    <string name="sound_work_settings" msgid="4140215240360927923">"Ish profili ovozlari"</string>
     <string name="work_use_personal_sounds_title" msgid="531727195073003599">"Shaxsiy profil ovozlaridan foydalanish"</string>
     <string name="work_use_personal_sounds_summary" msgid="2886871383995187441">"Tovushlar ishchi va shaxsiy profillar uchun bir xil"</string>
     <string name="work_ringtone_title" msgid="5499360583947410224">"Ishchi telefon ringtoni"</string>
@@ -3303,7 +3305,7 @@
     <string name="work_sound_same_as_personal" msgid="7728560881697159758">"Shaxsiy profilniki bilan bir xil"</string>
     <string name="work_sync_dialog_title" msgid="4799120971202956837">"Tovushlar almashtirilsinmi?"</string>
     <string name="work_sync_dialog_yes" msgid="2110726233746476066">"Almashtirish"</string>
-    <string name="work_sync_dialog_message" msgid="944233463059129156">"Joriy ishchi profil tovushlaridan ishchi profilingizda foydalaniladi"</string>
+    <string name="work_sync_dialog_message" msgid="944233463059129156">"Joriy ish profili tovushlaridan ish profiliingizda foydalaniladi"</string>
     <string name="ringtones_install_custom_sound_title" msgid="210551218424553671">"Maxsus ovoz qo‘shilsinmi?"</string>
     <string name="ringtones_install_custom_sound_content" msgid="6683649115132255452">"Bu fayldan <xliff:g id="FOLDER_NAME">%s</xliff:g> jildiga nusxalanadi"</string>
     <string name="ringtones_category_preference_title" msgid="4491932700769815470">"Ringtonlar"</string>
@@ -3334,14 +3336,14 @@
     <string name="swipe_direction_rtl" msgid="4521416787262888813">"Yopish uchun chapga, menyuni ochish uchun oʻngga suring"</string>
     <string name="notification_pulse_title" msgid="4861418327614907116">"Indikator"</string>
     <string name="lock_screen_notifications_title" msgid="6889072265118747835">"Qulflangan ekranda"</string>
-    <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Ishchi profil qulflanganda"</string>
+    <string name="locked_work_profile_notification_title" msgid="8307025804986190658">"Ish profili qulflanganda"</string>
     <string name="lock_screen_notifications_summary_show" msgid="5788874994455257378">"Bildirishnomalar butun chiqsin"</string>
     <string name="lock_screen_notifications_summary_hide" msgid="3668806866535260143">"Maxfiy axborotlar berkitilsin"</string>
     <string name="lock_screen_notifications_summary_disable" msgid="3259929507369817672">"Bildirishnomalar chiqmasin"</string>
     <string name="lock_screen_notifications_interstitial_message" msgid="4230189215124387818">"Qurilmangiz qulflanganda, bildirishnomalar qanday chiqsin?"</string>
     <string name="lock_screen_notifications_interstitial_title" msgid="2832587379332443505">"Bildirishnomalar"</string>
     <string name="lock_screen_notifications_summary_show_profile" msgid="8908775469657073273">"Ishchi bildirishnomalar butun chiqsin"</string>
-    <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Ishchi profil ma’lumotlari berkitilsin"</string>
+    <string name="lock_screen_notifications_summary_hide_profile" msgid="7898086300511010591">"Ish profili ma’lumotlari berkitilsin"</string>
     <string name="lock_screen_notifications_interstitial_message_profile" msgid="3324187664458600354">"Qurilmangiz qulflanganda, profil bildirishnomalari qanday chiqsin?"</string>
     <string name="lock_screen_notifications_interstitial_title_profile" msgid="4043621508889929254">"Profil bildirishnomalari"</string>
     <string name="notifications_title" msgid="8334011924253810654">"Bildirishnomalar"</string>
@@ -3375,7 +3377,7 @@
     <string name="notifications_sent_weekly" msgid="5859675428990259432">"Haftasiga ~<xliff:g id="NUMBER">%1$s</xliff:g>"</string>
     <string name="notifications_sent_never" msgid="237997329598144638">"Hech qachon"</string>
     <string name="manage_notification_access_title" msgid="5348743662189787547">"Bildirishnomalarga kirish"</string>
-    <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Ishchi profil bildirishnomalariga kirish taqiqlangan"</string>
+    <string name="work_profile_notification_access_blocked_summary" msgid="8148871282484870576">"Ish profili bildirishnomalariga kirish taqiqlangan"</string>
     <string name="manage_notification_access_summary_zero" msgid="236809421271593016">"Ilovalar bildirishnomalarni ko‘ra olmaydi"</string>
     <plurals name="manage_notification_access_summary_nonzero" formatted="false" msgid="8496218948429646792">
       <item quantity="other">%d ilova bildirishnomalarni o‘qishi mumkin</item>
@@ -3574,7 +3576,7 @@
     <string name="screen_pinning_unlock_pin" msgid="1441705536015645023">"Yechishda PIN kod talab qilinsin"</string>
     <string name="screen_pinning_unlock_password" msgid="1017776884000170841">"Yechishdan oldin parol so‘ralsin"</string>
     <string name="screen_pinning_unlock_none" msgid="9183040569733226911">"Yechish vaqtida qurilma qulflansin"</string>
-    <string name="opening_paragraph_delete_profile_unknown_company" msgid="2350380017136403670">"Bu ishchi profil quyidagi tomonidan boshqariladi:"</string>
+    <string name="opening_paragraph_delete_profile_unknown_company" msgid="2350380017136403670">"Bu ish profili quyidagi tomonidan boshqariladi:"</string>
     <string name="managing_admin" msgid="3212584016377581608">"<xliff:g id="ADMIN_APP_LABEL">%s</xliff:g> tomonidan boshqariladi"</string>
     <string name="experimental_preference" msgid="5903223408406906322">"(Tajribaviy)"</string>
     <string name="encryption_interstitial_header" msgid="3298397268731647519">"Xavfsiz ishga tushirish"</string>
@@ -3602,7 +3604,7 @@
     <string name="imei_information_title" msgid="7666097743700170757">"IMEI kod ma’lumotlari"</string>
     <string name="imei_information_summary" msgid="716516316022275083">"IMEI raqamiga aloqador ma’lumotlar"</string>
     <string name="slot_number" msgid="785422579177068698">"(<xliff:g id="SLOT_NUM">%1$d</xliff:g>-uya)"</string>
-    <string name="launch_by_default" msgid="6106985160202769725">"Odatiy tarzda ochish"</string>
+    <string name="launch_by_default" msgid="6106985160202769725">"Birlamchi sifatida ochish"</string>
     <string name="app_launch_domain_links_title" msgid="2987289657348349133">"Havolalarni ochish"</string>
     <string name="app_launch_open_domain_urls_title" msgid="8595126859922391331">"Mos havolalarni ochish"</string>
     <string name="app_launch_open_domain_urls_summary" msgid="6803029846855502366">"Avtomatik ochilsin"</string>
@@ -3731,9 +3733,7 @@
     <!-- no translation found for battery_summary (4345690800899981339) -->
     <skip />
     <string name="battery_power_management" msgid="2853925857548647969">"Quvvat boshqaruvi"</string>
-    <!-- String.format failed for translation -->
-    <!-- no translation found for no_battery_summary (4105932628367471314) -->
-    <skip />
+    <string name="no_battery_summary" msgid="4105932628367471314">"Toʻliq quvvatlanganidan beri quvvat sarflanmadi"</string>
     <string name="app_notification_preferences" msgid="5154466638524523201">"Ilova sozlamalari"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"SystemUI Tuner ko‘rsatilsin"</string>
     <string name="additional_permissions" msgid="3142290772324571654">"Qo‘shimcha ruxsatlar"</string>
@@ -3917,7 +3917,7 @@
     <string name="condition_cellular_summary" msgid="3607459310548343777">"Internet faqat Wi‑Fi orqali ishlaydi"</string>
     <string name="condition_bg_data_title" msgid="184684435298857712">"Trafik tejash"</string>
     <string name="condition_bg_data_summary" msgid="5194942860807136682">"Ayrim funksiyalar cheklangan"</string>
-    <string name="condition_work_title" msgid="9046811302347490371">"Ishchi profil o‘chirilgan"</string>
+    <string name="condition_work_title" msgid="9046811302347490371">"Ish profili o‘chirilgan"</string>
     <string name="condition_work_summary" msgid="5586134491975748565">"Ilova va bildirishnomalarga"</string>
     <string name="condition_device_muted_action_turn_on_sound" msgid="5849285946804815263">"Ovozni yoqish"</string>
     <string name="condition_device_muted_title" msgid="3930542786434609976">"Ovozsiz qilindi"</string>
@@ -4099,7 +4099,7 @@
     <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"Tezkor sozlamalarning dasturchi tugmalari"</string>
     <string name="winscope_trace_quick_settings_title" msgid="940971040388411374">"Winscope trassirovkasi"</string>
     <string name="sensors_off_quick_settings_title" msgid="3655699045300438902">"Sensorlar nofaol"</string>
-    <string name="managed_profile_settings_title" msgid="4340409321523532402">"Ishchi profil sozlamalari"</string>
+    <string name="managed_profile_settings_title" msgid="4340409321523532402">"Ish profili sozlamalari"</string>
     <string name="managed_profile_contact_search_title" msgid="7337225196804457095">"Kontaktlarni qidirish"</string>
     <string name="managed_profile_contact_search_summary" msgid="7278267480246726951">"Tashkilot nomi bo‘yicha qidiruvda qo‘ng‘iroq qiluvchi abonent va uning kontaktini aniqlashga ruxsat berish"</string>
     <string name="cross_profile_calendar_title" msgid="2351605904015067145">"Taqvimlarni sinxronlash"</string>
@@ -4140,7 +4140,7 @@
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"Ilovalarni almashtirish uchun yangi ishorani yoqing"</string>
     <string name="ambient_display_title" product="default" msgid="6785677099744344088">"Ekranga ikki marta bosib tekshirish"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"Ekranga ikki marta bosib tekshirish"</string>
-    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Ekranga ikki marta bosib tekshirish"</string>
+    <string name="ambient_display_title" product="device" msgid="5064644474876041478">"Ekranga ikki marta teginish"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"Vaqt, bildirishnoma va boshqa axborotlarni tekshirish uchun ekranga ikki marta bosing."</string>
     <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"Telefonni olib tekshirish"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"Planshetni olib tekshirish"</string>
@@ -4153,7 +4153,7 @@
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"Planshetni tekshirish uchun bosing"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"Qurilmani tekshirish uchun bosing"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"Vaqt, bildirishnoma va boshqa axborotni tekshirish uchun ekranni bosing."</string>
-    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Bildirishnomalarni ochish uchun barmoq izi skaneridan foydalanish"</string>
+    <string name="fingerprint_swipe_for_notifications_title" msgid="3676002930672489760">"Bildirishnomalarni barmoq izi bilan ochish"</string>
     <string name="fingerprint_gesture_screen_title" msgid="8638932855807473479">"Barmoq izi skaneri"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="default" msgid="4347999905190477310">"Bildirishnomalarni tekshirish uchun telefon orqasidagi barmoq izi skaneri ustida pastga suring"</string>
     <string name="fingerprint_swipe_for_notifications_summary" product="tablet" msgid="3480057984564476283">"Bildirishnomalarni tekshirish uchun planshet orqasidagi barmoq izi skaneri ustida pastga suring"</string>
@@ -4227,7 +4227,7 @@
     <string name="enterprise_privacy_lock_device" msgid="1533125067038409945">"Administrator qurilmani qulflashi va parolni o‘zgartirishi mumkin"</string>
     <string name="enterprise_privacy_wipe_device" msgid="7555287990273929922">"Administrator barcha qurilma ma’lumotlarini o‘chirib tashlashi mumkin"</string>
     <string name="enterprise_privacy_failed_password_wipe_device" msgid="4101502079202483156">"Qurilmadagi barcha ma’lumotlar o‘chirib tashlanishi uchun necha marta parol xato kiritilishi kerak"</string>
-    <string name="enterprise_privacy_failed_password_wipe_work" msgid="2881646286634693392">"Ishchi profil ma’lumotlari o‘chirib tashlanishi uchun necha marta parol xato kiritilishi kerak"</string>
+    <string name="enterprise_privacy_failed_password_wipe_work" msgid="2881646286634693392">"Ish profili ma’lumotlari o‘chirib tashlanishi uchun necha marta parol xato kiritilishi kerak"</string>
     <plurals name="enterprise_privacy_number_failed_password_wipe" formatted="false" msgid="562550414712223382">
       <item quantity="other"><xliff:g id="COUNT_1">%d</xliff:g> ta urinish</item>
       <item quantity="one"><xliff:g id="COUNT_0">%d</xliff:g> ta urinish</item>
@@ -4491,7 +4491,7 @@
     <string name="privacy_dashboard_title" msgid="8764930992456607513">"Maxfiylik"</string>
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"Ruxsatlar, hisobdagi harakatlar, shaxsiy axborotlar"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"Olib tashlansin"</string>
-    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Saqlansin"</string>
+    <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"Saqlab qolinsin"</string>
     <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"Bu tavsiya olib tashlansinmi?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"Taklif olib tashlandi"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"Qaytarish"</string>
diff --git a/tests/CarDeveloperOptions/res/values-vi/arrays.xml b/tests/CarDeveloperOptions/res/values-vi/arrays.xml
index a34ad55..7928c93 100644
--- a/tests/CarDeveloperOptions/res/values-vi/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-vi/arrays.xml
@@ -256,7 +256,7 @@
     <item msgid="7565226799008076833">"âm lượng chính"</item>
     <item msgid="5420704980305018295">"âm lượng thoại"</item>
     <item msgid="5797363115508970204">"âm lượng chuông"</item>
-    <item msgid="8233154098550715999">"âm lượng phương tiện"</item>
+    <item msgid="8233154098550715999">"âm lượng nội dung nghe nhìn"</item>
     <item msgid="5196715605078153950">"âm lượng báo thức"</item>
     <item msgid="394030698764284577">"âm lượng thông báo"</item>
     <item msgid="8952898972491680178">"âm lượng bluetooth"</item>
@@ -286,7 +286,73 @@
     <item msgid="1165623660533024666">"chạy trong nền"</item>
     <item msgid="6423861043647911030">"âm lượng hỗ trợ tiếp cận"</item>
   </string-array>
-    <!-- no translation found for app_ops_labels:41 (2464189519136248621) -->
+  <string-array name="app_ops_labels">
+    <item msgid="7892361636570580123">"Vị trí"</item>
+    <item msgid="6656077694190491067">"Vị trí"</item>
+    <item msgid="8790228218278477369">"Vị trí"</item>
+    <item msgid="7836406246005211990">"Rung"</item>
+    <item msgid="3951439024549922598">"Đọc danh sách liên hệ"</item>
+    <item msgid="8802152411647068">"Sửa đổi danh sách liên hệ"</item>
+    <item msgid="229544934599698735">"Đọc nhật ký cuộc gọi"</item>
+    <item msgid="7396102294405899613">"Sửa đổi nhật ký cuộc gọi"</item>
+    <item msgid="3597797992398484655">"Đọc lịch"</item>
+    <item msgid="2705975774250907343">"Sửa đổi lịch"</item>
+    <item msgid="4668747371441932697">"Vị trí"</item>
+    <item msgid="1487578921720243646">"Đăng thông báo"</item>
+    <item msgid="4636080349724146638">"Vị trí"</item>
+    <item msgid="673510900286463926">"Gọi điện thoại"</item>
+    <item msgid="542083422784609790">"Đọc SMS/MMS"</item>
+    <item msgid="1033780373029588436">"Viết SMS/MMS"</item>
+    <item msgid="5647111115517787488">"Nhận SMS/MMS"</item>
+    <item msgid="8591105601108455893">"Nhận SMS/MMS"</item>
+    <item msgid="7730995008517841903">"Nhận SMS/MMS"</item>
+    <item msgid="2613033109026626086">"Nhận SMS/MMS"</item>
+    <item msgid="3037159047591081136">"Gửi SMS/MMS"</item>
+    <item msgid="4726682243833913568">"Đọc SMS/MMS"</item>
+    <item msgid="6555678522277865572">"Viết SMS/MMS"</item>
+    <item msgid="6981734935578130884">"Sửa đổi cài đặt"</item>
+    <item msgid="8705854389991425629">"Vẽ lên trên"</item>
+    <item msgid="5861356020344153651">"Truy cập thông báo"</item>
+    <item msgid="78432174621628659">"Máy ảnh"</item>
+    <item msgid="3986116419882154794">"Ghi âm"</item>
+    <item msgid="4516840825756409490">"Phát âm thanh"</item>
+    <item msgid="6811712502798183957">"Đọc khay nhớ tạm"</item>
+    <item msgid="2780369012602289114">"Sửa đổi khay nhớ tạm"</item>
+    <item msgid="2331359440170850868">"Các nút phương tiện"</item>
+    <item msgid="6133599737122751231">"Tập trung âm thanh"</item>
+    <item msgid="6844485713404805301">"Âm lượng chính"</item>
+    <item msgid="1600379420669104929">"Âm lượng thoại"</item>
+    <item msgid="6296768210470214866">"Âm lượng chuông"</item>
+    <item msgid="510690696071629241">"Âm lượng nội dung nghe nhìn"</item>
+    <item msgid="406861638631430109">"Âm lượng báo thức"</item>
+    <item msgid="4715864795872233884">"Âm lượng thông báo"</item>
+    <item msgid="2311478519251301183">"Âm lượng bluetooth"</item>
+    <item msgid="5133991377896747027">"Không khóa màn hình"</item>
+    <item msgid="2464189519136248621">"Vị trí"</item>
+    <item msgid="2062677934050803037">"Vị trí"</item>
+    <item msgid="1735171933192715957">"Tải thống kê sử dụng"</item>
+    <item msgid="1014093788778383554">"Tắt/bật micrô"</item>
+    <item msgid="4199297950608622850">"Hiển thị thông báo nhanh"</item>
+    <item msgid="2527962435313398821">"Chiếu phương tiện"</item>
+    <item msgid="5117506254221861929">"Kích hoạt VPN"</item>
+    <item msgid="8291198322681891160">"Hình nền ghi"</item>
+    <item msgid="7106921284621230961">"Cấu trúc hỗ trợ"</item>
+    <item msgid="4496533640894624799">"Ảnh chụp màn hình hỗ trợ"</item>
+    <item msgid="2598847264853993611">"Đọc trạng thái điện thoại"</item>
+    <item msgid="9215610846802973353">"Thêm thư thoại"</item>
+    <item msgid="9186411956086478261">"Sử dụng SIP"</item>
+    <item msgid="6884763100104539558">"Xử lý cuộc gọi đi"</item>
+    <item msgid="125513972170580692">"Vân tay"</item>
+    <item msgid="2556071024281275619">"Cảm biến cơ thể"</item>
+    <item msgid="617168514928339387">"Đọc truyền phát trên di động"</item>
+    <item msgid="7134693570516523585">"Vị trí mô phỏng"</item>
+    <item msgid="7224489175375229399">"Bộ nhớ đọc"</item>
+    <item msgid="8472735063903258202">"Bộ nhớ ghi"</item>
+    <item msgid="4069276819909595110">"Bật màn hình"</item>
+    <item msgid="1228338896751121025">"Nhận tài khoản"</item>
+    <item msgid="3181581793459233672">"Chạy trong nền"</item>
+    <item msgid="2340936043025374076">"Âm lượng hỗ trợ tiếp cận"</item>
+  </string-array>
   <string-array name="long_press_timeout_selector_titles">
     <item msgid="8950313530602254787">"Ngắn"</item>
     <item msgid="4816511817309094890">"Trung bình"</item>
@@ -357,9 +423,19 @@
     <item msgid="7718817231348607934">"Không bao giờ cho phép"</item>
     <item msgid="8184570120217958741">"Luôn cho phép"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Bình thường"</item>
+    <item msgid="5101233285497327432">"Trung bình"</item>
+    <item msgid="1555861583162930714">"Thấp"</item>
+    <item msgid="1719683776264798117">"Quan trọng"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Bình thường"</item>
+    <item msgid="6107138933849816768">"Trung bình"</item>
+    <item msgid="182695359839047859">"Thấp"</item>
+    <item msgid="8577246509202964244">"Cực thấp"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Liên tục"</item>
     <item msgid="167418068739176448">"Hoạt động hàng đầu"</item>
diff --git a/tests/CarDeveloperOptions/res/values-vi/strings.xml b/tests/CarDeveloperOptions/res/values-vi/strings.xml
index 569bed6..fbf0dcb 100644
--- a/tests/CarDeveloperOptions/res/values-vi/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-vi/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Thu nhỏ hoặc phóng to văn bản trên màn hình."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Thu nhỏ"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Phóng to"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Văn bản mẫu"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"Phù thủy xứ Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Chương 11: Thành phố ngọc lục bảo của xứ Oz"</string>
@@ -208,7 +207,7 @@
     <string name="proxy_error_empty_port" msgid="8034561724923076215">"Bạn cần hoàn tất trường cổng."</string>
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"Trường cổng phải trống nếu trường máy chủ lưu trữ trống."</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"Cổng bạn đã nhập không hợp lệ."</string>
-    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Proxy HTTP được sử dụng bởi trình duyệt nhưng có thể không được sử dụng bởi các ứng dụng khác."</string>
+    <string name="proxy_warning_limited_support" msgid="9026539134219095768">"Trình duyệt sẽ sử dụng proxy HTTP, nhưng các ứng dụng khác có thể không."</string>
     <string name="proxy_url_title" msgid="882042361706435904">"URL PAC: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"Băng thông DL (kb/giây):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"Băng thông UL (kb/giây):"</string>
@@ -323,7 +322,7 @@
     <string name="date_and_time_settings_title" msgid="7827088656940910631">"Ngày &amp; giờ"</string>
     <string name="date_and_time_settings_title_setup_wizard" msgid="1573030770187844365">"Đặt ngày giờ"</string>
     <string name="date_and_time_settings_summary" msgid="4617979434474713417">"Đặt ngày, giờ, múi giờ &amp; định dạng"</string>
-    <string name="date_time_auto" msgid="2679132152303750218">"Sử dụng thời gian do mạng cung cấp"</string>
+    <string name="date_time_auto" msgid="2679132152303750218">"Sử dụng ngày và giờ do mạng cung cấp"</string>
     <string name="zone_auto_title" msgid="5500880975376882488">"Sử dụng múi giờ do mạng cung cấp"</string>
     <string name="date_time_24hour_auto" msgid="7499659679134962547">"Sử dụng định dạng của địa phương"</string>
     <string name="date_time_24hour_title" msgid="6209923858891621283">"Định dạng 24 giờ"</string>
@@ -354,7 +353,7 @@
     <string name="show_owner_info_on_lockscreen_label" msgid="4510756693837171575">"Hiển thị thông tin chủ sở hữu trên màn hình khóa"</string>
     <string name="owner_info_settings_title" msgid="2537966178998339896">"Thông điệp trên màn hình khóa"</string>
     <string name="security_enable_widgets_title" msgid="1701510007926738088">"Bật tiện ích"</string>
-    <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Bị quản trị viên vô hiệu hóa"</string>
+    <string name="security_enable_widgets_disabled_summary" msgid="4408176087132339331">"Đã bị quản trị viên vô hiệu hóa"</string>
     <string name="lockdown_settings_title" msgid="4534779922580115990">"Hiện tùy chọn khóa"</string>
     <string name="lockdown_settings_summary" msgid="7270756909878256174">"Hiển thị tùy chọn nút nguồn để tắt tính năng Smart Lock, mở khóa bằng vân tay, và thông báo trên màn hình khóa"</string>
     <string name="trust_agents_extend_unlock_title" msgid="3582017561316089951">"Tác nhân tin cậy chỉ kéo dài thời gian mở khóa"</string>
@@ -388,7 +387,7 @@
     <string name="security_settings_summary" msgid="5210109100643223686">"Đặt Vị trí của tôi, mở khóa màn hình, khóa thẻ SIM, khóa bộ nhớ thông tin xác thực"</string>
     <string name="cdma_security_settings_summary" msgid="1783066617800041869">"Đặt Vị trí của tôi, mở khóa màn hình, khóa bộ nhớ thông tin xác thực"</string>
     <string name="security_passwords_title" msgid="6853942836045862315">"Bảo mật"</string>
-    <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"Bị quản trị viên vô hiệu hóa"</string>
+    <string name="disabled_by_administrator_summary" msgid="6099821045360491127">"Đã bị quản trị viên vô hiệu hóa"</string>
     <string name="security_status_title" msgid="1261960357751754428">"Trạng thái bảo mật"</string>
     <string name="security_dashboard_summary_face" msgid="2536136110153593745">"Phương thức khóa màn hình, mở khóa bằng khuôn mặt"</string>
     <string name="security_dashboard_summary" msgid="4048877125766167227">"Phương thức khóa màn hình, vân tay"</string>
@@ -411,10 +410,10 @@
     <string name="face_add_max" msgid="8870899421165189413">"Bạn có thể thêm tới <xliff:g id="COUNT">%d</xliff:g> khuôn mặt"</string>
     <string name="face_intro_error_max" msgid="4024147799079828937">"Bạn đã thêm số khuôn mặt tối đa"</string>
     <string name="face_intro_error_unknown" msgid="3241592604198351134">"Không thể thêm khuôn mặt khác nữa"</string>
-    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Đăng ký chưa hoàn tất"</string>
+    <string name="security_settings_face_enroll_error_dialog_title" msgid="3933492758701563051">"Chưa đăng ký xong"</string>
     <string name="security_settings_face_enroll_dialog_ok" msgid="1078348922734845090">"OK"</string>
     <string name="security_settings_face_enroll_error_timeout_dialog_message" msgid="4917894418448325405">"Đã đến giới hạn thời gian đăng ký khuôn mặt. Hãy thử lại."</string>
-    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Đăng ký khuôn mặt không hoạt động."</string>
+    <string name="security_settings_face_enroll_error_generic_dialog_message" msgid="5160473187142616862">"Quy trình đăng ký khuôn mặt không hoạt động."</string>
     <string name="security_settings_face_enroll_finish_title" msgid="6800717857394410769">"Đã hoàn tất. Trông rất ổn."</string>
     <string name="security_settings_face_enroll_done" msgid="5409739233373490971">"Xong"</string>
     <string name="security_settings_face_settings_use_face_category" msgid="1586532139528115416">"Sử dụng khuôn mặt để"</string>
@@ -469,7 +468,7 @@
     <string name="security_settings_fingerprint_enroll_start_title" msgid="1346287821809975177">"Chạm vào cảm biến"</string>
     <string name="security_settings_fingerprint_enroll_start_message" msgid="750040530347336376">"Đặt ngón tay lên cảm biến và nhấc lên sau khi cảm thấy rung"</string>
     <string name="security_settings_fingerprint_enroll_repeat_title" msgid="1764145704166303842">"Nhấc ngón tay lên rồi chạm lại"</string>
-    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Tiếp tục nhấc ngón tay để thêm các phần khác nhau của vân tay"</string>
+    <string name="security_settings_fingerprint_enroll_repeat_message" msgid="4434560313661204448">"Chạm liên tục trên cảm biến để thêm các phần khác của ngón tay"</string>
     <string name="security_settings_fingerprint_enroll_finish_title" msgid="2987918958909117821">"Đã thêm vân tay"</string>
     <string name="security_settings_fingerprint_enroll_finish_message" msgid="5862643337893923347">"Khi bạn nhìn thấy biểu tượng này, hãy sử dụng vân tay của mình để nhận dạng hoặc phê duyệt hoạt động mua hàng"</string>
     <string name="security_settings_fingerprint_enroll_enrolling_skip" msgid="1473280156532146933">"Thực hiện sau"</string>
@@ -488,8 +487,8 @@
     <string name="security_settings_fingerprint_enroll_done" msgid="4111289529758845926">"Xong"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_title" msgid="7410398793283818609">"Rất tiếc, đó không phải là cảm biến"</string>
     <string name="security_settings_fingerprint_enroll_touch_dialog_message" msgid="7192100314788868883">"Chạm vào cảm biến ở mặt sau điện thoại. Dùng ngón tay trỏ."</string>
-    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Đăng ký chưa hoàn tất"</string>
-    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Đã đến giới hạn thời gian đăng ký dấu vân tay. Hãy thử lại."</string>
+    <string name="security_settings_fingerprint_enroll_error_dialog_title" msgid="1415709674142168770">"Chưa đăng ký xong"</string>
+    <string name="security_settings_fingerprint_enroll_error_timeout_dialog_message" msgid="498951203761192366">"Thời gian đăng ký vân tay đã hết hạn. Hãy thử lại."</string>
     <string name="security_settings_fingerprint_enroll_error_generic_dialog_message" msgid="7896295829530444810">"Đăng ký dấu vân tay không hoạt động. Hãy thử lại hoặc sử dụng ngón tay khác."</string>
     <string name="fingerprint_enroll_button_add" msgid="6335782936874996629">"Thêm vân tay khác"</string>
     <string name="fingerprint_enroll_button_next" msgid="6419214079104413695">"Tiếp theo"</string>
@@ -568,7 +567,7 @@
     <string name="unlock_set_unlock_off_summary" msgid="3997346045783359119"></string>
     <string name="unlock_set_unlock_none_title" msgid="1922027966983146392">"Vuốt"</string>
     <string name="unlock_set_unlock_none_summary" msgid="4044529413627659031">"Không có bảo mật"</string>
-    <string name="unlock_set_unlock_pattern_title" msgid="7533759994999423587">"Hình"</string>
+    <string name="unlock_set_unlock_pattern_title" msgid="7533759994999423587">"Hình mở khóa"</string>
     <string name="unlock_set_unlock_pattern_summary" msgid="8858697834522201333">"Mức độ bảo mật trung bình"</string>
     <string name="unlock_set_unlock_pin_title" msgid="361479901761948207">"Mã PIN"</string>
     <string name="unlock_set_unlock_pin_summary" msgid="8076921768675948228">"Mức độ bảo mật từ trung bình đến cao"</string>
@@ -589,7 +588,7 @@
     <string name="unlock_set_unlock_disabled_summary" msgid="1713159782896140817">"Do quản trị viên tắt, c.sách mã hóa hay vùng l.trữ t.tin xác thực"</string>
     <string name="unlock_set_unlock_mode_off" msgid="2950701212659081973">"Không"</string>
     <string name="unlock_set_unlock_mode_none" msgid="3441605629077912292">"Vuốt"</string>
-    <string name="unlock_set_unlock_mode_pattern" msgid="8564909572968419459">"Hình"</string>
+    <string name="unlock_set_unlock_mode_pattern" msgid="8564909572968419459">"Hình mở khóa"</string>
     <string name="unlock_set_unlock_mode_pin" msgid="7828354651668392875">"Mã PIN"</string>
     <string name="unlock_set_unlock_mode_password" msgid="397703731925549447">"Mật khẩu"</string>
     <string name="unlock_setup_wizard_fingerprint_details" msgid="6515136915205473675">"Sau khi thiết lập khóa màn hình, bạn cũng có thể thiết lập vân tay của mình trong Cài đặt và bảo mật."</string>
@@ -801,7 +800,7 @@
     <string name="bluetooth_max_connected_audio_devices_dialog_title" msgid="6049527354499590314">"Chọn số thiết bị âm thanh được kết nối qua Bluetooth tối đa"</string>
     <string name="wifi_display_settings_title" msgid="8718182672694575456">"Truyền"</string>
     <string name="wifi_display_enable_menu_item" msgid="4578340247147692250">"Bật hiển thị không dây"</string>
-    <string name="wifi_display_no_devices_found" msgid="186501729518830451">"Không tìm thấy thiết bị lân cận nào."</string>
+    <string name="wifi_display_no_devices_found" msgid="186501729518830451">"Không tìm thấy thiết bị nào ở gần."</string>
     <string name="wifi_display_status_connecting" msgid="3799827425457383349">"Đang kết nối"</string>
     <string name="wifi_display_status_connected" msgid="85692409327461403">"Đã kết nối"</string>
     <string name="wifi_display_status_in_use" msgid="7646114501132773174">"Đang được sử dụng"</string>
@@ -827,7 +826,7 @@
     <string name="nfc_disclaimer_title" msgid="4860231267351602970">"Bật NFC"</string>
     <string name="nfc_disclaimer_content" msgid="3066113577854565782">"NFC trao đổi dữ liệu giữa thiết bị này với các thiết bị hoặc thiết bị đích lân cận khác, chẳng hạn như trạm thanh toán, trình đọc truy cập và các quảng cáo hoặc thẻ tương tác."</string>
     <string name="nfc_secure_settings_title" msgid="5153751163174916581">"Bảo mật NFC"</string>
-    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Chỉ cho phép sử dụng Thanh toán bằng NFC và Phương tiện công cộng khi màn hình đang mở khóa"</string>
+    <string name="nfc_secure_toggle_summary" product="default" msgid="7631183023440112192">"Chỉ cho phép sử dụng tính năng Thanh toán bằng NFC và Phương tiện công cộng khi màn hình đang mở khóa"</string>
     <string name="android_beam_settings_title" msgid="3083436415873738389">"Android Beam"</string>
     <string name="android_beam_on_summary" msgid="8068287225180474199">"Sẵn sàng truyền tải nội dung ứng dụng qua NFC"</string>
     <string name="android_beam_off_summary" msgid="7365818039159364600">"Đang tắt"</string>
@@ -863,7 +862,7 @@
     <string name="use_open_wifi_automatically_summary_scorer_unsupported_disabled" msgid="1123080670578756834">"Để sử dụng, hãy chọn một nhà cung cấp dịch vụ xếp hạng mạng tương thích"</string>
     <string name="wifi_install_credentials" msgid="5650088113710858289">"Cài đặt chứng chỉ"</string>
     <string name="wifi_scan_notify_text" msgid="7614101215028336927">"Để nâng cao độ chính xác của vị trí, các ứng dụng và dịch vụ có thể vẫn quét tìm mạng Wi‑Fi bất kỳ lúc nào, ngay cả khi Wi-Fi bị tắt. Chẳng hạn, bạn có thể sử dụng cài đặt này để cải thiện các tính năng và dịch vụ dựa trên vị trí. Bạn có thể thay đổi cài đặt này trong phần <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>cài đặt quét<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
-    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Để nâng cao độ chính xác về vị trí, hãy bật quét tìm Wi-Fi trong <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>cài đặt quét<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
+    <string name="wifi_scan_notify_text_scanning_off" msgid="723796963816095410">"Để nâng cao độ chính xác về vị trí, hãy bật tính năng quét tìm Wi-Fi trong phần <xliff:g id="LINK_BEGIN_0">LINK_BEGIN</xliff:g>cài đặt quét<xliff:g id="LINK_END_1">LINK_END</xliff:g>."</string>
     <string name="wifi_scan_notify_remember_choice" msgid="1235445971400237444">"Không hiển thị nữa"</string>
     <string name="wifi_setting_sleep_policy_title" msgid="2120785188625932076">"Bật Wi-Fi khi ở chế độ ngủ"</string>
     <string name="wifi_setting_on_during_sleep_title" msgid="856670183023402715">"Bật Wi-Fi khi ở chế độ ngủ"</string>
@@ -906,11 +905,11 @@
     <string name="wifi_ssid_hint" msgid="5010024648106585165">"Nhập SSID"</string>
     <string name="wifi_security" msgid="9136702039496152831">"Bảo mật"</string>
     <string name="wifi_hidden_network" msgid="6647772204699776833">"Mạng ẩn"</string>
-    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Nếu bộ định tuyến của bạn không phát ID mạng nhưng bạn muốn kết nối với mạng này trong tương lai, thì bạn có thể đặt mạng ẩn.\n\nĐiều này có thể gây rủi ro bảo mật vì điện thoại của bạn sẽ thường xuyên phát tín hiệu để tìm mạng.\n\nViệc đặt mạng ẩn sẽ không thay đổi các cài đặt của bộ định tuyến."</string>
+    <string name="wifi_hidden_network_warning" msgid="8182333050353796473">"Nếu bộ định tuyến của bạn không phát ra một tên mạng nhưng bạn muốn kết nối với mạng này trong tương lai, thì bạn có thể đặt mạng này là mạng ẩn.\n\nĐiều này có thể gây rủi ro bảo mật vì điện thoại của bạn sẽ thường xuyên phát tín hiệu để tìm mạng.\n\nViệc đặt mạng này là mạng ẩn sẽ không thay đổi các tùy chọn cài đặt của bộ định tuyến."</string>
     <string name="wifi_signal" msgid="696548364467704808">"Cường độ tín hiệu"</string>
     <string name="wifi_status" msgid="3439931558930689940">"Trạng thái"</string>
-    <string name="tx_wifi_speed" msgid="2571810085003261073">"Tốc độ của liên kết truyền"</string>
-    <string name="rx_wifi_speed" msgid="7392873246110937187">"Tốc độ nhận đường dẫn liên kết"</string>
+    <string name="tx_wifi_speed" msgid="2571810085003261073">"Tốc độ truyền"</string>
+    <string name="rx_wifi_speed" msgid="7392873246110937187">"Tốc độ nhận"</string>
     <string name="wifi_frequency" msgid="6132852924995724246">"Tần số"</string>
     <string name="wifi_ip_address" msgid="5572539114989914831">"Địa chỉa IP"</string>
     <string name="passpoint_label" msgid="7429247462404128615">"Đã lưu thông qua"</string>
@@ -920,7 +919,7 @@
     <string name="wifi_eap_ca_cert" msgid="1496395241849383785">"Chứng chỉ CA"</string>
     <string name="wifi_eap_domain" msgid="3298302320003640130">"Miền"</string>
     <string name="wifi_eap_user_cert" msgid="6786839531765719173">"Chứng chỉ người dùng"</string>
-    <string name="wifi_eap_identity" msgid="5280457017705738773">"Nhận dạng"</string>
+    <string name="wifi_eap_identity" msgid="5280457017705738773">"Danh tính"</string>
     <string name="wifi_eap_anonymous" msgid="6352344972490839958">"Danh tính ẩn danh"</string>
     <string name="wifi_password" msgid="6942983531275177771">"Mật khẩu"</string>
     <string name="wifi_show_password" msgid="7878398590772942202">"Hiển thị mật khẩu"</string>
@@ -935,8 +934,8 @@
     <string name="wifi_ip_settings" msgid="4636102290236116946">"Cài đặt IP"</string>
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"Quyền riêng tư"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"Địa chỉ MAC gán ngẫu nhiên"</string>
-    <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Thêm một thiết bị"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Căn giữa mã QR dưới đây để thêm thiết bị vào “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
+    <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"Thêm thiết bị"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"Đưa mã QR vào giữa khung bên dưới để thêm thiết bị vào “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"Quét mã QR"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"Căn giữa mã QR dưới đây để kết nối với “<xliff:g id="SSID">%1$s</xliff:g>”"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"Kết nối với Wi‑Fi bằng cách quét mã QR"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Di động"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Nếu không có Wi‑Fi, hãy dùng mạng di động"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Nếu không có mạng di động, hãy dùng Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Gọi qua Wi‑Fi. Nếu mất Wi‑Fi, cuộc gọi sẽ kết thúc."</string>
@@ -1213,7 +1215,7 @@
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"Lịch biểu"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"Không có"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"Bật vào thời gian tùy chỉnh"</string>
-    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Bật từ hoàng hôn đến bình minh"</string>
+    <string name="night_display_auto_mode_twilight" msgid="4000162110017520674">"Bật từ lúc mặt trời lặn đến lúc mặt trời mọc"</string>
     <string name="night_display_start_time_title" msgid="1069255169673371077">"Thời gian bắt đầu"</string>
     <string name="night_display_end_time_title" msgid="2760793157124245911">"Thời gian kết thúc"</string>
     <string name="night_display_status_title" msgid="1727020934735770319">"Trạng thái"</string>
@@ -1228,7 +1230,7 @@
     <string name="night_display_summary_on_auto_mode_twilight" msgid="8386769601369289561">"Sẽ tự động tắt lúc bình minh"</string>
     <string name="night_display_activation_on_manual" msgid="8379477527072027346">"Bật ngay"</string>
     <string name="night_display_activation_off_manual" msgid="7776082151269794201">"Tắt ngay"</string>
-    <string name="night_display_activation_on_twilight" msgid="5610294051700287249">"Bật cho đến bình minh"</string>
+    <string name="night_display_activation_on_twilight" msgid="5610294051700287249">"Bật cho đến lúc mặt trời mọc"</string>
     <string name="night_display_activation_off_twilight" msgid="6846727701281556110">"Tắt cho đến hoàng hôn"</string>
     <string name="night_display_activation_on_custom" msgid="4761140206778957611">"Bật cho đến <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_activation_off_custom" msgid="4207238846687792731">"Tắt cho đến <xliff:g id="ID_1">%1$s</xliff:g>"</string>
@@ -1550,7 +1552,7 @@
     <string name="carrier_enabled" msgid="1819916725305365581">"Bật/tắt APN"</string>
     <string name="carrier_enabled_summaryOn" msgid="6219221535461945771">"Đã bật APN"</string>
     <string name="carrier_enabled_summaryOff" msgid="4093019532796386622">"Đã tắt APN"</string>
-    <string name="bearer" msgid="4378444317087536401">"Trình chuyển"</string>
+    <string name="bearer" msgid="4378444317087536401">"Sóng mang"</string>
     <string name="mvno_type" msgid="3150755279048149624">"Kiểu MVNO"</string>
     <string name="mvno_match_data" msgid="629287305803195245">"Giá trị MVNO"</string>
     <string name="menu_delete" msgid="8646081395424055735">"Xóa APN"</string>
@@ -1565,7 +1567,7 @@
     <string name="error_adding_apn_type" msgid="671634520340569678">"Nhà cung cấp dịch vụ không cho phép thêm APN thuộc loại %s."</string>
     <string name="restore_default_apn" msgid="7195266404077471007">"Đang khôi phục cài đặt APN mặc định."</string>
     <string name="menu_restore" msgid="3799288817317293115">"Đặt lại về mặc định"</string>
-    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Đặt lại cài đặt APN mặc định đã hoàn tất."</string>
+    <string name="restore_default_apn_completed" msgid="5671734152740058937">"Đã đặt lại xong các tùy chọn cài đặt APN mặc định về trạng thái ban đầu."</string>
     <string name="reset_dashboard_title" msgid="7084966342252178530">"Tùy chọn đặt lại"</string>
     <string name="reset_dashboard_summary" msgid="8778383341461126642">"Có thể đặt lại mạng, ứng dụng hoặc thiết bị"</string>
     <string name="reset_network_title" msgid="8944059136930806211">"Đặt lại Wi-Fi, di động và Bluetooth"</string>
@@ -1583,8 +1585,8 @@
     <string name="reset_esim_error_msg" msgid="4716366079119742235">"Không thể xóa SIM đã tải xuống do lỗi.\n\nHãy khởi động lại thiết bị của bạn rồi thử lại."</string>
     <string name="master_clear_title" msgid="1560712943955904673">"Xóa mọi dữ liệu (đặt lại thiết bị)"</string>
     <string name="master_clear_short_title" msgid="919098101581335101">"Xóa mọi dữ liệu (đặt lại thiết bị)"</string>
-    <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Hành động này sẽ xóa tất cả dữ liệu khỏi "<b>"bộ nhớ trong"</b>" của máy tính bảng, bao gồm cả:\n\n"<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu cũng như các tùy chọn cài đặt của hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
-    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Hành động này sẽ xóa tất cả dữ liệu khỏi "<b>"bộ nhớ trong"</b>" của điện thoại, bao gồm cả:\n\n"<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu cũng như các tùy chọn cài đặt hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
+    <string name="master_clear_desc" product="tablet" msgid="3432373610755760899">"Thao tác này sẽ xóa tất cả dữ liệu trong "<b>"bộ nhớ trong"</b>" của máy tính bảng, bao gồm:\n\n"<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu và các tùy chọn cài đặt của hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
+    <string name="master_clear_desc" product="default" msgid="8765543541962866697">"Thao tác này sẽ xóa tất cả dữ liệu trong "<b>"bộ nhớ trong"</b>" của điện thoại, bao gồm:\n\n"<li>"Tài khoản Google của bạn"</li>\n<li>"Dữ liệu và các tùy chọn cài đặt của hệ thống và ứng dụng"</li>\n<li>"Ứng dụng đã tải xuống"</li></string>
     <string name="master_clear_accounts" product="default" msgid="3432884235445405376">\n\n"Bạn hiện đã đăng nhập vào các tài khoản sau đây:\n"</string>
     <string name="master_clear_other_users_present" product="default" msgid="5993259656117566767">\n\n"Có người dùng khác trên thiết bị này.\n"</string>
     <string name="master_clear_desc_also_erases_external" msgid="3947303501615091903"><li>"Nhạc"</li>\n<li>"Ảnh"</li>\n<li>"Dữ liệu người dùng khác"</li></string>
@@ -1608,26 +1610,26 @@
     <string name="master_clear_progress_text" msgid="5418958116008976218">"Vui lòng chờ..."</string>
     <string name="call_settings_title" msgid="5033906789261282752">"Cài đặt cuộc gọi"</string>
     <string name="call_settings_summary" msgid="2119161087671450035">"Thiết lập thư thoại, chuyển tiếp cuộc gọi, chờ cuộc gọi, Số gọi đến"</string>
-    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Chia sẻ kết nối Internet qua USB"</string>
+    <string name="tether_settings_title_usb" msgid="4265582654602420357">"Chia sẻ Internet qua USB"</string>
     <string name="tether_settings_title_wifi" msgid="2060965130234484613">"Điểm phát sóng di động"</string>
-    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Chia sẻ kết nối Internet qua Bluetooth"</string>
-    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Đang dùng làm điểm truy cập Internet"</string>
-    <string name="tether_settings_title_all" msgid="6935843543433954181">"Điểm phát sóng và chia sẻ kết nối"</string>
-    <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Điểm phát sóng bật, chia sẻ kết nối"</string>
+    <string name="tether_settings_title_bluetooth" msgid="1999590158102569959">"Chia sẻ Internet qua Bluetooth"</string>
+    <string name="tether_settings_title_usb_bluetooth" msgid="1159128764162788159">"Chia sẻ Internet"</string>
+    <string name="tether_settings_title_all" msgid="6935843543433954181">"Điểm phát sóng và chia sẻ Internet"</string>
+    <string name="tether_settings_summary_hotspot_on_tether_on" msgid="1289593649526514499">"Điểm phát sóng đang bật, đang chia sẻ Internet"</string>
     <string name="tether_settings_summary_hotspot_on_tether_off" msgid="8010689354668285422">"Điểm phát sóng bật"</string>
-    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Chia sẻ kết nối"</string>
+    <string name="tether_settings_summary_hotspot_off_tether_on" msgid="1349909238672649877">"Chia sẻ Internet"</string>
     <string name="tether_settings_disabled_on_data_saver" msgid="3682544845899910726">"Không thể chia sẻ kết nối hoặc sử dụng điểm phát sóng di động khi Trình tiết kiệm dữ liệu đang bật"</string>
     <string name="usb_title" msgid="7480927657535578688">"USB"</string>
-    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Chia sẻ kết nối Internet qua USB"</string>
+    <string name="usb_tethering_button_text" msgid="6242228383142012332">"Chia sẻ Internet qua USB"</string>
     <string name="usb_tethering_subtext" product="default" msgid="1573513260339548671">"Chia sẻ kết nối Internet của điện thoại qua USB"</string>
     <string name="usb_tethering_subtext" product="tablet" msgid="154536000235361034">"Chia sẻ kết nối Internet của máy tính bảng qua USB"</string>
-    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Chia sẻ kết nối Internet qua Bluetooth"</string>
+    <string name="bluetooth_tether_checkbox_text" msgid="7257293066139372774">"Chia sẻ Internet qua Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="tablet" msgid="6868756914621131635">"Chia sẻ kết nối Internet của máy tính bảng qua Bluetooth"</string>
     <string name="bluetooth_tethering_subtext" product="default" msgid="9167912297565425178">"Chia sẻ kết nối Internet của điện thoại qua Bluetooth"</string>
     <string name="bluetooth_tethering_off_subtext_config" msgid="3981528184780083266">"Chia sẻ kết nối Internet của <xliff:g id="DEVICE_NAME">%1$d</xliff:g> này qua Bluetooth"</string>
     <string name="bluetooth_tethering_overflow_error" msgid="6946561351369376943">"Không thể dùng làm điểm truy cập Internet cho hơn <xliff:g id="MAXCONNECTION">%1$d</xliff:g> thiết bị."</string>
     <string name="bluetooth_untether_blank" msgid="5428300773782256084">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> sẽ được tháo."</string>
-    <string name="tethering_footer_info" msgid="8019555174339154124">"Sử dụng điểm phát sóng và chia sẻ kết nối để cung cấp kết nối Internet cho thiết bị khác thông qua kết nối dữ liệu di động. Các ứng dụng cũng có thể tạo điểm phát sóng để chia sẻ nội dung với thiết bị lân cận."</string>
+    <string name="tethering_footer_info" msgid="8019555174339154124">"Sử dụng tính năng điểm phát sóng và chia sẻ Internet để cho phép các thiết bị khác kết nối với Internet thông qua dữ liệu di động của bạn. Các ứng dụng cũng có thể tạo điểm phát sóng để chia sẻ nội dung với thiết bị ở gần."</string>
     <string name="tethering_help_button_text" msgid="7653022000284543996">"Trợ giúp"</string>
     <string name="network_settings_title" msgid="8516526011407061679">"Mạng di động"</string>
     <string name="manage_mobile_plan_title" msgid="3312016665522553062">"Gói dịch vụ di động"</string>
@@ -1646,7 +1648,7 @@
     <string name="mobile_connect_to_internet" msgid="6031886097365170913">"Vui lòng kết nối internet"</string>
     <string name="location_title" msgid="8664674161765477168">"Vị trí của tôi"</string>
     <string name="managed_profile_location_switch_title" msgid="8157384427925389680">"Vị trí của hồ sơ công việc"</string>
-    <string name="location_app_level_permissions" msgid="1298041503927632960">"Quyền truy cập ứng dụng"</string>
+    <string name="location_app_level_permissions" msgid="1298041503927632960">"Quyền truy cập của ứng dụng"</string>
     <string name="location_app_permission_summary_location_off" msgid="541372845344796336">"Vị trí đang tắt"</string>
     <plurals name="location_app_permission_summary_location_on" formatted="false" msgid="7904821382328758218">
       <item quantity="other"> <xliff:g id="BACKGROUND_LOCATION_APP_COUNT_2">%1$d</xliff:g>/<xliff:g id="TOTAL_LOCATION_APP_COUNT_3">%2$d</xliff:g> ứng dụng có quyền truy cập không giới hạn</item>
@@ -1654,7 +1656,7 @@
     </plurals>
     <string name="location_category_recent_location_access" msgid="286059523360285026">"Quyền truy cập vị trí gần đây"</string>
     <string name="location_recent_location_access_view_details" msgid="2051602261436245905">"Xem chi tiết"</string>
-    <string name="location_no_recent_apps" msgid="77502059586413278">"Không có ứng dụng nào yêu cầu vị trí gần đây"</string>
+    <string name="location_no_recent_apps" msgid="77502059586413278">"Không có ứng dụng nào gần đây yêu cầu vị trí"</string>
     <string name="location_no_recent_accesses" msgid="6289916310397279890">"Gần đây, không có ứng dụng nào truy cập vào vị trí"</string>
     <string name="location_high_battery_use" msgid="7177199869979522663">"Mức sử dụng pin cao"</string>
     <string name="location_low_battery_use" msgid="5030448574501435888">"Mức sử dụng pin thấp"</string>
@@ -1744,7 +1746,7 @@
     <string name="lockpassword_confirm_your_password_header_frp" msgid="7326670978891793470">"Xác minh mật khẩu"</string>
     <string name="lockpassword_invalid_pin" msgid="3059022215815900137">"Mã PIN sai"</string>
     <string name="lockpassword_invalid_password" msgid="8374331995318204099">"Mật khẩu sai"</string>
-    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"Hình không chính xác"</string>
+    <string name="lockpattern_need_to_unlock_wrong" msgid="1328670466959377948">"Hình mở khóa không chính xác"</string>
     <string name="lock_settings_title" msgid="233657584969886812">"Bảo mật thiết bị"</string>
     <string name="lockpattern_change_lock_pattern_label" msgid="333149762562581510">"Thay đổi hình mở khóa"</string>
     <string name="lockpattern_change_lock_pin_label" msgid="3435796032210265723">"Thay đổi mã PIN mở khóa"</string>
@@ -2094,7 +2096,7 @@
     <string name="accessibility_ring_vibration_title" msgid="7943341443551359985">"Rung khi đổ chuông"</string>
     <string name="accessibility_touch_vibration_title" msgid="285890135612038092">"Rung khi chạm"</string>
     <string name="accessibility_service_master_switch_title" msgid="2734791644475782924">"Sử dụng dịch vụ"</string>
-    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Sử dụng tính năng sửa màu"</string>
+    <string name="accessibility_daltonizer_master_switch_title" msgid="4855011639012300777">"Sử dụng tính năng chỉnh màu"</string>
     <string name="accessibility_caption_master_switch_title" msgid="6373335123229234053">"Sử dụng phụ đề"</string>
     <string name="accessibility_hearingaid_instruction_continue_button" msgid="4650111296711466691">"Tiếp tục"</string>
     <string name="accessibility_hearingaid_title" msgid="3700978781235124891">"Thiết bị trợ thính"</string>
@@ -2636,7 +2638,7 @@
     <string name="enter_password" msgid="2963496904625715235">"Để bắt đầu sử dụng thiết bị Android, hãy nhập mật khẩu của bạn"</string>
     <string name="enter_pin" msgid="7140938268709546890">"Để bắt đầu sử dụng thiết bị Android, hãy nhập mã PIN của bạn"</string>
     <string name="enter_pattern" msgid="1653841963422825336">"Để bắt đầu sử dụng thiết bị Android, hãy vẽ hình mẫu của bạn"</string>
-    <string name="cryptkeeper_wrong_pattern" msgid="4580105105385125467">"Hình không chính xác"</string>
+    <string name="cryptkeeper_wrong_pattern" msgid="4580105105385125467">"Hình mở khóa không chính xác"</string>
     <string name="cryptkeeper_wrong_password" msgid="1709534330303983166">"Mật khẩu sai"</string>
     <string name="cryptkeeper_wrong_pin" msgid="857757190077859245">"Mã PIN sai"</string>
     <string name="checking_decryption" msgid="5927759912073053101">"Đang kiểm tra…"</string>
@@ -2792,7 +2794,7 @@
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"Luôn kết nối với VPN mọi lúc"</string>
     <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"Không được ứng dụng này hỗ trợ"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"Luôn bật đang hoạt động"</string>
-    <string name="vpn_require_connection" msgid="5413746839457797350">"Chặn kết nối khối mà không cần VPN"</string>
+    <string name="vpn_require_connection" msgid="5413746839457797350">"Chặn các đường kết nối không qua VPN"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"Yêu cầu kết nối VPN?"</string>
     <string name="vpn_lockdown_summary" msgid="6770030025737770861">"Chọn một cấu hình VPN để luôn giữ kết nối. Lưu lượng truy cập mạng sẽ chỉ được cho phép khi kết nối với VPN này."</string>
     <string name="vpn_lockdown_none" msgid="3789288793603394679">"Không có"</string>
@@ -2914,16 +2916,16 @@
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"Mở rộng cài đặt cho ứng dụng"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"Nhấn và thanh toán"</string>
     <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"Cách thức hoạt động"</string>
-    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Thanh toán bằng điện thoại của bạn trong cửa hàng"</string>
-    <string name="nfc_payment_default" msgid="7869273092463612271">"Mặc định thanh toán"</string>
+    <string name="nfc_payment_no_apps" msgid="8844440783395420860">"Dùng điện thoại của bạn để thanh toán tại các cửa hàng"</string>
+    <string name="nfc_payment_default" msgid="7869273092463612271">"Ứng dụng thanh toán mặc định"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"Chưa đặt"</string>
     <string name="nfc_payment_app_and_desc" msgid="102312684211458190">"<xliff:g id="APP">%1$s</xliff:g> - <xliff:g id="DESCRIPTION">%2$s</xliff:g>"</string>
-    <string name="nfc_payment_use_default" msgid="3098724195746409476">"Sử dụng mặc định"</string>
+    <string name="nfc_payment_use_default" msgid="3098724195746409476">"Sử dụng ứng dụng mặc định"</string>
     <string name="nfc_payment_favor_default" msgid="7555356982142464260">"Luôn luôn"</string>
     <string name="nfc_payment_favor_open" msgid="3739055715000436749">"Trừ khi một ứng dụng thanh toán khác đang mở"</string>
     <string name="nfc_payment_pay_with" msgid="8412558374792061266">"Ở một cổng Nhấn và thanh toán, thanh toán bằng:"</string>
-    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Thanh toán tại thiết bị đầu cuối"</string>
-    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Thiết lập ứng dụng thanh toán. Sau đó chỉ cần giữ mặt sau điện thoại của bạn gần với thiết bị đầu cuối bất kỳ có biểu tượng không tiếp xúc."</string>
+    <string name="nfc_how_it_works_title" msgid="6531433737926327904">"Thanh toán tại thiết bị thanh toán"</string>
+    <string name="nfc_how_it_works_content" msgid="9174575836302449343">"Thiết lập ứng dụng thanh toán. Sau đó chỉ cần hướng mặt sau của điện thoại vào thiết bị thanh toán có biểu tượng không tiếp xúc."</string>
     <string name="nfc_how_it_works_got_it" msgid="2432535672153247411">"OK"</string>
     <string name="nfc_more_title" msgid="2825856411836382264">"Thêm..."</string>
     <string name="nfc_payment_set_default_label" msgid="3997927342761454042">"Đặt làm tùy chọn của bạn?"</string>
@@ -3044,7 +3046,7 @@
     <string name="account_dashboard_title" msgid="4734300939532555885">"Tài khoản"</string>
     <string name="account_dashboard_default_summary" msgid="6822549669771936206">"Chưa thêm tài khoản nào"</string>
     <string name="app_default_dashboard_title" msgid="6575301028225232193">"Ứng dụng mặc định"</string>
-    <string name="system_dashboard_summary" msgid="6582464466735779394">"Ngôn ngữ, cử chỉ, thời gian, bản sao lưu"</string>
+    <string name="system_dashboard_summary" msgid="6582464466735779394">"Ngôn ngữ, cử chỉ, ngày giờ, bản sao lưu"</string>
     <string name="search_results_title" msgid="4160717656435503940">"Cài đặt"</string>
     <string name="keywords_wifi" msgid="8477688080895466846">"wifi, wi-fi, kết nối mạng, internet, không dây, dữ liệu, wi fi"</string>
     <string name="keywords_wifi_notify_open_networks" msgid="1031260564121854773">"thông báo về Wi‑Fi, thông báo wifi"</string>
@@ -3132,7 +3134,7 @@
     <string name="sound_settings_summary_vibrate" msgid="2194491116884798590">"Đã đặt chuông thành rung"</string>
     <string name="sound_settings_summary_silent" msgid="899823817462768876">"Đã đặt chuông thành im lặng"</string>
     <string name="sound_settings_example_summary" msgid="2091822107298841827">"Âm lượng chuông ở mức 80%"</string>
-    <string name="media_volume_option_title" msgid="3553411883305505682">"Âm lượng phương tiện"</string>
+    <string name="media_volume_option_title" msgid="3553411883305505682">"Âm lượng nội dung nghe nhìn"</string>
     <string name="remote_media_volume_option_title" msgid="6355710054191873836">"Âm lượng truyền"</string>
     <string name="call_volume_option_title" msgid="5028003296631037334">"Âm lượng cuộc gọi"</string>
     <string name="alarm_volume_option_title" msgid="3184076022438477047">"Âm lượng báo thức"</string>
@@ -3231,7 +3233,7 @@
     <string name="zen_mode_button_turn_on" msgid="1097964136225943415">"Bật ngay"</string>
     <string name="zen_mode_button_turn_off" msgid="3990967728457149454">"Tắt ngay bây giờ"</string>
     <string name="zen_mode_settings_dnd_manual_end_time" msgid="4307574188962071429">"Chế độ Không làm phiền được bật đến <xliff:g id="FORMATTED_TIME">%s</xliff:g>"</string>
-    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Không làm phiền vẫn được bật cho đến khi bạn tắt chế độ này"</string>
+    <string name="zen_mode_settings_dnd_manual_indefinite" msgid="3701005376825238752">"Chế độ Không làm phiền vẫn được bật cho đến khi bạn tắt chế độ này"</string>
     <string name="zen_mode_settings_dnd_automatic_rule" msgid="2843297614114625408">"Chế độ Không làm phiền được tự động bật theo lịch biểu (<xliff:g id="RULE_NAME">%s</xliff:g>)"</string>
     <string name="zen_mode_settings_dnd_automatic_rule_app" msgid="5103454923160912313">"Chế độ Không làm phiền đã được một ứng dụng (<xliff:g id="APP_NAME">%s</xliff:g>) bật tự động"</string>
     <string name="zen_mode_settings_dnd_custom_settings_footer" msgid="6335108298640066560">"Chế độ Không làm phiền đang bật đối với <xliff:g id="RULE_NAMES">%s</xliff:g> với các mục cài đặt tùy chỉnh."</string>
@@ -3500,14 +3502,14 @@
     <string name="zen_mode_alarms" msgid="5528707742250954290">"Cho phép chuông báo thức"</string>
     <string name="zen_mode_alarms_list" msgid="9162210238533665593">"báo thức"</string>
     <string name="zen_mode_media" msgid="3701280649874724055">"Phát âm thanh nội dung nghe nhìn"</string>
-    <string name="zen_mode_media_list" msgid="509327580522287125">"nội dung phương tiện"</string>
+    <string name="zen_mode_media_list" msgid="509327580522287125">"nội dung nghe nhìn"</string>
     <string name="zen_mode_system" msgid="597437265986355038">"Cho phép âm chạm"</string>
     <string name="zen_mode_system_list" msgid="480192458506838077">"âm chạm"</string>
     <string name="zen_mode_reminders" msgid="7560664194610054038">"Cho phép lời nhắc"</string>
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"lời nhắc"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"Cho phép sự kiện"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"Cho phép ứng dụng ghi đè"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Ngoại lệ ứng dụng"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"Ứng dụng ngoại lệ"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="other">Thông báo từ <xliff:g id="NUMBER">%1$d</xliff:g> ứng dụng có thể ghi đè chế độ Không làm phiền</item>
       <item quantity="one">Thông báo từ 1 ứng dụng có thể ghi đè chế độ Không làm phiền</item>
@@ -3710,10 +3712,10 @@
     <string name="high_power_system" msgid="739584574711292753">"Không tối ưu hóa pin"</string>
     <string name="high_power_desc" msgid="333756885680362741">"Không áp dụng tối ưu hóa pin. Pin của bạn có thể hết nhanh hơn."</string>
     <string name="high_power_prompt_title" msgid="2805745781720454052">"Cho phép ứng dụng luôn chạy trong nền?"</string>
-    <string name="high_power_prompt_body" msgid="8067395096053552289">"Cho phép <xliff:g id="APP_NAME">%1$s</xliff:g> luôn chạy trong nền có thể làm giảm thời lượng pin. \n\nBạn có thể thay đổi cài đặt này từ Cài đặt &gt; Ứng dụng và thông báo."</string>
+    <string name="high_power_prompt_body" msgid="8067395096053552289">"Cho phép <xliff:g id="APP_NAME">%1$s</xliff:g> luôn chạy trong nền có thể làm giảm thời lượng pin. \n\nBạn có thể thay đổi tùy chọn này trong phần Cài đặt &gt; Ứng dụng và thông báo."</string>
     <string name="battery_summary" msgid="4345690800899981339">"<xliff:g id="PERCENTAGE">%1$s</xliff:g> sử dụng kể từ lần sạc đầy gần đây nhất"</string>
     <string name="battery_power_management" msgid="2853925857548647969">"Quản lý nguồn"</string>
-    <string name="no_battery_summary" msgid="4105932628367471314">"Không sử dụng pin kể từ lần sạc đầy cuối cùng"</string>
+    <string name="no_battery_summary" msgid="4105932628367471314">"Không sử dụng pin kể từ lần sạc đầy gần đây nhất"</string>
     <string name="app_notification_preferences" msgid="5154466638524523201">"Cài đặt ứng dụng"</string>
     <string name="system_ui_settings" msgid="6751165163665775447">"Hiện Bộ điều chỉnh SystemUI"</string>
     <string name="additional_permissions" msgid="3142290772324571654">"Quyền khác"</string>
@@ -3731,7 +3733,7 @@
     <string name="usb_use_file_transfers_desc" msgid="6953866660041189580">"Truyền tệp sang thiết bị khác"</string>
     <string name="usb_use_photo_transfers" msgid="5974236250197451257">"PTP"</string>
     <string name="usb_use_photo_transfers_desc" msgid="2325112887316125320">"Chuyển ảnh hoặc tệp nếu MTP không được hỗ trợ (PTP)"</string>
-    <string name="usb_use_tethering" msgid="4250626730173163846">"Chia sẻ kết nối qua USB"</string>
+    <string name="usb_use_tethering" msgid="4250626730173163846">"Chia sẻ Interent qua USB"</string>
     <string name="usb_use_MIDI" msgid="4710632870781041401">"MIDI"</string>
     <string name="usb_use_MIDI_desc" msgid="1770966187150010947">"Sử dụng thiết bị này làm MIDI"</string>
     <string name="usb_use" msgid="8940500223316278632">"Sử dụng USB cho"</string>
@@ -3747,11 +3749,11 @@
     <string name="usb_summary_charging_only" msgid="4118449308708872339">"Đang sạc thiết bị này"</string>
     <string name="usb_summary_power_only" msgid="3552240122641051107">"Sạc thiết bị được kết nối"</string>
     <string name="usb_summary_file_transfers" msgid="7805342797099821502">"Truyền tệp"</string>
-    <string name="usb_summary_tether" msgid="778845069037366883">"Chia sẻ kết nối qua USB"</string>
+    <string name="usb_summary_tether" msgid="778845069037366883">"Chia sẻ Interent qua USB"</string>
     <string name="usb_summary_photo_transfers" msgid="4743028167400644354">"PTP"</string>
     <string name="usb_summary_MIDI" msgid="5540604166270861247">"MIDI"</string>
     <string name="usb_summary_file_transfers_power" msgid="1684501026426766867">"Truyền tệp và cấp điện"</string>
-    <string name="usb_summary_tether_power" msgid="5684170912136320002">"Chia sẻ kết nối qua USB và cấp điện"</string>
+    <string name="usb_summary_tether_power" msgid="5684170912136320002">"Chia sẻ Internet và cấp điện qua USB"</string>
     <string name="usb_summary_photo_transfers_power" msgid="4424106272137720464">"PTP và cấp điện"</string>
     <string name="usb_summary_MIDI_power" msgid="7685597621357005180">"MIDI và cấp điện"</string>
     <string name="background_check_pref" msgid="664081406854758392">"Kiểm tra nền"</string>
@@ -3762,7 +3764,7 @@
     <string name="assist_access_screenshot_summary" msgid="3010943864000489424">"Cho phép ứng dụng trợ lý truy cập hình ảnh màn hình"</string>
     <string name="assist_flash_title" msgid="8852484250748551092">"Màn hình nháy"</string>
     <string name="assist_flash_summary" msgid="6697095786317559129">"Nhấp nháy các cạnh màn hình khi ứng dụng trợ lý truy cập văn bản từ màn hình hoặc ảnh chụp màn hình"</string>
-    <string name="assist_footer" msgid="7030121180457472165">"Ứng dụng trợ lý có thể giúp bạn dựa trên thông tin từ màn hình bạn đang xem. Một số ứng dụng hỗ trợ cả dịch vụ nhập bằng giọng nói và trình khởi chạy để cung cấp cho bạn khả năng hỗ trợ được tích hợp."</string>
+    <string name="assist_footer" msgid="7030121180457472165">"Các ứng dụng trợ lý có thể dựa vào thông tin trên màn hình bạn đang xem để giúp bạn làm nhiều việc. Một số ứng dụng hỗ trợ cả dịch vụ nhập bằng giọng nói và trình chạy để hỗ trợ bạn toàn diện hơn."</string>
     <string name="average_memory_use" msgid="5333366040118953945">"Sử dụng bộ nhớ trung bình"</string>
     <string name="maximum_memory_use" msgid="6509872438499846077">"Sử dụng bộ nhớ tối đa"</string>
     <string name="memory_usage" msgid="7963253555330830906">"Sử dụng bộ nhớ"</string>
@@ -3811,9 +3813,9 @@
     <string name="app_permission_summary_allowed" msgid="6458476982015518778">"Được phép"</string>
     <string name="app_permission_summary_not_allowed" msgid="1171642541675462584">"Không được phép"</string>
     <string name="keywords_install_other_apps" msgid="5383559540695847668">"cài đặt ứng dụng từ nguồn không xác định"</string>
-    <string name="write_settings" msgid="9009040811145552108">"Sửa đổi cài đặt hệ thống"</string>
-    <string name="keywords_write_settings" msgid="3450405263390246293">"ghi/sửa đổi cài đặt hệ thống"</string>
-    <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g> được phép sửa đổi cài đặt hệ thống"</string>
+    <string name="write_settings" msgid="9009040811145552108">"Sửa đổi các tùy chọn cài đặt hệ thống"</string>
+    <string name="keywords_write_settings" msgid="3450405263390246293">"ghi/sửa đổi các tùy chọn cài đặt hệ thống"</string>
+    <string name="write_settings_summary" msgid="4650251358459404247">"<xliff:g id="COUNT_0">%1$d</xliff:g> / <xliff:g id="COUNT_1">%2$d</xliff:g> được phép sửa đổi các tùy chọn cài đặt hệ thống"</string>
     <string name="financial_apps_sms_access_title" msgid="3422655018008259655">"Truy cập SMS của ứng dụng tài chính"</string>
     <string name="filter_install_sources_apps" msgid="4519839764020866701">"Có thể cài đặt ứng dụng khác"</string>
     <string name="filter_write_settings_apps" msgid="6864144615530081121">"Có thể sửa đổi các tùy chọn cài đặt hệ thống"</string>
@@ -3824,7 +3826,7 @@
     <string name="write_settings_on" msgid="7328986337962635118">"Có"</string>
     <string name="write_settings_off" msgid="5708257434958406202">"Không"</string>
     <string name="external_source_switch_title" msgid="5947220058496373178">"Cho phép từ nguồn này"</string>
-    <string name="camera_gesture_title" msgid="899403310746415135">"Xoắn đúp cho camera"</string>
+    <string name="camera_gesture_title" msgid="899403310746415135">"Xoay cổ tay hai lần để mở máy ảnh"</string>
     <string name="camera_gesture_desc" msgid="7751841175916789527">"Mở ứng dụng camera bằng cách vặn cổ tay hai lần"</string>
     <string name="camera_double_tap_power_gesture_title" msgid="8874747801078147525">"Nhấn nút nguồn hai lần để mở máy ảnh"</string>
     <string name="camera_double_tap_power_gesture_desc" msgid="6166349645433682873">"Mở nhanh máy ảnh mà không cần mở khóa màn hình của bạn"</string>
@@ -3869,14 +3871,14 @@
     <string name="backup_disabled" msgid="6941165814784765643">"Đã tắt sao lưu"</string>
     <string name="android_version_summary" msgid="2192751442789395445">"Đã cập nhật lên Android <xliff:g id="VERSION">%1$s</xliff:g>"</string>
     <string name="android_version_pending_update_summary" msgid="3554543810520655076">"Đã có bản cập nhật"</string>
-    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Tác vụ này không được cho phép"</string>
+    <string name="disabled_by_policy_title" msgid="1238318274952958846">"Thao tác này không được phép"</string>
     <string name="disabled_by_policy_title_adjust_volume" msgid="7094547090629203316">"Không thể thay đổi âm lượng"</string>
     <string name="disabled_by_policy_title_outgoing_calls" msgid="3805836913095496278">"Không cho phép gọi"</string>
     <string name="disabled_by_policy_title_sms" msgid="1453236584236681105">"Không cho phép SMS"</string>
     <string name="disabled_by_policy_title_camera" msgid="3741138901926111197">"Không cho phép máy ảnh"</string>
     <string name="disabled_by_policy_title_screen_capture" msgid="1856835333536274665">"Không cho phép ảnh chụp màn hình"</string>
     <string name="disabled_by_policy_title_suspend_packages" msgid="4254714213391802322">"Không thể mở ứng dụng này"</string>
-    <string name="default_admin_support_msg" msgid="5789424433689798637">"Nếu bạn có câu hỏi, hãy liên hệ với quản trị viên CNTT"</string>
+    <string name="default_admin_support_msg" msgid="5789424433689798637">"Nếu bạn có câu hỏi, hãy liên hệ với quản trị viên CNTT của bạn"</string>
     <string name="admin_support_more_info" msgid="8737842638087863477">"Thông tin chi tiết khác"</string>
     <string name="admin_profile_owner_message" msgid="3199544166281052845">"Quản trị viên của bạn có thể giám sát và quản lý các ứng dụng cũng như dữ liệu được liên kết với hồ sơ công việc của bạn, bao gồm cài đặt, quyền, quyền truy cập vào dữ liệu công ty, hoạt động mạng và thông tin vị trí của thiết bị."</string>
     <string name="admin_profile_owner_user_message" msgid="2991249382056855531">"Quản trị viên của bạn có thể giám sát và quản lý các ứng dụng cũng như dữ liệu được liên kết với người dùng này, bao gồm cài đặt, quyền, quyền truy cập vào dữ liệu công ty, hoạt động mạng và thông tin vị trí của thiết bị."</string>
@@ -3931,7 +3933,7 @@
     <string name="ota_disable_automatic_update" msgid="7630249692207340986">"Cập nhật hệ thống tự động"</string>
     <string name="ota_disable_automatic_update_summary" msgid="5650682441097227162">"Áp dụng bản cập nhật khi thiết bị khởi động lại"</string>
     <string name="usage" msgid="9172908720164431622">"Sử dụng"</string>
-    <string name="cellular_data_usage" msgid="1236562234207782386">"Sử dụng dữ liệu di động"</string>
+    <string name="cellular_data_usage" msgid="1236562234207782386">"Mức sử dụng dữ liệu di động"</string>
     <string name="app_cellular_data_usage" msgid="8499761516172121957">"Mức sử dụng dữ liệu của ứng dụng"</string>
     <string name="wifi_data_usage" msgid="275569900562265895">"Mức sử dụng dữ liệu Wi-Fi"</string>
     <string name="ethernet_data_usage" msgid="747614925362556718">"Sử dụng dữ liệu ethernet"</string>
@@ -3942,9 +3944,9 @@
     <string name="ethernet_data_template" msgid="6414118030827090119">"<xliff:g id="AMOUNT">^1</xliff:g> dữ liệu ethernet"</string>
     <string name="billing_cycle" msgid="5740717948341713190">"Hạn mức và cảnh báo dữ liệu"</string>
     <string name="app_usage_cycle" msgid="213483325132959663">"Chu kỳ sử dụng dữ liệu của ứng dụng"</string>
-    <string name="cell_data_warning" msgid="8902740337286652689">"Cảnh báo dữ liệu: <xliff:g id="ID_1">^1</xliff:g>"</string>
+    <string name="cell_data_warning" msgid="8902740337286652689">"Cảnh báo dữ liệu khi dùng đến <xliff:g id="ID_1">^1</xliff:g>"</string>
     <string name="cell_data_limit" msgid="3175933829235314233">"Hạn mức dữ liệu <xliff:g id="ID_1">^1</xliff:g>"</string>
-    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Cảnh báo dữ liệu <xliff:g id="ID_1">^1</xliff:g>/Hạn mức dữ liệu <xliff:g id="ID_2">^2</xliff:g>"</string>
+    <string name="cell_data_warning_and_limit" msgid="3846150001253927594">"Cảnh báo dữ liệu khi dùng đến <xliff:g id="ID_1">^1</xliff:g>/Hạn mức dữ liệu là <xliff:g id="ID_2">^2</xliff:g>"</string>
     <string name="billing_cycle_fragment_summary" msgid="4926047002107855543">"Hàng tháng vào ngày <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="network_restrictions" msgid="196294262243618198">"Hạn chế của mạng"</string>
     <plurals name="network_restrictions_summary" formatted="false" msgid="1664494781594839837">
@@ -4000,7 +4002,7 @@
     <string name="suggestion_additional_fingerprints" msgid="3434467207282466411">"Thêm một vân tay khác"</string>
     <string name="suggestion_additional_fingerprints_summary" msgid="1916547587832484196">"Mở khóa bằng vân tay khác"</string>
     <string name="battery_saver_on_summary" msgid="6841062406467435672">"Bật"</string>
-    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Sẽ bật lúc pin ở mức <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
+    <string name="battery_saver_off_scheduled_summary" msgid="3740414764069188669">"Sẽ bật khi pin ở mức <xliff:g id="BATTERY_PERCENTAGE">%1$s</xliff:g>"</string>
     <string name="battery_saver_off_summary" msgid="8736555723004299721">"Đang tắt"</string>
     <string name="battery_saver_button_turn_on" msgid="3748696527267573793">"Bật ngay"</string>
     <string name="battery_saver_button_turn_off" msgid="2912950982503267828">"Tắt ngay bây giờ"</string>
@@ -4069,14 +4071,14 @@
     <string name="premium_sms_warning" msgid="7604011651486294515">"Tin nhắn dịch vụ có thể làm bạn mất tiền và sẽ tính thêm vào hóa đơn nhà mạng của bạn. Nếu bạn bật quyền cho một ứng dụng, bạn sẽ có thể gửi Tin nhắn dịch vụ bằng ứng dụng đó."</string>
     <string name="premium_sms_access" msgid="4550027460595822851">"Truy cập Tin nhắn dịch vụ"</string>
     <string name="bluetooth_disabled" msgid="6588102116819268238">"Tắt"</string>
-    <string name="bluetooth_connected_summary" msgid="439920840053965217">"Được kết nối với <xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"Được kết nối với nhiều thiết bị"</string>
+    <string name="bluetooth_connected_summary" msgid="439920840053965217">"Đã kết nối với <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="bluetooth_connected_multiple_devices_summary" msgid="596205630653123250">"Đã kết nối với nhiều thiết bị"</string>
     <string name="demo_mode" msgid="3831081808592541104">"Chế độ thử nghiệm giao diện người dùng hệ thống"</string>
     <string name="dark_ui_mode" msgid="703844190192599217">"Giao diện"</string>
     <string name="dark_ui_mode_title" msgid="8774932716427742413">"Chọn giao diện"</string>
     <string name="dark_ui_settings_light_summary" msgid="5219102347744462812">"Tùy chọn cài đặt này cũng áp dụng cho các ứng dụng"</string>
     <string name="dark_ui_settings_dark_summary" msgid="7042737828943784289">"Các ứng dụng được hỗ trợ cũng sẽ chuyển sang giao diện tối"</string>
-    <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"Ô nhà phát triển cài đặt nhanh"</string>
+    <string name="quick_settings_developer_tiles" msgid="7423485925757678719">"Ô cài đặt nhanh dành cho nhà phát triển"</string>
     <string name="winscope_trace_quick_settings_title" msgid="940971040388411374">"Dấu vết Winscope"</string>
     <string name="sensors_off_quick_settings_title" msgid="3655699045300438902">"Tắt cảm biến"</string>
     <string name="managed_profile_settings_title" msgid="4340409321523532402">"Cài đặt hồ sơ công việc"</string>
@@ -4308,7 +4310,7 @@
     <string name="change_wifi_state_title" msgid="5140754955787584174">"Kiểm soát Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_switch" msgid="6489090744937816260">"Cho phép ứng dụng kiểm soát Wi-Fi"</string>
     <string name="change_wifi_state_app_detail_summary" msgid="614854822469259860">"Cho phép ứng dụng này bật/tắt Wi-Fi, quét và kết nối với mạng Wi-Fi, thêm/xóa mạng hoặc bắt đầu một điểm phát sóng chỉ cục bộ"</string>
-    <string name="media_output_title" msgid="8710632337456601848">"Phát phương tiện tới"</string>
+    <string name="media_output_title" msgid="8710632337456601848">"Phát nội dung nghe nhìn tới"</string>
     <string name="media_output_default_summary" msgid="3159237976830415584">"Thiết bị này"</string>
     <string name="media_output_summary" product="default" msgid="6294261435613551178">"Điện thoại"</string>
     <string name="media_output_summary" product="tablet" msgid="6672024060360538526">"Máy tính bảng"</string>
diff --git a/tests/CarDeveloperOptions/res/values-zh-rCN/arrays.xml b/tests/CarDeveloperOptions/res/values-zh-rCN/arrays.xml
index c6c525e..e4da881 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rCN/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rCN/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"永不允许"</item>
     <item msgid="8184570120217958741">"始终允许"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"正常"</item>
+    <item msgid="5101233285497327432">"中等"</item>
+    <item msgid="1555861583162930714">"低"</item>
+    <item msgid="1719683776264798117">"严重不足"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"正常"</item>
+    <item msgid="6107138933849816768">"中等"</item>
+    <item msgid="182695359839047859">"低"</item>
+    <item msgid="8577246509202964244">"严重"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"常驻"</item>
     <item msgid="167418068739176448">"顶层 Activity"</item>
diff --git a/tests/CarDeveloperOptions/res/values-zh-rCN/strings.xml b/tests/CarDeveloperOptions/res/values-zh-rCN/strings.xml
index c2532c4..478c0e3 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rCN/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rCN/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"缩小或放大屏幕上的文字。"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"缩小"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"放大"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"示例文本"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"绿野仙踪"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"第 11 章:奥兹国神奇的翡翠城"</string>
@@ -209,7 +208,7 @@
     <string name="proxy_error_empty_host_set_port" msgid="8471455809508588255">"如果主机字段为空,则端口字段必须为空。"</string>
     <string name="proxy_error_invalid_port" msgid="4046559920586100637">"您键入的端口无效。"</string>
     <string name="proxy_warning_limited_support" msgid="9026539134219095768">"浏览器会使用 HTTP 代理,但其他应用可能不会使用。"</string>
-    <string name="proxy_url_title" msgid="882042361706435904">"PAC网址: "</string>
+    <string name="proxy_url_title" msgid="882042361706435904">"PAC 网址: "</string>
     <string name="radio_info_dl_kbps" msgid="2903778264453410272">"DL 带宽 (kbps):"</string>
     <string name="radio_info_ul_kbps" msgid="3802245899811732716">"UL 带宽 (kbps):"</string>
     <string name="radio_info_signal_location_label" msgid="6788144906873498013">"移动网络位置信息(已弃用):"</string>
@@ -312,12 +311,12 @@
     <string name="roaming" msgid="8860308342135146004">"漫游"</string>
     <string name="roaming_enable" msgid="2108142024297441116">"漫游时连接到移动数据网络服务"</string>
     <string name="roaming_disable" msgid="1915440242079953809">"漫游时连接到移动数据网络服务"</string>
-    <string name="roaming_reenable_message" msgid="8388505868655113258">"移动数据网络连接已断开,因为您已离开本地网络并关闭了移动数据网络漫游功能。"</string>
+    <string name="roaming_reenable_message" msgid="8388505868655113258">"移动数据网络连接已断开,因为您已离开本地网络并关闭了数据漫游功能。"</string>
     <string name="roaming_turn_it_on_button" msgid="4370846458830537578">"将其启用"</string>
     <string name="roaming_warning" msgid="5488050911277592868">"这可能会产生高额费用。"</string>
     <string name="roaming_warning_multiuser" product="tablet" msgid="7090388691615686893">"如果允许数据漫游,您可能需要支付高昂的漫游费用!\n\n此设置会影响这部平板电脑上的所有用户。"</string>
     <string name="roaming_warning_multiuser" product="default" msgid="6999819541078827556">"如果允许数据漫游,您可能需要支付高昂的漫游费用!\n\n此设置会影响这部手机上的所有用户。"</string>
-    <string name="roaming_reenable_title" msgid="6985082191178297921">"允许移动数据网络漫游吗?"</string>
+    <string name="roaming_reenable_title" msgid="6985082191178297921">"允许数据漫游?"</string>
     <string name="networks" msgid="3073876464102136771">"运营商选择"</string>
     <string name="sum_carrier_select" msgid="8964744180598499121">"选择网络运营商"</string>
     <string name="date_and_time_settings_title" msgid="7827088656940910631">"日期和时间"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"WLAN"</item>
+    <item msgid="2271962426654621656">"移动数据"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"如果无法连接到 WLAN,请使用移动网络"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"如果移动网络不可用,请使用 WLAN"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"通过 WLAN 进行通话。如果 WLAN 连接中断,通话将会结束。"</string>
@@ -1208,8 +1210,8 @@
     <string name="adaptive_sleep_summary_off" msgid="2891586225954973431">"关闭"</string>
     <string name="adaptive_sleep_description" msgid="812673735459170009">"避免屏幕在您查看它时关闭。"</string>
     <string name="adaptive_sleep_privacy" msgid="5706802215479902623">"屏幕感知功能会通过前置摄像头来确定是否有人正在看屏幕。这个功能只会在设备上运行,系统决不会存储图片或将图片发送给 Google。"</string>
-    <string name="night_display_title" msgid="1305002424893349814">"夜间模式"</string>
-    <string name="night_display_text" msgid="5330502493684652527">"夜间模式会将您的屏幕色调调为琥珀色,可让您在光线昏暗的环境下更舒适地查看屏幕或阅读文字,并有助您入睡。"</string>
+    <string name="night_display_title" msgid="1305002424893349814">"护眼模式"</string>
+    <string name="night_display_text" msgid="5330502493684652527">"护眼模式会将您的屏幕色调调为琥珀色,可让您在光线昏暗的环境下更舒适地查看屏幕或阅读文字,并有助您入睡。"</string>
     <string name="night_display_auto_mode_title" msgid="8493573087102481588">"设定时间"</string>
     <string name="night_display_auto_mode_never" msgid="2897444637217807088">"无"</string>
     <string name="night_display_auto_mode_custom" msgid="1400891076453963151">"在设定的时间开启"</string>
@@ -1230,8 +1232,8 @@
     <string name="night_display_activation_off_manual" msgid="7776082151269794201">"立即关闭"</string>
     <string name="night_display_activation_on_twilight" msgid="5610294051700287249">"开启,直到日出"</string>
     <string name="night_display_activation_off_twilight" msgid="6846727701281556110">"关闭,直到日落"</string>
-    <string name="night_display_activation_on_custom" msgid="4761140206778957611">"保持开启状态,直到<xliff:g id="ID_1">%1$s</xliff:g>"</string>
-    <string name="night_display_activation_off_custom" msgid="4207238846687792731">"保持关闭状态,直到<xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="night_display_activation_on_custom" msgid="4761140206778957611">"开启,直到<xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="night_display_activation_off_custom" msgid="4207238846687792731">"关闭,直到<xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="night_display_not_currently_on" msgid="1436588493764429281">"目前未开启护眼模式"</string>
     <string name="screen_timeout" msgid="1700950247634525588">"休眠"</string>
     <string name="screen_timeout_title" msgid="150117777762864112">"屏幕关闭"</string>
@@ -1728,7 +1730,7 @@
     <string name="lockpassword_confirm_your_pin_generic" msgid="8732268389177735264">"请输入您的设备 PIN 码以继续"</string>
     <string name="lockpassword_confirm_your_password_generic" msgid="6304552647060899594">"请输入您的设备密码以继续"</string>
     <string name="lockpassword_confirm_your_pattern_generic_profile" msgid="3074250084050465513">"请绘制您的工作解锁图案以继续"</string>
-    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"请输入您的工作 PIN 码以继续"</string>
+    <string name="lockpassword_confirm_your_pin_generic_profile" msgid="6037908971086439523">"需输入您的工作资料 PIN 码才能继续"</string>
     <string name="lockpassword_confirm_your_password_generic_profile" msgid="2646162490703489685">"请输入您的工作密码以继续"</string>
     <string name="lockpassword_strong_auth_required_device_pattern" msgid="1014214190135045781">"为了提升安全性,请绘制您的设备解锁图案"</string>
     <string name="lockpassword_strong_auth_required_device_pin" msgid="24030584350601016">"为了提升安全性,请输入您的设备 PIN 码"</string>
@@ -2080,7 +2082,7 @@
     <string name="accessibility_timeout_1min" msgid="5019003178551730551">"1 分钟"</string>
     <string name="accessibility_timeout_2mins" msgid="4124259290444829477">"2 分钟"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"阅读时间"</string>
-    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"操作执行时长"</string>
+    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"等待操作的时长"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"请选择您需要阅读的消息的显示时间(只会暂时显示)。\n\n只有部分应用支持这项设置。"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"请选择提示您执行操作的消息的显示时间(只会暂时显示)。\n\n部分应用可能不支持这项设置。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"轻触并按住的延迟时间"</string>
@@ -2276,7 +2278,7 @@
     <string name="battery_tip_smart_battery_title" product="device" msgid="7419448992583346364">"延长设备的电池续航时间"</string>
     <string name="battery_tip_smart_battery_summary" msgid="5344821856478265778">"开启电池管理器"</string>
     <string name="battery_tip_early_heads_up_title" msgid="707163785378746813">"开启省电模式"</string>
-    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"电池电量可能会比平时更早耗尽"</string>
+    <string name="battery_tip_early_heads_up_summary" msgid="4231489566422395156">"电池电量可能会比平时更快耗尽"</string>
     <string name="battery_tip_early_heads_up_done_title" msgid="112550885882648429">"省电模式已开启"</string>
     <string name="battery_tip_early_heads_up_done_summary" msgid="8692257022962771181">"部分功能可能会受到限制"</string>
     <string name="battery_tip_high_usage_title" product="default" msgid="4103005178310487352">"手机的使用强度比平时高"</string>
@@ -2655,7 +2657,7 @@
     <string name="data_usage_data_limit" msgid="4070740691087063670">"设置流量上限"</string>
     <string name="data_usage_cycle" msgid="1877235461828192940">"流量消耗重置周期"</string>
     <string name="data_usage_app_items_header_text" msgid="5396134508509913851">"应用数据流量"</string>
-    <string name="data_usage_menu_roaming" msgid="6933555994416977198">"移动数据网络漫游"</string>
+    <string name="data_usage_menu_roaming" msgid="6933555994416977198">"数据漫游"</string>
     <string name="data_usage_menu_restrict_background" msgid="3539289148113800518">"限制后台流量"</string>
     <string name="data_usage_menu_allow_background" msgid="2874898501715368528">"允许使用后台流量"</string>
     <string name="data_usage_menu_split_4g" msgid="2264683155484246409">"单独显示4G流量"</string>
@@ -2757,7 +2759,7 @@
     <string name="vpn_not_used" msgid="2889520789132261454">"(未使用)"</string>
     <string name="vpn_no_ca_cert" msgid="486605757354800838">"(不验证服务器)"</string>
     <string name="vpn_no_server_cert" msgid="679622228649855629">"(来自服务器)"</string>
-    <string name="vpn_always_on_invalid_reason_type" msgid="165810330614905489">"此 VPN 类型无法随时保持连接"</string>
+    <string name="vpn_always_on_invalid_reason_type" msgid="165810330614905489">"此类型的 VPN 无法随时保持连接"</string>
     <string name="vpn_always_on_invalid_reason_server" msgid="3864424127328210700">"始终开启的 VPN 仅支持数字格式的服务器地址"</string>
     <string name="vpn_always_on_invalid_reason_no_dns" msgid="3814114757059738225">"必须为始终开启的 VPN 指定 DNS 服务器"</string>
     <string name="vpn_always_on_invalid_reason_dns" msgid="501388894176868973">"DNS 服务器地址必须为数字才能使用始终开启的 VPN"</string>
@@ -2790,7 +2792,7 @@
     <string name="vpn_menu_lockdown" msgid="6951452279924808089">"始终开启的 VPN"</string>
     <string name="vpn_no_vpns_added" msgid="6616183541896197147">"尚未添加任何 VPN"</string>
     <string name="vpn_always_on_summary" msgid="3639994551631437397">"随时和 VPN 保持连接"</string>
-    <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"不受此应用支持"</string>
+    <string name="vpn_always_on_summary_not_supported" msgid="9077720997795965133">"此应用不支持"</string>
     <string name="vpn_always_on_summary_active" msgid="8962619701962239088">"已启用“始终开启”模式"</string>
     <string name="vpn_require_connection" msgid="5413746839457797350">"屏蔽未使用 VPN 的所有连接"</string>
     <string name="vpn_require_connection_title" msgid="8361434328767853717">"需要连接 VPN?"</string>
@@ -2848,7 +2850,7 @@
     <string name="user_settings_title" msgid="7917598650933179545">"多用户"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"通过添加新用户来共享您的设备。每个用户都将在您的设备上拥有个人空间,以便使用自定义的主屏幕、帐号、应用和设置等。"</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"通过添加新用户来共享您的平板电脑。每个用户都将在您的平板电脑上拥有个人空间,以便使用自定义的主屏幕、帐号、应用和设置等。"</string>
-    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"通过添加新用户来共享您的手机。每个用户都将在您的手机上拥有个人空间,以便使用自定义的主屏幕、帐号、应用和设置等。"</string>
+    <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"通过添加新用户,您可以与他人共用一部手机。每个用户都将在您的手机上拥有个人空间,并可自行设定主屏幕、帐号、应用和设置等。"</string>
     <string name="user_list_title" msgid="6670258645246192324">"用户和个人资料"</string>
     <string name="user_add_user_or_profile_menu" msgid="4220679989900149336">"添加用户或个人资料"</string>
     <string name="user_add_user_menu" msgid="9006572936456324794">"添加用户"</string>
@@ -2913,7 +2915,7 @@
     <string name="apps_with_restrictions_header" msgid="8656739605673756176">"受限应用"</string>
     <string name="apps_with_restrictions_settings_button" msgid="5065896213467171744">"展开应用设置"</string>
     <string name="nfc_payment_settings_title" msgid="5070077706735415291">"触碰付款"</string>
-    <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"工作原理"</string>
+    <string name="nfc_payment_how_it_works" msgid="7607901964687787177">"工作方式"</string>
     <string name="nfc_payment_no_apps" msgid="8844440783395420860">"使用手机在商店内付款"</string>
     <string name="nfc_payment_default" msgid="7869273092463612271">"默认付款应用"</string>
     <string name="nfc_payment_default_not_set" msgid="955804193510335338">"未设置"</string>
@@ -3143,7 +3145,7 @@
     <string name="notification_unknown_sound_title" msgid="8043718667804838398">"应用提供的提示音"</string>
     <string name="notification_sound_default" msgid="2664544380802426260">"默认通知提示音"</string>
     <string name="alarm_ringtone_title" msgid="6411326147408635902">"默认闹钟提示音"</string>
-    <string name="vibrate_when_ringing_title" msgid="2757996559847126952">"有来电时振动"</string>
+    <string name="vibrate_when_ringing_title" msgid="2757996559847126952">"来电振动"</string>
     <string name="other_sound_settings" msgid="5250376066099818676">"其他提示音"</string>
     <string name="dial_pad_tones_title" msgid="8877212139988655769">"拨号键盘提示音"</string>
     <string name="screen_locking_sounds_title" msgid="4407110895465866809">"屏幕锁定提示音"</string>
@@ -3160,14 +3162,14 @@
     <string name="emergency_tone_vibrate" msgid="5020068066905681181">"振动"</string>
     <string name="boot_sounds_title" msgid="7583926202411353620">"开机音效"</string>
     <string name="live_caption_title" msgid="7926591158657997051">"实时字幕"</string>
-    <string name="live_caption_summary" msgid="9064771862352393125">"自动字幕媒体"</string>
+    <string name="live_caption_summary" msgid="9064771862352393125">"自动生成媒体字幕"</string>
     <string name="zen_mode_settings_summary_off" msgid="6929319200478424962">"永不"</string>
     <plurals name="zen_mode_settings_summary_on" formatted="false" msgid="6061723291126091396">
       <item quantity="other">已启用 <xliff:g id="ON_COUNT">%d</xliff:g> 个</item>
       <item quantity="one">已启用 1 个</item>
     </plurals>
     <string name="zen_mode_settings_title" msgid="3425263414594779244">"勿扰模式"</string>
-    <string name="zen_mode_settings_turn_on_dialog_title" msgid="3062548369931058282">"开启“勿扰”模式"</string>
+    <string name="zen_mode_settings_turn_on_dialog_title" msgid="3062548369931058282">"开启勿扰模式"</string>
     <string name="zen_mode_behavior_settings_title" msgid="423125904296667490">"例外情况"</string>
     <string name="zen_mode_duration_settings_title" msgid="5522668871014735728">"默认时长"</string>
     <string name="zen_mode_behavior_allow_title" msgid="2440627647424280842">"允许以下类型的提示音和振动:"</string>
@@ -3507,7 +3509,7 @@
     <string name="zen_mode_reminders_list" msgid="7347061314032326677">"提醒"</string>
     <string name="zen_mode_events" msgid="5784076928339534984">"允许活动"</string>
     <string name="zen_mode_bypassing_apps" msgid="3080739479028713449">"允许应用覆盖"</string>
-    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"应用例外情况"</string>
+    <string name="zen_mode_bypassing_apps_title" msgid="2115024664615538847">"例外应用"</string>
     <plurals name="zen_mode_bypassing_apps_subtext" formatted="false" msgid="8723144434730871572">
       <item quantity="other">有 <xliff:g id="NUMBER">%1$d</xliff:g> 个应用的通知可以覆盖“勿扰”设置</item>
       <item quantity="one">有 1 个应用的通知可以覆盖“勿扰”设置</item>
@@ -3518,7 +3520,7 @@
     <string name="zen_mode_starred_callers" msgid="1317376207713013472">"已加星标的联系人"</string>
     <string name="zen_mode_repeat_callers" msgid="1435309867554692340">"重复来电者"</string>
     <string name="zen_mode_repeat_callers_list" msgid="2750270907597457279">"重复来电者"</string>
-    <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"允许显示重复来电者"</string>
+    <string name="zen_mode_repeat_callers_title" msgid="7192952181541813487">"不屏蔽重复来电者"</string>
     <string name="zen_mode_calls_summary_one" msgid="8327371053236689649">"允许<xliff:g id="CALLER_TYPE">%1$s</xliff:g>的来电"</string>
     <string name="zen_mode_calls_summary_two" msgid="9017678770532673578">"允许下列对象来电:<xliff:g id="CALLER_TYPE">%1$s</xliff:g>和<xliff:g id="CALLERT_TPYE">%2$s</xliff:g>"</string>
     <string name="zen_mode_repeat_callers_summary" msgid="1752513516040525545">"如果同一个人在 <xliff:g id="MINUTES">%d</xliff:g> 分钟内第二次来电"</string>
@@ -3904,9 +3906,9 @@
     <string name="condition_device_muted_summary" msgid="3101055117680109021">"通话和通知"</string>
     <string name="condition_device_vibrate_title" msgid="5712659354868872338">"仅振动"</string>
     <string name="condition_device_vibrate_summary" msgid="9073880731894828604">"通话和通知"</string>
-    <string name="night_display_suggestion_title" msgid="4222839610992282188">"设置“夜间模式”时间安排"</string>
+    <string name="night_display_suggestion_title" msgid="4222839610992282188">"设置“护眼模式”时间表"</string>
     <string name="night_display_suggestion_summary" msgid="1754361016383576916">"每晚自动调节屏幕色调"</string>
-    <string name="condition_night_display_title" msgid="9171491784857160135">"“夜间模式”已开启"</string>
+    <string name="condition_night_display_title" msgid="9171491784857160135">"“护眼模式”已开启"</string>
     <string name="condition_night_display_summary" msgid="7885776986937527558">"已将屏幕调为琥珀色"</string>
     <string name="condition_grayscale_title" msgid="1226351649203551299">"灰度模式"</string>
     <string name="condition_grayscale_summary" msgid="749172886527349546">"仅以灰色显示"</string>
@@ -4437,7 +4439,7 @@
     <string name="cdma_subscription_summary" msgid="2298861419202726628">"在 RUIM/SIM 和 NV 之间切换"</string>
     <string name="cdma_subscription_dialogtitle" msgid="232485231569225126">"订阅"</string>
     <string name="register_automatically" msgid="1858081641661493109">"自动注册…"</string>
-    <string name="roaming_alert_title" msgid="1849237823113454475">"要允许数据网络漫游吗?"</string>
+    <string name="roaming_alert_title" msgid="1849237823113454475">"允许数据漫游?"</string>
     <string name="roaming_check_price_warning" msgid="5883499714594419439">"请与您的网络服务提供商联系以了解定价。"</string>
     <string name="mobile_data_usage_title" msgid="2376358672434990037">"应用的流量使用情况"</string>
     <string name="mobile_network_mode_error" msgid="6818434186286086554">"无效的网络模式<xliff:g id="NETWORKMODEID">%1$d</xliff:g>。忽略。"</string>
@@ -4472,7 +4474,7 @@
     <string name="privacy_dashboard_summary" msgid="7916431309860824945">"权限、帐号活动、个人数据"</string>
     <string name="contextual_card_dismiss_remove" msgid="1750420285615827309">"移除"</string>
     <string name="contextual_card_dismiss_keep" msgid="3204450672928193661">"保留"</string>
-    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"要移除这项推荐内容吗?"</string>
+    <string name="contextual_card_dismiss_confirm_message" msgid="2352465079667730312">"要移除这项建议吗?"</string>
     <string name="contextual_card_removed_message" msgid="4047307820743366876">"已移除建议"</string>
     <string name="contextual_card_undo_dismissal_text" msgid="5009245286931852012">"撤消"</string>
     <string name="low_storage_summary" msgid="4562224870189133400">"存储空间不足。已使用 <xliff:g id="PERCENTAGE">%1$s</xliff:g>,还剩 <xliff:g id="FREE_SPACE">%2$s</xliff:g>"</string>
diff --git a/tests/CarDeveloperOptions/res/values-zh-rHK/arrays.xml b/tests/CarDeveloperOptions/res/values-zh-rHK/arrays.xml
index b91281c..bf81e93 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rHK/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rHK/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"永不允許"</item>
     <item msgid="8184570120217958741">"永遠允許"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"正常"</item>
+    <item msgid="5101233285497327432">"中等"</item>
+    <item msgid="1555861583162930714">"低"</item>
+    <item msgid="1719683776264798117">"嚴重不足"</item>
+    <item msgid="1567326459340152525">"不明"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"正常"</item>
+    <item msgid="6107138933849816768">"中"</item>
+    <item msgid="182695359839047859">"低"</item>
+    <item msgid="8577246509202964244">"嚴重不足"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"持續"</item>
     <item msgid="167418068739176448">"重大活動"</item>
@@ -463,8 +473,8 @@
   </string-array>
   <string-array name="wifi_metered_entries">
     <item msgid="4329206416008519163">"自動偵測"</item>
-    <item msgid="773943026484148895">"設定為按用量收費"</item>
-    <item msgid="1008268820118852416">"設定為非按用量收費"</item>
+    <item msgid="773943026484148895">"視為按用量收費"</item>
+    <item msgid="1008268820118852416">"視為非按用量收費"</item>
   </string-array>
   <string-array name="wifi_privacy_entries">
     <item msgid="6545683814310036454">"使用隨機 MAC (預設)"</item>
diff --git a/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml b/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml
index e090f07..b609e83 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rHK/strings.xml
@@ -23,8 +23,8 @@
     <string name="deny" msgid="3998166389989144025">"拒絕"</string>
     <string name="device_info_default" msgid="1548919563979154348">"未知"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="3953785659137161981">
-      <item quantity="other">您只需完成 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟,即可成為開發人員。</item>
-      <item quantity="one">您只需完成 <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> 個步驟,即可成為開發人員。</item>
+      <item quantity="other">尚餘 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟,您就可以成為開發人員。</item>
+      <item quantity="one">尚餘 <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> 個步驟,您就可以成為開發人員。</item>
     </plurals>
     <string name="show_dev_on" msgid="9075712234786224065">"您現已成為開發人員!"</string>
     <string name="show_dev_already" msgid="7665948832405148689">"不需要了,您已經是開發人員。"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"縮小或放大畫面上的文字。"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"放大"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"範例文字"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"《綠野仙蹤》"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"第 11 章:奧茲國的奇妙翡翠城"</string>
@@ -276,7 +275,7 @@
     <string name="dlg_remove_locales_message" msgid="5179370688876343176">"文字將以其他語言顯示。"</string>
     <string name="dlg_remove_locales_error_title" msgid="9090578326002163975">"無法移除所有語言"</string>
     <string name="dlg_remove_locales_error_message" msgid="6799897638891903618">"請至少保留一種偏好語言"</string>
-    <string name="locale_not_translated" msgid="7943669576006420058">"部分應用程式可能不提供支援"</string>
+    <string name="locale_not_translated" msgid="7943669576006420058">"部分應用程式可能不支援"</string>
     <string name="action_drag_label_move_up" msgid="2074064283966078352">"向上移"</string>
     <string name="action_drag_label_move_down" msgid="1367989732445492291">"向下移"</string>
     <string name="action_drag_label_move_top" msgid="2033098833739345957">"移至頂端"</string>
@@ -426,7 +425,7 @@
     <string name="security_settings_face_settings_require_confirmation_details" msgid="8740564864091803429">"在應用程式內驗證時,每次都要確認"</string>
     <string name="security_settings_face_settings_remove_face_data" msgid="2821359954483136239">"移除臉容資料"</string>
     <string name="security_settings_face_settings_footer" msgid="4627175759990550715">"您的臉容可以用來解鎖裝置和存取應用程式。"<annotation id="url">"瞭解詳情"</annotation></string>
-    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"是否刪除臉容資料?"</string>
+    <string name="security_settings_face_settings_remove_dialog_title" msgid="5675319895815271094">"是否刪除臉孔資料?"</string>
     <string name="security_settings_face_settings_remove_dialog_details" msgid="3754494807169276107">"臉孔解鎖功能記錄的資料將以安全方式永久刪除。移除後,您將需使用 PIN、圖案或密碼解鎖手機、登入應用程式及確認付款。"</string>
     <string name="security_settings_fingerprint_preference_title" msgid="4177132225930582928">"指紋"</string>
     <string name="fingerprint_manage_category_title" msgid="1463406696801542090">"管理指紋"</string>
@@ -896,7 +895,7 @@
     <string name="wifi_setup_wps" msgid="6730131677695521321">"自動設定 (WPS)"</string>
     <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"要開啟 Wi-Fi 掃瞄功能嗎?"</string>
     <string name="wifi_settings_scanning_required_summary" msgid="7469610959462708782">"您必須先開啟 Wi-Fi 掃瞄功能,才能自動開啟 Wi-Fi。"</string>
-    <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"Wi-Fi 掃瞄功能允許應用程式和服務隨時掃瞄 Wi-Fi 網絡 (即使 Wi-Fi 已關閉)。此功能可用作改善行動定位功能和服務"</string>
+    <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"Wi-Fi 掃瞄功能允許應用程式和服務隨時掃瞄 Wi-Fi 網絡 (即使 Wi-Fi 已關閉)。此功能可用於改善根據位置運作的功能和服務等等。"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="4327570180594277049">"開啟"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="3336102100425307040">"已開啟 Wi‑Fi 掃瞄功能"</string>
     <string name="wifi_show_advanced" msgid="8199779277168030597">"進階選項"</string>
@@ -936,13 +935,13 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"私隱"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"隨機化處理 MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"新增裝置"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"相機對準以下二維條碼,即可將裝置新增至「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"將下方方框對準二維條碼,即可將裝置加到「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"掃瞄二維條碼"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"將二維條碼置於下方中間,即可連接至「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"掃瞄二維條碼以加入 Wi-Fi"</string>
     <string name="wifi_dpp_share_wifi" msgid="1724161216219646284">"分享 Wi‑Fi"</string>
     <string name="wifi_dpp_scan_qr_code_with_another_device" msgid="4357387474444884759">"掃瞄此二維條碼即可連線至「<xliff:g id="SSID">%1$s</xliff:g>」並分享密碼"</string>
-    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"掃描此二維條碼即可連線至「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
+    <string name="wifi_dpp_scan_open_network_qr_code_with_another_device" msgid="572011882416511818">"掃描此二維條碼,即可連接「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
     <string name="wifi_dpp_could_not_detect_valid_qr_code" msgid="27667719861826438">"無法讀取二維條碼。重新將二維條碼放在正中,然後再試一次"</string>
     <string name="wifi_dpp_failure_authentication_or_configuration" msgid="9142051662156233679">"請再試一次。如果仍有問題,請聯絡裝置製造商"</string>
     <string name="wifi_dpp_failure_not_compatible" msgid="4320027179973678283">"發生問題"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"流動網絡"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"如果無法使用 Wi‑Fi,請使用流動網絡"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"如果無法使用流動網絡,請使用 Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"使用 Wi-Fi 通話。如果 Wi‑Fi 斷線,通話便會結束。"</string>
@@ -2316,7 +2318,7 @@
     <string name="battery_tip_unrestrict_app_dialog_message" msgid="8120081438825031335">"此應用程式會在背景使用電量。您的電池電量可能會比預期更快耗盡。"</string>
     <string name="battery_tip_unrestrict_app_dialog_ok" msgid="9154938931448151479">"移除"</string>
     <string name="battery_tip_unrestrict_app_dialog_cancel" msgid="7331148618292397166">"取消"</string>
-    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"您的應用程式目前的耗電量正常。如果應用程式耗電過多,手機會建議您進行一些操作。\n\n如果電量不足,您隨時都可以開啟「省電模式」。"</string>
+    <string name="battery_tip_dialog_summary_message" product="default" msgid="7244950433272770280">"您的應用程式目前的耗電量正常。如果應用程式耗電過多,手機會建議您執行一些操作。\n\n如果電量不足,您隨時都可以開啟「省電模式」。"</string>
     <string name="battery_tip_dialog_summary_message" product="tablet" msgid="1721081030632329647">"您的應用程式目前的耗電量正常。如果應用程式耗電過多,平板電腦將會為您提供操作建議。\n\n如果電量較低,您可以隨時開啟省電模式。"</string>
     <string name="battery_tip_dialog_summary_message" product="device" msgid="146872407040848465">"您的應用程式目前的耗電量正常。如果應用程式耗電過多,裝置將會為您提供操作建議。\n\n如果電量較低,您可以隨時開啟省電模式。"</string>
     <string name="smart_battery_manager_title" msgid="5744035036663849515">"電池管理工具"</string>
@@ -2452,7 +2454,7 @@
     <string name="battery_saver_auto_percentage" msgid="5791982309331921556">"根據百分比"</string>
     <string name="battery_saver_auto_routine_summary" msgid="9182044424547482889">"如果電量很可能在下次慣常充電時間之前耗盡,「省電模式」就會自動開啟"</string>
     <string name="battery_saver_auto_percentage_summary" msgid="2036128588460338677">"將會在電量剩餘 <xliff:g id="PERCENT">%1$s</xliff:g> 時開啟"</string>
-    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"設定時間"</string>
+    <string name="battery_saver_schedule_settings_title" msgid="574233428557678128">"設定時間表"</string>
     <string name="battery_saver_sticky_title_new" msgid="5328707297110866082">"充滿電後關閉"</string>
     <string name="battery_saver_sticky_description_new" product="default" msgid="3406582427270935879">"當您的手機電量達到 <xliff:g id="PERCENT">%1$s</xliff:g> 時,省電模式會關閉"</string>
     <string name="battery_saver_sticky_description_new" product="tablet" msgid="3284967694001857194">"當您的平板電腦電量達到 <xliff:g id="PERCENT">%1$s</xliff:g> 時,省電模式會關閉"</string>
@@ -2846,7 +2848,7 @@
       <item quantity="other">檢查憑證</item>
       <item quantity="one">檢查憑證</item>
     </plurals>
-    <string name="user_settings_title" msgid="7917598650933179545">"多個使用者"</string>
+    <string name="user_settings_title" msgid="7917598650933179545">"複數使用者"</string>
     <string name="user_settings_footer_text" product="device" msgid="4573858247439190545">"新增使用者即可分享您的裝置。每位使用者在您的裝置上都有個人空間,以自訂主畫面、帳戶、應用程式、設定等。"</string>
     <string name="user_settings_footer_text" product="tablet" msgid="780018221428132918">"新增使用者即可分享您的平板電腦。每位使用者在您的平板電腦上都有個人空間,以自訂主畫面、帳戶、應用程式、設定等。"</string>
     <string name="user_settings_footer_text" product="default" msgid="1470859614968237491">"您可以新增使用者來分享這部手機。每位使用者在您的手機上都有個人空間,可以自訂主畫面、帳戶、應用程式、設定等等。"</string>
@@ -2881,7 +2883,7 @@
     <string name="user_cannot_add_accounts_message" msgid="5993561303748749097">"限制存取的個人檔案無法新增帳戶"</string>
     <string name="user_remove_user_menu" msgid="3505139157217459864">"將 <xliff:g id="USER_NAME">%1$s</xliff:g> 從這部裝置中刪除"</string>
     <string name="user_lockscreen_settings" msgid="3820813814848394568">"上鎖畫面設定"</string>
-    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"在上鎖畫面上新增使用者"</string>
+    <string name="user_add_on_lockscreen_menu" msgid="5211604808199585774">"在上鎖畫面加入使用者"</string>
     <string name="user_new_user_name" msgid="3880395219777884838">"新使用者"</string>
     <string name="user_new_profile_name" msgid="3074939718101489937">"新個人檔案"</string>
     <string name="user_confirm_remove_self_title" msgid="6739480453680217543">"您要刪除自己嗎?"</string>
@@ -3832,7 +3834,7 @@
     <string name="screen_zoom_title" msgid="164369086350486104">"顯示大小"</string>
     <string name="screen_zoom_short_summary" msgid="5508079362742276703">"放大或縮小畫面上的項目"</string>
     <string name="screen_zoom_keywords" msgid="8358462497896524092">"顯示密度, 螢幕縮放, 比例, 按比例"</string>
-    <string name="screen_zoom_summary" msgid="5294003755961312560">"縮小或放大畫面上的項目。畫面上部分應用程式可能會移位。"</string>
+    <string name="screen_zoom_summary" msgid="5294003755961312560">"縮小或放大畫面上的項目。畫面上有部分應用程式可能會移位。"</string>
     <string name="screen_zoom_preview_title" msgid="2924312934036753091">"預覽"</string>
     <string name="screen_zoom_make_smaller_desc" msgid="1374501139722916729">"縮小"</string>
     <string name="screen_zoom_make_larger_desc" msgid="5306684807895846141">"放大"</string>
@@ -3953,7 +3955,7 @@
       <item quantity="one">1 個限制</item>
     </plurals>
     <string name="operator_warning" msgid="4676042739221117031">"流動網絡供應商的數據計算方式可能與裝置有所不同"</string>
-    <string name="data_used_template" msgid="761605393453849477">"已用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
+    <string name="data_used_template" msgid="761605393453849477">"已使用 <xliff:g id="ID_1">%1$s</xliff:g>"</string>
     <string name="set_data_warning" msgid="8115980184415563941">"設定數據用量警告"</string>
     <string name="data_warning" msgid="2699207195535036240">"數據用量警告"</string>
     <string name="data_warning_footnote" msgid="965724845580257305">"您的裝置會自行計算數據用量警告和數據用量上限。這可能會與流動網絡供應商的計算結果不同。"</string>
@@ -3985,7 +3987,7 @@
     <string name="launch_mdp_app_text" msgid="9186559496664208252">"查看數據計劃"</string>
     <string name="launch_wifi_text" msgid="317820210431682605">"查看詳情"</string>
     <string name="data_saver_title" msgid="7903308134514179256">"數據節省模式"</string>
-    <string name="unrestricted_data_saver" msgid="9139401849550738720">"無限制數據用量"</string>
+    <string name="unrestricted_data_saver" msgid="9139401849550738720">"不限制數據用量"</string>
     <string name="restrict_background_blacklisted" msgid="7158991683849067124">"背景數據已關閉"</string>
     <string name="data_saver_on" msgid="7281809065420480881">"開啟"</string>
     <string name="data_saver_off" msgid="7439439787358504018">"關閉"</string>
@@ -4119,18 +4121,18 @@
     <string name="swipe_up_to_switch_apps_summary" msgid="4644068184114154787">"如要切換應用程式,請在主按鈕上向上滑動。再次向上滑動即可查看所有應用程式。此操作適用於任何畫面。您的畫面右下方將不再有 [概覽] 按鈕。"</string>
     <string name="swipe_up_to_switch_apps_suggestion_title" msgid="7641846365137536128">"試按新版主按鈕"</string>
     <string name="swipe_up_to_switch_apps_suggestion_summary" msgid="7338653224520387852">"啟用新手勢即可切換應用程式"</string>
-    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"輕按兩下以查看手機"</string>
+    <string name="ambient_display_title" product="default" msgid="6785677099744344088">"輕按兩下顯示畫面"</string>
     <string name="ambient_display_title" product="tablet" msgid="1106285490888683613">"輕按兩下即可查看平板電腦"</string>
     <string name="ambient_display_title" product="device" msgid="5064644474876041478">"輕按兩下即可查看裝置"</string>
     <string name="ambient_display_summary" msgid="4882910328216411109">"輕按螢幕兩下即可查看時間、通知和其他資訊。"</string>
-    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"拿起即可查看手機"</string>
+    <string name="ambient_display_pickup_title" product="default" msgid="7141652156907066938">"拿起手機顯示畫面"</string>
     <string name="ambient_display_pickup_title" product="tablet" msgid="1555456400210301959">"拿起即可查看平板電腦"</string>
     <string name="ambient_display_pickup_title" product="device" msgid="2480126522988135037">"拿起即可查看裝置"</string>
     <string name="ambient_display_wake_screen_title" msgid="3376988352851077102">"喚醒顯示屏"</string>
     <string name="ambient_display_pickup_summary" product="default" msgid="8798915340594367449">"拿起您的手機即可查看時間、通知和其他資訊。"</string>
     <string name="ambient_display_pickup_summary" product="tablet" msgid="1077745287100012928">"拿起您的平板電腦即可查看時間、通知和其他資訊。"</string>
     <string name="ambient_display_pickup_summary" product="device" msgid="404199660076598026">"拿起您的裝置即可查看時間、通知和其他資訊。"</string>
-    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"輕按即可查看手機"</string>
+    <string name="ambient_display_tap_screen_title" product="default" msgid="2784322628239960695">"輕按一下顯示畫面"</string>
     <string name="ambient_display_tap_screen_title" product="tablet" msgid="6434521782016864148">"輕按即可查看平板電腦"</string>
     <string name="ambient_display_tap_screen_title" product="device" msgid="4396793721852647356">"輕按即可查看裝置"</string>
     <string name="ambient_display_tap_screen_summary" msgid="7869039870571925213">"輕按螢幕即可查看時間、通知和其他資訊。"</string>
diff --git a/tests/CarDeveloperOptions/res/values-zh-rTW/arrays.xml b/tests/CarDeveloperOptions/res/values-zh-rTW/arrays.xml
index 7901b7d..65c98c5 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rTW/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rTW/arrays.xml
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"一律不允許"</item>
     <item msgid="8184570120217958741">"一律允許"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"一般"</item>
+    <item msgid="5101233285497327432">"略為偏低"</item>
+    <item msgid="1555861583162930714">"低"</item>
+    <item msgid="1719683776264798117">"嚴重不足"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"正常"</item>
+    <item msgid="6107138933849816768">"中"</item>
+    <item msgid="182695359839047859">"低"</item>
+    <item msgid="8577246509202964244">"最高"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"持續"</item>
     <item msgid="167418068739176448">"重大活動"</item>
diff --git a/tests/CarDeveloperOptions/res/values-zh-rTW/strings.xml b/tests/CarDeveloperOptions/res/values-zh-rTW/strings.xml
index e5e9792..105ef64 100644
--- a/tests/CarDeveloperOptions/res/values-zh-rTW/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-zh-rTW/strings.xml
@@ -23,10 +23,10 @@
     <string name="deny" msgid="3998166389989144025">"拒絕"</string>
     <string name="device_info_default" msgid="1548919563979154348">"不明"</string>
     <plurals name="show_dev_countdown" formatted="false" msgid="3953785659137161981">
-      <item quantity="other">你只需完成剩餘的 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟,即可成為開發人員。</item>
-      <item quantity="one">你只需完成剩餘的 <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> 個步驟,即可成為開發人員。</item>
+      <item quantity="other">只要再 <xliff:g id="STEP_COUNT_1">%1$d</xliff:g> 個步驟即可啟用開發人員設定。</item>
+      <item quantity="one">只要再 <xliff:g id="STEP_COUNT_0">%1$d</xliff:g> 個步驟即可啟用開發人員設定。</item>
     </plurals>
-    <string name="show_dev_on" msgid="9075712234786224065">"你現在已成為開發人員!"</string>
+    <string name="show_dev_on" msgid="9075712234786224065">"開發人員設定已啟用!"</string>
     <string name="show_dev_already" msgid="7665948832405148689">"不需要了,你已經是開發人員。"</string>
     <string name="dev_settings_disabled_warning" msgid="3198732189395396721">"請先啟用開發人員選項。"</string>
     <string name="header_category_wireless_networks" msgid="8968405993937795898">"無線與網路"</string>
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"縮小或放大畫面上的文字。"</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"縮小"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"放大"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"範例文字"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"綠野仙蹤"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"第 11 章:奧茲國的翡翠城"</string>
@@ -896,7 +895,7 @@
     <string name="wifi_setup_wps" msgid="6730131677695521321">"自動設定 (WPS)"</string>
     <string name="wifi_settings_scanning_required_title" msgid="3593457187659922490">"要開啟掃描 Wi-Fi 功能嗎?"</string>
     <string name="wifi_settings_scanning_required_summary" msgid="7469610959462708782">"必須先開啟掃描 Wi-Fi 功能,才能自動開啟 Wi‑Fi。"</string>
-    <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"掃描 Wi-Fi 功能可讓應用程式和服務隨時掃描 Wi‑Fi 網路 (即使 Wi‑Fi 功能處於關閉狀態)。這可以用來改善適地性功能和服務。"</string>
+    <string name="wifi_settings_scanning_required_info" msgid="5913535073390607386">"掃描 Wi-Fi 功能可在 Wi‑Fi 關閉時,讓應用程式和服務隨時掃描 Wi‑Fi 網路。此功能可用來改善適地性等功能和服務。"</string>
     <string name="wifi_settings_scanning_required_turn_on" msgid="4327570180594277049">"開啟"</string>
     <string name="wifi_settings_scanning_required_enabled" msgid="3336102100425307040">"已開啟掃描 Wi-Fi 功能"</string>
     <string name="wifi_show_advanced" msgid="8199779277168030597">"進階選項"</string>
@@ -936,7 +935,7 @@
     <string name="wifi_privacy_settings" msgid="4462092795794247809">"隱私權"</string>
     <string name="wifi_privacy_settings_ephemeral_summary" msgid="2411375348287064283">"已隨機化的 MAC"</string>
     <string name="wifi_dpp_add_device_to_network" msgid="8871041525483253430">"新增裝置"</string>
-    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"將 QR 圖碼置於相機正下方,即可將這個裝置新增至「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
+    <string name="wifi_dpp_center_qr_code" msgid="3826108361797476758">"將下面的視窗對準 QR 圖碼,即可將這個裝置新增至「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
     <string name="wifi_dpp_scan_qr_code" msgid="6021600592661235546">"掃描 QR 圖碼"</string>
     <string name="wifi_dpp_scan_qr_code_join_network" msgid="3085162928804379545">"將 QR 圖碼置於相機正下方即可連線到「<xliff:g id="SSID">%1$s</xliff:g>」"</string>
     <string name="wifi_dpp_scan_qr_code_join_unknown_network" msgid="5682308317067290738">"掃描 QR 圖碼即可加入 Wi‑Fi"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"Wi-Fi"</item>
+    <item msgid="2271962426654621656">"行動網路"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"如果無法連上 Wi‑Fi,請使用行動網路"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"如果無法連上行動網路,請使用 Wi‑Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"透過 Wi-Fi 進行通話。如果 Wi‑Fi 連線中斷,通話即會結束。"</string>
@@ -2080,7 +2082,7 @@
     <string name="accessibility_timeout_1min" msgid="5019003178551730551">"1 分鐘"</string>
     <string name="accessibility_timeout_2mins" msgid="4124259290444829477">"2 分鐘"</string>
     <string name="accessibility_content_timeout_preference_title" msgid="5160746882250939464">"可閱讀的時間"</string>
-    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"操作等待時間"</string>
+    <string name="accessibility_control_timeout_preference_title" msgid="2771808346038759474">"提示顯示時間"</string>
     <string name="accessibility_content_timeout_preference_summary" msgid="853829064617918179">"選擇你需要閱讀的訊息會暫時顯示多久。\n\n只有部分應用程式支援這項設定。"</string>
     <string name="accessibility_control_timeout_preference_summary" msgid="8582212299606932160">"選擇提示你進行操作的訊息會暫時顯示多久。\n\n只有部分應用程式支援這項設定。"</string>
     <string name="accessibility_long_press_timeout_preference_title" msgid="5029685114164868477">"輕觸並按住的延遲時間"</string>
@@ -3731,7 +3733,7 @@
     <string name="usb_use_file_transfers_desc" msgid="6953866660041189580">"將檔案轉移到另一個裝置"</string>
     <string name="usb_use_photo_transfers" msgid="5974236250197451257">"PTP"</string>
     <string name="usb_use_photo_transfers_desc" msgid="2325112887316125320">"如果 MTP 不受支援,則轉移相片或檔案 (PTP)"</string>
-    <string name="usb_use_tethering" msgid="4250626730173163846">"USB 數據連線"</string>
+    <string name="usb_use_tethering" msgid="4250626730173163846">"USB 網路共用"</string>
     <string name="usb_use_MIDI" msgid="4710632870781041401">"MIDI"</string>
     <string name="usb_use_MIDI_desc" msgid="1770966187150010947">"將這個裝置用做 MIDI"</string>
     <string name="usb_use" msgid="8940500223316278632">"USB 用途"</string>
@@ -3751,7 +3753,7 @@
     <string name="usb_summary_photo_transfers" msgid="4743028167400644354">"PTP"</string>
     <string name="usb_summary_MIDI" msgid="5540604166270861247">"MIDI"</string>
     <string name="usb_summary_file_transfers_power" msgid="1684501026426766867">"檔案傳輸和供電"</string>
-    <string name="usb_summary_tether_power" msgid="5684170912136320002">"USB 數據連線和供電"</string>
+    <string name="usb_summary_tether_power" msgid="5684170912136320002">"USB 網路共用和供電"</string>
     <string name="usb_summary_photo_transfers_power" msgid="4424106272137720464">"PTP 和供電"</string>
     <string name="usb_summary_MIDI_power" msgid="7685597621357005180">"MIDI 模式和供電"</string>
     <string name="background_check_pref" msgid="664081406854758392">"背景檢查"</string>
diff --git a/tests/CarDeveloperOptions/res/values-zu/arrays.xml b/tests/CarDeveloperOptions/res/values-zu/arrays.xml
index 60b6f45..a6000db 100644
--- a/tests/CarDeveloperOptions/res/values-zu/arrays.xml
+++ b/tests/CarDeveloperOptions/res/values-zu/arrays.xml
@@ -34,7 +34,7 @@
     <item msgid="772029947136115322">"30 amasekhondi"</item>
     <item msgid="8743663928349474087">"1 iminithi"</item>
     <item msgid="1506508631223164814">"2 amaminithi"</item>
-    <item msgid="8664703938127907662">"5 amaminithi"</item>
+    <item msgid="8664703938127907662">"amaminithi ama-5"</item>
     <item msgid="5827960506924849753">"10 amaminithi"</item>
     <item msgid="6677424950124253938">"30 amaminithi"</item>
   </string-array>
@@ -56,7 +56,7 @@
     <item msgid="227647485917789272">"1 iminithi"</item>
     <item msgid="3367011891231217504">"2 amaminithi"</item>
     <item msgid="4376575879222393045">"5 amaminithi"</item>
-    <item msgid="811192536981678974">"10 amaminithi"</item>
+    <item msgid="811192536981678974">"amaminithi ayi-10"</item>
     <item msgid="7258394417241706272">"30 amaminithi"</item>
   </string-array>
   <string-array name="entries_font_size">
@@ -423,9 +423,19 @@
     <item msgid="7718817231348607934">"Ungavumeli"</item>
     <item msgid="8184570120217958741">"Vumela njalo?"</item>
   </string-array>
-    <!-- no translation found for ram_states:0 (708247372474061274) -->
-    <!-- no translation found for ram_states:4 (1567326459340152525) -->
-    <!-- no translation found for proc_stats_memory_states:3 (8577246509202964244) -->
+  <string-array name="ram_states">
+    <item msgid="708247372474061274">"Ivamile"</item>
+    <item msgid="5101233285497327432">"Maphakathi"</item>
+    <item msgid="1555861583162930714">"Phansi"</item>
+    <item msgid="1719683776264798117">"Bucayi"</item>
+    <item msgid="1567326459340152525">"?"</item>
+  </string-array>
+  <string-array name="proc_stats_memory_states">
+    <item msgid="3474232046138139454">"Okujwayelekile"</item>
+    <item msgid="6107138933849816768">"Maphakathi"</item>
+    <item msgid="182695359839047859">"Phansi"</item>
+    <item msgid="8577246509202964244">"Bucayi"</item>
+  </string-array>
   <string-array name="proc_stats_process_states">
     <item msgid="7560955722349181440">"Qhubekayo"</item>
     <item msgid="167418068739176448">"Umsebenzi ophezulu"</item>
diff --git a/tests/CarDeveloperOptions/res/values-zu/strings.xml b/tests/CarDeveloperOptions/res/values-zu/strings.xml
index d9b9221..e5a7c0e 100644
--- a/tests/CarDeveloperOptions/res/values-zu/strings.xml
+++ b/tests/CarDeveloperOptions/res/values-zu/strings.xml
@@ -83,8 +83,7 @@
     <string name="font_size_summary" msgid="9120023206321191067">"Yenza umbhalo okusikrini ube mncane noma mkhulu."</string>
     <string name="font_size_make_smaller_desc" msgid="5780829318985556969">"Yenza kube kuncane"</string>
     <string name="font_size_make_larger_desc" msgid="2907824418252785875">"Yenza kube kukhulu"</string>
-    <!-- no translation found for font_size_preview_text (360019784926073822) -->
-    <skip />
+    <string name="font_size_preview_text" msgid="360019784926073822">"Servez à ce monsieur une bière et des kiwis."</string>
     <string name="font_size_preview_text_headline" msgid="8038650525913995091">"Isampuli yombhalo"</string>
     <string name="font_size_preview_text_title" msgid="2593520249400910305">"I-The Wonderful Wizard of Oz"</string>
     <string name="font_size_preview_text_subtitle" msgid="6106782964143379331">"Isahluko 11: The Wonderful Emerald City of Oz"</string>
@@ -1103,7 +1102,10 @@
     <item msgid="3658897985297386665">"@*android:string/wfc_mode_wifi_preferred_summary"</item>
     <item msgid="4191802193352447215">"@*android:string/wfc_mode_cellular_preferred_summary"</item>
   </string-array>
-    <!-- no translation found for wifi_calling_mode_choices_v2_without_wifi_only:0 (6452246499629557266) -->
+  <string-array name="wifi_calling_mode_choices_v2_without_wifi_only">
+    <item msgid="6452246499629557266">"I-Wi-Fi"</item>
+    <item msgid="2271962426654621656">"Iselula"</item>
+  </string-array>
     <string name="wifi_calling_mode_wifi_preferred_summary" msgid="8298294808362169798">"Uma i-Wi-Fi ingatholakali, sebenzisa inethiwekhi yeselula"</string>
     <string name="wifi_calling_mode_cellular_preferred_summary" msgid="4906499810156794061">"Uma inethiwekhi yeselula ingatholakali, sebenzisa i-Wi-Fi"</string>
     <string name="wifi_calling_mode_wifi_only_summary" msgid="6928556021002500522">"Shaya nge-Wi-Fi. Uma i-Wi-Fi ilahleka, ikholi izophela."</string>
diff --git a/tests/CarDeveloperOptions/res/xml/app_bubble_notification_settings.xml b/tests/CarDeveloperOptions/res/xml/app_bubble_notification_settings.xml
deleted file mode 100644
index 8d97f8f..0000000
--- a/tests/CarDeveloperOptions/res/xml/app_bubble_notification_settings.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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:settings="http://schemas.android.com/apk/res-auto"
-                  android:title="@string/bubbles_app_toggle_title"
-                  android:key="app_bubble_notification_settings">
-        <com.android.settingslib.widget.LayoutPreference
-            android:key="pref_app_header"
-            android:layout="@layout/settings_entity_header"/>
-
-        <com.android.settingslib.RestrictedSwitchPreference
-            android:key="bubble_pref"
-            android:title="@string/notification_bubbles_title"/>
-
-        <com.android.settingslib.widget.FooterPreference
-            android:key="notification_bubbles_footer"
-            android:title="@string/bubbles_feature_education"
-            android:selectable="false" />
-
-</PreferenceScreen>
diff --git a/tests/CarDeveloperOptions/res/xml/bubble_notification_settings.xml b/tests/CarDeveloperOptions/res/xml/bubble_notification_settings.xml
deleted file mode 100644
index 982b9cc..0000000
--- a/tests/CarDeveloperOptions/res/xml/bubble_notification_settings.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2019 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:settings="http://schemas.android.com/apk/res-auto"
-                  android:title="@string/bubbles_app_toggle_title"
-                  android:key="bubble_notification_settings">
-        <!-- Notification bubbles -->
-        <SwitchPreference
-            android:key="global_notification_bubbles"
-            android:title="@string/notification_bubbles_title"
-            android:summary="@string/notification_bubbles_summary"
-            settings:controller="com.android.car.developeroptions.notification.BubbleNotificationPreferenceController"/>
-
-        <com.android.settingslib.widget.FooterPreference
-            android:key="notification_bubbles_footer"
-            android:title="@string/bubbles_feature_education"
-            android:selectable="false" />
-
-</PreferenceScreen>
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/Settings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/Settings.java
index c8dc44c..ca9fd6a 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/Settings.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/Settings.java
@@ -113,7 +113,6 @@
     public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ }
     public static class SoundSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ConfigureNotificationSettingsActivity extends SettingsActivity { /* empty */ }
-    public static class AppBubbleNotificationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class NotificationAssistantSettingsActivity extends SettingsActivity{ /* empty */ }
     public static class NotificationAppListActivity extends SettingsActivity { /* empty */ }
     public static class AppNotificationSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppBubbleNotificationSettings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppBubbleNotificationSettings.java
deleted file mode 100644
index 82bf610..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppBubbleNotificationSettings.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.search.BaseSearchIndexProvider;
-import com.android.settingslib.core.AbstractPreferenceController;
-import com.android.settingslib.search.Indexable;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.ArrayList;
-import java.util.List;
-
-@SearchIndexable
-public class AppBubbleNotificationSettings extends NotificationSettingsBase implements
-        GlobalBubblePermissionObserverMixin.Listener {
-    private static final String TAG = "AppBubNotiSettings";
-    private GlobalBubblePermissionObserverMixin mObserverMixin;
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.APP_BUBBLE_SETTINGS;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.app_bubble_notification_settings;
-    }
-
-    @Override
-    protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
-        mControllers = getPreferenceControllers(context, this);
-        return new ArrayList<>(mControllers);
-    }
-
-    protected static List<NotificationPreferenceController> getPreferenceControllers(
-            Context context, AppBubbleNotificationSettings fragment) {
-        List<NotificationPreferenceController> controllers = new ArrayList<>();
-        controllers.add(new HeaderPreferenceController(context, fragment));
-        controllers.add(new BubblePreferenceController(context, new NotificationBackend()));
-        return controllers;
-    }
-
-    @Override
-    public void onGlobalBubblePermissionChanged() {
-        updatePreferenceStates();
-    }
-
-    @Override
-    public void onResume() {
-        super.onResume();
-
-        if (mUid < 0 || TextUtils.isEmpty(mPkg) || mPkgInfo == null) {
-            Log.w(TAG, "Missing package or uid or packageinfo");
-            finish();
-            return;
-        }
-
-        for (NotificationPreferenceController controller : mControllers) {
-            controller.onResume(mAppRow, mChannel, mChannelGroup, mSuspendedAppsAdmin);
-            controller.displayPreference(getPreferenceScreen());
-        }
-        updatePreferenceStates();
-
-        mObserverMixin = new GlobalBubblePermissionObserverMixin(getContext(), this);
-        mObserverMixin.onStart();
-    }
-
-    @Override
-    public void onPause() {
-        mObserverMixin.onStop();
-        super.onPause();
-    }
-
-    public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-
-                @Override
-                protected boolean isPageSearchEnabled(Context context) {
-                    return false;
-                }
-
-                @Override
-                public List<AbstractPreferenceController> createPreferenceControllers(Context
-                        context) {
-                    return new ArrayList<>(AppBubbleNotificationSettings.getPreferenceControllers(
-                            context, null));
-                }
-            };
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppNotificationSettings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppNotificationSettings.java
index 4c20fa0..f5efab7 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppNotificationSettings.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/AppNotificationSettings.java
@@ -152,7 +152,6 @@
         mControllers.add(new DescriptionPreferenceController(context));
         mControllers.add(new NotificationsOffPreferenceController(context));
         mControllers.add(new DeletedChannelsPreferenceController(context, mBackend));
-        mControllers.add(new BubbleSummaryPreferenceController(context, mBackend));
         return new ArrayList<>(mControllers);
     }
 
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleNotificationPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleNotificationPreferenceController.java
deleted file mode 100644
index 7e797c8..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleNotificationPreferenceController.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
-
-import android.content.ContentResolver;
-import android.content.Context;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
-import android.provider.Settings;
-import android.text.TextUtils;
-
-import com.android.car.developeroptions.core.PreferenceControllerMixin;
-import com.android.car.developeroptions.core.TogglePreferenceController;
-import com.android.settingslib.core.lifecycle.LifecycleObserver;
-import com.android.settingslib.core.lifecycle.events.OnPause;
-import com.android.settingslib.core.lifecycle.events.OnResume;
-
-import androidx.annotation.VisibleForTesting;
-import androidx.preference.Preference;
-import androidx.preference.PreferenceScreen;
-
-public class BubbleNotificationPreferenceController extends TogglePreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener,
-        LifecycleObserver, OnResume, OnPause {
-
-    private static final String TAG = "BubbleNotifPrefContr";
-    @VisibleForTesting
-    static final int ON = 1;
-    @VisibleForTesting
-    static final int OFF = 0;
-
-    private SettingObserver mSettingObserver;
-
-    public BubbleNotificationPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    @Override
-    public void displayPreference(PreferenceScreen screen) {
-        super.displayPreference(screen);
-        Preference preference = screen.findPreference(getPreferenceKey());
-        if (preference != null) {
-            mSettingObserver = new SettingObserver(preference);
-        }
-    }
-
-    @Override
-    public void onResume() {
-        if (mSettingObserver != null) {
-            mSettingObserver.register(mContext.getContentResolver(), true /* register */);
-        }
-    }
-
-    @Override
-    public void onPause() {
-        if (mSettingObserver != null) {
-            mSettingObserver.register(mContext.getContentResolver(), false /* register */);
-        }
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        return Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, isChecked ? ON : OFF);
-    }
-
-    class SettingObserver extends ContentObserver {
-
-        private final Uri NOTIFICATION_BUBBLES_URI =
-                Settings.Global.getUriFor(NOTIFICATION_BUBBLES);
-
-        private final Preference mPreference;
-
-        public SettingObserver(Preference preference) {
-            super(new Handler());
-            mPreference = preference;
-        }
-
-        public void register(ContentResolver cr, boolean register) {
-            if (register) {
-                cr.registerContentObserver(NOTIFICATION_BUBBLES_URI, false, this);
-            } else {
-                cr.unregisterContentObserver(this);
-            }
-        }
-
-        @Override
-        public void onChange(boolean selfChange, Uri uri) {
-            super.onChange(selfChange, uri);
-            if (NOTIFICATION_BUBBLES_URI.equals(uri)) {
-                updateState(mPreference);
-            }
-        }
-    }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleNotificationSettings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleNotificationSettings.java
deleted file mode 100644
index f45d72f..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleNotificationSettings.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.provider.SearchIndexableResource;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.core.OnActivityResultListener;
-import com.android.car.developeroptions.dashboard.DashboardFragment;
-import com.android.car.developeroptions.search.BaseSearchIndexProvider;
-import com.android.settingslib.search.SearchIndexable;
-
-import java.util.Arrays;
-import java.util.List;
-
-@SearchIndexable
-public class BubbleNotificationSettings extends DashboardFragment implements
-        OnActivityResultListener {
-    private static final String TAG = "BubbleNotiSettings";
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.BUBBLE_SETTINGS;
-    }
-
-    @Override
-    protected String getLogTag() {
-        return TAG;
-    }
-
-    @Override
-    protected int getPreferenceScreenResId() {
-        return R.xml.bubble_notification_settings;
-    }
-
-    /**
-     * For Search.
-     */
-    public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
-            new BaseSearchIndexProvider() {
-                @Override
-                public List<SearchIndexableResource> getXmlResourcesToIndex(
-                        Context context, boolean enabled) {
-                    final SearchIndexableResource sir = new SearchIndexableResource(context);
-                    sir.xmlResId = R.xml.bubble_notification_settings;
-                    return Arrays.asList(sir);
-                }
-            };
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubblePreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubblePreferenceController.java
deleted file mode 100644
index 9a4cd85..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubblePreferenceController.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.core.PreferenceControllerMixin;
-import com.android.settingslib.RestrictedSwitchPreference;
-
-import androidx.fragment.app.FragmentManager;
-import androidx.preference.Preference;
-
-public class BubblePreferenceController extends NotificationPreferenceController
-        implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
-
-    private static final String TAG = "BubblePrefContr";
-    private static final String KEY = "bubble_pref";
-    private static final int SYSTEM_WIDE_ON = 1;
-    private static final int SYSTEM_WIDE_OFF = 0;
-
-    private FragmentManager mFragmentManager;
-
-    public BubblePreferenceController(Context context, NotificationBackend backend) {
-        super(context, backend);
-    }
-
-    public BubblePreferenceController(Context context, FragmentManager fragmentManager,
-            NotificationBackend backend) {
-        super(context, backend);
-        mFragmentManager = fragmentManager;
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY;
-    }
-
-    @Override
-    public boolean isAvailable() {
-        if (!super.isAvailable()) {
-            return false;
-        }
-        if (mAppRow == null && mChannel == null) {
-            return false;
-        }
-        if (mChannel != null) {
-            if (Settings.Global.getInt(mContext.getContentResolver(),
-                    NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF) {
-                return false;
-            }
-            if (isDefaultChannel()) {
-                return true;
-            } else {
-                return mAppRow == null ? false : mAppRow.allowBubbles;
-            }
-        }
-        return true;
-    }
-
-    public void updateState(Preference preference) {
-        if (mAppRow != null) {
-            RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference;
-            pref.setDisabledByAdmin(mAdmin);
-            if (mChannel != null) {
-                pref.setChecked(mChannel.canBubble());
-                pref.setEnabled(isChannelConfigurable() && !pref.isDisabledByAdmin());
-            } else {
-                pref.setChecked(mAppRow.allowBubbles
-                        && Settings.Global.getInt(mContext.getContentResolver(),
-                        NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON) == SYSTEM_WIDE_ON);
-                pref.setSummary(mContext.getString(
-                        R.string.bubbles_app_toggle_summary, mAppRow.label));
-            }
-        }
-    }
-
-    @Override
-    public boolean onPreferenceChange(Preference preference, Object newValue) {
-        final boolean value = (Boolean) newValue;
-        if (mChannel != null) {
-            mChannel.setAllowBubbles(value);
-            saveChannel();
-            return true;
-        } else if (mAppRow != null) {
-            RestrictedSwitchPreference pref = (RestrictedSwitchPreference) preference;
-            // if the global setting is off, toggling app level permission requires extra
-            // confirmation
-            if (Settings.Global.getInt(mContext.getContentResolver(),
-                    NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF
-                    && !pref.isChecked()) {
-                new BubbleWarningDialogFragment()
-                        .setPkgInfo(mAppRow.pkg, mAppRow.uid)
-                        .show(mFragmentManager, "dialog");
-                return false;
-            } else {
-                mAppRow.allowBubbles = value;
-                mBackend.setAllowBubbles(mAppRow.pkg, mAppRow.uid, value);
-            }
-        }
-        return true;
-    }
-
-    // Used in app level prompt that confirms the user is ok with turning on bubbles
-    // globally. If they aren't, undo what
-    public static void revertBubblesApproval(Context mContext, String pkg, int uid) {
-        NotificationBackend backend = new NotificationBackend();
-        backend.setAllowBubbles(pkg, uid, false);
-        // changing the global settings will cause the observer on the host page to reload
-        // correct preference state
-        Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, SYSTEM_WIDE_OFF);
-    }
-
-    // Apply global bubbles approval
-    public static void applyBubblesApproval(Context mContext, String pkg, int uid) {
-        NotificationBackend backend = new NotificationBackend();
-        backend.setAllowBubbles(pkg, uid, true);
-        // changing the global settings will cause the observer on the host page to reload
-        // correct preference state
-        Settings.Global.putInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON);
-    }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleSummaryNotificationPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleSummaryNotificationPreferenceController.java
deleted file mode 100644
index 1543c14..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleSummaryNotificationPreferenceController.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
-
-import android.content.Context;
-import android.provider.Settings;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.core.BasePreferenceController;
-
-import androidx.annotation.VisibleForTesting;
-
-public class BubbleSummaryNotificationPreferenceController extends BasePreferenceController {
-
-    @VisibleForTesting
-    static final int ON = 1;
-
-    public BubbleSummaryNotificationPreferenceController(Context context, String preferenceKey) {
-        super(context, preferenceKey);
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        return mContext.getString(
-                areBubblesEnabled() ? R.string.switch_on_text : R.string.switch_off_text);
-    }
-
-    @Override
-    public int getAvailabilityStatus() {
-        return AVAILABLE;
-    }
-
-    private boolean areBubblesEnabled() {
-        return Settings.Global.getInt(mContext.getContentResolver(),
-                NOTIFICATION_BUBBLES, ON) == ON;
-    }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleSummaryPreferenceController.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleSummaryPreferenceController.java
deleted file mode 100644
index a02b9ab..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleSummaryPreferenceController.java
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import static android.provider.Settings.Global.NOTIFICATION_BUBBLES;
-
-import android.app.settings.SettingsEnums;
-import android.content.Context;
-import android.os.Bundle;
-import android.provider.Settings;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.applications.AppInfoBase;
-import com.android.car.developeroptions.core.SubSettingLauncher;
-
-import androidx.preference.Preference;
-
-public class BubbleSummaryPreferenceController extends NotificationPreferenceController {
-
-    private static final String KEY = "bubble_link_pref";
-    private static final int SYSTEM_WIDE_ON = 1;
-    private static final int SYSTEM_WIDE_OFF = 0;
-
-    public BubbleSummaryPreferenceController(Context context, NotificationBackend backend) {
-        super(context, backend);
-    }
-
-    @Override
-    public String getPreferenceKey() {
-        return KEY;
-    }
-
-    @Override
-    public boolean isAvailable() {
-        if (!super.isAvailable()) {
-            return false;
-        }
-        if (mAppRow == null && mChannel == null) {
-            return false;
-        }
-        if (mChannel != null) {
-            if (Settings.Global.getInt(mContext.getContentResolver(),
-                    NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON) == SYSTEM_WIDE_OFF) {
-                return false;
-            }
-            if (isDefaultChannel()) {
-                return true;
-            } else {
-                return mAppRow == null ? false : mAppRow.allowBubbles;
-            }
-        }
-        return true;
-    }
-
-    @Override
-    public void updateState(Preference preference) {
-        super.updateState(preference);
-
-        if (mAppRow != null) {
-            Bundle args = new Bundle();
-            args.putString(AppInfoBase.ARG_PACKAGE_NAME, mAppRow.pkg);
-            args.putInt(AppInfoBase.ARG_PACKAGE_UID, mAppRow.uid);
-
-            preference.setIntent(new SubSettingLauncher(mContext)
-                    .setDestination(AppBubbleNotificationSettings.class.getName())
-                    .setArguments(args)
-                    .setSourceMetricsCategory(
-                            SettingsEnums.NOTIFICATION_APP_NOTIFICATION)
-                    .toIntent());
-        }
-    }
-
-    @Override
-    public CharSequence getSummary() {
-        boolean canBubble = false;
-        if (mAppRow != null) {
-            if (mChannel != null) {
-                canBubble |= mChannel.canBubble();
-            } else {
-               canBubble |= mAppRow.allowBubbles
-                       && (Settings.Global.getInt(mContext.getContentResolver(),
-                       NOTIFICATION_BUBBLES, SYSTEM_WIDE_ON) == SYSTEM_WIDE_ON);
-            }
-        }
-        return mContext.getString(canBubble ? R.string.switch_on_text : R.string.switch_off_text);
-    }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleWarningDialogFragment.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleWarningDialogFragment.java
deleted file mode 100644
index d5bb8a7..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/BubbleWarningDialogFragment.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import android.app.Dialog;
-import android.app.settings.SettingsEnums;
-import android.os.Bundle;
-
-import androidx.appcompat.app.AlertDialog;
-
-import com.android.car.developeroptions.R;
-import com.android.car.developeroptions.core.instrumentation.InstrumentedDialogFragment;
-
-public class BubbleWarningDialogFragment extends InstrumentedDialogFragment {
-    static final String KEY_PKG = "p";
-    static final String KEY_UID = "u";
-
-
-    @Override
-    public int getMetricsCategory() {
-        return SettingsEnums.DIALOG_APP_BUBBLE_SETTINGS;
-    }
-
-    public BubbleWarningDialogFragment setPkgInfo(String pkg, int uid) {
-        Bundle args = new Bundle();
-        args.putString(KEY_PKG, pkg);
-        args.putInt(KEY_UID, uid);
-        setArguments(args);
-        return this;
-    }
-
-    @Override
-    public Dialog onCreateDialog(Bundle savedInstanceState) {
-        super.onCreate(savedInstanceState);
-        final Bundle args = getArguments();
-        final String pkg = args.getString(KEY_PKG);
-        final int uid = args.getInt(KEY_UID);
-
-        final String title =
-                getResources().getString(R.string.bubbles_feature_disabled_dialog_title);
-        final String summary = getResources()
-                .getString(R.string.bubbles_feature_disabled_dialog_text);
-        return new AlertDialog.Builder(getContext())
-                .setMessage(summary)
-                .setTitle(title)
-                .setCancelable(true)
-                .setPositiveButton(R.string.bubbles_feature_disabled_button_approve,
-                        (dialog, id) ->
-                                BubblePreferenceController.applyBubblesApproval(
-                                        getContext(), pkg, uid))
-                .setNegativeButton(R.string.bubbles_feature_disabled_button_cancel,
-                        (dialog, id) ->
-                                BubblePreferenceController.revertBubblesApproval(
-                                        getContext(), pkg, uid))
-                .create();
-    }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/ChannelNotificationSettings.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/ChannelNotificationSettings.java
index b851ce9..3e3b073 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/ChannelNotificationSettings.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/ChannelNotificationSettings.java
@@ -113,7 +113,6 @@
         mControllers.add(new BadgePreferenceController(context, mBackend));
         mControllers.add(new DndPreferenceController(context, mBackend));
         mControllers.add(new NotificationsOffPreferenceController(context));
-        mControllers.add(new BubblePreferenceController(context, mBackend));
         return new ArrayList<>(mControllers);
     }
 }
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/GlobalBubblePermissionObserverMixin.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/GlobalBubblePermissionObserverMixin.java
deleted file mode 100644
index 96ced17..0000000
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/GlobalBubblePermissionObserverMixin.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2019 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.car.developeroptions.notification;
-
-import android.content.Context;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Handler;
-import android.os.Looper;
-import android.provider.Settings;
-
-public class GlobalBubblePermissionObserverMixin extends ContentObserver {
-
-    public interface Listener {
-        void onGlobalBubblePermissionChanged();
-    }
-
-    private final Context mContext;
-    private final Listener mListener;
-
-    public GlobalBubblePermissionObserverMixin(Context context, Listener listener) {
-        super(new Handler(Looper.getMainLooper()));
-        mContext = context;
-        mListener = listener;
-    }
-
-    @Override
-    public void onChange(boolean selfChange, Uri uri) {
-        if (mListener != null) {
-            mListener.onGlobalBubblePermissionChanged();
-        }
-    }
-
-    public void onStart() {
-        mContext.getContentResolver().registerContentObserver(
-                Settings.Global.getUriFor(
-                        Settings.Global.NOTIFICATION_BUBBLES),
-                false /* notifyForDescendants */,
-                this /* observer */);
-    }
-
-    public void onStop() {
-        mContext.getContentResolver().unregisterContentObserver(this /* observer */);
-    }
-}
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationBackend.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationBackend.java
index 0cc9f63..4e71f42 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationBackend.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/notification/NotificationBackend.java
@@ -19,6 +19,7 @@
 import static android.app.NotificationManager.IMPORTANCE_UNSPECIFIED;
 
 import android.app.INotificationManager;
+import android.app.NotificationManager;
 import android.app.NotificationChannel;
 import android.app.NotificationChannelGroup;
 import android.app.usage.IUsageStatsManager;
@@ -71,7 +72,7 @@
         row.icon = IconDrawableFactory.newInstance(context).getBadgedIcon(app);
         row.banned = getNotificationsBanned(row.pkg, row.uid);
         row.showBadge = canShowBadge(row.pkg, row.uid);
-        row.allowBubbles = canBubble(row.pkg, row.uid);
+        row.bubblePreference = getBubblePreference(row.pkg, row.uid);
         row.userId = UserHandle.getUserId(row.uid);
         row.blockedChannelCount = getBlockedChannelCount(row.pkg, row.uid);
         row.channelCount = getChannelCount(row.pkg, row.uid);
@@ -176,18 +177,18 @@
         }
     }
 
-    public boolean canBubble(String pkg, int uid) {
+    public int getBubblePreference(String pkg, int uid) {
         try {
-            return sINM.areBubblesAllowedForPackage(pkg, uid);
+            return sINM.getBubblePreferenceForPackage(pkg, uid);
         } catch (Exception e) {
             Log.w(TAG, "Error calling NoMan", e);
-            return false;
+            return -1;
         }
     }
 
-    public boolean setAllowBubbles(String pkg, int uid, boolean allow) {
+    public boolean setAllowBubbles(String pkg, int uid, int pref) {
         try {
-            sINM.setBubblesAllowed(pkg, uid, allow);
+            sINM.setBubblesAllowed(pkg, uid, pref);
             return true;
         } catch (Exception e) {
             Log.w(TAG, "Error calling NoMan", e);
@@ -485,7 +486,7 @@
         public boolean lockedImportance;
         public String lockedChannelId;
         public boolean showBadge;
-        public boolean allowBubbles;
+        public int bubblePreference = NotificationManager.BUBBLE_PREFERENCE_NONE;
         public int userId;
         public int blockedChannelCount;
         public int channelCount;
diff --git a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/wifi/NetworkRequestErrorDialogFragment.java b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/wifi/NetworkRequestErrorDialogFragment.java
index 59f1b02..5d3bd74 100644
--- a/tests/CarDeveloperOptions/src/com/android/car/developeroptions/wifi/NetworkRequestErrorDialogFragment.java
+++ b/tests/CarDeveloperOptions/src/com/android/car/developeroptions/wifi/NetworkRequestErrorDialogFragment.java
@@ -41,10 +41,6 @@
         return new NetworkRequestErrorDialogFragment();
     }
 
-    private NetworkRequestErrorDialogFragment() {
-        super();
-    }
-
     @Override
     public void onCancel(@NonNull DialogInterface dialog) {
         super.onCancel(dialog);
diff --git a/tests/SecurityPermissionTest/Android.bp b/tests/CarSecurityPermissionTest/Android.bp
similarity index 89%
rename from tests/SecurityPermissionTest/Android.bp
rename to tests/CarSecurityPermissionTest/Android.bp
index 028875e..066ecc8 100644
--- a/tests/SecurityPermissionTest/Android.bp
+++ b/tests/CarSecurityPermissionTest/Android.bp
@@ -15,7 +15,7 @@
 //
 
 android_test {
-    name: "SecurityPermissionTest",
+    name: "CarSecurityPermissionTest",
 
     srcs: ["src/**/*.java"],
 
@@ -30,9 +30,11 @@
         "androidx.test.core",
         "androidx.test.ext.junit",
         "androidx.test.rules",
-        "truth-prebuilt",
         "car-frameworks-service",
+        "compatibility-device-util-axt",
+        "mockito-target-minus-junit4",
         "testng",
+        "truth-prebuilt",
     ],
 
     platform_apis: true,
diff --git a/tests/SecurityPermissionTest/AndroidManifest.xml b/tests/CarSecurityPermissionTest/AndroidManifest.xml
similarity index 88%
rename from tests/SecurityPermissionTest/AndroidManifest.xml
rename to tests/CarSecurityPermissionTest/AndroidManifest.xml
index c0c6ecc..bb4d6cc 100644
--- a/tests/SecurityPermissionTest/AndroidManifest.xml
+++ b/tests/CarSecurityPermissionTest/AndroidManifest.xml
@@ -19,8 +19,8 @@
           package="com.android.car.securitypermissiontest">
     <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
                      android:targetPackage="com.android.car.securitypermissiontest"
-                     android:label="Unit Tests for Car APIs"/>
-    <application android:label="SecurityPermissionTest"
+                     android:label="Security permission tests for Car APIs"/>
+    <application android:label="CarSecurityPermissionTest"
                  android:debuggable="true">
         <uses-library android:name="android.test.runner" />
     </application>
diff --git a/tests/SecurityPermissionTest/src/com/android/car/CarPropertyManagerPublicTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/CarPropertyManagerPublicTest.java
similarity index 100%
rename from tests/SecurityPermissionTest/src/com/android/car/CarPropertyManagerPublicTest.java
rename to tests/CarSecurityPermissionTest/src/com/android/car/CarPropertyManagerPublicTest.java
diff --git a/tests/SecurityPermissionTest/src/com/android/car/CarPublicTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/CarPublicTest.java
similarity index 100%
rename from tests/SecurityPermissionTest/src/com/android/car/CarPublicTest.java
rename to tests/CarSecurityPermissionTest/src/com/android/car/CarPublicTest.java
diff --git a/tests/SecurityPermissionTest/src/com/android/car/CarTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/CarTest.java
similarity index 100%
rename from tests/SecurityPermissionTest/src/com/android/car/CarTest.java
rename to tests/CarSecurityPermissionTest/src/com/android/car/CarTest.java
diff --git a/tests/CarSecurityPermissionTest/src/com/android/car/input/CarInputManagerTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/input/CarInputManagerTest.java
new file mode 100644
index 0000000..354446e
--- /dev/null
+++ b/tests/CarSecurityPermissionTest/src/com/android/car/input/CarInputManagerTest.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2020 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.car.input;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+import android.car.Car;
+import android.car.input.CarInputManager;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+/**
+ * This class contains security permission tests for the {@link CarInputManager}'s system APIs.
+ */
+@RunWith(AndroidJUnit4.class)
+public class CarInputManagerTest {
+    private Car mCar;
+
+    private CarInputManager mCarInputManager;
+
+    @Mock
+    private CarInputManager.CarInputCaptureCallback mMockedCallback;
+
+    @Before
+    public void setUp() throws Exception {
+        mCar = Car.createCar(
+                InstrumentationRegistry.getInstrumentation().getTargetContext());
+        assertThat(mCar).isNotNull();
+        mCarInputManager = (CarInputManager) mCar.getCarManager(Car.CAR_INPUT_SERVICE);
+        assertThat(mCarInputManager).isNotNull();
+    }
+
+    @After
+    public void tearDown() {
+        mCar.disconnect();
+    }
+
+    @Test
+    public void testEnableFeaturePermission() throws Exception {
+        assertThrows(SecurityException.class, () -> mCarInputManager.requestInputEventCapture(
+                mMockedCallback,
+                CarInputManager.TARGET_DISPLAY_TYPE_MAIN,
+                new int[]{CarInputManager.INPUT_TYPE_ROTARY_NAVIGATION}, 0));
+    }
+}
+
diff --git a/tests/CarSecurityPermissionTest/src/com/android/car/media/CarAudioManagerPublicTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/media/CarAudioManagerPublicTest.java
new file mode 100644
index 0000000..2877043
--- /dev/null
+++ b/tests/CarSecurityPermissionTest/src/com/android/car/media/CarAudioManagerPublicTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2020 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.car.media;
+
+import static android.car.Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.expectThrows;
+
+import android.car.Car;
+import android.car.media.CarAudioManager;
+import android.car.media.CarAudioManager.CarVolumeCallback;
+import android.content.Context;
+import android.os.Handler;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+/**
+ * This class contains security permission tests for the {@link CarAudioManager}'s public APIs.
+ */
+@RunWith(AndroidJUnit4.class)
+public final class CarAudioManagerPublicTest {
+    private CarAudioManager mCarAudioManager;
+
+    @Before
+    public void setUp() throws Exception {
+        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        Car car = Car.createCar(context, (Handler) null);
+        mCarAudioManager = (CarAudioManager) car.getCarManager(Car.AUDIO_SERVICE);
+    }
+
+    @Test
+    public void registerCarVolumeCallbackPermission() {
+        CarVolumeCallback callback = new CarVolumeCallback() {};
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.registerCarVolumeCallback(callback));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+}
diff --git a/tests/CarSecurityPermissionTest/src/com/android/car/media/CarAudioManagerTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/media/CarAudioManagerTest.java
new file mode 100644
index 0000000..1bb81ec
--- /dev/null
+++ b/tests/CarSecurityPermissionTest/src/com/android/car/media/CarAudioManagerTest.java
@@ -0,0 +1,266 @@
+/*
+ * Copyright (C) 2020 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.car.media;
+
+import static android.car.Car.AUDIO_SERVICE;
+import static android.car.Car.PERMISSION_CAR_CONTROL_AUDIO_SETTINGS;
+import static android.car.Car.PERMISSION_CAR_CONTROL_AUDIO_VOLUME;
+import static android.car.Car.createCar;
+import static android.car.media.CarAudioManager.PRIMARY_AUDIO_ZONE;
+import static android.media.AudioAttributes.USAGE_MEDIA;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assume.assumeNotNull;
+import static org.testng.Assert.expectThrows;
+
+import android.car.Car;
+import android.car.media.CarAudioManager;
+import android.content.Context;
+import android.hardware.display.DisplayManager;
+import android.os.Handler;
+import android.view.Display;
+import android.view.DisplayAddress;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Arrays;
+import java.util.Objects;
+import java.util.Optional;
+
+/**
+ * This class contains security permission tests for the {@link CarAudioManager}'s system APIs.
+ */
+@RunWith(AndroidJUnit4.class)
+public final class CarAudioManagerTest {
+    private static final int GROUP_ID = 0;
+    private static final int UID = 10;
+
+    private CarAudioManager mCarAudioManager;
+    private Context mContext;
+
+    @Before
+    public void setUp() {
+        mContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        Car car = Objects.requireNonNull(createCar(mContext, (Handler) null));
+        mCarAudioManager = (CarAudioManager) car.getCarManager(AUDIO_SERVICE);
+    }
+
+    @Test
+    public void setGroupVolumePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.setGroupVolume(GROUP_ID, 0, 0));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void setGroupVolumeWithZonePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.setGroupVolume(PRIMARY_AUDIO_ZONE, GROUP_ID, 0, 0));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getGroupMaxVolumePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getGroupMaxVolume(GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getGroupMaxVolumeWithZonePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getGroupMaxVolume(PRIMARY_AUDIO_ZONE, GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getGroupMinVolumePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getGroupMinVolume(GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getGroupMinVolumeWithZonePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getGroupMinVolume(PRIMARY_AUDIO_ZONE, GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getGroupVolumePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getGroupVolume(GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getGroupVolumeWithZonePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getGroupVolume(PRIMARY_AUDIO_ZONE, GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void setFadeTowardFrontPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.setFadeTowardFront(0));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void setBalanceTowardRightPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.setBalanceTowardRight(0));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getExternalSourcesPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getExternalSources());
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void createAudioPatchPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.createAudioPatch("address", USAGE_MEDIA, 0));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void releaseAudioPatchPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.releaseAudioPatch(null));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void getVolumeGroupCountPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getVolumeGroupCount());
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getVolumeGroupCountWithZonePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getVolumeGroupCount(PRIMARY_AUDIO_ZONE));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getVolumeGroupIdForUsagePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getVolumeGroupIdForUsage(USAGE_MEDIA));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getVolumeGroupIdForUsageWithZonePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getVolumeGroupIdForUsage(PRIMARY_AUDIO_ZONE, USAGE_MEDIA));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getUsagesForVolumeGroupIdPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getUsagesForVolumeGroupId(GROUP_ID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void getAudioZoneIdsPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getAudioZoneIds());
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void getZoneIdForUidPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getZoneIdForUid(UID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void setZoneIdForUidPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.setZoneIdForUid(PRIMARY_AUDIO_ZONE, UID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void clearZoneIdForUidPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.clearZoneIdForUid(UID));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void getZoneIdForDisplayPermission() {
+        Display display = getPhysicalDisplay();
+        assumeNotNull(display);
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getZoneIdForDisplay(display));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void getZoneIdForDisplayPortIdPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getZoneIdForDisplayPortId(Byte.MAX_VALUE));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void getOutputDeviceForUsagePermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.getOutputDeviceForUsage(PRIMARY_AUDIO_ZONE, USAGE_MEDIA));
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_SETTINGS);
+    }
+
+    @Test
+    public void onCarDisconnectedPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.onCarDisconnected());
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    @Test
+    public void onCarDisconnected() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarAudioManager.onCarDisconnected());
+        assertThat(e.getMessage()).contains(PERMISSION_CAR_CONTROL_AUDIO_VOLUME);
+    }
+
+    private Display getPhysicalDisplay() {
+        DisplayManager displayManager = (DisplayManager) mContext.getSystemService(
+                Context.DISPLAY_SERVICE);
+        Optional<Display> physical = Arrays.stream(displayManager.getDisplays()).filter(
+                display -> (display.getAddress() instanceof DisplayAddress.Physical)).findFirst();
+        return physical.orElse(null);
+    }
+}
diff --git a/tests/CarSecurityPermissionTest/src/com/android/car/user/CarUserManagerTest.java b/tests/CarSecurityPermissionTest/src/com/android/car/user/CarUserManagerTest.java
new file mode 100644
index 0000000..4ede567
--- /dev/null
+++ b/tests/CarSecurityPermissionTest/src/com/android/car/user/CarUserManagerTest.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2020 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.car.user;
+
+import static android.Manifest.permission.INTERACT_ACROSS_USERS;
+import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
+import static android.Manifest.permission.MANAGE_USERS;
+import static android.car.Car.CAR_USER_SERVICE;
+import static android.car.Car.createCar;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_1;
+
+import static com.android.compatibility.common.util.ShellIdentityUtils.invokeMethodWithShellPermissionsNoReturn;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.expectThrows;
+
+import android.app.Instrumentation;
+import android.car.Car;
+import android.car.user.CarUserManager;
+import android.car.user.CarUserManager.UserLifecycleListener;
+import android.content.Context;
+import android.os.Handler;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.Objects;
+
+/**
+ * This class contains security permission tests for the {@link CarUserManager}'s system APIs.
+ */
+@RunWith(AndroidJUnit4.class)
+public final class CarUserManagerTest {
+    private static final int USRE_TYPE = 1;
+
+    private CarUserManager mCarUserManager;
+    private Context mContext;
+    private Instrumentation mInstrumentation;
+
+    @Before
+    public void setUp() {
+        mInstrumentation = InstrumentationRegistry.getInstrumentation();
+        mContext = mInstrumentation.getTargetContext();
+        Car car = Objects.requireNonNull(createCar(mContext, (Handler) null));
+        mCarUserManager = (CarUserManager) car.getCarManager(CAR_USER_SERVICE);
+
+    }
+
+    @Test
+    public void testSwitchUserPermission() throws Exception {
+        int target_uid = 100;
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarUserManager.switchUser(target_uid));
+        assertThat(e.getMessage()).contains(MANAGE_USERS);
+    }
+
+    @Test
+    public void testAddListenerPermission() {
+        UserLifecycleListener listener = (e) -> { };
+
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarUserManager.addListener(Runnable::run, listener));
+
+        assertThat(e.getMessage()).contains(INTERACT_ACROSS_USERS);
+        assertThat(e.getMessage()).contains(INTERACT_ACROSS_USERS_FULL);
+    }
+
+    @Test
+    public void testRemoveListenerPermission() throws Exception {
+        UserLifecycleListener listener = (e) -> { };
+        invokeMethodWithShellPermissionsNoReturn(mCarUserManager,
+                (um) -> um.addListener(Runnable::run, listener));
+
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarUserManager.removeListener(listener));
+
+        assertThat(e.getMessage()).contains(INTERACT_ACROSS_USERS);
+        assertThat(e.getMessage()).contains(INTERACT_ACROSS_USERS_FULL);
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociationPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarUserManager.getUserIdentificationAssociation(CUSTOM_1));
+        assertThat(e.getMessage()).contains(MANAGE_USERS);
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociationPermission() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarUserManager.setUserIdentificationAssociation(
+                        new int[] {CUSTOM_1}, new int[] {42}));
+        assertThat(e.getMessage()).contains(MANAGE_USERS);
+    }
+
+    @Test
+    public void testSetUserSwitchUiCallback() {
+        Exception e = expectThrows(SecurityException.class,
+                () -> mCarUserManager.getUserIdentificationAssociation(CUSTOM_1));
+        assertThat(e.getMessage()).contains(MANAGE_USERS);
+    }
+}
diff --git a/tests/EmbeddedKitchenSinkApp/AndroidManifest.xml b/tests/EmbeddedKitchenSinkApp/AndroidManifest.xml
index 66e68eb..ec480c4 100644
--- a/tests/EmbeddedKitchenSinkApp/AndroidManifest.xml
+++ b/tests/EmbeddedKitchenSinkApp/AndroidManifest.xml
@@ -62,6 +62,7 @@
     <uses-permission android:name="android.permission.ACTIVITY_EMBEDDING"/>
     <uses-permission android:name="android.permission.BLUETOOTH"/>
     <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
+    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
     <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
     <uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/audio.xml b/tests/EmbeddedKitchenSinkApp/res/layout/audio.xml
index cd5decc..0cfd4b7 100644
--- a/tests/EmbeddedKitchenSinkApp/res/layout/audio.xml
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/audio.xml
@@ -256,6 +256,32 @@
                 android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:orientation="horizontal"
+                android:layout_weight="1" >
+                <TextView
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/media_with_delayed_focus" />
+                <TextView
+                    android:id="@+id/media_delayed_player_status"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:paddingLeft="8dp"
+                    android:text="@string/player_not_started" />
+                <Button
+                    android:id="@+id/media_delayed_focus_start"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/play" />
+                <Button
+                    android:id="@+id/media_delayed_focus_stop"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:text="@string/stop" />
+            </LinearLayout>
+            <LinearLayout
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:orientation="horizontal"
                 android:layout_weight="1">
                 <Button
                     android:id="@+id/button_microphone_on"
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/profile_user.xml b/tests/EmbeddedKitchenSinkApp/res/layout/profile_user.xml
new file mode 100644
index 0000000..fc38129
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/profile_user.xml
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2020 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.
+-->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical" >
+    <TextView
+        android:id="@+id/profile_textView_state"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" android:text=""/>
+    <TextView
+        android:id="@+id/profile_textView_zoneinfo"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" android:text=""/>
+    <TextView
+        android:id="@+id/profile_textView_userstate"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" android:text=""/>
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="wrap_content"
+    android:orientation="horizontal" >
+        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                      android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:orientation="vertical" >
+            <TextView
+                android:id="@+id/profile_textView_users"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" android:text="Users"/>
+            <Spinner
+                android:id="@+id/profile_spinner_users"
+                android:layout_width="wrap_content" android:layout_height="wrap_content"/>
+        </LinearLayout>
+        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                      android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:orientation="vertical" >
+            <TextView
+                android:id="@+id/profile_textView_zones"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" android:text="Zones"/>
+            <Spinner
+                android:id="@+id/profile_spinner_zones"
+                android:layout_width="wrap_content" android:layout_height="wrap_content"/>
+        </LinearLayout>
+        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                      android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:orientation="vertical" >
+            <TextView
+                android:id="@+id/profile_textView_displays"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" android:text="Displays"/>
+            <Spinner
+                android:id="@+id/profile_spinner_displays"
+                android:layout_width="wrap_content" android:layout_height="wrap_content"/>
+        </LinearLayout>
+        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                      android:layout_width="wrap_content"
+                      android:layout_height="wrap_content"
+                      android:orientation="vertical" >
+            <TextView
+                android:id="@+id/profile_textView_apps"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content" android:text="Apps"/>
+            <Spinner
+                android:id="@+id/profile_spinner_apps"
+                android:layout_width="wrap_content" android:layout_height="wrap_content"/>
+        </LinearLayout>
+    </LinearLayout>
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal" >
+        <Button
+            android:id="@+id/profile_button_create_managed_user"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Create Managed User"/>
+        <Button
+            android:id="@+id/profile_button_create_restricted_user"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Create Restricted User"/>
+        <Button
+            android:id="@+id/profile_button_remove_user"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Remove User"/>
+    </LinearLayout>
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal" >
+        <Button
+            android:id="@+id/profile_button_start_user"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Start User"/>
+        <Button
+            android:id="@+id/profile_button_stop_user"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Stop User"/>
+        <Button
+            android:id="@+id/profile_button_assign_user_to_zone"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Assign User To Zone"/>
+    </LinearLayout>
+    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+                  android:layout_width="match_parent"
+                  android:layout_height="wrap_content"
+                  android:orientation="horizontal" >
+        <Button
+            android:id="@+id/profile_button_launch_app_for_zone"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Start App For Zone"/>
+        <Button
+            android:id="@+id/profile_button_launch_app_for_display"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" android:text="Start App For Display And User"/>
+    </LinearLayout>
+
+</LinearLayout>
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/volume_test.xml b/tests/EmbeddedKitchenSinkApp/res/layout/volume_test.xml
index db48680..7cd5c95 100644
--- a/tests/EmbeddedKitchenSinkApp/res/layout/volume_test.xml
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/volume_test.xml
@@ -16,12 +16,25 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:orientation="horizontal" android:layout_width="match_parent"
     android:layout_height="match_parent">
-    <ListView
-        android:id="@+id/volume_list"
+
+    <LinearLayout
         android:layout_width="0dp"
         android:layout_height="match_parent"
+        android:layout_marginLeft="20dp"
+        android:orientation="vertical"
         android:layout_weight="3">
-    </ListView>
+        <com.google.android.material.tabs.TabLayout
+            android:id="@+id/zones_tab"
+            android:layout_width="0dp"
+            android:layout_height="wrap_content">
+        </com.google.android.material.tabs.TabLayout>
+        <androidx.viewpager.widget.ViewPager
+            android:id="@+id/zone_view_pager"
+            android:layout_width="match_parent"
+            android:layout_height="0dp"
+            android:layout_weight="1">
+        </androidx.viewpager.widget.ViewPager>
+    </LinearLayout>
 
     <LinearLayout
         android:layout_width="0dp"
@@ -31,12 +44,6 @@
         android:layout_weight="1">
 
         <Button
-            android:id="@+id/refresh"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/refresh_volume"/>
-
-        <Button
             android:id="@+id/volume_up"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
diff --git a/tests/EmbeddedKitchenSinkApp/res/layout/zone_volume_tab.xml b/tests/EmbeddedKitchenSinkApp/res/layout/zone_volume_tab.xml
new file mode 100644
index 0000000..bb38d5a
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/res/layout/zone_volume_tab.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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.
+  -->
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:orientation="horizontal"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent">
+    <ListView
+        android:id="@+id/volume_list"
+        android:layout_width="0dp"
+        android:layout_height="match_parent"
+        android:layout_weight="3">
+    </ListView>
+</LinearLayout>
diff --git a/tests/EmbeddedKitchenSinkApp/res/values/strings.xml b/tests/EmbeddedKitchenSinkApp/res/values/strings.xml
index 00d73d6..2c73cb9 100644
--- a/tests/EmbeddedKitchenSinkApp/res/values/strings.xml
+++ b/tests/EmbeddedKitchenSinkApp/res/values/strings.xml
@@ -113,6 +113,10 @@
     <string name="media_play" translatable="false">Media Play</string>
     <string name="hw_audio_source_title" translatable="false">HwAudioSource</string>
     <string name="hw_audio_source_not_found" translatable="false">Not found</string>
+    <string name="media_with_delayed_focus" translatable="false">Media With Delayed Focus</string>
+    <string name="player_not_started" translatable="false">Player Not Started</string>
+    <string name="player_started" translatable="false">Player Started</string>
+    <string name="player_delayed" translatable="false">Player Delayed</string>
     <string name="nav_play" translatable="false">Nav Play</string>
     <string name="vr_play" translatable="false">VR Play</string>
     <string name="system_play" translatable="false">System Play</string>
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/CarWatchdogClient.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/CarWatchdogClient.java
index 3235a60..3f696f7 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/CarWatchdogClient.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/CarWatchdogClient.java
@@ -49,7 +49,7 @@
 
         @Override
         public void onPrepareProcessTermination() {
-            Log.i(TAG, "This process is being terminated by Car watchdog");
+            Log.w(TAG, "This process is being terminated by car watchdog");
         }
     };
     private final ExecutorService mCallbackExecutor = Executors.newFixedThreadPool(1);
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
index 0ab3505..0187c8f 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/KitchenSinkActivity.java
@@ -66,6 +66,7 @@
 import com.google.android.car.kitchensink.storagevolumes.StorageVolumesFragment;
 import com.google.android.car.kitchensink.systemfeatures.SystemFeaturesFragment;
 import com.google.android.car.kitchensink.touch.TouchTestFragment;
+import com.google.android.car.kitchensink.users.ProfileUserFragment;
 import com.google.android.car.kitchensink.users.UsersFragment;
 import com.google.android.car.kitchensink.vehiclectrl.VehicleCtrlFragment;
 import com.google.android.car.kitchensink.vhal.VehicleHalFragment;
@@ -183,6 +184,7 @@
             new FragmentMenuEntry("orientation test", OrientationTestFragment.class),
             new FragmentMenuEntry("package info", PackageInfoFragment.class),
             new FragmentMenuEntry("power test", PowerTestFragment.class),
+            new FragmentMenuEntry("profile_user", ProfileUserFragment.class),
             new FragmentMenuEntry("projection", ProjectionFragment.class),
             new FragmentMenuEntry("property test", PropertyTestFragment.class),
             new FragmentMenuEntry("sensors", SensorsTestFragment.class),
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java
index 888fa31..1764375 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/audio/AudioTestFragment.java
@@ -58,6 +58,8 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import javax.annotation.concurrent.GuardedBy;
+
 public class AudioTestFragment extends Fragment {
     private static final String TAG = "CAR.AUDIO.KS";
     private static final boolean DBG = true;
@@ -71,6 +73,8 @@
     private ToggleButton mEnableMocking;
 
     private AudioPlayer mMusicPlayer;
+    @GuardedBy("mLock")
+    private AudioPlayer mMusicPlayerWithDelayedFocus;
     private AudioPlayer mMusicPlayerShort;
     private AudioPlayer mNavGuidancePlayer;
     private AudioPlayer mVrPlayer;
@@ -100,6 +104,12 @@
     private LinearLayout mDisplayLayout;
     private int mOldZonePosition;
 
+    private final Object mLock = new Object();
+
+    @GuardedBy("mLock")
+    private AudioFocusRequest mDelayedFocusRequest;
+    private TextView mDelayedStatusText;
+
     private static int sDefaultExtraTestScreenPortId = 1;
 
     private final AudioManager.OnAudioFocusChangeListener mNavFocusListener = (focusChange) -> {
@@ -111,6 +121,30 @@
     private final AudioManager.OnAudioFocusChangeListener mRadioFocusListener = (focusChange) -> {
         Log.i(TAG, "Radio focus change:" + focusChange);
     };
+    private final AudioManager.OnAudioFocusChangeListener mMediaDelayedFocusListener =
+            new AudioManager.OnAudioFocusChangeListener() {
+        @Override
+        public void onAudioFocusChange(int focusChange) {
+            if (DBG) Log.d(TAG, "Media With Delayed Focus focus change:" + focusChange);
+            synchronized (mLock) {
+                switch (focusChange) {
+                    case AudioManager.AUDIOFOCUS_GAIN:
+                    case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT:
+                    case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE:
+                    case AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK:
+                        startDelayedMediaPlayerLocked();
+                        break;
+                    case AudioManager.AUDIOFOCUS_LOSS:
+                        mDelayedFocusRequest = null;
+                        // Fall through to stop
+                    case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
+                    case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK:
+                    default:
+                        stopDelayedMediaPlayerLocked();
+                }
+            }
+        }
+    };
 
     private final CarAppFocusManager.OnAppFocusOwnershipCallback mOwnershipCallbacks =
             new OnAppFocusOwnershipCallback() {
@@ -186,6 +220,8 @@
                 mMusicAudioAttribForDisplay);
         mMusicPlayer = new AudioPlayer(mContext, R.raw.well_worth_the_wait,
             mMusicAudioAttrib);
+        mMusicPlayerWithDelayedFocus = new AudioPlayer(mContext, R.raw.well_worth_the_wait,
+                mMusicAudioAttrib);
         mMusicPlayerShort = new AudioPlayer(mContext, R.raw.ring_classic_01,
             mMusicAudioAttrib);
         mNavGuidancePlayer = new AudioPlayer(mContext, R.raw.turnright,
@@ -209,7 +245,8 @@
             mNavGuidancePlayer,
             mVrPlayer,
             mSystemPlayer,
-            mWavPlayer
+            mWavPlayer,
+            mMusicPlayerWithDelayedFocus
         };
     }
 
@@ -349,9 +386,75 @@
         view.findViewById(R.id.button_display_media_play_stop)
                 .setOnClickListener(v -> mMusicPlayerForSelectedDisplay.stop());
 
+        view.findViewById(R.id.media_delayed_focus_start)
+                .setOnClickListener(v -> handleDelayedMediaStart());
+        view.findViewById(R.id.media_delayed_focus_stop)
+                .setOnClickListener(v -> handleDelayedMediaStop());
+
+        mDelayedStatusText = view.findViewById(R.id.media_delayed_player_status);
+
         return view;
     }
 
+    private void handleDelayedMediaStart() {
+        handleDelayedMediaStop();
+        int delayedFocusRequestResults;
+        synchronized (mLock) {
+            mDelayedFocusRequest = new AudioFocusRequest
+                    .Builder(AudioManager.AUDIOFOCUS_GAIN)
+                    .setAudioAttributes(mMusicAudioAttrib)
+                    .setOnAudioFocusChangeListener(mMediaDelayedFocusListener)
+                    .setForceDucking(false)
+                    .setWillPauseWhenDucked(false)
+                    .setAcceptsDelayedFocusGain(true)
+                    .build();
+            delayedFocusRequestResults = mAudioManager.requestAudioFocus(mDelayedFocusRequest);
+            if (delayedFocusRequestResults == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
+                startDelayedMediaPlayerLocked();
+                return;
+            }
+            if (delayedFocusRequestResults == AudioManager.AUDIOFOCUS_REQUEST_DELAYED) {
+                if (DBG) Log.d(TAG, "Media With Delayed Focus delayed focus granted");
+                mDelayedStatusText.setText(R.string.player_delayed);
+                return;
+            }
+        }
+        if (DBG) Log.d(TAG, "Media With Delayed Focus focus rejected");
+    }
+
+    private void startDelayedMediaPlayerLocked() {
+        if (!mMusicPlayerWithDelayedFocus.isPlaying()) {
+            if (DBG) Log.d(TAG, "Media With Delayed Focus starting player");
+            mMusicPlayerWithDelayedFocus.start(false, true,
+                    AudioManager.AUDIOFOCUS_GAIN);
+            mDelayedStatusText.setText(R.string.player_started);
+            return;
+        }
+        if (DBG) Log.d(TAG, "Media With Delayed Focus player already started");
+    }
+
+    private void handleDelayedMediaStop() {
+        synchronized (mLock) {
+            if (mDelayedFocusRequest != null) {
+                stopDelayedMediaPlayerLocked();
+                mAudioManager.abandonAudioFocusRequest(mDelayedFocusRequest);
+                mDelayedFocusRequest = null;
+                return;
+            }
+        }
+        if (DBG) Log.d(TAG, "Media With Delayed Focus nothing to stop");
+    }
+
+    private void stopDelayedMediaPlayerLocked() {
+        if (mMusicPlayerWithDelayedFocus.isPlaying()) {
+            if (DBG) Log.d(TAG, "Media With Delayed Focus stopping player");
+            mMusicPlayerWithDelayedFocus.stop();
+            mDelayedStatusText.setText(R.string.player_not_started);
+            return;
+        }
+        if (DBG) Log.d(TAG, "Media With Delayed Focus already stopped");
+    }
+
     private void setUpDisplayLayoutView(View view) {
         mDisplayLayout = view.findViewById(R.id.audio_display_layout);
 
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/displayinfo/DisplayInfoFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/displayinfo/DisplayInfoFragment.java
index d6af3c4..f415e5b 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/displayinfo/DisplayInfoFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/displayinfo/DisplayInfoFragment.java
@@ -16,7 +16,9 @@
 package com.google.android.car.kitchensink.displayinfo;
 
 import android.annotation.Nullable;
+import android.app.ActivityManager;
 import android.content.Context;
+import android.content.pm.ConfigurationInfo;
 import android.content.res.Resources;
 import android.graphics.Point;
 import android.os.Bundle;
@@ -60,6 +62,13 @@
                 + getResources().getDisplayMetrics().DENSITY_DEFAULT);
 
         addTextView("======================================");
+
+        ActivityManager am =
+                (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
+        ConfigurationInfo ci = am.getDeviceConfigurationInfo();
+        addTextView("OpenGL ES version: " + ci.getGlEsVersion());
+
+        addTextView("======================================");
         addTextView("All size are in DP.");
         View rootView = getActivity().findViewById(android.R.id.content);
         addTextView("view size: "
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/ProfileUserFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/ProfileUserFragment.java
new file mode 100644
index 0000000..64b8f64
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/users/ProfileUserFragment.java
@@ -0,0 +1,451 @@
+/*
+ * Copyright (C) 2020 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.google.android.car.kitchensink.users;
+
+import android.annotation.Nullable;
+import android.app.ActivityManager;
+import android.app.ActivityOptions;
+import android.app.IActivityManager;
+import android.car.Car;
+import android.car.CarOccupantZoneManager;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.pm.UserInfo;
+import android.hardware.display.DisplayManager;
+import android.os.Bundle;
+import android.os.Process;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.Log;
+import android.view.Display;
+import android.view.DisplayAddress;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.Spinner;
+import android.widget.TextView;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.car.kitchensink.KitchenSinkActivity;
+import com.google.android.car.kitchensink.R;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class ProfileUserFragment extends Fragment {
+
+    private static final String TAG = ProfileUserFragment.class.getSimpleName();
+
+    private SpinnerWrapper mUsersSpinner;
+    private SpinnerWrapper mZonesSpinner;
+    private SpinnerWrapper mDisplaysSpinner;
+    private SpinnerWrapper mAppsSpinner;
+
+    private Button mCreateRestrictedUserButton;
+    private Button mCreateManagedUserButton;
+    private Button mRemoveUserButton;
+    private Button mStartUserButton;
+    private Button mStopUserButton;
+    private Button mAssignUserToZoneButton;
+    private Button mLaunchAppForZoneButton;
+    private Button mLaunchAppForDisplayAndUserButton;
+
+    private TextView mUserIdText;
+    private TextView mZoneInfoText;
+    private TextView mUserStateText;
+
+    private UserManager mUserManager;
+    private DisplayManager mDisplayManager;
+    private CarOccupantZoneManager mZoneManager;
+
+
+    @Nullable
+    @Override
+    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
+            @Nullable Bundle savedInstanceState) {
+        return inflater.inflate(R.layout.profile_user, container, false);
+    }
+
+    public void onViewCreated(View view, Bundle savedInstanceState) {
+        mUserManager = getContext().getSystemService(UserManager.class);
+        mDisplayManager = getContext().getSystemService(DisplayManager.class);
+        Car car = ((KitchenSinkActivity) getHost()).getCar();
+        mZoneManager = (CarOccupantZoneManager) car.getCarManager(Car.CAR_OCCUPANT_ZONE_SERVICE);
+
+        mUserIdText = view.findViewById(R.id.profile_textView_state);
+        mZoneInfoText = view.findViewById(R.id.profile_textView_zoneinfo);
+        mUserStateText = view.findViewById(R.id.profile_textView_userstate);
+        updateTextInfo();
+
+        mUsersSpinner = SpinnerWrapper.create(getContext(),
+                view.findViewById(R.id.profile_spinner_users), getUsers());
+        mZonesSpinner = SpinnerWrapper.create(getContext(),
+                view.findViewById(R.id.profile_spinner_zones), getZones());
+        mDisplaysSpinner = SpinnerWrapper.create(getContext(),
+                view.findViewById(R.id.profile_spinner_displays), getDisplays());
+        mAppsSpinner = SpinnerWrapper.create(getContext(),
+                view.findViewById(R.id.profile_spinner_apps), getApps());
+
+        mCreateRestrictedUserButton = view.findViewById(R.id.profile_button_create_restricted_user);
+        mCreateRestrictedUserButton.setOnClickListener(v -> {
+            createUser(/* restricted= */ true);
+        });
+        mCreateManagedUserButton = view.findViewById(R.id.profile_button_create_managed_user);
+        mCreateManagedUserButton.setOnClickListener(v -> {
+            createUser(/* restricted= */ false);
+        });
+        mRemoveUserButton = view.findViewById(R.id.profile_button_remove_user);
+        mRemoveUserButton.setOnClickListener(v -> {
+            removeUser();
+        });
+        mStartUserButton = view.findViewById(R.id.profile_button_start_user);
+        mStartUserButton.setOnClickListener(v -> {
+            startOrStopUser(/* start= */ true);
+        });
+        mStopUserButton = view.findViewById(R.id.profile_button_stop_user);
+        mStopUserButton.setOnClickListener(v -> {
+            startOrStopUser(/* start= */ false);
+        });
+        mAssignUserToZoneButton = view.findViewById(R.id.profile_button_assign_user_to_zone);
+        mAssignUserToZoneButton.setOnClickListener(v -> {
+            assignUserToZone();
+        });
+        mLaunchAppForZoneButton = view.findViewById(R.id.profile_button_launch_app_for_zone);
+        mLaunchAppForZoneButton.setOnClickListener(v -> {
+            launchAppForZone();
+        });
+        mLaunchAppForDisplayAndUserButton = view.findViewById(
+                R.id.profile_button_launch_app_for_display);
+        mLaunchAppForDisplayAndUserButton.setOnClickListener(v -> {
+            launchAppForDisplayAndUser();
+        });
+    }
+
+    private void updateTextInfo() {
+        int currentUserId = ActivityManager.getCurrentUser();
+        int myUserId = UserHandle.myUserId();
+        mUserIdText.setText("Current userId:" + currentUserId + " myUserId:" + myUserId);
+        StringBuilder zoneStatebuilder = new StringBuilder();
+        zoneStatebuilder.append("Zone-User-Displays:");
+        List<CarOccupantZoneManager.OccupantZoneInfo> zonelist = mZoneManager.getAllOccupantZones();
+        for (CarOccupantZoneManager.OccupantZoneInfo zone : zonelist) {
+            zoneStatebuilder.append(zone.zoneId);
+            zoneStatebuilder.append("-");
+            zoneStatebuilder.append(mZoneManager.getUserForOccupant(zone));
+            zoneStatebuilder.append("-");
+            List<Display> displays = mZoneManager.getAllDisplaysForOccupant(zone);
+            for (Display display : displays) {
+                zoneStatebuilder.append(display.getDisplayId());
+                zoneStatebuilder.append(",");
+            }
+            zoneStatebuilder.append(":");
+        }
+        mZoneInfoText.setText(zoneStatebuilder.toString());
+        StringBuilder userStateBuilder = new StringBuilder();
+        userStateBuilder.append("UserId-state;");
+        int[] profileUsers = mUserManager.getEnabledProfileIds(currentUserId);
+        for (int profileUser : profileUsers) {
+            userStateBuilder.append(profileUser);
+            userStateBuilder.append("-");
+            if (mUserManager.isUserRunning(profileUser)) {
+                userStateBuilder.append("R:");
+            } else {
+                userStateBuilder.append("S:");
+            }
+        }
+        mUserStateText.setText(userStateBuilder.toString());
+    }
+
+    private void createUser(boolean restricted) {
+        UserInfo user;
+        if (restricted) {
+            user = mUserManager.createRestrictedProfile("RestrictedProfile");
+        } else {
+            user = mUserManager.createProfileForUser("ManagedProfile",
+                UserManager.USER_TYPE_PROFILE_MANAGED, /* flags= */ 0,
+                ActivityManager.getCurrentUser());
+        }
+        Log.i(TAG, "created User:" + user);
+        mUsersSpinner.updateEntries(getUsers());
+        updateTextInfo();
+    }
+
+    private void removeUser() {
+        int userToRemove = getSelectedUser();
+        if (userToRemove == UserHandle.USER_NULL) {
+            return;
+        }
+        int currentUser = ActivityManager.getCurrentUser();
+        if (userToRemove == currentUser) {
+            Log.w(TAG, "cannot remove current user");
+            return;
+        }
+        Log.i(TAG, "removing user:" + userToRemove);
+        mUserManager.removeUser(userToRemove);
+        mUsersSpinner.updateEntries(getUsers());
+        updateTextInfo();
+    }
+
+    private void startOrStopUser(boolean start) {
+        int userToUpdate = getSelectedUser();
+        if (userToUpdate == UserHandle.USER_NULL) {
+            return;
+        }
+        int currentUser = ActivityManager.getCurrentUser();
+        if (userToUpdate == currentUser) {
+            Log.w(TAG, "cannot change current user");
+            return;
+        }
+        if (start == mUserManager.isUserRunning(userToUpdate)) {
+            return;
+        }
+        IActivityManager am = ActivityManager.getService();
+        if (start) {
+            Log.i(TAG, "start user:" + userToUpdate);
+            try {
+                am.startUserInBackground(userToUpdate);
+            } catch (RemoteException e) {
+                Log.w(TAG, "cannot start user", e);
+            }
+        } else {
+            Log.i(TAG, "stop user:" + userToUpdate);
+            try {
+                am.stopUser(userToUpdate, /* force= */ false, /* callback= */ null);
+            } catch (RemoteException e) {
+                Log.w(TAG, "cannot stop user", e);
+            }
+        }
+        updateTextInfo();
+    }
+
+    private void assignUserToZone() {
+        int userId = getSelectedUser();
+        if (userId == UserHandle.USER_NULL) {
+            return;
+        }
+        Integer zoneId = getSelectedZone();
+        if (zoneId == null) {
+            return;
+        }
+        Log.i(TAG, "assigning user:" + userId + " to zone:" + zoneId);
+        if (!mZoneManager.assignProfileUserToOccupantZone(getZoneInfoForId(zoneId), userId)) {
+            Log.e(TAG, "assignment failed");
+        }
+        updateTextInfo();
+    }
+
+    private void launchAppForZone() {
+        Intent intent = getSelectedApp();
+        if (intent == null) {
+            return;
+        }
+        Integer zoneId = getSelectedZone();
+        if (zoneId == null) {
+            return;
+        }
+        CarOccupantZoneManager.OccupantZoneInfo zoneInfo = getZoneInfoForId(zoneId);
+        if (zoneInfo == null) {
+            Log.e(TAG, "launchAppForZone, invalid zoneId:" + zoneId);
+            return;
+        }
+        int assignedUserId = mZoneManager.getUserForOccupant(zoneInfo);
+        if (assignedUserId == UserHandle.USER_NULL) {
+            Log.e(TAG, "launchAppForZone, invalid user for zone:" + zoneId);
+            return;
+        }
+        Log.i(TAG, "Launching Intent:" + intent + " for user:" + assignedUserId);
+        getContext().startActivityAsUser(intent, UserHandle.of(assignedUserId));
+    }
+
+    private void launchAppForDisplayAndUser() {
+        Intent intent = getSelectedApp();
+        if (intent == null) {
+            return;
+        }
+        int displayId = getSelectedDisplay();
+        if (displayId == Display.INVALID_DISPLAY) {
+            return;
+        }
+        int userId = getSelectedUser();
+        if (userId == UserHandle.USER_NULL) {
+            return;
+        }
+        Log.i(TAG, "Launching Intent:" + intent + " for user:" + userId
+                + " to display:" + displayId);
+        Bundle bundle = ActivityOptions.makeBasic().setLaunchDisplayId(displayId).toBundle();
+        getContext().startActivityAsUser(intent, bundle, UserHandle.of(userId));
+    }
+
+    @Nullable
+    private CarOccupantZoneManager.OccupantZoneInfo getZoneInfoForId(int zoneId) {
+        List<CarOccupantZoneManager.OccupantZoneInfo> zonelist = mZoneManager.getAllOccupantZones();
+        for (CarOccupantZoneManager.OccupantZoneInfo zone : zonelist) {
+            if (zone.zoneId == zoneId) {
+                return zone;
+            }
+        }
+        return null;
+    }
+
+    @Nullable
+    private Intent getSelectedApp() {
+        String appStr = (String) mAppsSpinner.getSelectedEntry();
+        if (appStr == null) {
+            Log.w(TAG, "getSelectedApp, no app selected", new RuntimeException());
+            return null;
+        }
+        Intent intent = new Intent();
+        intent.setComponent(ComponentName.unflattenFromString(appStr));
+        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        return intent;
+    }
+
+    @Nullable
+    private Integer getSelectedZone() {
+        String zoneStr = mZonesSpinner.getSelectedEntry();
+        if (zoneStr == null) {
+            Log.w(TAG, "getSelectedZone, no zone selected", new RuntimeException());
+            return null;
+        }
+        return Integer.valueOf(zoneStr.split(",")[0]);
+    }
+
+    @Nullable
+    private int getSelectedDisplay() {
+        String displayStr = mDisplaysSpinner.getSelectedEntry();
+        if (displayStr == null) {
+            Log.w(TAG, "getSelectedDisplay, no display selected", new RuntimeException());
+            return Display.INVALID_DISPLAY;
+        }
+        return Integer.parseInt(displayStr.split(",")[0]);
+    }
+
+    private int getSelectedUser() {
+        String userStr = mUsersSpinner.getSelectedEntry();
+        if (userStr == null) {
+            Log.w(TAG, "getSelectedUser, user not selected", new RuntimeException());
+            return UserHandle.USER_NULL;
+        }
+        return Integer.parseInt(userStr.split(",")[0]);
+    }
+
+    // format: id,[CURRENT|PROFILE]
+    private ArrayList<String> getUsers() {
+        ArrayList<String> users = new ArrayList<>();
+        int currentUser = ActivityManager.getCurrentUser();
+        users.add(Integer.toString(currentUser) + ",CURRENT");
+        int[] profileUsers = mUserManager.getEnabledProfileIds(currentUser);
+        for (int profileUser : profileUsers) {
+            if (profileUser == currentUser) {
+                continue;
+            }
+            users.add(Integer.toString(profileUser) + ",PROFILE");
+        }
+        return users;
+    }
+
+    // format: displayId,[P,]?,address]
+    private ArrayList<String> getDisplays() {
+        ArrayList<String> displays = new ArrayList<>();
+        Display[] disps = mDisplayManager.getDisplays();
+        int uidSelf = Process.myUid();
+        for (Display disp : disps) {
+            if (!disp.hasAccess(uidSelf)) {
+                continue;
+            }
+            StringBuilder builder = new StringBuilder();
+            int displayId = disp.getDisplayId();
+            builder.append(displayId);
+            builder.append(",");
+            DisplayAddress address = disp.getAddress();
+            if (address instanceof  DisplayAddress.Physical) {
+                builder.append("P,");
+            }
+            builder.append(address);
+            displays.add(builder.toString());
+        }
+        return displays;
+    }
+
+    // format: zoneId,[D|F|R]
+    private ArrayList<String> getZones() {
+        ArrayList<String> zones = new ArrayList<>();
+        List<CarOccupantZoneManager.OccupantZoneInfo> zonelist = mZoneManager.getAllOccupantZones();
+        for (CarOccupantZoneManager.OccupantZoneInfo zone : zonelist) {
+            StringBuilder builder = new StringBuilder();
+            builder.append(zone.zoneId);
+            builder.append(",");
+            if (zone.occupantType == CarOccupantZoneManager.OCCUPANT_TYPE_DRIVER) {
+                builder.append("D");
+            } else if (zone.occupantType == CarOccupantZoneManager.OCCUPANT_TYPE_FRONT_PASSENGER) {
+                builder.append("F");
+            } else {
+                builder.append("R");
+            }
+            zones.add(builder.toString());
+        }
+        return zones;
+    }
+
+    private ArrayList<String> getApps() {
+        ArrayList<String> apps = new ArrayList<>();
+        apps.add("com.google.android.car.kitchensink/.KitchenSinkActivity");
+        apps.add("com.android.car.multidisplay/.launcher.LauncherActivity");
+        apps.add("com.google.android.car.multidisplaytest/.MDTest");
+        return apps;
+    }
+
+    private static class SpinnerWrapper {
+        private final Spinner mSpinner;
+        private final ArrayList<String> mEntries;
+        private final ArrayAdapter<String> mAdapter;
+
+        private static SpinnerWrapper create(Context context, Spinner spinner,
+                ArrayList<String> entries) {
+            SpinnerWrapper wrapper = new SpinnerWrapper(context, spinner, entries);
+            wrapper.init();
+            return wrapper;
+        }
+
+        private SpinnerWrapper(Context context, Spinner spinner, ArrayList<String> entries) {
+            mSpinner = spinner;
+            mEntries = new ArrayList<>(entries);
+            mAdapter = new ArrayAdapter<String>(context, android.R.layout.simple_spinner_item,
+                    mEntries);
+        }
+
+        private void init() {
+            mAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
+            mSpinner.setAdapter(mAdapter);
+        }
+
+        private void updateEntries(ArrayList<String> entries) {
+            mEntries.clear();
+            mEntries.addAll(entries);
+            mAdapter.notifyDataSetChanged();
+        }
+
+        @Nullable
+        private String getSelectedEntry() {
+            return (String) mSpinner.getSelectedItem();
+        }
+    }
+}
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/AudioZoneVolumeTabAdapter.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/AudioZoneVolumeTabAdapter.java
new file mode 100644
index 0000000..3e94f28
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/AudioZoneVolumeTabAdapter.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2020 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.google.android.car.kitchensink.volume;
+
+import androidx.annotation.Nullable;
+import androidx.fragment.app.Fragment;
+import androidx.fragment.app.FragmentManager;
+import androidx.fragment.app.FragmentStatePagerAdapter;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public final class AudioZoneVolumeTabAdapter extends FragmentStatePagerAdapter {
+
+    private final List<Fragment> mFragmentList = new ArrayList<>();
+    private final List<String> mFragmentTitleList = new ArrayList<>();
+    AudioZoneVolumeTabAdapter(FragmentManager fm) {
+        super(fm);
+    }
+
+    @Override
+    public Fragment getItem(int position) {
+        return mFragmentList.get(position);
+    }
+
+    public void addFragment(Fragment fragment, String title) {
+        mFragmentList.add(fragment);
+        mFragmentTitleList.add(title);
+        notifyDataSetChanged();
+    }
+
+    @Nullable
+    @Override
+    public CharSequence getPageTitle(int position) {
+        return mFragmentTitleList.get(position);
+    }
+
+    @Override
+    public int getCount() {
+        return mFragmentList.size();
+    }
+}
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeAdapter.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/CarAudioZoneVolumeAdapter.java
similarity index 82%
rename from tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeAdapter.java
rename to tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/CarAudioZoneVolumeAdapter.java
index ec071dc..eb0c111 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeAdapter.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/CarAudioZoneVolumeAdapter.java
@@ -25,22 +25,21 @@
 import android.widget.TextView;
 
 import com.google.android.car.kitchensink.R;
-import com.google.android.car.kitchensink.volume.VolumeTestFragment.VolumeInfo;
+import com.google.android.car.kitchensink.volume.VolumeTestFragment.CarAudioZoneVolumeInfo;
 
-
-public class VolumeAdapter extends ArrayAdapter<VolumeInfo> {
+public final class CarAudioZoneVolumeAdapter extends ArrayAdapter<CarAudioZoneVolumeInfo> {
 
     private final Context mContext;
-    private VolumeInfo[] mVolumeList;
+    private CarAudioZoneVolumeInfo[] mVolumeList;
     private final int mLayoutResourceId;
-    private VolumeTestFragment mFragment;
+    private CarAudioZoneVolumeFragment mFragment;
 
-
-    public VolumeAdapter(Context c, int layoutResourceId, VolumeInfo[] volumeList,
-            VolumeTestFragment fragment) {
-        super(c, layoutResourceId, volumeList);
+    public CarAudioZoneVolumeAdapter(Context context,
+            int layoutResourceId, CarAudioZoneVolumeInfo[] volumeList,
+            CarAudioZoneVolumeFragment fragment) {
+        super(context, layoutResourceId, volumeList);
         mFragment = fragment;
-        mContext = c;
+        mContext = context;
         this.mLayoutResourceId = layoutResourceId;
         this.mVolumeList = volumeList;
     }
@@ -95,18 +94,17 @@
         return mVolumeList.length;
     }
 
-
-    public void refreshVolumes(VolumeInfo[] volumes) {
+    public void refreshVolumes(CarAudioZoneVolumeInfo[] volumes) {
         mVolumeList = volumes;
         notifyDataSetChanged();
     }
 
-    static class ViewHolder {
-        TextView id;
-        TextView maxVolume;
-        TextView currentVolume;
-        Button upButton;
-        Button downButton;
-        Button requestButton;
+    private static final class ViewHolder {
+        public TextView id;
+        public TextView maxVolume;
+        public TextView currentVolume;
+        public Button upButton;
+        public Button downButton;
+        public Button requestButton;
     }
 }
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/CarAudioZoneVolumeFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/CarAudioZoneVolumeFragment.java
new file mode 100644
index 0000000..c1a712d
--- /dev/null
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/CarAudioZoneVolumeFragment.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2020 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.google.android.car.kitchensink.volume;
+
+import android.car.media.CarAudioManager;
+import android.media.AudioManager;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+import android.util.SparseIntArray;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.ListView;
+
+import androidx.fragment.app.Fragment;
+
+import com.google.android.car.kitchensink.R;
+import com.google.android.car.kitchensink.volume.VolumeTestFragment.CarAudioZoneVolumeInfo;
+
+public final class CarAudioZoneVolumeFragment extends Fragment {
+    private static final String TAG = "CarVolumeTest."
+            + CarAudioZoneVolumeFragment.class.getSimpleName();
+    private static final boolean DEBUG = true;
+
+    private static final int MSG_VOLUME_CHANGED = 0;
+    private static final int MSG_REQUEST_FOCUS = 1;
+    private static final int MSG_FOCUS_CHANGED = 2;
+
+    private final int mZoneId;
+    private final CarAudioManager mCarAudioManager;
+    private final AudioManager mAudioManager;
+    private CarAudioZoneVolumeInfo[] mVolumeInfos =
+            new CarAudioZoneVolumeInfo[0];
+    private final Handler mHandler = new VolumeHandler();
+
+    private CarAudioZoneVolumeAdapter mCarAudioZoneVolumeAdapter;
+    private final SparseIntArray mGroupIdIndexMap = new SparseIntArray();
+
+    public void sendChangeMessage() {
+        mHandler.sendMessage(mHandler.obtainMessage(MSG_VOLUME_CHANGED));
+    }
+
+    private class VolumeHandler extends Handler {
+        private AudioFocusListener mFocusListener;
+
+        @Override
+        public void handleMessage(Message msg) {
+            if (DEBUG) {
+                Log.d(TAG, "zone " + mZoneId + " handleMessage : " + getMessageName(msg));
+            }
+            switch (msg.what) {
+                case MSG_VOLUME_CHANGED:
+                    initVolumeInfo();
+                    break;
+                case MSG_REQUEST_FOCUS:
+                    int groupId = msg.arg1;
+                    if (mFocusListener != null) {
+                        mAudioManager.abandonAudioFocus(mFocusListener);
+                        mVolumeInfos[mGroupIdIndexMap.get(groupId)].mHasFocus = false;
+                        mCarAudioZoneVolumeAdapter.notifyDataSetChanged();
+                    }
+
+                    mFocusListener = new AudioFocusListener(groupId);
+                    mAudioManager.requestAudioFocus(mFocusListener, groupId,
+                            AudioManager.AUDIOFOCUS_GAIN);
+                    break;
+                case MSG_FOCUS_CHANGED:
+                    int focusGroupId = msg.arg1;
+                    mVolumeInfos[mGroupIdIndexMap.get(focusGroupId)].mHasFocus = true;
+                    mCarAudioZoneVolumeAdapter.refreshVolumes(mVolumeInfos);
+                    break;
+                default :
+                    Log.wtf(TAG,"VolumeHandler handleMessage called with unknown message"
+                            + msg.what);
+
+            }
+        }
+    }
+
+    public CarAudioZoneVolumeFragment(int zoneId, CarAudioManager carAudioManager,
+            AudioManager audioManager) {
+        mZoneId = zoneId;
+        mCarAudioManager = carAudioManager;
+        mAudioManager = audioManager;
+    }
+
+    @Override
+    public View onCreateView(LayoutInflater inflater, ViewGroup container,
+            Bundle savedInstanceState) {
+        if (DEBUG) {
+            Log.d(TAG, "onCreateView " + mZoneId);
+        }
+        View v = inflater.inflate(R.layout.zone_volume_tab, container, false);
+        ListView volumeListView = v.findViewById(R.id.volume_list);
+        mCarAudioZoneVolumeAdapter =
+                new CarAudioZoneVolumeAdapter(getContext(), R.layout.volume_item, mVolumeInfos,
+                        this);
+        initVolumeInfo();
+        volumeListView.setAdapter(mCarAudioZoneVolumeAdapter);
+        return v;
+    }
+
+    void initVolumeInfo() {
+        int volumeGroupCount = mCarAudioManager.getVolumeGroupCount(mZoneId);
+        mVolumeInfos = new CarAudioZoneVolumeInfo[volumeGroupCount + 1];
+        mGroupIdIndexMap.clear();
+        CarAudioZoneVolumeInfo titlesInfo = new CarAudioZoneVolumeInfo();
+        titlesInfo.mId = "Group id";
+        titlesInfo.mCurrent = "Current";
+        titlesInfo.mMax = "Max";
+        mVolumeInfos[0] = titlesInfo;
+
+        int i = 1;
+        for (int groupId = 0; groupId < volumeGroupCount; groupId++) {
+            CarAudioZoneVolumeInfo volumeInfo = new CarAudioZoneVolumeInfo();
+            mGroupIdIndexMap.put(groupId, i);
+            volumeInfo.mGroupId = groupId;
+            volumeInfo.mId = String.valueOf(groupId);
+            int current = mCarAudioManager.getGroupVolume(mZoneId, groupId);
+            int max = mCarAudioManager.getGroupMaxVolume(mZoneId, groupId);
+            volumeInfo.mCurrent = String.valueOf(current);
+            volumeInfo.mMax = String.valueOf(max);
+
+            mVolumeInfos[i] = volumeInfo;
+            if (DEBUG)
+            {
+                Log.d(TAG, groupId + " max: " + volumeInfo.mMax + " current: "
+                        + volumeInfo.mCurrent);
+            }
+            i++;
+        }
+        mCarAudioZoneVolumeAdapter.refreshVolumes(mVolumeInfos);
+    }
+
+    public void adjustVolumeByOne(int groupId, boolean up) {
+        if (mCarAudioManager == null) {
+            Log.e(TAG, "CarAudioManager is null");
+            return;
+        }
+        int current = mCarAudioManager.getGroupVolume(mZoneId, groupId);
+        int volume = current + (up ? 1 : -1);
+        mCarAudioManager.setGroupVolume(mZoneId, groupId, volume,
+                AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND);
+        if (DEBUG) {
+            Log.d(TAG, "Set group " + groupId + " volume " + volume + " in audio zone "
+                    + mZoneId);
+        }
+        mHandler.sendMessage(mHandler.obtainMessage(MSG_VOLUME_CHANGED));
+    }
+
+    public void requestFocus(int groupId) {
+        // Automatic volume change only works for primary audio zone.
+        if (mZoneId == CarAudioManager.PRIMARY_AUDIO_ZONE) {
+            mHandler.sendMessage(mHandler.obtainMessage(MSG_REQUEST_FOCUS, groupId));
+        }
+    }
+
+    private class AudioFocusListener implements AudioManager.OnAudioFocusChangeListener {
+        private final int mGroupId;
+        AudioFocusListener(int groupId) {
+            mGroupId = groupId;
+        }
+        @Override
+        public void onAudioFocusChange(int focusChange) {
+            if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
+                mHandler.sendMessage(mHandler.obtainMessage(MSG_FOCUS_CHANGED, mGroupId, 0));
+            } else {
+                Log.e(TAG, "Audio focus request failed");
+            }
+        }
+    }
+}
diff --git a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeTestFragment.java b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeTestFragment.java
index f753efe..5c662d4 100644
--- a/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeTestFragment.java
+++ b/tests/EmbeddedKitchenSinkApp/src/com/google/android/car/kitchensink/volume/VolumeTestFragment.java
@@ -18,32 +18,37 @@
 import android.car.Car;
 import android.car.Car.CarServiceLifecycleListener;
 import android.car.media.CarAudioManager;
+import android.car.media.CarAudioManager.CarVolumeCallback;
 import android.content.Context;
 import android.media.AudioManager;
 import android.os.Bundle;
-import android.os.Handler;
-import android.os.Message;
 import android.util.Log;
-import android.util.SparseIntArray;
+import android.util.SparseArray;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
-import android.widget.ListView;
 import android.widget.SeekBar;
 
 import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
+import androidx.viewpager.widget.ViewPager;
 
 import com.google.android.car.kitchensink.R;
+import com.google.android.material.tabs.TabLayout;
 
-public class VolumeTestFragment extends Fragment {
+import java.util.List;
+
+import javax.annotation.concurrent.GuardedBy;
+
+public final class VolumeTestFragment extends Fragment {
     private static final String TAG = "CarVolumeTest";
-    private static final int MSG_VOLUME_CHANGED = 0;
-    private static final int MSG_REQUEST_FOCUS = 1;
-    private static final int MSG_FOCUS_CHANGED= 2;
+    private static final boolean DEBUG = true;
 
     private AudioManager mAudioManager;
-    private VolumeAdapter mAdapter;
+    private AudioZoneVolumeTabAdapter mAudioZoneAdapter;
+    @GuardedBy("mLock")
+    private final SparseArray<CarAudioZoneVolumeFragment> mZoneVolumeFragments =
+            new SparseArray<>();
 
     private CarAudioManager mCarAudioManager;
     private Car mCar;
@@ -51,58 +56,10 @@
     private SeekBar mFader;
     private SeekBar mBalance;
 
-    private final Handler mHandler = new VolumeHandler();
+    private TabLayout mZonesTabLayout;
+    private Object mLock = new Object();
 
-    private class VolumeHandler extends Handler {
-        private AudioFocusListener mFocusListener;
-
-        @Override
-        public void handleMessage(Message msg) {
-            switch (msg.what) {
-                case MSG_VOLUME_CHANGED:
-                    initVolumeInfo();
-                    break;
-                case MSG_REQUEST_FOCUS:
-                    int groupId = msg.arg1;
-                    if (mFocusListener != null) {
-                        mAudioManager.abandonAudioFocus(mFocusListener);
-                        mVolumeInfos[mGroupIdIndexMap.get(groupId)].mHasFocus = false;
-                        mAdapter.notifyDataSetChanged();
-                    }
-
-                    mFocusListener = new AudioFocusListener(groupId);
-                    mAudioManager.requestAudioFocus(mFocusListener, groupId,
-                            AudioManager.AUDIOFOCUS_GAIN);
-                    break;
-                case MSG_FOCUS_CHANGED:
-                    int focusGroupId = msg.arg1;
-                    mVolumeInfos[mGroupIdIndexMap.get(focusGroupId)].mHasFocus = true;
-                    mAdapter.refreshVolumes(mVolumeInfos);
-                    break;
-
-            }
-        }
-    }
-
-    private VolumeInfo[] mVolumeInfos = new VolumeInfo[0];
-    private SparseIntArray mGroupIdIndexMap = new SparseIntArray();
-
-    private class AudioFocusListener implements AudioManager.OnAudioFocusChangeListener {
-        private final int mGroupId;
-        public AudioFocusListener(int groupId) {
-            mGroupId = groupId;
-        }
-        @Override
-        public void onAudioFocusChange(int focusChange) {
-            if (focusChange == AudioManager.AUDIOFOCUS_GAIN) {
-                mHandler.sendMessage(mHandler.obtainMessage(MSG_FOCUS_CHANGED, mGroupId, 0));
-            } else {
-                Log.e(TAG, "Audio focus request failed");
-            }
-        }
-    }
-
-    public static class VolumeInfo {
+    public static class CarAudioZoneVolumeInfo {
         public int mGroupId;
         public String mId;
         public String mMax;
@@ -110,30 +67,63 @@
         public boolean mHasFocus;
     }
 
+    private final class CarVolumeChangeListener extends CarVolumeCallback {
+        @Override
+        public void onGroupVolumeChanged(int zoneId, int groupId, int flags) {
+            if (DEBUG) {
+                Log.d(TAG, "onGroupVolumeChanged volume changed for zone "
+                        + zoneId);
+            }
+            synchronized (mLock) {
+                CarAudioZoneVolumeFragment fragment = mZoneVolumeFragments.get(zoneId);
+                if (fragment != null) {
+                    fragment.sendChangeMessage();
+                }
+            }
+        }
+
+        @Override
+        public void onMasterMuteChanged(int zoneId, int flags) {
+            if (DEBUG) {
+                Log.d(TAG, "onMasterMuteChanged master mute "
+                        + mAudioManager.isMasterMute());
+            }
+        }
+    }
+
+    private final CarVolumeCallback mCarVolumeCallback = new CarVolumeChangeListener();
+
     private CarServiceLifecycleListener mCarServiceLifecycleListener = (car, ready) -> {
         if (!ready) {
-            Log.d(TAG, "Disconnect from Car Service");
+            if (DEBUG) {
+                Log.d(TAG, "Disconnect from Car Service");
+            }
             return;
         }
-        Log.d(TAG, "Connected to Car Service");
+        if (DEBUG) {
+            Log.d(TAG, "Connected to Car Service");
+        }
         mCarAudioManager = (CarAudioManager) car.getCarManager(Car.AUDIO_SERVICE);
         initVolumeInfo();
+        mCarAudioManager.registerCarVolumeCallback(mCarVolumeCallback);
     };
 
     @Override
     public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
                              @Nullable Bundle savedInstanceState) {
-        View v = inflater.inflate(R.layout.volume_test, container, false);
-
-        ListView volumeListView = v.findViewById(R.id.volume_list);
         mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
 
-        mAdapter = new VolumeAdapter(getContext(), R.layout.volume_item, mVolumeInfos, this);
-        volumeListView.setAdapter(mAdapter);
+        View v = inflater.inflate(R.layout.volume_test, container, false);
 
-        v.findViewById(R.id.refresh).setOnClickListener((view) -> initVolumeInfo());
+        mZonesTabLayout = v.findViewById(R.id.zones_tab);
+        ViewPager viewPager = (ViewPager) v.findViewById(R.id.zone_view_pager);
 
-        final SeekBar.OnSeekBarChangeListener seekListener = new SeekBar.OnSeekBarChangeListener() {
+        mAudioZoneAdapter = new AudioZoneVolumeTabAdapter(getChildFragmentManager());
+        viewPager.setAdapter(mAudioZoneAdapter);
+        mZonesTabLayout.setupWithViewPager(viewPager);
+
+        SeekBar.OnSeekBarChangeListener seekListener =
+                new SeekBar.OnSeekBarChangeListener() {
             public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                 final float percent = (progress - 100) / 100.0f;
                 if (seekBar.getId() == R.id.fade_bar) {
@@ -159,48 +149,20 @@
         return v;
     }
 
-    public void adjustVolumeByOne(int groupId, boolean up) {
-        if (mCarAudioManager == null) {
-            Log.e(TAG, "CarAudioManager is null");
-            return;
-        }
-        int current = mCarAudioManager.getGroupVolume(groupId);
-        int volume = current + (up ? 1 : -1);
-        mCarAudioManager.setGroupVolume(groupId, volume,
-                AudioManager.FLAG_SHOW_UI | AudioManager.FLAG_PLAY_SOUND);
-        Log.d(TAG, "Set group " + groupId + " volume " + volume);
-    }
-
-    public void requestFocus(int groupId) {
-        mHandler.sendMessage(mHandler.obtainMessage(MSG_REQUEST_FOCUS, groupId));
-    }
-
     private void initVolumeInfo() {
-        int volumeGroupCount = mCarAudioManager.getVolumeGroupCount();
-        mVolumeInfos = new VolumeInfo[volumeGroupCount + 1];
-        mGroupIdIndexMap.clear();
-        mVolumeInfos[0] = new VolumeInfo();
-        mVolumeInfos[0].mId = "Group id";
-        mVolumeInfos[0].mCurrent = "Current";
-        mVolumeInfos[0].mMax = "Max";
-
-        int i = 1;
-        for (int groupId = 0; groupId < volumeGroupCount; groupId++) {
-            mVolumeInfos[i] = new VolumeInfo();
-            mVolumeInfos[i].mGroupId = groupId;
-            mGroupIdIndexMap.put(groupId, i);
-            mVolumeInfos[i].mId = String.valueOf(groupId);
-
-
-            int current = mCarAudioManager.getGroupVolume(groupId);
-            int max = mCarAudioManager.getGroupMaxVolume(groupId);
-            mVolumeInfos[i].mCurrent = String.valueOf(current);
-            mVolumeInfos[i].mMax = String.valueOf(max);
-
-            Log.d(TAG, groupId + " max: " + mVolumeInfos[i].mMax + " current: "
-                    + mVolumeInfos[i].mCurrent);
-            i++;
+        synchronized (mLock) {
+            List<Integer> audioZoneIds = mCarAudioManager.getAudioZoneIds();
+            for (int index = 0; index < audioZoneIds.size(); index++) {
+                int zoneId = audioZoneIds.get(index);
+                CarAudioZoneVolumeFragment fragment =
+                        new CarAudioZoneVolumeFragment(zoneId, mCarAudioManager, mAudioManager);
+                mZonesTabLayout.addTab(mZonesTabLayout.newTab().setText("Audio Zone " + zoneId));
+                mAudioZoneAdapter.addFragment(fragment, "Audio Zone " + zoneId);
+                if (DEBUG) {
+                    Log.d(TAG, "Adding audio volume for zone " + zoneId);
+                }
+                mZoneVolumeFragments.put(zoneId, fragment);
+            }
         }
-        mAdapter.refreshVolumes(mVolumeInfos);
     }
 }
diff --git a/tests/GarageModeTestApp/res/layout/main_activity.xml b/tests/GarageModeTestApp/res/layout/main_activity.xml
index a71e3cc..d79089e 100644
--- a/tests/GarageModeTestApp/res/layout/main_activity.xml
+++ b/tests/GarageModeTestApp/res/layout/main_activity.xml
@@ -62,13 +62,6 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="@string/off_car_testing"/>
-
-        <Button
-            style="@style/Button"
-            android:id="@+id/incar_test_btn"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text="@string/in_car_testing"/>
     </LinearLayout>
 
     <FrameLayout
diff --git a/tests/GarageModeTestApp/res/values/strings.xml b/tests/GarageModeTestApp/res/values/strings.xml
index 8bab7b1..8dbe34b 100644
--- a/tests/GarageModeTestApp/res/values/strings.xml
+++ b/tests/GarageModeTestApp/res/values/strings.xml
@@ -17,7 +17,6 @@
   <string name="app_name" translatable="false">GarageMode Test App</string>
 
   <string name="off_car_testing" translatable="false">Offcar Test</string>
-  <string name="in_car_testing" translatable="false">Incar Test</string>
   <string name="quit_app" translatable="false">Quit App</string>
 
   <string name="button_schedule_job" translatable="false">Schedule Job</string>
diff --git a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/MainActivity.java b/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/MainActivity.java
index dae859f..5af7019 100644
--- a/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/MainActivity.java
+++ b/tests/GarageModeTestApp/src/com/google/android/car/garagemode/testapp/MainActivity.java
@@ -17,6 +17,7 @@
 
 import android.content.res.Configuration;
 import android.os.Bundle;
+import android.view.View;
 
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
@@ -30,7 +31,6 @@
     private final List<MenuEntry> mMenuEntries = new ArrayList<MenuEntry>() {
         {
             add("Offcar testing", OffcarTestingFragment.class);
-            add("Incar testing", IncarTestingFragment.class);
             add("Quit", MainActivity.this::finish);
         }
 
@@ -47,13 +47,14 @@
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main_activity);
+        // Until we have more than one fragment, hide the selection button
+        findViewById(R.id.offcar_test_btn).setVisibility(View.INVISIBLE);
 
         mMenuEntries.get(0).onClick();
 
         findViewById(R.id.offcar_test_btn).setOnClickListener((v) -> mMenuEntries.get(0).onClick());
-        findViewById(R.id.incar_test_btn).setOnClickListener((v) -> mMenuEntries.get(1).onClick());
         findViewById(R.id.exit_button_container).setOnClickListener(
-                (v) -> mMenuEntries.get(2).onClick());
+                (v) -> mMenuEntries.get(1).onClick());
     }
 
     @Override
diff --git a/tests/OccupantAwareness/src/com/android/car/test/OccupantAwarenessSystemServiceTest.java b/tests/OccupantAwareness/src/com/android/car/test/OccupantAwarenessSystemServiceTest.java
index daa7ac7..e9b7cdf 100644
--- a/tests/OccupantAwareness/src/com/android/car/test/OccupantAwarenessSystemServiceTest.java
+++ b/tests/OccupantAwareness/src/com/android/car/test/OccupantAwarenessSystemServiceTest.java
@@ -124,6 +124,16 @@
                 mCallback.onDetectionEvent(detections);
             }
         }
+
+        @Override
+        public int getInterfaceVersion() {
+            return this.VERSION;
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return this.HASH;
+        }
     }
 
     private MockOasHal mMockHal;
diff --git a/tests/SecondaryHomeApp/Android.bp b/tests/SecondaryHomeApp/Android.bp
index ce8e763..04da06b 100644
--- a/tests/SecondaryHomeApp/Android.bp
+++ b/tests/SecondaryHomeApp/Android.bp
@@ -22,14 +22,10 @@
     ],
 
     static_libs: [
-        "android.car.userlib",
         "androidx.appcompat_appcompat",
-        "androidx.recyclerview_recyclerview",
-        "androidx.legacy_legacy-support-v4",
         "androidx.lifecycle_lifecycle-extensions",
         "com.google.android.material_material",
         "CarNotificationLib",
-        "car-ui-lib"
     ],
 
     libs: [
diff --git a/tests/SecondaryHomeApp/AndroidManifest.xml b/tests/SecondaryHomeApp/AndroidManifest.xml
index 0a84531..5d22b70 100644
--- a/tests/SecondaryHomeApp/AndroidManifest.xml
+++ b/tests/SecondaryHomeApp/AndroidManifest.xml
@@ -45,6 +45,7 @@
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                 <category android:name="android.intent.category.DEFAULT" />
+                <category android:name="android.intent.category.SECONDARY_HOME"/>
             </intent-filter>
         </activity>
         <service android:name=".launcher.NotificationListener"
diff --git a/tests/SecurityPermissionTest/Android.bp b/tests/UserSwitchMonitorApp/Android.bp
similarity index 60%
copy from tests/SecurityPermissionTest/Android.bp
copy to tests/UserSwitchMonitorApp/Android.bp
index 028875e..354eb55 100644
--- a/tests/SecurityPermissionTest/Android.bp
+++ b/tests/UserSwitchMonitorApp/Android.bp
@@ -1,4 +1,3 @@
-//
 // Copyright (C) 2020 The Android Open Source Project
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,30 +11,15 @@
 // 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.
-//
 
-android_test {
-    name: "SecurityPermissionTest",
+android_app {
+    name: "UserSwitchMonitorApp",
+
+    libs: [
+        "android.car-system-stubs",
+    ],
 
     srcs: ["src/**/*.java"],
 
-    libs: [
-        "android.car",
-        "android.test.runner",
-        "android.test.base",
-        "android.test.mock",
-    ],
-
-    static_libs: [
-        "androidx.test.core",
-        "androidx.test.ext.junit",
-        "androidx.test.rules",
-        "truth-prebuilt",
-        "car-frameworks-service",
-        "testng",
-    ],
-
-    platform_apis: true,
-
-    certificate: "platform",
-}
\ No newline at end of file
+    sdk_version: "system_current",
+}
diff --git a/tests/UserSwitchMonitorApp/AndroidManifest.xml b/tests/UserSwitchMonitorApp/AndroidManifest.xml
new file mode 100644
index 0000000..e78d690
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+  ~ Copyright (C) 2020 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
+  -->
+
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.google.android.car.userswitchmonitor">
+
+    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
+    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+
+    <application android:label="User Switch Monitor">
+        <service android:name=".UserSwitchMonitorService"/>
+        <receiver android:name=".BootCompletedReceiver" android:exported="true">
+            <intent-filter>
+                <action android:name="android.intent.action.BOOT_COMPLETED"/>
+            </intent-filter>
+        </receiver>
+    </application>
+</manifest>
diff --git a/tests/UserSwitchMonitorApp/res/drawable-hdpi/ic_launcher.png b/tests/UserSwitchMonitorApp/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..96a442e
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/res/drawable-hdpi/ic_launcher.png
Binary files differ
diff --git a/tests/UserSwitchMonitorApp/res/drawable-ldpi/ic_launcher.png b/tests/UserSwitchMonitorApp/res/drawable-ldpi/ic_launcher.png
new file mode 100644
index 0000000..9923872
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/res/drawable-ldpi/ic_launcher.png
Binary files differ
diff --git a/tests/UserSwitchMonitorApp/res/drawable-mdpi/ic_launcher.png b/tests/UserSwitchMonitorApp/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..359047d
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/res/drawable-mdpi/ic_launcher.png
Binary files differ
diff --git a/tests/UserSwitchMonitorApp/res/drawable-xhdpi/ic_launcher.png b/tests/UserSwitchMonitorApp/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..71c6d76
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/res/drawable-xhdpi/ic_launcher.png
Binary files differ
diff --git a/tests/UserSwitchMonitorApp/src/com/google/android/car/userswitchmonitor/BootCompletedReceiver.java b/tests/UserSwitchMonitorApp/src/com/google/android/car/userswitchmonitor/BootCompletedReceiver.java
new file mode 100644
index 0000000..812fab6
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/src/com/google/android/car/userswitchmonitor/BootCompletedReceiver.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2020 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.google.android.car.userswitchmonitor;
+
+import static com.google.android.car.userswitchmonitor.UserSwitchMonitorService.TAG;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+public final class BootCompletedReceiver extends BroadcastReceiver {
+
+    @Override
+    public void onReceive(Context context, Intent intent) {
+        Log.d(TAG, "onReceive(): " + intent);
+        Context appContext = context.getApplicationContext();
+        Intent service = new Intent(appContext, UserSwitchMonitorService.class);
+        appContext.startForegroundService(service);
+    }
+}
diff --git a/tests/UserSwitchMonitorApp/src/com/google/android/car/userswitchmonitor/UserSwitchMonitorService.java b/tests/UserSwitchMonitorApp/src/com/google/android/car/userswitchmonitor/UserSwitchMonitorService.java
new file mode 100644
index 0000000..ad9550d
--- /dev/null
+++ b/tests/UserSwitchMonitorApp/src/com/google/android/car/userswitchmonitor/UserSwitchMonitorService.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2020 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.google.android.car.userswitchmonitor;
+
+import android.app.Notification;
+import android.app.NotificationChannel;
+import android.app.NotificationManager;
+import android.app.Service;
+import android.car.Car;
+import android.car.user.CarUserManager;
+import android.car.user.CarUserManager.UserLifecycleEvent;
+import android.content.Context;
+import android.content.Intent;
+import android.os.IBinder;
+import android.util.Log;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Service that users {@link CarUserManager.UserLifecycleEvent UserLifecycleEvents} to monitor
+ * user switches.
+ *
+ */
+public final class UserSwitchMonitorService extends Service {
+
+    static final String TAG = "UserSwitchMonitor";
+
+    private final Object mLock = new Object();
+
+    private final int mUserId = android.os.Process.myUserHandle().getIdentifier();
+
+    private final List<UserLifecycleEvent> mEvents = new ArrayList<>();
+
+    private final CarUserManager.UserLifecycleListener mListener = (e) -> {
+        Log.d(TAG, "onEvent(" + mUserId + "): " + e);
+        synchronized (mLock) {
+            mEvents.add(e);
+        }
+    };
+
+    private CarUserManager mCarUserManager;
+
+    @Override
+    public int onStartCommand(Intent intent, int flags, int startId) {
+        Log.d(TAG, "onStartCommand(" + mUserId + "): " + intent);
+
+        Context context = getApplicationContext();
+        Car car = Car.createCar(context);
+        mCarUserManager = (CarUserManager) car.getCarManager(Car.CAR_USER_SERVICE);
+        mCarUserManager.addListener((r)-> r.run(), mListener);
+
+        NotificationManager notificationMgr = context.getSystemService(NotificationManager.class);
+
+        String channelId = "4815162342";
+        String name = "UserSwitchMonitor";
+        NotificationChannel channel = new NotificationChannel(channelId, name,
+                NotificationManager.IMPORTANCE_MIN);
+        notificationMgr.createNotificationChannel(channel);
+
+        startForeground(startId,
+                new Notification.Builder(context, channelId)
+                        .setContentText(name)
+                        .setContentTitle(name)
+                        .setSmallIcon(R.drawable.ic_launcher)
+                        .build());
+
+        return super.onStartCommand(intent, flags, startId);
+    }
+
+    @Override
+    public void onDestroy() {
+        Log.d(TAG, "onDestroy(" + mUserId + ")");
+
+        if (mCarUserManager != null) {
+            mCarUserManager.removeListener(mListener);
+        } else {
+            Log.w(TAG, "Cannot remove listener because manager is null");
+        }
+
+        super.onDestroy();
+    }
+
+    @Override
+    protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+        pw.printf("User id: %d\n", mUserId);
+        synchronized (mLock) {
+            if (mEvents.isEmpty()) {
+                pw.println("Did not receive any event yet");
+                return;
+            }
+            int size = mEvents.size();
+            String indent = "  ";
+            pw.printf("Received %d events:\n", size);
+            for (int i = 0; i < size; i++) {
+                pw.printf("%s%d: %s\n", indent, (i + 1), mEvents.get(i));
+            }
+        }
+    }
+
+    @Override
+    public IBinder onBind(Intent intent) {
+        Log.d(TAG, "onBind(): " + intent);
+        return null;
+    }
+
+}
diff --git a/tests/VmsPublisherClientSample/Android.mk b/tests/VmsPublisherClientSample/Android.mk
deleted file mode 100644
index 8c5ada8..0000000
--- a/tests/VmsPublisherClientSample/Android.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-#
-#
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := VmsPublisherClientSample
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_CERTIFICATE := testkey
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/tests/VmsPublisherClientSample/AndroidManifest.xml b/tests/VmsPublisherClientSample/AndroidManifest.xml
deleted file mode 100644
index fdc1a31..0000000
--- a/tests/VmsPublisherClientSample/AndroidManifest.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          package="com.google.android.car.vms.publisher">
-
-    <uses-permission android:name="android.car.permission.VMS_PUBLISHER" />
-    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
-    <uses-permission android:name="android.permission.CAMERA"/>
-
-    <uses-sdk android:minSdkVersion="25" android:targetSdkVersion='25'/>
-
-    <application android:label="@string/app_name"
-                 android:icon="@mipmap/ic_launcher"
-                 android:directBootAware="true">
-        <service android:name=".VmsPublisherClientSampleService"
-                 android:exported="true"
-                 android:singleUser="true">
-        </service>
-    </application>
-</manifest>
diff --git a/tests/VmsPublisherClientSample/res/mipmap-hdpi/ic_launcher.png b/tests/VmsPublisherClientSample/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index cde69bc..0000000
--- a/tests/VmsPublisherClientSample/res/mipmap-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsPublisherClientSample/res/mipmap-mdpi/ic_launcher.png b/tests/VmsPublisherClientSample/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index c133a0c..0000000
--- a/tests/VmsPublisherClientSample/res/mipmap-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsPublisherClientSample/res/mipmap-xhdpi/ic_launcher.png b/tests/VmsPublisherClientSample/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index bfa42f0..0000000
--- a/tests/VmsPublisherClientSample/res/mipmap-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsPublisherClientSample/res/mipmap-xxhdpi/ic_launcher.png b/tests/VmsPublisherClientSample/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 324e72c..0000000
--- a/tests/VmsPublisherClientSample/res/mipmap-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsPublisherClientSample/res/mipmap-xxxhdpi/ic_launcher.png b/tests/VmsPublisherClientSample/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index aee44e1..0000000
--- a/tests/VmsPublisherClientSample/res/mipmap-xxxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsPublisherClientSample/res/values/strings.xml b/tests/VmsPublisherClientSample/res/values/strings.xml
deleted file mode 100644
index 9d548e4..0000000
--- a/tests/VmsPublisherClientSample/res/values/strings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-<resources>
-  <string name="app_name" translatable="false">VmsPublisherClientSample</string>
-</resources>
diff --git a/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java b/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java
deleted file mode 100644
index e235f1e..0000000
--- a/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * 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.google.android.car.vms.publisher;
-
-import android.car.vms.VmsLayer;
-import android.car.vms.VmsPublisherClientService;
-import android.car.vms.VmsSubscriptionState;
-import android.os.Handler;
-import android.os.Message;
-
-import java.util.concurrent.atomic.AtomicBoolean;
-
-/**
- * This service is launched during the initialization of the VMS publisher service.
- * Once onVmsPublisherServiceReady is invoked, it starts publishing a single byte every second.
- */
-public class VmsPublisherClientSampleService extends VmsPublisherClientService {
-    public static final int PUBLISH_EVENT = 0;
-    public static final VmsLayer TEST_LAYER = new VmsLayer(0, 0, 0);
-    public static final int PUBLISHER_ID = 1;
-
-    private byte mCounter = 0;
-    private AtomicBoolean mInitialized = new AtomicBoolean(false);
-
-    private final Handler mHandler = new Handler() {
-        @Override
-        public void handleMessage(Message msg) {
-            if (msg.what == PUBLISH_EVENT && mInitialized.get()) {
-                periodicPublish();
-            }
-        }
-    };
-
-    /**
-     * Notifies that the publisher services are ready to be used: {@link #publish(VmsLayer, byte[])}
-     * and {@link #getSubscriptions()}.
-     */
-    @Override
-    public void onVmsPublisherServiceReady() {
-        VmsSubscriptionState subscriptionState = getSubscriptions();
-        onVmsSubscriptionChange(subscriptionState);
-    }
-
-    @Override
-    public void onVmsSubscriptionChange(VmsSubscriptionState subscriptionState) {
-        if (mInitialized.compareAndSet(false, true)) {
-            for (VmsLayer layer : subscriptionState.getLayers()) {
-                if (layer.equals(TEST_LAYER)) {
-                    mHandler.sendEmptyMessage(PUBLISH_EVENT);
-                }
-            }
-        }
-    }
-
-    @Override
-    public void onDestroy() {
-        super.onDestroy();
-        mInitialized.set(false);
-        mHandler.removeMessages(PUBLISH_EVENT);
-    }
-
-    private void periodicPublish() {
-        publish(TEST_LAYER, PUBLISHER_ID, new byte[]{mCounter});
-        ++mCounter;
-        mHandler.sendEmptyMessageDelayed(PUBLISH_EVENT, 1000);
-    }
-}
diff --git a/tests/VmsSubscriberClientSample/Android.mk b/tests/VmsSubscriberClientSample/Android.mk
deleted file mode 100644
index 2568ffc..0000000
--- a/tests/VmsSubscriberClientSample/Android.mk
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-#
-#
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-
-LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
-
-LOCAL_PACKAGE_NAME := VmsSubscriberClientSample
-LOCAL_PRIVATE_PLATFORM_APIS := true
-
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_PRIVILEGED_MODULE := true
-
-LOCAL_CERTIFICATE := platform
-
-LOCAL_PROGUARD_ENABLED := disabled
-
-LOCAL_JAVA_LIBRARIES += android.car
-
-include $(BUILD_PACKAGE)
\ No newline at end of file
diff --git a/tests/VmsSubscriberClientSample/AndroidManifest.xml b/tests/VmsSubscriberClientSample/AndroidManifest.xml
deleted file mode 100644
index a035d05..0000000
--- a/tests/VmsSubscriberClientSample/AndroidManifest.xml
+++ /dev/null
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- 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.
--->
-
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
-          xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
-          package="com.google.android.car.vms.subscriber">
-          <!--android:sharedUserId="android.uid.system">-->
-    <uses-sdk android:minSdkVersion="25" android:targetSdkVersion='25'/>
-
-    <uses-permission android:name="android.car.permission.VMS_SUBSCRIBER"/>
-
-    <application android:label="@string/app_name"
-                 android:icon="@mipmap/ic_launcher">
-        <meta-data
-            android:name="android.car.application"
-            android:resource="@xml/automotive_app_desc"/>
-        <activity android:name=".VmsSubscriberClientSampleActivity">
-            <intent-filter>
-                <action android:name="android.intent.action.MAIN"/>
-                <category android:name="android.intent.category.LAUNCHER"/>
-            </intent-filter>
-        </activity>
-    </application>
-</manifest>
\ No newline at end of file
diff --git a/tests/VmsSubscriberClientSample/res/layout/activity_main.xml b/tests/VmsSubscriberClientSample/res/layout/activity_main.xml
deleted file mode 100644
index ce05a4d..0000000
--- a/tests/VmsSubscriberClientSample/res/layout/activity_main.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<RelativeLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/activity_main"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:paddingTop="@dimen/activity_vertical_margin"
-    android:paddingBottom="@dimen/activity_vertical_margin"
-    android:paddingLeft="@dimen/activity_horizontal_margin"
-    android:paddingRight="@dimen/activity_horizontal_margin"
-    tools:context="vms.apps.android.google.com.java.myapplication.MainActivity">
-
-    <TextView
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:textAppearance="?android:attr/textAppearanceLarge"
-        android:text=""
-        android:id="@+id/textview"/>
-</RelativeLayout>
diff --git a/tests/VmsSubscriberClientSample/res/mipmap-hdpi/ic_launcher.png b/tests/VmsSubscriberClientSample/res/mipmap-hdpi/ic_launcher.png
deleted file mode 100644
index cde69bc..0000000
--- a/tests/VmsSubscriberClientSample/res/mipmap-hdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsSubscriberClientSample/res/mipmap-mdpi/ic_launcher.png b/tests/VmsSubscriberClientSample/res/mipmap-mdpi/ic_launcher.png
deleted file mode 100644
index c133a0c..0000000
--- a/tests/VmsSubscriberClientSample/res/mipmap-mdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsSubscriberClientSample/res/mipmap-xhdpi/ic_launcher.png b/tests/VmsSubscriberClientSample/res/mipmap-xhdpi/ic_launcher.png
deleted file mode 100644
index bfa42f0..0000000
--- a/tests/VmsSubscriberClientSample/res/mipmap-xhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsSubscriberClientSample/res/mipmap-xxhdpi/ic_launcher.png b/tests/VmsSubscriberClientSample/res/mipmap-xxhdpi/ic_launcher.png
deleted file mode 100644
index 324e72c..0000000
--- a/tests/VmsSubscriberClientSample/res/mipmap-xxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsSubscriberClientSample/res/mipmap-xxxhdpi/ic_launcher.png b/tests/VmsSubscriberClientSample/res/mipmap-xxxhdpi/ic_launcher.png
deleted file mode 100644
index aee44e1..0000000
--- a/tests/VmsSubscriberClientSample/res/mipmap-xxxhdpi/ic_launcher.png
+++ /dev/null
Binary files differ
diff --git a/tests/VmsSubscriberClientSample/res/values-w820dp/dimens.xml b/tests/VmsSubscriberClientSample/res/values-w820dp/dimens.xml
deleted file mode 100644
index 308a194..0000000
--- a/tests/VmsSubscriberClientSample/res/values-w820dp/dimens.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<resources>
-  <!-- Example customization of dimensions originally defined in res/values/dimens.xml
-         (such as screen margins) for screens with more than 820dp of available width. This
-         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
-  <dimen name="activity_horizontal_margin">64dp</dimen>
-</resources>
diff --git a/tests/VmsSubscriberClientSample/res/values/colors.xml b/tests/VmsSubscriberClientSample/res/values/colors.xml
deleted file mode 100644
index 5a077b3..0000000
--- a/tests/VmsSubscriberClientSample/res/values/colors.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-  <color name="colorPrimary">#3F51B5</color>
-  <color name="colorPrimaryDark">#303F9F</color>
-  <color name="colorAccent">#FF4081</color>
-</resources>
diff --git a/tests/VmsSubscriberClientSample/res/values/dimens.xml b/tests/VmsSubscriberClientSample/res/values/dimens.xml
deleted file mode 100644
index acf94cc..0000000
--- a/tests/VmsSubscriberClientSample/res/values/dimens.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<resources>
-  <!-- Default screen margins, per the Android Design guidelines. -->
-  <dimen name="activity_horizontal_margin">16dp</dimen>
-  <dimen name="activity_vertical_margin">16dp</dimen>
-</resources>
diff --git a/tests/VmsSubscriberClientSample/res/values/strings.xml b/tests/VmsSubscriberClientSample/res/values/strings.xml
deleted file mode 100644
index 64b8482..0000000
--- a/tests/VmsSubscriberClientSample/res/values/strings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<resources>
-  <string name="app_name" translatable="false">VmsSubscriberClientSample</string>
-</resources>
diff --git a/tests/VmsSubscriberClientSample/res/values/styles.xml b/tests/VmsSubscriberClientSample/res/values/styles.xml
deleted file mode 100644
index a7a0615..0000000
--- a/tests/VmsSubscriberClientSample/res/values/styles.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-<resources>
-
-  <!-- Base application theme. -->
-  <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">
-    <!-- Customize your theme here. -->
-  </style>
-
-</resources>
diff --git a/tests/VmsSubscriberClientSample/res/xml/automotive_app_desc.xml b/tests/VmsSubscriberClientSample/res/xml/automotive_app_desc.xml
deleted file mode 100644
index b10ddd0..0000000
--- a/tests/VmsSubscriberClientSample/res/xml/automotive_app_desc.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
--->
-<automotiveApp>
-    <uses name="service" />
-    <uses name="projection" />
-    <uses name="activity" class="com.google.android.car.vms.subscriber.VmsSubscriberClientSampleActivity" />
-</automotiveApp>
diff --git a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
deleted file mode 100644
index 3faa93f..0000000
--- a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.google.android.car.vms.subscriber;
-
-import android.app.Activity;
-import android.car.Car;
-import android.car.vms.VmsAvailableLayers;
-import android.car.vms.VmsLayer;
-import android.car.vms.VmsSubscriberManager;
-import android.content.ComponentName;
-import android.content.ServiceConnection;
-import android.content.pm.PackageManager;
-import android.os.Bundle;
-import android.os.IBinder;
-import android.util.Log;
-import android.widget.TextView;
-
-import java.util.concurrent.Executor;
-
-/**
- * Connects to the Car service during onCreate. CarConnectionCallback.onConnected is invoked when
- * the connection is ready. Then, it subscribes to a VMS layer/version and updates the TextView when
- * a message is received.
- */
-public class VmsSubscriberClientSampleActivity extends Activity {
-    private static final String TAG = "VmsSampleActivity";
-    // The layer id and version should match the ones defined in
-    // com.google.android.car.vms.publisher.VmsPublisherClientSampleService
-    public static final VmsLayer TEST_LAYER = new VmsLayer(0, 0, 0);
-
-    private Car mCarApi;
-    private TextView mTextView;
-    private VmsSubscriberManager mVmsSubscriberManager;
-    private Executor mExecutor;
-
-    private class ThreadPerTaskExecutor implements Executor {
-        public void execute(Runnable r) {
-            new Thread(r).start();
-        }
-    }
-
-    @Override
-    protected void onCreate(Bundle savedInstanceState) {
-        mExecutor = new ThreadPerTaskExecutor();
-        super.onCreate(savedInstanceState);
-        setContentView(R.layout.activity_main);
-        mTextView = (TextView) findViewById(R.id.textview);
-        if (getPackageManager().hasSystemFeature(PackageManager.FEATURE_AUTOMOTIVE)) {
-            mCarApi = Car.createCar(this, mCarServiceConnection);
-            mCarApi.connect();
-        } else {
-            Log.d(TAG, "No automotive feature.");
-        }
-    }
-
-    @Override
-    protected void onDestroy() {
-        super.onDestroy();
-        if (mCarApi != null) {
-            mCarApi.disconnect();
-        }
-        Log.i(TAG, "onDestroy");
-    }
-
-    private final ServiceConnection mCarServiceConnection = new ServiceConnection() {
-        @Override
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            Log.d(TAG, "Connected to Car Service");
-            if (!mCarApi.isFeatureEnabled(Car.VMS_SUBSCRIBER_SERVICE)) {
-                Log.e(TAG, "VMS not supported");
-                finish();
-            }
-            mVmsSubscriberManager = getVmsSubscriberManager();
-            configureSubscriptions(mVmsSubscriberManager);
-        }
-
-        @Override
-        public void onServiceDisconnected(ComponentName name) {
-            Log.d(TAG, "Disconnect from Car Service");
-            if (mVmsSubscriberManager != null) {
-                mVmsSubscriberManager.clearVmsSubscriberClientCallback();
-                mVmsSubscriberManager.unsubscribe(TEST_LAYER);
-            }
-        }
-
-        private VmsSubscriberManager getVmsSubscriberManager() {
-            return (VmsSubscriberManager) mCarApi.getCarManager(
-                    Car.VMS_SUBSCRIBER_SERVICE);
-        }
-
-        private void configureSubscriptions(VmsSubscriberManager vmsSubscriberManager) {
-            vmsSubscriberManager.setVmsSubscriberClientCallback(mExecutor, mClientCallback);
-            vmsSubscriberManager.subscribe(TEST_LAYER);
-        }
-
-    };
-
-    private final VmsSubscriberManager.VmsSubscriberClientCallback mClientCallback =
-        new VmsSubscriberManager.VmsSubscriberClientCallback() {
-            @Override
-            public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {
-                mTextView.setText(String.valueOf(payload[0]));
-            }
-
-            @Override
-            public void onLayersAvailabilityChanged(VmsAvailableLayers availableLayers) {
-                mTextView.setText(String.valueOf(availableLayers));
-            }
-        };
-}
diff --git a/tests/android_car_api_test/Android.mk b/tests/android_car_api_test/Android.mk
index 48001f9..7ac74aa 100644
--- a/tests/android_car_api_test/Android.mk
+++ b/tests/android_car_api_test/Android.mk
@@ -39,6 +39,8 @@
         android.hidl.base-V1.0-java \
         android.hardware.automotive.vehicle-V2.0-java \
         android.car.cluster.navigation \
+        android.car.cluster.navigation \
+        android.car.testapi \
         compatibility-device-util-axt \
         testng \
         truth-prebuilt \
diff --git a/tests/android_car_api_test/AndroidManifest.xml b/tests/android_car_api_test/AndroidManifest.xml
index 9f22d11..bd8fb8c 100644
--- a/tests/android_car_api_test/AndroidManifest.xml
+++ b/tests/android_car_api_test/AndroidManifest.xml
@@ -35,9 +35,9 @@
         </activity>
         <service android:name=".CarProjectionManagerTest$TestService"
                  android:exported="true" />
-        <activity android:name=".CarActivityViewDisplayIdTest$ActivityInActivityView"/>
-        <activity android:name=".CarActivityViewDisplayIdTest$ActivityViewTestActivity"/>
-        <activity android:name=".CarActivityViewDisplayIdTest$MultiProcessActivityViewTestActivity"
+        <activity android:name=".CarActivityViewDisplayIdTestBase$ActivityInActivityView"/>
+        <activity android:name=".CarActivityViewDisplayIdTestBase$ActivityViewTestActivity"/>
+        <activity android:name=".CarActivityViewDisplayIdTestBase$MultiProcessActivityViewTestActivity"
                   android:exported="true" android:process=":activity_view_test"/>
     </application>
 </manifest>
diff --git a/tests/android_car_api_test/src/android/car/apitest/AppBlockingPackageInfoTest.java b/tests/android_car_api_test/src/android/car/apitest/AppBlockingPackageInfoTest.java
index 346f0fa..68ed348 100644
--- a/tests/android_car_api_test/src/android/car/apitest/AppBlockingPackageInfoTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/AppBlockingPackageInfoTest.java
@@ -21,43 +21,42 @@
 import android.content.pm.PackageManager.NameNotFoundException;
 import android.content.pm.Signature;
 import android.os.Parcel;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
+
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class AppBlockingPackageInfoTest extends AndroidTestCase {
+public class AppBlockingPackageInfoTest {
     private static final String TAG = AppBlockingPackageInfoTest.class.getSimpleName();
 
+    private final Context mContext = InstrumentationRegistry.getInstrumentation()
+            .getTargetContext();
+
     @Test
     public void testParcellingSystemInfo() throws Exception {
-        AppBlockingPackageInfo carServiceInfo = createInfoCarService(
-                InstrumentationRegistry.getInstrumentation().getContext());
+        AppBlockingPackageInfo carServiceInfo = createInfoCarService(mContext);
         Parcel dest = Parcel.obtain();
         carServiceInfo.writeToParcel(dest, 0);
         dest.setDataPosition(0);
         AppBlockingPackageInfo carServiceInfoRead = new AppBlockingPackageInfo(dest);
         Log.i(TAG, "expected:" + carServiceInfo + ",read:" + carServiceInfoRead);
-        assertEquals(carServiceInfo, carServiceInfoRead);
+        assertThat(carServiceInfoRead).isEqualTo(carServiceInfo);
     }
 
     @Test
     public void testParcellingNonSystemInfo() throws Exception {
-        AppBlockingPackageInfo selfInfo = createInfoSelf(
-                InstrumentationRegistry.getInstrumentation().getContext());
+        AppBlockingPackageInfo selfInfo = createInfoSelf(mContext);
         Parcel dest = Parcel.obtain();
         selfInfo.writeToParcel(dest, 0);
         dest.setDataPosition(0);
         AppBlockingPackageInfo selfInfoRead = new AppBlockingPackageInfo(dest);
         Log.i(TAG, "expected:" + selfInfo + ",read:" + selfInfoRead);
-        assertEquals(selfInfo, selfInfoRead);
+        assertThat(selfInfoRead).isEqualTo(selfInfo);
     }
 
     public static AppBlockingPackageInfo createInfoCarService(Context context) {
@@ -71,8 +70,7 @@
         PackageManager pm = context.getPackageManager();
         Signature[] signatures;
         try {
-            signatures = pm.getPackageInfo(packageName,
-                    PackageManager.GET_SIGNATURES).signatures;
+            signatures = pm.getPackageInfo(packageName, PackageManager.GET_SIGNATURES).signatures;
         } catch (NameNotFoundException e) {
             return null;
         }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdCrashTest.java b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdCrashTest.java
new file mode 100644
index 0000000..f275fe6
--- /dev/null
+++ b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdCrashTest.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (C) 2020 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 android.car.apitest;
+
+import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.Display.INVALID_DISPLAY;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.app.ActivityManager;
+import android.content.Intent;
+import android.os.Process;
+import android.os.SystemClock;
+
+import androidx.test.filters.MediumTest;
+
+import org.junit.Test;
+
+import java.util.List;
+
+/**
+ * The test contained in this class kills a test activity, making the system unstable for a while.
+ * That said, this class must have only one test method.
+ */
+@MediumTest
+public final class CarActivityViewDisplayIdCrashTest extends CarActivityViewDisplayIdTestBase {
+
+    private static final int INVALID_PID = -1;
+
+    @Test
+    public void testCleanUpAfterClientIsCrashed() throws Exception {
+        Intent intent = new Intent(getContext(),
+                CarActivityViewDisplayIdTest.MultiProcessActivityViewTestActivity.class);
+        getContext().startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
+        int pidOfTestActivity = waitForTestActivityReady();
+        int displayIdOfTestActivity = waitForActivityViewDisplayReady(ACTIVITY_VIEW_TEST_PKG_NAME);
+
+        assertThat(getMappedPhysicalDisplayOfVirtualDisplay(displayIdOfTestActivity))
+            .isEqualTo(DEFAULT_DISPLAY);
+
+        Process.killProcess(pidOfTestActivity);
+
+        assertThat(waitForMappedPhysicalDisplayOfVirtualDisplayCleared(displayIdOfTestActivity))
+            .isEqualTo(INVALID_DISPLAY);
+    }
+
+    private int waitForMappedPhysicalDisplayOfVirtualDisplayCleared(int displayId) {
+        // Initialized with a random number which is not DEFAULT_DISPLAY nor INVALID_DISPLAY.
+        int physicalDisplayId = 999;
+        for (int i = 0; i < TEST_TIMEOUT_MS / TEST_POLL_MS; ++i) {
+            physicalDisplayId = getMappedPhysicalDisplayOfVirtualDisplay(displayId);
+            if (physicalDisplayId == INVALID_DISPLAY) {
+                return physicalDisplayId;
+            }
+            SystemClock.sleep(TEST_POLL_MS);
+        }
+        return physicalDisplayId;
+    }
+
+    private int waitForTestActivityReady() {
+        for (int i = 0; i < TEST_TIMEOUT_MS / TEST_POLL_MS; ++i) {
+            List<ActivityManager.RunningAppProcessInfo> appProcesses =
+                    mActivityManager.getRunningAppProcesses();
+            for (ActivityManager.RunningAppProcessInfo info : appProcesses) {
+                if (info.processName.equals(ACTIVITY_VIEW_TEST_PROCESS_NAME) && info.importance
+                        == ActivityManager.RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
+                    return info.pid;
+                }
+            }
+            SystemClock.sleep(TEST_POLL_MS);
+        }
+        return INVALID_PID;
+    }
+}
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java
index b5adb35..93f2530 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTest.java
@@ -16,85 +16,30 @@
 
 package android.car.apitest;
 
-import static android.app.ActivityManager.RunningAppProcessInfo;
 import static android.view.Display.DEFAULT_DISPLAY;
 import static android.view.Display.INVALID_DISPLAY;
-import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
-
-import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assume.assumeTrue;
 import static org.testng.Assert.assertThrows;
 
-import android.app.Activity;
-import android.app.ActivityManager;
-import android.app.ActivityOptions;
-import android.app.ActivityView;
-import android.app.Instrumentation;
-import android.car.Car;
-import android.car.app.CarActivityView;
-import android.car.drivingstate.CarUxRestrictionsManager;
-import android.content.Context;
-import android.content.Intent;
-import android.hardware.display.DisplayManager;
-import android.os.Bundle;
-import android.os.Process;
-import android.os.SystemClock;
-import android.test.suitebuilder.annotation.MediumTest;
-import android.view.Display;
-import android.view.ViewGroup;
-
 import androidx.test.filters.FlakyTest;
+import androidx.test.filters.MediumTest;
 
-import org.junit.Before;
-import org.junit.FixMethodOrder;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.junit.runners.JUnit4;
-import org.junit.runners.MethodSorters;
-
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
 
 /**
  * Build/Install/Run:
  *  atest AndroidCarApiTest:CarActivityViewDisplayIdTest
  */
 @RunWith(JUnit4.class)
-@FixMethodOrder(MethodSorters.NAME_ASCENDING)
 @MediumTest
-public class CarActivityViewDisplayIdTest extends CarApiTestBase {
+public class CarActivityViewDisplayIdTest extends CarActivityViewDisplayIdTestBase {
     private static final String CAR_LAUNCHER_PKG_NAME = "com.android.car.carlauncher";
-    private static final String ACTIVITY_VIEW_TEST_PKG_NAME = "android.car.apitest";
-    private static final String ACTIVITY_VIEW_TEST_PROCESS_NAME =
-            ACTIVITY_VIEW_TEST_PKG_NAME + ":activity_view_test";
-    private static final String ACTIVITY_VIEW_DISPLAY_NAME = "TaskVirtualDisplay";
     private static final int NONEXISTENT_DISPLAY_ID = Integer.MAX_VALUE;
-    private static final int TEST_TIMEOUT_SEC = 5;
-    private static final int TEST_TIMEOUT_MS = TEST_TIMEOUT_SEC * 1000;
-    private static final int TEST_POLL_MS = 50;
-    private static final int INVALID_PID = -1;
-
-    private DisplayManager mDisplayManager;
-    private ActivityManager mActivityManager;
-    private CarUxRestrictionsManager mCarUxRestrictionsManager;
-
-    @Before
-    public void setUp() throws Exception {
-        super.setUp();
-        mDisplayManager = getContext().getSystemService(DisplayManager.class);
-        mActivityManager = getContext().getSystemService(ActivityManager.class);
-        mCarUxRestrictionsManager = (CarUxRestrictionsManager)
-                getCar().getCarManager(Car.CAR_UX_RESTRICTION_SERVICE);
-    }
-
-    private int getMappedPhysicalDisplayOfVirtualDisplay(int displayId) {
-        return mCarUxRestrictionsManager.getMappedPhysicalDisplayOfVirtualDisplay(displayId);
-    }
 
     @Test
     @FlakyTest
@@ -192,181 +137,4 @@
                         displayIdOfCarLauncher, DEFAULT_DISPLAY + 1));
 
     }
-
-    // The test name starts with 'testz' to run it at the last among the tests, since killing
-    // TestActivity forcefully causes the system unstable for a while.
-    @Test
-    @FlakyTest
-    public void testzCleanUpAfterClientIsCrashed() throws Exception {
-        Intent intent = new Intent(getContext(), MultiProcessActivityViewTestActivity.class);
-        getContext().startActivity(intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
-        int pidOfTestActivity = waitForTestActivityReady();
-        int displayIdOfTestActivity = waitForActivityViewDisplayReady(ACTIVITY_VIEW_TEST_PKG_NAME);
-
-        assertThat(getMappedPhysicalDisplayOfVirtualDisplay(displayIdOfTestActivity))
-                .isEqualTo(DEFAULT_DISPLAY);
-
-        Process.killProcess(pidOfTestActivity);
-
-        assertThat(waitForMappedPhysicalDisplayOfVirtualDisplayCleared(displayIdOfTestActivity))
-                .isEqualTo(INVALID_DISPLAY);
-    }
-
-    private int waitForActivityViewDisplayReady(String packageName) {
-        for (int i = 0; i < TEST_TIMEOUT_MS / TEST_POLL_MS; ++i) {
-            for (Display display : mDisplayManager.getDisplays()) {
-                if (display.getName().contains(ACTIVITY_VIEW_DISPLAY_NAME)
-                        && display.getOwnerPackageName().equals(packageName)
-                        && display.getState() == Display.STATE_ON) {
-                    return display.getDisplayId();
-                }
-            }
-            SystemClock.sleep(TEST_POLL_MS);
-        }
-        return INVALID_DISPLAY;
-    }
-
-    private int waitForMappedPhysicalDisplayOfVirtualDisplayCleared(int displayId) {
-        // Initialized with a random number which is not DEFAULT_DISPLAY nor INVALID_DISPLAY.
-        int physicalDisplayId = 999;
-        for (int i = 0; i < TEST_TIMEOUT_MS / TEST_POLL_MS; ++i) {
-            physicalDisplayId = getMappedPhysicalDisplayOfVirtualDisplay(displayId);
-            if (physicalDisplayId == INVALID_DISPLAY) {
-                return physicalDisplayId;
-            }
-            SystemClock.sleep(TEST_POLL_MS);
-        }
-        return physicalDisplayId;
-    }
-
-    private int waitForTestActivityReady() {
-        for (int i = 0; i < TEST_TIMEOUT_MS / TEST_POLL_MS; ++i) {
-            List<RunningAppProcessInfo> appProcesses = mActivityManager.getRunningAppProcesses();
-            for (RunningAppProcessInfo info : appProcesses) {
-                if (info.processName.equals(ACTIVITY_VIEW_TEST_PROCESS_NAME)
-                        && info.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND) {
-                    return info.pid;
-                }
-            }
-            SystemClock.sleep(TEST_POLL_MS);
-        }
-        return INVALID_PID;
-    }
-
-    private static class TestActivity extends Activity {
-        private final CountDownLatch mResumed = new CountDownLatch(1);
-
-        @Override
-        protected void onPostResume() {
-            super.onPostResume();
-            mResumed.countDown();
-        }
-
-        void waitForResumeStateChange() throws Exception {
-            waitForLatch(mResumed);
-        }
-    }
-
-    private static void waitForLatch(CountDownLatch latch) throws Exception {
-        boolean result = latch.await(TEST_TIMEOUT_SEC, TimeUnit.SECONDS);
-        if (!result) {
-            throw new TimeoutException("Timed out waiting for task stack change notification");
-        }
-    }
-
-    /**
-     * Starts the provided activity and returns the started instance.
-     */
-    private TestActivity startTestActivity(Class<?> activityClass, int displayId) throws Exception {
-        Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(
-                activityClass.getName(), null, false);
-        getInstrumentation().addMonitor(monitor);
-
-        Context context = getContext();
-        Intent intent = new Intent(context, activityClass).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        ActivityOptions options = ActivityOptions.makeBasic();
-        if (displayId != DEFAULT_DISPLAY) {
-            intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
-            options.setLaunchDisplayId(displayId);
-        }
-        context.startActivity(intent, options.toBundle());
-
-        TestActivity activity = (TestActivity) monitor.waitForActivityWithTimeout(TEST_TIMEOUT_MS);
-        if (activity == null) {
-            throw new TimeoutException("Timed out waiting for Activity");
-        }
-        activity.waitForResumeStateChange();
-        return activity;
-    }
-
-    public static class ActivityViewTestActivity extends TestActivity {
-        private static final class ActivityViewStateCallback extends ActivityView.StateCallback {
-            private final CountDownLatch mActivityViewReadyLatch = new CountDownLatch(1);
-            private final CountDownLatch mActivityViewDestroyedLatch = new CountDownLatch(1);
-
-            @Override
-            public void onActivityViewReady(ActivityView view) {
-                mActivityViewReadyLatch.countDown();
-            }
-
-            @Override
-            public void onActivityViewDestroyed(ActivityView view) {
-                mActivityViewDestroyedLatch.countDown();
-            }
-        }
-
-        private CarActivityView mActivityView;
-        private final ActivityViewStateCallback mCallback = new ActivityViewStateCallback();
-
-        @Override
-        public void onCreate(Bundle savedInstanceState) {
-            super.onCreate(savedInstanceState);
-
-            mActivityView = new CarActivityView(this, /*attrs=*/null , /*defStyle=*/0 ,
-                    /*singleTaskInstance=*/true);
-            mActivityView.setCallback(mCallback);
-            setContentView(mActivityView);
-
-            ViewGroup.LayoutParams layoutParams = mActivityView.getLayoutParams();
-            layoutParams.width = MATCH_PARENT;
-            layoutParams.height = MATCH_PARENT;
-            mActivityView.requestLayout();
-        }
-
-        @Override
-        protected void onStop() {
-            super.onStop();
-            // Moved the release of the view from onDestroy to onStop since onDestroy was called
-            // in non-deterministic timing.
-            mActivityView.release();
-        }
-
-        ActivityView getActivityView() {
-            return mActivityView;
-        }
-
-        void waitForActivityViewReady() throws Exception {
-            waitForLatch(mCallback.mActivityViewReadyLatch);
-        }
-
-        void waitForActivityViewDestroyed() throws Exception {
-            waitForLatch(mCallback.mActivityViewDestroyedLatch);
-        }
-    }
-
-    public static final class MultiProcessActivityViewTestActivity extends
-            ActivityViewTestActivity {
-    }
-
-    private ActivityViewTestActivity startActivityViewTestActivity(int displayId) throws Exception {
-        return (ActivityViewTestActivity) startTestActivity(ActivityViewTestActivity.class,
-                displayId);
-    }
-
-    // Activity that has {@link android.R.attr#resizeableActivity} attribute set to {@code true}
-    public static class ActivityInActivityView extends TestActivity {}
-
-    private ActivityInActivityView startActivityInActivityView(int displayId) throws Exception {
-        return (ActivityInActivityView) startTestActivity(ActivityInActivityView.class, displayId);
-    }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTestBase.java b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTestBase.java
new file mode 100644
index 0000000..e1782cb
--- /dev/null
+++ b/tests/android_car_api_test/src/android/car/apitest/CarActivityViewDisplayIdTestBase.java
@@ -0,0 +1,213 @@
+/*
+ * Copyright (C) 2020 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 android.car.apitest;
+
+import static android.view.Display.DEFAULT_DISPLAY;
+import static android.view.Display.INVALID_DISPLAY;
+import static android.view.ViewGroup.LayoutParams.MATCH_PARENT;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import android.app.Activity;
+import android.app.ActivityManager;
+import android.app.ActivityOptions;
+import android.app.ActivityView;
+import android.app.Instrumentation;
+import android.car.Car;
+import android.car.app.CarActivityView;
+import android.car.drivingstate.CarUxRestrictionsManager;
+import android.content.Context;
+import android.content.Intent;
+import android.hardware.display.DisplayManager;
+import android.os.Bundle;
+import android.os.SystemClock;
+import android.view.Display;
+import android.view.ViewGroup;
+
+import org.junit.Before;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+
+/**
+ * Base class for all CarActivityViewDisplayId tests.
+ */
+abstract class CarActivityViewDisplayIdTestBase extends CarApiTestBase {
+    protected static final String ACTIVITY_VIEW_TEST_PKG_NAME = "android.car.apitest";
+
+    protected static final String ACTIVITY_VIEW_TEST_PROCESS_NAME =
+            ACTIVITY_VIEW_TEST_PKG_NAME + ":activity_view_test";
+
+    protected static final String ACTIVITY_VIEW_DISPLAY_NAME = "TaskVirtualDisplay";
+
+    protected static final int TEST_POLL_MS = 50;
+    protected static final int TEST_TIMEOUT_SEC = 5;
+    protected static final int TEST_TIMEOUT_MS = TEST_TIMEOUT_SEC * 1000;
+
+    protected DisplayManager mDisplayManager;
+    protected ActivityManager mActivityManager;
+    protected CarUxRestrictionsManager mCarUxRestrictionsManager;
+
+    @Before
+    public void setUp() throws Exception {
+        mDisplayManager = getContext().getSystemService(DisplayManager.class);
+        mActivityManager = getContext().getSystemService(ActivityManager.class);
+        mCarUxRestrictionsManager = (CarUxRestrictionsManager)
+                getCar().getCarManager(Car.CAR_UX_RESTRICTION_SERVICE);
+    }
+
+    protected int waitForActivityViewDisplayReady(String packageName) {
+        for (int i = 0; i < TEST_TIMEOUT_MS / TEST_POLL_MS; ++i) {
+            for (Display display : mDisplayManager.getDisplays()) {
+                if (display.getName().contains(ACTIVITY_VIEW_DISPLAY_NAME)
+                        && display.getOwnerPackageName().equals(packageName)
+                        && display.getState() == Display.STATE_ON) {
+                    return display.getDisplayId();
+                }
+            }
+            SystemClock.sleep(TEST_POLL_MS);
+        }
+        return INVALID_DISPLAY;
+    }
+
+    protected int getMappedPhysicalDisplayOfVirtualDisplay(int displayId) {
+        return mCarUxRestrictionsManager.getMappedPhysicalDisplayOfVirtualDisplay(displayId);
+    }
+
+    public static class ActivityViewTestActivity extends CarActivityViewDisplayIdTest.TestActivity {
+        private static final class ActivityViewStateCallback extends ActivityView.StateCallback {
+            private final CountDownLatch mActivityViewReadyLatch = new CountDownLatch(1);
+            private final CountDownLatch mActivityViewDestroyedLatch = new CountDownLatch(1);
+
+            @Override
+            public void onActivityViewReady(ActivityView view) {
+                mActivityViewReadyLatch.countDown();
+            }
+
+            @Override
+            public void onActivityViewDestroyed(ActivityView view) {
+                mActivityViewDestroyedLatch.countDown();
+            }
+        }
+
+        private CarActivityView mActivityView;
+        private final ActivityViewStateCallback mCallback = new ActivityViewStateCallback();
+
+        @Override
+        public void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+
+            mActivityView = new CarActivityView(this, /*attrs=*/null , /*defStyle=*/0 ,
+                    /*singleTaskInstance=*/true);
+            mActivityView.setCallback(mCallback);
+            setContentView(mActivityView);
+
+            ViewGroup.LayoutParams layoutParams = mActivityView.getLayoutParams();
+            layoutParams.width = MATCH_PARENT;
+            layoutParams.height = MATCH_PARENT;
+            mActivityView.requestLayout();
+        }
+
+        @Override
+        protected void onStop() {
+            super.onStop();
+            // Moved the release of the view from onDestroy to onStop since onDestroy was called
+            // in non-deterministic timing.
+            mActivityView.release();
+        }
+
+        ActivityView getActivityView() {
+            return mActivityView;
+        }
+
+        void waitForActivityViewReady() throws Exception {
+            waitForLatch(mCallback.mActivityViewReadyLatch);
+        }
+
+        void waitForActivityViewDestroyed() throws Exception {
+            waitForLatch(mCallback.mActivityViewDestroyedLatch);
+        }
+    }
+
+    protected ActivityViewTestActivity startActivityViewTestActivity(int displayId)
+            throws Exception {
+        return (ActivityViewTestActivity) startTestActivity(ActivityViewTestActivity.class,
+                displayId);
+    }
+
+    /** Test activity representing a multi-process activity. */
+    public static final class MultiProcessActivityViewTestActivity extends
+            ActivityViewTestActivity {
+    }
+
+    /**
+     * Test activity that has {@link android.R.attr#resizeableActivity} attribute set to
+     * {@code true}.
+     */
+    public static final class ActivityInActivityView extends TestActivity {}
+
+    /**
+     * Starts the provided activity and returns the started instance.
+     */
+    protected TestActivity startTestActivity(Class<?> activityClass, int displayId)
+            throws Exception {
+        Instrumentation.ActivityMonitor monitor = new Instrumentation.ActivityMonitor(
+                activityClass.getName(), null, false);
+        getInstrumentation().addMonitor(monitor);
+
+        Context context = getContext();
+        Intent intent = new Intent(context, activityClass).addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        ActivityOptions options = ActivityOptions.makeBasic();
+        if (displayId != DEFAULT_DISPLAY) {
+            intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
+            options.setLaunchDisplayId(displayId);
+        }
+        context.startActivity(intent, options.toBundle());
+
+        TestActivity activity = (TestActivity) monitor.waitForActivityWithTimeout(TEST_TIMEOUT_MS);
+        if (activity == null) {
+            throw new TimeoutException("Timed out waiting " + TEST_TIMEOUT_MS + " milliseconds "
+                    + " waiting for Activity");
+        }
+
+        activity.waitForResumeStateChange();
+        return activity;
+    }
+
+    private static void waitForLatch(CountDownLatch latch) throws Exception {
+        boolean result = latch.await(TEST_TIMEOUT_SEC, TimeUnit.SECONDS);
+        if (!result) {
+            throw new TimeoutException("Timed out waiting " + TEST_TIMEOUT_SEC + " seconds waiting"
+                    + " for task stack change notification");
+        }
+    }
+
+    protected static class TestActivity extends Activity {
+        private final CountDownLatch mResumed = new CountDownLatch(1);
+
+        @Override
+        protected void onPostResume() {
+            super.onPostResume();
+            mResumed.countDown();
+        }
+
+        void waitForResumeStateChange() throws Exception {
+            waitForLatch(mResumed);
+        }
+    }
+}
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarApiTestBase.java b/tests/android_car_api_test/src/android/car/apitest/CarApiTestBase.java
index 594a1a8..4106ccb 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarApiTestBase.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarApiTestBase.java
@@ -16,12 +16,14 @@
 
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import android.car.Car;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.ServiceConnection;
 import android.os.IBinder;
 import android.os.Looper;
-import android.test.AndroidTestCase;
 
 import androidx.test.platform.app.InstrumentationRegistry;
 
@@ -31,41 +33,45 @@
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
-public class CarApiTestBase extends AndroidTestCase {
-    protected static final long DEFAULT_WAIT_TIMEOUT_MS = 1000;
+abstract class CarApiTestBase {
+
+    private static final String TAG = CarApiTestBase.class.getSimpleName();
+
+    protected static final long DEFAULT_WAIT_TIMEOUT_MS = 1_000;
+
+    protected static final Context sContext = InstrumentationRegistry.getInstrumentation()
+            .getTargetContext();
 
     private Car mCar;
 
-    private final DefaultServiceConnectionListener mConnectionListener =
+    protected final DefaultServiceConnectionListener mConnectionListener =
             new DefaultServiceConnectionListener();
 
-    protected static void assertMainThread() {
-        assertTrue(Looper.getMainLooper().isCurrentThread());
-    }
-
     @Before
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        setContext(InstrumentationRegistry.getInstrumentation().getContext());
-        mCar = Car.createCar(
-            InstrumentationRegistry.getInstrumentation().getContext(), mConnectionListener);
+    public final void connectToCar() throws Exception {
+        mCar = Car.createCar(getContext(), mConnectionListener);
         mCar.connect();
         mConnectionListener.waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
     }
 
     @After
-    @Override
-    public void tearDown() throws Exception {
-        super.tearDown();
+    public final void disconnectFromCar() throws Exception {
         mCar.disconnect();
     }
 
-    protected synchronized Car getCar() {
+    protected Car getCar() {
         return mCar;
     }
 
-    protected static class DefaultServiceConnectionListener implements ServiceConnection {
+    protected final Context getContext() {
+        return sContext;
+    }
+
+    protected static void assertMainThread() {
+        assertThat(Looper.getMainLooper().isCurrentThread()).isTrue();
+    }
+
+    protected static final class DefaultServiceConnectionListener implements ServiceConnection {
         private final Semaphore mConnectionWait = new Semaphore(0);
 
         public void waitForConnection(long timeoutMs) throws InterruptedException {
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarAppBlockingPolicyTest.java b/tests/android_car_api_test/src/android/car/apitest/CarAppBlockingPolicyTest.java
index b364387..51cb1e3 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarAppBlockingPolicyTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarAppBlockingPolicyTest.java
@@ -17,29 +17,30 @@
 
 import android.car.content.pm.AppBlockingPackageInfo;
 import android.car.content.pm.CarAppBlockingPolicy;
+import android.content.Context;
 import android.os.Parcel;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
+
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class CarAppBlockingPolicyTest extends AndroidTestCase {
+public class CarAppBlockingPolicyTest {
     private static final String TAG = AppBlockingPackageInfoTest.class.getSimpleName();
 
+    private final Context mContext = InstrumentationRegistry.getInstrumentation()
+            .getTargetContext();
+
     @Test
     public void testParcelling() throws Exception {
         AppBlockingPackageInfo carServiceInfo =
-                AppBlockingPackageInfoTest.createInfoCarService(getContext());
+                AppBlockingPackageInfoTest.createInfoCarService(mContext);
         AppBlockingPackageInfo selfInfo =
-                AppBlockingPackageInfoTest.createInfoSelf(
-                    InstrumentationRegistry.getInstrumentation().getContext());
+                AppBlockingPackageInfoTest.createInfoSelf(mContext);
         // this is only for testing parcelling. contents has nothing to do with actual app blocking.
         AppBlockingPackageInfo[] whitelists = new AppBlockingPackageInfo[] { carServiceInfo,
                 selfInfo };
@@ -50,6 +51,6 @@
         dest.setDataPosition(0);
         CarAppBlockingPolicy policyRead = new CarAppBlockingPolicy(dest);
         Log.i(TAG, "expected:" + policyExpected + ",read:" + policyRead);
-        assertEquals(policyExpected, policyRead);
+        assertThat(policyRead).isEqualTo(policyExpected);
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarAppFocusManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarAppFocusManagerTest.java
index 44b4062..4a4681b 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarAppFocusManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarAppFocusManagerTest.java
@@ -18,6 +18,10 @@
 import static android.car.CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED;
 import static android.car.CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
 import android.car.Car;
 import android.car.CarAppFocusManager;
 import android.content.Context;
@@ -28,18 +32,13 @@
 
 import androidx.test.filters.FlakyTest;
 import androidx.test.filters.RequiresDevice;
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
 
-import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(AndroidJUnit4.class)
 @MediumTest
 public class CarAppFocusManagerTest extends CarApiTestBase {
     private static final String TAG = CarAppFocusManagerTest.class.getSimpleName();
@@ -48,11 +47,9 @@
     private final LooperThread mEventThread = new LooperThread();
 
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
         mManager = (CarAppFocusManager) getCar().getCarManager(Car.APP_FOCUS_SERVICE);
-        assertNotNull(mManager);
+        assertThat(mManager).isNotNull();
 
         // Request all application focuses and abandon them to ensure no active context is present
         // when test starts.
@@ -71,22 +68,13 @@
 
     @Test
     public void testSetActiveNullListener() throws Exception {
-        try {
-            mManager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, null);
-            fail();
-        } catch (IllegalArgumentException e) {
-            // expected
-        }
+        assertThrows(IllegalArgumentException.class,
+                () -> mManager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, null));
     }
 
     @Test
     public void testRegisterNull() throws Exception {
-        try {
-            mManager.addFocusListener(null, 0);
-            fail();
-        } catch (IllegalArgumentException e) {
-            // expected
-        }
+        assertThrows(IllegalArgumentException.class, () -> mManager.addFocusListener(null, 0));
     }
 
     @Test
@@ -111,20 +99,20 @@
 
         manager.removeFocusListener(listener1, APP_FOCUS_TYPE_NAVIGATION);
 
-        assertEquals(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED,
-                manager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, new FocusOwnershipCallback()));
+        assertThat(manager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, new FocusOwnershipCallback()))
+                .isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
 
         // Unregistred from nav app, no events expected.
-        assertFalse(listener1.waitForFocusChangeAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION, true));
-        assertTrue(listener2.waitForFocusChangeAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION, true));
+        assertThat(listener1.waitForFocusChangeAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION, true)).isFalse();
+        assertThat(listener2.waitForFocusChangeAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
 
         manager.removeFocusListener(listener2, APP_FOCUS_TYPE_NAVIGATION);
-        assertEquals(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED,
-                manager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, new FocusOwnershipCallback()));
-        assertFalse(listener2.waitForFocusChangeAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION, true));
+        assertThat(manager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, new FocusOwnershipCallback()))
+                .isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(listener2.waitForFocusChangeAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION, true)).isFalse();
 
         manager.removeFocusListener(listener2, 2);
         manager.removeFocusListener(listener2, 2);    // Double-unregister is OK
@@ -135,10 +123,9 @@
     public void testFocusChange() throws Exception {
         CarAppFocusManager manager1 = createManager();
         CarAppFocusManager manager2 = createManager();
-        assertNotNull(manager2);
-        final int[] emptyFocus = new int[0];
+        assertThat(manager2).isNotNull();
 
-        Assert.assertArrayEquals(emptyFocus, manager1.getActiveAppTypes());
+        assertThat(manager1.getActiveAppTypes()).asList().isEmpty();
         FocusChangedListener change1 = new FocusChangedListener();
         FocusChangedListener change2 = new FocusChangedListener();
         FocusOwnershipCallback owner1 = new FocusOwnershipCallback();
@@ -147,82 +134,79 @@
         manager2.addFocusListener(change2, APP_FOCUS_TYPE_NAVIGATION);
 
 
-        assertEquals(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED,
-                manager1.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner1));
-        assertTrue(owner1.waitForOwnershipGrantAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION));
-        int[] expectedFocuses = new int[] {APP_FOCUS_TYPE_NAVIGATION};
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
-        assertTrue(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION));
-        assertFalse(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION));
-        assertTrue(change2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
-        assertTrue(change1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
+        assertThat(manager1.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner1))
+                .isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(owner1.waitForOwnershipGrantAndAssert(
+        DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
+        int expectedFocus  = APP_FOCUS_TYPE_NAVIGATION;
+        assertThat(manager1.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager2.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
+        assertThat(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(change2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+        APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
+        assertThat(change1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+        APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
 
-        expectedFocuses = new int[] {
-                APP_FOCUS_TYPE_NAVIGATION,
-        };
-        assertTrue(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION));
-        assertFalse(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION));
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
+        expectedFocus = APP_FOCUS_TYPE_NAVIGATION;
+        assertThat(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
+        assertThat(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(manager1.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager2.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
 
         // this should be no-op
         change1.reset();
         change2.reset();
-        assertEquals(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED,
-                manager1.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner1));
-        assertTrue(owner1.waitForOwnershipGrantAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION));
+        assertThat(manager1.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner1))
+                .isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(owner1.waitForOwnershipGrantAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
 
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
-        assertFalse(change2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
-        assertFalse(change1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
+        assertThat(manager1.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager2.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(change2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, true)).isFalse();
+        assertThat(change1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, true)).isFalse();
 
-        assertEquals(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED,
-                manager2.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner2));
-        assertTrue(owner2.waitForOwnershipGrantAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION));
+        assertThat(manager2.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner2))
+                .isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(owner2.waitForOwnershipGrantAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
 
-        assertFalse(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION));
-        assertTrue(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION));
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
-        assertTrue(owner1.waitForOwnershipLossAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION));
+        assertThat(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
+        assertThat(manager1.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager2.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(owner1.waitForOwnershipLossAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION)).isTrue();
 
         // no-op as it is not owning it
         change1.reset();
         change2.reset();
         manager1.abandonAppFocus(owner1, APP_FOCUS_TYPE_NAVIGATION);
-        assertFalse(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION));
-        assertTrue(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION));
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
+        assertThat(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
+        assertThat(manager1.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager2.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
 
         change1.reset();
         change2.reset();
-        assertFalse(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION));
-        assertTrue(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION));
-        expectedFocuses = new int[] {APP_FOCUS_TYPE_NAVIGATION};
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
+        assertThat(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
+        expectedFocus = APP_FOCUS_TYPE_NAVIGATION;
+        assertThat(manager1.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
+        assertThat(manager2.getActiveAppTypes()).asList().containsExactly(expectedFocus).inOrder();
 
         change1.reset();
         change2.reset();
         manager2.abandonAppFocus(owner2, APP_FOCUS_TYPE_NAVIGATION);
-        assertFalse(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION));
-        assertFalse(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION));
-        expectedFocuses = emptyFocus;
-        Assert.assertArrayEquals(expectedFocuses, manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(expectedFocuses, manager2.getActiveAppTypes());
-        assertTrue(change1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, false));
+        assertThat(manager1.isOwningFocus(owner1, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(manager2.isOwningFocus(owner2, APP_FOCUS_TYPE_NAVIGATION)).isFalse();
+        assertThat(manager1.getActiveAppTypes()).asList().isEmpty();
+        assertThat(manager2.getActiveAppTypes()).asList().isEmpty();
+        assertThat(change1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, false)).isTrue();
 
         manager1.removeFocusListener(change1);
         manager2.removeFocusListener(change2);
@@ -231,13 +215,11 @@
     @RequiresDevice
     @Test
     public void testFilter() throws Exception {
-        CarAppFocusManager manager1 = createManager(
-                InstrumentationRegistry.getInstrumentation().getContext(), mEventThread);
-        CarAppFocusManager manager2 = createManager(
-                InstrumentationRegistry.getInstrumentation().getContext(), mEventThread);
+        CarAppFocusManager manager1 = createManager(getContext(), mEventThread);
+        CarAppFocusManager manager2 = createManager(getContext(), mEventThread);
 
-        Assert.assertArrayEquals(new int[0], manager1.getActiveAppTypes());
-        Assert.assertArrayEquals(new int[0], manager2.getActiveAppTypes());
+        assertThat(manager1.getActiveAppTypes()).asList().isEmpty();
+        assertThat(manager2.getActiveAppTypes()).asList().isEmpty();
 
         FocusChangedListener listener1 = new FocusChangedListener();
         FocusChangedListener listener2 = new FocusChangedListener();
@@ -245,35 +227,34 @@
         manager1.addFocusListener(listener1, APP_FOCUS_TYPE_NAVIGATION);
         manager2.addFocusListener(listener2, APP_FOCUS_TYPE_NAVIGATION);
 
-        assertEquals(APP_FOCUS_REQUEST_SUCCEEDED,
-                manager1.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner));
-        assertTrue(owner.waitForOwnershipGrantAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION));
+        assertThat(manager1.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner))
+                .isEqualTo(APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(owner.waitForOwnershipGrantAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
 
-        assertTrue(listener1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
-        assertTrue(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
+        assertThat(listener1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
+        assertThat(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
 
         listener1.reset();
         listener2.reset();
         manager1.abandonAppFocus(owner, APP_FOCUS_TYPE_NAVIGATION);
-        assertTrue(listener1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, false));
-        assertTrue(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, false));
+        assertThat(listener1.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+        APP_FOCUS_TYPE_NAVIGATION, false)).isTrue();
+        assertThat(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+        APP_FOCUS_TYPE_NAVIGATION, false)).isTrue();
     }
 
     private CarAppFocusManager createManager() throws InterruptedException {
-        return createManager(
-            InstrumentationRegistry.getInstrumentation().getContext(), mEventThread);
+        return createManager(getContext(), mEventThread);
     }
 
     private static CarAppFocusManager createManager(Context context,
             LooperThread eventThread) throws InterruptedException {
         Car car = createCar(context, eventThread);
         CarAppFocusManager manager = (CarAppFocusManager) car.getCarManager(Car.APP_FOCUS_SERVICE);
-        assertNotNull(manager);
+        assertThat(manager).isNotNull();
         return manager;
     }
 
@@ -282,7 +263,7 @@
         DefaultServiceConnectionListener connectionListener =
                 new DefaultServiceConnectionListener();
         Car car = Car.createCar(context, connectionListener, eventThread.mHandler);
-        assertNotNull(car);
+        assertThat(car).isNotNull();
         car.connect();
         connectionListener.waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
         return car;
@@ -298,26 +279,27 @@
         manager.addFocusListener(listener, APP_FOCUS_TYPE_NAVIGATION);
         manager.addFocusListener(listener2, APP_FOCUS_TYPE_NAVIGATION);
 
-        assertEquals(APP_FOCUS_REQUEST_SUCCEEDED,
-                manager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner));
-        assertTrue(owner.waitForOwnershipGrantAndAssert(
-                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION));
+        assertThat(manager.requestAppFocus(APP_FOCUS_TYPE_NAVIGATION, owner))
+                .isEqualTo(APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(owner.waitForOwnershipGrantAndAssert(
+                DEFAULT_WAIT_TIMEOUT_MS, APP_FOCUS_TYPE_NAVIGATION)).isTrue();
 
-        assertTrue(listener.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
-        assertTrue(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, true));
+        assertThat(listener.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
+        assertThat(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, true)).isTrue();
 
         listener.reset();
         listener2.reset();
         manager.abandonAppFocus(owner, APP_FOCUS_TYPE_NAVIGATION);
-        assertTrue(listener.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, false));
-        assertTrue(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                APP_FOCUS_TYPE_NAVIGATION, false));
+        assertThat(listener.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, false)).isTrue();
+        assertThat(listener2.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
+                APP_FOCUS_TYPE_NAVIGATION, false)).isTrue();
     }
 
-    private class FocusChangedListener implements CarAppFocusManager.OnAppFocusChangedListener {
+    private final class FocusChangedListener
+            implements CarAppFocusManager.OnAppFocusChangedListener {
         private volatile int mLastChangeAppType;
         private volatile boolean mLastChangeAppActive;
         private volatile Semaphore mChangeWait = new Semaphore(0);
@@ -329,8 +311,8 @@
                 return false;
             }
 
-            assertEquals(expectedAppType, mLastChangeAppType);
-            assertEquals(expectedAppActive, mLastChangeAppActive);
+            assertThat(mLastChangeAppType).isEqualTo(expectedAppType);
+            assertThat(mLastChangeAppActive).isEqualTo(expectedAppActive);
             return true;
         }
 
@@ -349,7 +331,7 @@
         }
     }
 
-    private class FocusOwnershipCallback
+    private final class FocusOwnershipCallback
             implements CarAppFocusManager.OnAppFocusOwnershipCallback {
         private int mLastLossEvent;
         private final Semaphore mLossEventWait = new Semaphore(0);
@@ -361,7 +343,7 @@
             if (!mLossEventWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
                 return false;
             }
-            assertEquals(expectedAppType, mLastLossEvent);
+            assertThat(mLastLossEvent).isEqualTo(expectedAppType);
             return true;
         }
 
@@ -370,7 +352,7 @@
             if (!mGrantEventWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
                 return false;
             }
-            assertEquals(expectedAppType, mLastGrantEvent);
+            assertThat(mLastGrantEvent).isEqualTo(expectedAppType);
             return true;
         }
 
@@ -391,10 +373,10 @@
     }
 
     private void assertEventThread() {
-        assertEquals(mEventThread, Thread.currentThread());
+        assertThat(Thread.currentThread()).isSameAs(mEventThread);
     }
 
-    private static class LooperThread extends Thread {
+    private static final class LooperThread extends Thread {
 
         private final Object mReadySync = new Object();
 
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarCabinManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarCabinManagerTest.java
index 43b4e62..cc258c2 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarCabinManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarCabinManagerTest.java
@@ -15,24 +15,24 @@
  */
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assert.fail;
+
 import android.car.Car;
 import android.car.hardware.CarPropertyConfig;
 import android.car.hardware.cabin.CarCabinManager;
 import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 
-import androidx.test.runner.AndroidJUnit4;
-
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-@RunWith(AndroidJUnit4.class)
 @MediumTest
 public class CarCabinManagerTest extends CarApiTestBase {
     private static final String TAG = CarCabinManagerTest.class.getSimpleName();
@@ -40,11 +40,9 @@
     private CarCabinManager mCabinManager;
 
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
         mCabinManager = (CarCabinManager) getCar().getCarManager(Car.CABIN_SERVICE);
-        assertNotNull(mCabinManager);
+        assertThat(mCabinManager).isNotNull();
     }
 
     @Test
@@ -71,8 +69,8 @@
             case CarCabinManager.ID_MIRROR_FOLD:
             case CarCabinManager.ID_SEAT_BELT_BUCKLED:
             case CarCabinManager.ID_WINDOW_LOCK:
-                assertEquals(Boolean.class, property.getPropertyType());
-                assertFalse(property.isGlobalProperty());
+                assertThat(property.getPropertyType()).isAssignableTo(Boolean.class);
+                assertThat(property.isGlobalProperty()).isFalse();
                 break;
 
             // Zoned integer properties
@@ -110,13 +108,13 @@
             case CarCabinManager.ID_SEAT_HEADREST_FORE_AFT_MOVE:
             case CarCabinManager.ID_WINDOW_POS:
             case CarCabinManager.ID_WINDOW_MOVE:
-                assertEquals(Integer.class, property.getPropertyType());
-                assertFalse(property.isGlobalProperty());
+                assertThat(property.getPropertyType()).isAssignableTo(Integer.class);
+                assertThat(property.isGlobalProperty()).isFalse();
                 checkIntMinMax(property);
                 break;
             default:
                 Log.e(TAG, "Property ID not handled: " + propId);
-                assertTrue(false);
+                assertThat(false).isTrue();
                 break;
         }
     }
@@ -125,23 +123,23 @@
         Log.i(TAG, "checkIntMinMax property:" + property);
         if (!property.isGlobalProperty()) {
             int[] areaIds = property.getAreaIds();
-            assertTrue(areaIds.length > 0);
-            assertEquals(areaIds.length, property.getAreaCount());
+            assertThat(areaIds.length).isGreaterThan(0);
+            assertThat(property.getAreaCount()).isEqualTo(areaIds.length);
 
             for (int areId : areaIds) {
-                assertTrue(property.hasArea(areId));
+                assertThat(property.hasArea(areId)).isTrue();
                 int min = property.getMinValue(areId);
                 int max = property.getMaxValue(areId);
-                assertTrue(min <= max);
+                assertThat(min).isAtMost(max);
             }
         } else {
             int min = property.getMinValue();
             int max = property.getMaxValue();
-            assertTrue(min <= max);
+            assertThat(min).isAtMost(max);
             for (int i = 0; i < 32; i++) {
-                assertFalse(property.hasArea(0x1 << i));
-                assertNull(property.getMinValue(0x1 << i));
-                assertNull(property.getMaxValue(0x1 << i));
+                assertThat(property.hasArea(0x1 << i)).isFalse();
+                assertThat(property.getMinValue(0x1 << i)).isNull();
+                assertThat(property.getMaxValue(0x1 << i)).isNull();
             }
         }
     }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarDiagnosticManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarDiagnosticManagerTest.java
index 12030bb..c038320 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarDiagnosticManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarDiagnosticManagerTest.java
@@ -16,80 +16,29 @@
 
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assume.assumeTrue;
 
 import android.car.Car;
 import android.car.diagnostic.CarDiagnosticEvent;
 import android.car.diagnostic.CarDiagnosticManager;
-import android.content.ComponentName;
-import android.content.ServiceConnection;
-import android.os.IBinder;
-import android.os.Looper;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.MediumTest;
 
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(AndroidJUnit4.class)
 @MediumTest
-public class CarDiagnosticManagerTest extends AndroidTestCase {
-    private static final long DEFAULT_WAIT_TIMEOUT_MS = 5000;
+public class CarDiagnosticManagerTest extends CarApiTestBase {
 
-    private final Semaphore mConnectionWait = new Semaphore(0);
-
-    private Car mCar;
     private CarDiagnosticManager mCarDiagnosticManager;
 
-    private final ServiceConnection mConnectionListener =
-            new ServiceConnection() {
-
-                @Override
-                public void onServiceDisconnected(ComponentName name) {
-                    assertMainThread();
-                }
-
-                @Override
-                public void onServiceConnected(ComponentName name, IBinder service) {
-                    assertMainThread();
-                    mConnectionWait.release();
-                }
-            };
-
-    private void assertMainThread() {
-        assertTrue(Looper.getMainLooper().isCurrentThread());
-    }
-
-    private void waitForConnection(long timeoutMs) throws InterruptedException {
-        mConnectionWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS);
-    }
-
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
-        mCar = Car.createCar(
-            InstrumentationRegistry.getInstrumentation().getContext(), mConnectionListener);
-        mCar.connect();
-        waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
-        assumeTrue(mCar.isFeatureEnabled(Car.DIAGNOSTIC_SERVICE));
-        mCarDiagnosticManager = (CarDiagnosticManager) mCar.getCarManager(Car.DIAGNOSTIC_SERVICE);
-        assertNotNull(mCarDiagnosticManager);
-    }
-
-    @After
-    @Override
-    public void tearDown() throws Exception {
-        super.tearDown();
-        mCar.disconnect();
+        Car car = getCar();
+        assumeTrue(car.isFeatureEnabled(Car.DIAGNOSTIC_SERVICE));
+        mCarDiagnosticManager = (CarDiagnosticManager) car.getCarManager(Car.DIAGNOSTIC_SERVICE);
+        assertThat(mCarDiagnosticManager).isNotNull();
     }
 
     /**
@@ -101,8 +50,8 @@
     public void testLiveFrame() throws Exception {
         CarDiagnosticEvent liveFrame = mCarDiagnosticManager.getLatestLiveFrame();
         if (null != liveFrame) {
-            assertTrue(liveFrame.isLiveFrame());
-            assertFalse(liveFrame.isEmptyFrame());
+            assertThat(liveFrame.isLiveFrame()).isTrue();
+            assertThat(liveFrame.isEmptyFrame()).isFalse();
         }
     }
 
@@ -117,11 +66,11 @@
         if (null != timestamps) {
             for (long timestamp : timestamps) {
                 CarDiagnosticEvent freezeFrame = mCarDiagnosticManager.getFreezeFrame(timestamp);
-                assertNotNull(freezeFrame);
-                assertEquals(timestamp, freezeFrame.timestamp);
-                assertTrue(freezeFrame.isFreezeFrame());
-                assertFalse(freezeFrame.isEmptyFrame());
-                assertNotSame("", freezeFrame.dtc);
+                assertThat(freezeFrame).isNotNull();
+                assertThat(freezeFrame.timestamp).isEqualTo(timestamp);
+                assertThat(freezeFrame.isFreezeFrame()).isTrue();
+                assertThat(freezeFrame.isEmptyFrame()).isFalse();
+                assertThat(freezeFrame.dtc).isNotEmpty();
             }
         }
     }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarFeatureTest.java b/tests/android_car_api_test/src/android/car/apitest/CarFeatureTest.java
index 092cbcb..5d8fa6a 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarFeatureTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarFeatureTest.java
@@ -22,15 +22,11 @@
 import android.car.CarFeatures;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
-
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.Arrays;
 import java.util.List;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
 public class CarFeatureTest extends CarApiTestBase  {
     // List in CarFeatureController should be inline with this.
@@ -42,7 +38,6 @@
             Car.CAR_CONFIGURATION_SERVICE,
             Car.CAR_DRIVING_STATE_SERVICE,
             Car.CAR_MEDIA_SERVICE,
-            Car.CAR_NAVIGATION_SERVICE,
             Car.CAR_OCCUPANT_ZONE_SERVICE,
             Car.CAR_TRUST_AGENT_ENROLLMENT_SERVICE,
             Car.CAR_USER_SERVICE,
@@ -63,6 +58,7 @@
 
     private static final List<String> OPTIONAL_FEATURES = Arrays.asList(
             CarFeatures.FEATURE_CAR_USER_NOTICE_SERVICE,
+            Car.CAR_NAVIGATION_SERVICE,
             Car.DIAGNOSTIC_SERVICE,
             Car.STORAGE_MONITORING_SERVICE,
             Car.VEHICLE_MAP_SERVICE
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarHvacManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarHvacManagerTest.java
index 740684d..6bea3e3 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarHvacManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarHvacManagerTest.java
@@ -15,6 +15,11 @@
  */
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import static org.junit.Assert.fail;
+
 import android.car.Car;
 import android.car.hardware.CarPropertyConfig;
 import android.car.hardware.hvac.CarHvacManager;
@@ -22,18 +27,14 @@
 import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 
-import androidx.test.runner.AndroidJUnit4;
-
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
 
-@RunWith(AndroidJUnit4.class)
 @MediumTest
 public class CarHvacManagerTest extends CarApiTestBase {
     private static final String TAG = CarHvacManagerTest.class.getSimpleName();
@@ -41,11 +42,9 @@
     private CarHvacManager mHvacManager;
 
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
         mHvacManager = (CarHvacManager) getCar().getCarManager(Car.HVAC_SERVICE);
-        assertNotNull(mHvacManager);
+        assertThat(mHvacManager).isNotNull();
     }
 
     @Test
@@ -65,9 +64,9 @@
 
     @Test
     public void testHvacPosition() {
-        assertEquals(CarHvacManager.FAN_DIRECTION_FACE, VehicleHvacFanDirection.FACE);
-        assertEquals(CarHvacManager.FAN_DIRECTION_FLOOR, VehicleHvacFanDirection.FLOOR);
-        assertEquals(CarHvacManager.FAN_DIRECTION_DEFROST, VehicleHvacFanDirection.DEFROST);
+        assertThat(VehicleHvacFanDirection.FACE).isEqualTo(CarHvacManager.FAN_DIRECTION_FACE);
+        assertThat(VehicleHvacFanDirection.FLOOR).isEqualTo(CarHvacManager.FAN_DIRECTION_FLOOR);
+        assertThat(VehicleHvacFanDirection.DEFROST).isEqualTo(CarHvacManager.FAN_DIRECTION_DEFROST);
     }
 
     private void assertTypeAndZone(CarPropertyConfig property) {
@@ -113,35 +112,37 @@
         }
     }
 
-    private void checkTypeAndGlobal(Class clazz, boolean global, CarPropertyConfig<Integer> property) {
-        assertEquals("Wrong type, expecting " + clazz + " type for id:" + property.getPropertyId(),
-                clazz, property.getPropertyType());
-        assertEquals("Wrong zone, should " + (global ? "" : "not ") + "be global for id: " +
-                        property.getPropertyId() + ", area type:" + property.getAreaType(),
-                global, property.isGlobalProperty());
+    private void checkTypeAndGlobal(Class<?> clazz, boolean global,
+            CarPropertyConfig<Integer> property) {
+        assertWithMessage("Wrong type, expecting %s type for id %s", clazz,
+                property.getPropertyId()).that(property.getPropertyType()).isEqualTo(clazz);
+        assertWithMessage(
+                "Wrong zone, should %s be global for id:%s, area type: %s" + property.getAreaType(),
+                property.getPropertyId(), property.getAreaType(), (global ? "" : "not "))
+                        .that(property.isGlobalProperty()).isEqualTo(global);
     }
 
     private void checkIntMinMax(CarPropertyConfig<Integer> property) {
         Log.i(TAG, "checkIntMinMax property:" + property);
         if (!property.isGlobalProperty()) {
             int[] areaIds = property.getAreaIds();
-            assertTrue(areaIds.length > 0);
-            assertEquals(areaIds.length, property.getAreaCount());
+            assertThat(areaIds.length).isGreaterThan(0);
+            assertThat(property.getAreaCount()).isEqualTo(areaIds.length);
 
             for (int areaId : areaIds) {
-                assertTrue(property.hasArea(areaId));
+                assertThat(property.hasArea(areaId)).isTrue();
                 int min = property.getMinValue(areaId) == null ? 0 : property.getMinValue(areaId);
                 int max = property.getMaxValue(areaId) == null ? 0 : property.getMaxValue(areaId);
-                assertTrue(min <= max);
+                assertThat(min).isAtMost(max);
             }
         } else {
             int min = property.getMinValue() == null ? 0 : property.getMinValue();
             int max = property.getMaxValue() == null ? 0 : property.getMinValue();
-            assertTrue(min <= max);
+            assertThat(min).isAtMost(max);
             for (int i = 0; i < 32; i++) {
-                assertFalse(property.hasArea(0x1 << i));
-                assertNull(property.getMinValue(0x1 << i));
-                assertNull(property.getMaxValue(0x1 << i));
+                assertThat(property.hasArea(0x1 << i)).isFalse();
+                assertThat(property.getMinValue(0x1 << i)).isNull();
+                assertThat(property.getMaxValue(0x1 << i)).isNull();
             }
         }
     }
@@ -150,25 +151,25 @@
         Log.i(TAG, "checkFloatMinMax property:" + property);
         if (!property.isGlobalProperty()) {
             int[] areaIds = property.getAreaIds();
-            assertTrue(areaIds.length > 0);
-            assertEquals(areaIds.length, property.getAreaCount());
+            assertThat(areaIds.length).isGreaterThan(0);
+            assertThat(property.getAreaCount()).isEqualTo(areaIds.length);
 
             for (int areaId : areaIds) {
-                assertTrue(property.hasArea(areaId));
+                assertThat(property.hasArea(areaId)).isTrue();
                 float min =
                         property.getMinValue(areaId) == null ? 0f : property.getMinValue(areaId);
                 float max =
                         property.getMaxValue(areaId) == null ? 0f : property.getMinValue(areaId);
-                assertTrue(min <= max);
+                assertThat(min).isAtMost(max);
             }
         } else {
             float min = property.getMinValue() == null ? 0f : property.getMinValue();
             float max = property.getMaxValue() == null ? 0f : property.getMinValue();
-            assertTrue(min <= max);
+            assertThat(min).isAtMost(max);
             for (int i = 0; i < 32; i++) {
-                assertFalse(property.hasArea(0x1 << i));
-                assertNull(property.getMinValue(0x1 << i));
-                assertNull(property.getMaxValue(0x1 << i));
+                assertThat(property.hasArea(0x1 << i)).isFalse();
+                assertThat(property.getMinValue(0x1 << i)).isNull();
+                assertThat(property.getMaxValue(0x1 << i)).isNull();
             }
         }
     }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarInfoManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarInfoManagerTest.java
index 94b9432..298b28d 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarInfoManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarInfoManagerTest.java
@@ -20,36 +20,32 @@
 import android.car.CarInfoManager;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
 public class CarInfoManagerTest extends CarApiTestBase {
 
     private CarInfoManager mInfoManager;
 
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
         mInfoManager = (CarInfoManager) getCar().getCarManager(Car.INFO_SERVICE);
-        assertNotNull(mInfoManager);
+        assertThat(mInfoManager).isNotNull();
     }
 
     @Test
     public void testVehicleId() throws Exception {
-        assertNotNull(mInfoManager.getVehicleId());
+        assertThat(mInfoManager.getVehicleId()).isNotNull();
     }
 
     @Test
     public void testNotNullItems() throws Exception {
         // call and check if it throws exception.
-        assertNotNull(mInfoManager.getManufacturer());
-        assertNotNull(mInfoManager.getModel());
-        assertNotNull(mInfoManager.getModelYear());
+        assertThat(mInfoManager.getManufacturer()).isNotNull();
+        assertThat(mInfoManager.getModel()).isNotNull();
+        assertThat(mInfoManager.getModelYear()).isNotNull();
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java
index eccfbad..0d92400 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarNavigationManagerTest.java
@@ -15,6 +15,10 @@
  */
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
 import android.car.Car;
 import android.car.CarAppFocusManager;
 import android.car.CarAppFocusManager.OnAppFocusOwnershipCallback;
@@ -36,16 +40,12 @@
 import android.test.suitebuilder.annotation.MediumTest;
 import android.util.Log;
 
-import androidx.test.filters.FlakyTest;
-import androidx.test.runner.AndroidJUnit4;
-
 import com.google.android.collect.Lists;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 /**
  * Unit tests for {@link CarNavigationStatusManager}
  */
@@ -58,14 +58,12 @@
     private CarAppFocusManager mCarAppFocusManager;
 
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
         mCarNavigationManager =
                 (CarNavigationStatusManager) getCar().getCarManager(Car.CAR_NAVIGATION_SERVICE);
         mCarAppFocusManager =
                 (CarAppFocusManager) getCar().getCarManager(Car.APP_FOCUS_SERVICE);
-        assertNotNull(mCarAppFocusManager);
+        assertThat(mCarAppFocusManager).isNotNull();
     }
 
     @Test
@@ -84,37 +82,38 @@
         Timestamp timestamp = Timestamp.newBuilder().build();
         NavigationStateProto navigationStateProto = NavigationStateProto.newBuilder().build();
 
-        assertNotNull(imageReference);
-        assertNotNull(distance);
-        assertNotNull(maneuver);
-        assertNotNull(lane);
-        assertNotNull(laneDirection);
-        assertNotNull(cue);
-        assertNotNull(cueElement);
-        assertNotNull(step);
-        assertNotNull(latLng);
-        assertNotNull(destination);
-        assertNotNull(road);
-        assertNotNull(timestamp);
-        assertNotNull(navigationStateProto);
+        assertThat(imageReference).isNotNull();
+        assertThat(distance).isNotNull();
+        assertThat(maneuver).isNotNull();
+        assertThat(lane).isNotNull();
+        assertThat(laneDirection).isNotNull();
+        assertThat(cue).isNotNull();
+        assertThat(cueElement).isNotNull();
+        assertThat(step).isNotNull();
+        assertThat(latLng).isNotNull();
+        assertThat(destination).isNotNull();
+        assertThat(road).isNotNull();
+        assertThat(timestamp).isNotNull();
+        assertThat(navigationStateProto).isNotNull();
 
-        assertNotNull(ImageReference.parseFrom(imageReference.toByteArray()));
-        assertNotNull(Distance.parseFrom(distance.toByteArray()));
-        assertNotNull(Maneuver.parseFrom(maneuver.toByteArray()));
-        assertNotNull(Lane.parseFrom(lane.toByteArray()));
-        assertNotNull(LaneDirection.parseFrom(laneDirection.toByteArray()));
-        assertNotNull(Cue.parseFrom(cue.toByteArray()));
-        assertNotNull(CueElement.parseFrom(cueElement.toByteArray()));
-        assertNotNull(Step.parseFrom(step.toByteArray()));
-        assertNotNull(LatLng.parseFrom(latLng.toByteArray()));
-        assertNotNull(Destination.parseFrom(destination.toByteArray()));
-        assertNotNull(Road.parseFrom(road.toByteArray()));
-        assertNotNull(Timestamp.parseFrom(timestamp.toByteArray()));
-        assertNotNull(NavigationStateProto.parseFrom(navigationStateProto.toByteArray()));
+
+        assertThat(ImageReference.parseFrom(imageReference.toByteArray())).isNotNull();
+        assertThat(Distance.parseFrom(distance.toByteArray())).isNotNull();
+        assertThat(Maneuver.parseFrom(maneuver.toByteArray())).isNotNull();
+        assertThat(Lane.parseFrom(lane.toByteArray())).isNotNull();
+        assertThat(LaneDirection.parseFrom(laneDirection.toByteArray())).isNotNull();
+        assertThat(Cue.parseFrom(cue.toByteArray())).isNotNull();
+        assertThat(CueElement.parseFrom(cueElement.toByteArray())).isNotNull();
+        assertThat(Step.parseFrom(step.toByteArray())).isNotNull();
+        assertThat(LatLng.parseFrom(latLng.toByteArray())).isNotNull();
+        assertThat(Destination.parseFrom(destination.toByteArray())).isNotNull();
+        assertThat(Road.parseFrom(road.toByteArray())).isNotNull();
+        assertThat(Timestamp.parseFrom(timestamp.toByteArray())).isNotNull();
+        assertThat(NavigationStateProto.parseFrom(navigationStateProto.toByteArray())).isNotNull();
     }
 
+    @Ignore("TODO(b/15534360)")
     @Test
-    @FlakyTest
     public void testSendEvent() throws Exception {
         if (mCarNavigationManager == null) {
             Log.w(TAG, "Unable to run the test: "
@@ -128,12 +127,7 @@
         bundle.putStringArrayList("BUNDLE_ARRAY_OF_STRINGS",
                 Lists.newArrayList("Value A", "Value B", "Value Z"));
 
-        try {
-            mCarNavigationManager.sendEvent(1, bundle);
-            fail();
-        } catch (IllegalStateException expected) {
-            // Expected. Client should acquire focus ownership for APP_FOCUS_TYPE_NAVIGATION.
-        }
+        assertThrows(IllegalStateException.class, () -> mCarNavigationManager.sendEvent(1, bundle));
 
         mCarAppFocusManager.addFocusListener(new CarAppFocusManager.OnAppFocusChangedListener() {
             @Override
@@ -154,8 +148,8 @@
         };
         mCarAppFocusManager.requestAppFocus(CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION,
                 ownershipCallback);
-        assertTrue(mCarAppFocusManager.isOwningFocus(ownershipCallback,
-                CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION));
+        assertThat(mCarAppFocusManager.isOwningFocus(ownershipCallback,
+                CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION)).isTrue();
 
         Log.i(TAG, "Instrument cluster: " + mCarNavigationManager.getInstrumentClusterInfo());
 
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarPackageManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarPackageManagerTest.java
index 959f3db..b1b177d 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarPackageManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarPackageManagerTest.java
@@ -18,77 +18,19 @@
 
 import android.car.Car;
 import android.car.content.pm.CarPackageManager;
-import android.content.ComponentName;
-import android.content.ServiceConnection;
-import android.os.IBinder;
-import android.os.Looper;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.MediumTest;
 
-import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
-import org.junit.After;
-import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-
-@RunWith(AndroidJUnit4.class)
 @MediumTest
-public class CarPackageManagerTest extends AndroidTestCase {
-    private static final long DEFAULT_WAIT_TIMEOUT_MS = 3000;
-
-    private final Semaphore mConnectionWait = new Semaphore(0);
-
-    private Car mCar;
-    private CarPackageManager mCarPackageManager;
-
-    private final ServiceConnection mConnectionListener = new ServiceConnection() {
-
-        @Override
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            assertMainThread();
-            mConnectionWait.release();
-        }
-
-        @Override
-        public void onServiceDisconnected(ComponentName name) {
-            assertMainThread();
-        }
-
-    };
-
-    private void assertMainThread() {
-        assertTrue(Looper.getMainLooper().isCurrentThread());
-    }
-    private void waitForConnection(long timeoutMs) throws InterruptedException {
-        mConnectionWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS);
-    }
-
-    @Before
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        mCar = Car.createCar(
-            InstrumentationRegistry.getInstrumentation().getContext(), mConnectionListener);
-        mCar.connect();
-        waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
-        mCarPackageManager = (CarPackageManager) mCar.getCarManager(Car.PACKAGE_SERVICE);
-        assertNotNull(mCarPackageManager);
-    }
-
-    @After
-    @Override
-    public void tearDown() throws Exception {
-        super.tearDown();
-        mCar.disconnect();
-    }
+public class CarPackageManagerTest extends CarApiTestBase {
 
     @Test
     public void testCreate() throws Exception {
-        //nothing to do for now
+        CarPackageManager carPackageManager = (CarPackageManager) getCar()
+                .getCarManager(Car.PACKAGE_SERVICE);
+        assertThat(carPackageManager).isNotNull();
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarProjectionManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarProjectionManagerTest.java
index d0a061d..0d4d64b 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarProjectionManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarProjectionManagerTest.java
@@ -15,6 +15,10 @@
  */
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
 import android.app.Service;
 import android.car.Car;
 import android.car.CarProjectionManager;
@@ -24,35 +28,26 @@
 import android.os.Binder;
 import android.os.IBinder;
 import android.test.suitebuilder.annotation.LargeTest;
-import android.test.suitebuilder.annotation.Suppress;
 
 import androidx.test.filters.RequiresDevice;
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Before;
+import org.junit.Ignore;
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(AndroidJUnit4.class)
 @LargeTest
 public class CarProjectionManagerTest extends CarApiTestBase {
     private static final String TAG = CarProjectionManagerTest.class.getSimpleName();
 
-    private final CarProjectionManager.CarProjectionListener mListener =
-            new CarProjectionManager.CarProjectionListener() {
-                @Override
-                public void onVoiceAssistantRequest(boolean fromLongPress) {
-                    //void
-                }
-            };
+    private final CarProjectionManager.CarProjectionListener mListener = (fromLongPress) -> { };
 
     private CarProjectionManager mManager;
 
-    public static class TestService extends Service {
+    public static final class TestService extends Service {
         public static Object mLock = new Object();
         private static boolean sBound;
         private final Binder mBinder = new Binder() {};
@@ -76,11 +71,9 @@
     }
 
     @Before
-    @Override
     public void setUp() throws Exception {
-        super.setUp();
         mManager = (CarProjectionManager) getCar().getCarManager(Car.PROJECTION_SERVICE);
-        assertNotNull(mManager);
+        assertThat(mManager).isNotNull();
     }
 
     @Test
@@ -92,18 +85,15 @@
 
     @Test
     public void testRegisterListenersHandleBadInput() throws Exception {
-        try {
-            mManager.registerProjectionListener(null, CarProjectionManager.PROJECTION_VOICE_SEARCH);
-            fail();
-        } catch (NullPointerException e) {
-            // expected.
-        }
+        assertThrows(NullPointerException.class, () -> mManager.registerProjectionListener(null,
+                CarProjectionManager.PROJECTION_VOICE_SEARCH));
     }
 
+    @Test
     public void testRegisterProjectionRunner() throws Exception {
         Intent intent = new Intent(
                 InstrumentationRegistry.getInstrumentation().getContext(), TestService.class);
-        assertFalse(TestService.getBound());
+        assertThat(TestService.getBound()).isFalse();
         mManager.registerProjectionRunner(intent);
         synchronized (TestService.mLock) {
             try {
@@ -112,13 +102,14 @@
                 // Do nothing
             }
         }
-        assertTrue(TestService.getBound());
+        assertThat(TestService.getBound()).isTrue();
         mManager.unregisterProjectionRunner(intent);
     }
 
-    //TODO(b/120081013): move this test to CTS
-    @Suppress
+
+    @Ignore("//TODO(b/120081013): move this test to CTS")
     @RequiresDevice
+    @Test
     public void testAccessPoint() throws Exception {
         CountDownLatch startedLatch = new CountDownLatch(1);
 
@@ -129,7 +120,7 @@
             }
         });
 
-        assertTrue(startedLatch.await(30, TimeUnit.SECONDS));
+        assertThat(startedLatch.await(30, TimeUnit.SECONDS)).isTrue();
 
         mManager.stopProjectionAccessPoint();
     }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarPropertyConfigTest.java b/tests/android_car_api_test/src/android/car/apitest/CarPropertyConfigTest.java
index 5de7504..ed0200f 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarPropertyConfigTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarPropertyConfigTest.java
@@ -16,16 +16,15 @@
 
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
 import android.car.VehicleAreaType;
 import android.car.hardware.CarPropertyConfig;
 import android.test.suitebuilder.annotation.MediumTest;
 
-import androidx.test.runner.AndroidJUnit4;
-
-import static org.junit.Assert.assertArrayEquals;
-
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -34,7 +33,6 @@
 /**
  * Unit tests for {@link CarPropertyConfig}
  */
-@RunWith(AndroidJUnit4.class)
 @MediumTest
 public class CarPropertyConfigTest extends CarPropertyTestBase {
 
@@ -50,17 +48,17 @@
                 .addAreaConfig(WINDOW_PASSENGER, 10f, 20f)
                 .build();
 
-        assertEquals(FLOAT_PROPERTY_ID, config.getPropertyId());
-        assertEquals(CAR_AREA_TYPE, config.getAreaType());
-        assertEquals(Float.class, config.getPropertyType());
-        assertEquals(2, config.getAreaCount());
+        assertThat(config.getPropertyId()).isEqualTo(FLOAT_PROPERTY_ID);
+        assertThat(config.getAreaType()).isEqualTo(CAR_AREA_TYPE);
+        assertThat(config.getPropertyType()).isEqualTo(Float.class);
+        assertThat(config.getAreaCount()).isEqualTo(2);
 
         // We didn't assign any restrictions to WINDOW_DRIVER area.
-        assertNull(config.getMinValue(WINDOW_DRIVER));
-        assertNull(config.getMaxValue(WINDOW_DRIVER));
+        assertThat(config.getMinValue(WINDOW_DRIVER)).isNull();
+        assertThat(config.getMaxValue(WINDOW_DRIVER)).isNull();
 
-        assertEquals(10f, config.getMinValue(WINDOW_PASSENGER));
-        assertEquals(20f, config.getMaxValue(WINDOW_PASSENGER));
+        assertThat(config.getMinValue(WINDOW_PASSENGER)).isEqualTo(10f);
+        assertThat(config.getMaxValue(WINDOW_PASSENGER)).isEqualTo(20f);
 
         return config;
     }
@@ -72,17 +70,17 @@
         writeToParcel(config);
         CarPropertyConfig<Float> configRead = readFromParcel();
 
-        assertEquals(FLOAT_PROPERTY_ID, configRead.getPropertyId());
-        assertEquals(CAR_AREA_TYPE, configRead.getAreaType());
-        assertEquals(Float.class, configRead.getPropertyType());
-        assertEquals(2, configRead.getAreaCount());
+        assertThat(configRead.getPropertyId()).isEqualTo(FLOAT_PROPERTY_ID);
+        assertThat(configRead.getAreaType()).isEqualTo(CAR_AREA_TYPE);
+        assertThat(configRead.getPropertyType()).isEqualTo(Float.class);
+        assertThat(configRead.getAreaCount()).isEqualTo(2);
 
         // We didn't assign any restrictions to WINDOW_DRIVER area.
-        assertNull(configRead.getMinValue(WINDOW_DRIVER));
-        assertNull(configRead.getMaxValue(WINDOW_DRIVER));
+        assertThat(configRead.getMinValue(WINDOW_DRIVER)).isNull();
+        assertThat(configRead.getMaxValue(WINDOW_DRIVER)).isNull();
 
-        assertEquals(10f, configRead.getMinValue(WINDOW_PASSENGER));
-        assertEquals(20f, configRead.getMaxValue(WINDOW_PASSENGER));
+        assertThat(configRead.getMinValue(WINDOW_PASSENGER)).isEqualTo(10f);
+        assertThat(configRead.getMaxValue(WINDOW_PASSENGER)).isEqualTo(20f);
     }
 
     @Test
@@ -97,16 +95,16 @@
         writeToParcel(config);
         CarPropertyConfig<Integer> configRead = readFromParcel();
 
-        assertEquals(INT_PROPERTY_ID, configRead.getPropertyId());
-        assertEquals(CAR_AREA_TYPE, configRead.getAreaType());
-        assertEquals(Integer.class, configRead.getPropertyType());
-        assertEquals(2, configRead.getAreaCount());
+        assertThat(configRead.getPropertyId()).isEqualTo(INT_PROPERTY_ID);
+        assertThat(configRead.getAreaType()).isEqualTo(CAR_AREA_TYPE);
+        assertThat(configRead.getPropertyType()).isEqualTo(Integer.class);
+        assertThat(configRead.getAreaCount()).isEqualTo(2);
 
-        assertNull(configRead.getMinValue(WINDOW_DRIVER));
-        assertNull(configRead.getMaxValue(WINDOW_DRIVER));
+        assertThat(configRead.getMinValue(WINDOW_DRIVER)).isNull();
+        assertThat(configRead.getMaxValue(WINDOW_DRIVER)).isNull();
 
-        assertEquals(expectedMinValue, configRead.getMinValue(WINDOW_PASSENGER));
-        assertEquals(expectedMaxValue, configRead.getMaxValue(WINDOW_PASSENGER));
+        assertThat(configRead.getMinValue(WINDOW_PASSENGER)).isEqualTo(expectedMinValue);
+        assertThat(configRead.getMaxValue(WINDOW_PASSENGER)).isEqualTo(expectedMaxValue);
     }
 
     @Test
@@ -121,16 +119,16 @@
         writeToParcel(config);
         CarPropertyConfig<Long> configRead = readFromParcel();
 
-        assertEquals(LONG_PROPERTY_ID, configRead.getPropertyId());
-        assertEquals(CAR_AREA_TYPE, configRead.getAreaType());
-        assertEquals(Long.class, configRead.getPropertyType());
-        assertEquals(2, configRead.getAreaCount());
+        assertThat(configRead.getPropertyId()).isEqualTo(LONG_PROPERTY_ID);
+        assertThat(configRead.getAreaType()).isEqualTo(CAR_AREA_TYPE);
+        assertThat(configRead.getPropertyType()).isEqualTo(Long.class);
+        assertThat(configRead.getAreaCount()).isEqualTo(2);
 
-        assertNull(configRead.getMinValue(WINDOW_DRIVER));
-        assertNull(configRead.getMaxValue(WINDOW_DRIVER));
+        assertThat(configRead.getMinValue(WINDOW_DRIVER)).isNull();
+        assertThat(configRead.getMaxValue(WINDOW_DRIVER)).isNull();
 
-        assertEquals(expectedMinValue, configRead.getMinValue(WINDOW_PASSENGER));
-        assertEquals(expectedMaxValue, configRead.getMaxValue(WINDOW_PASSENGER));
+        assertThat(configRead.getMinValue(WINDOW_PASSENGER)).isEqualTo(expectedMinValue);
+        assertThat(configRead.getMaxValue(WINDOW_PASSENGER)).isEqualTo(expectedMaxValue);
     }
 
     @Test
@@ -145,42 +143,38 @@
         writeToParcel(config);
         CarPropertyConfig<Integer[]> configRead = readFromParcel();
 
-        assertEquals(INT_ARRAY_PROPERTY_ID, configRead.getPropertyId());
-        assertEquals(CAR_AREA_TYPE, configRead.getAreaType());
-        assertEquals(Integer[].class, configRead.getPropertyType());
-        assertEquals(2, configRead.getAreaCount());
+        assertThat(configRead.getPropertyId()).isEqualTo(INT_ARRAY_PROPERTY_ID);
+        assertThat(configRead.getAreaType()).isEqualTo(CAR_AREA_TYPE);
+        assertThat(configRead.getPropertyType()).isEqualTo(Integer[].class);
+        assertThat(configRead.getAreaCount()).isEqualTo(2);
 
         // We didn't assign any restrictions to WINDOW_DRIVER area.
-        assertNull(configRead.getMinValue(WINDOW_PASSENGER));
-        assertNull(configRead.getMaxValue(WINDOW_PASSENGER));
-        assertNull(configRead.getMinValue(WINDOW_DRIVER));
-        assertNull(configRead.getMaxValue(WINDOW_DRIVER));
+        assertThat(configRead.getMinValue(WINDOW_PASSENGER)).isNull();
+        assertThat(configRead.getMaxValue(WINDOW_PASSENGER)).isNull();
+        assertThat(configRead.getMinValue(WINDOW_DRIVER)).isNull();
+        assertThat(configRead.getMaxValue(WINDOW_DRIVER)).isNull();
     }
 
     @Test
     public void testWriteReadUnexpectedType() {
         CarPropertyConfig<Float> config = createFloatPropertyConfig();
-
         writeToParcel(config);
 
-        try {
-            CarPropertyConfig<Integer> integerConfig = readFromParcel();
+        CarPropertyConfig<Integer> integerConfig = readFromParcel();
+
+        // Wrote float, attempted to read integer.
+        assertThrows(ClassCastException.class, () -> {
             Integer value = integerConfig.getMinValue(WINDOW_PASSENGER);
-            fail(String.valueOf(value));
-        } catch (ClassCastException expected) {
-            // Expected. Wrote float, attempted to read integer.
-        }
+        });
 
         // Type casting from raw CarPropertyConfig should be fine, just sanity check.
-        CarPropertyConfig rawTypeConfig = readFromParcel();
-        assertEquals(10f, rawTypeConfig.getMinValue(WINDOW_PASSENGER));
+        CarPropertyConfig<?> rawTypeConfig = readFromParcel();
+        assertThat(rawTypeConfig.getMinValue(WINDOW_PASSENGER)).isEqualTo(10f);
 
-        try {
-            int intValue = (Integer) rawTypeConfig.getMinValue(WINDOW_PASSENGER);
-            fail(String.valueOf(intValue));
-        } catch (ClassCastException expected) {
-            // Expected. Wrote float, attempted to read integer.
-        }
+        // Wrote float, attempted to read integer.
+        assertThrows(ClassCastException.class, () -> {
+            int value = (Integer) rawTypeConfig.getMinValue(WINDOW_PASSENGER);
+        });
     }
 
     @Test
@@ -197,11 +191,10 @@
 
         CarPropertyConfig<Object> configRead = readFromParcel();
 
-        assertEquals(MIXED_TYPE_PROPERTY_ID, configRead.getPropertyId());
-        assertEquals(VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL, configRead.getAreaType());
-        assertEquals(Object.class, configRead.getPropertyType());
-        assertEquals(1, configRead.getAreaCount());
-        assertArrayEquals(configArray.toArray(), configRead.getConfigArray().toArray());
-
+        assertThat(configRead.getPropertyId()).isEqualTo(MIXED_TYPE_PROPERTY_ID);
+        assertThat(configRead.getAreaType()).isEqualTo(VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL);
+        assertThat(configRead.getPropertyType()).isEqualTo(Object.class);
+        assertThat(configRead.getAreaCount()).isEqualTo(1);
+        assertThat(configRead.getConfigArray()).containsExactlyElementsIn(configArray).inOrder();
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarPropertyTestBase.java b/tests/android_car_api_test/src/android/car/apitest/CarPropertyTestBase.java
index c8020ea..9649dc7 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarPropertyTestBase.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarPropertyTestBase.java
@@ -20,15 +20,13 @@
 import android.car.hardware.CarPropertyValue;
 import android.os.Parcel;
 import android.os.Parcelable;
-import android.test.AndroidTestCase;
 
 import org.junit.After;
-import org.junit.Before;
 
 /**
  * Base class to test {@link CarPropertyConfig} and {@link CarPropertyValue}.
  */
-public class CarPropertyTestBase extends AndroidTestCase {
+public class CarPropertyTestBase {
 
     protected static final int FLOAT_PROPERTY_ID        = 0x1160BEEF;
     protected static final int INT_ARRAY_PROPERTY_ID    = 0x0041BEEF;
@@ -40,20 +38,11 @@
     protected static final int WINDOW_DRIVER    = 0x00000001;
     protected static final int WINDOW_PASSENGER = 0x00000002;
 
-    private Parcel mParcel;
-
-    @Before
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        mParcel = Parcel.obtain();
-    }
+    private final Parcel mParcel = Parcel.obtain();
 
     @After
-    @Override
-    public void tearDown() throws Exception {
+    public void recycleParcel() throws Exception {
         mParcel.recycle();
-        super.tearDown();
     }
 
     protected  <T extends Parcelable> T readFromParcel() {
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarPropertyValueTest.java b/tests/android_car_api_test/src/android/car/apitest/CarPropertyValueTest.java
index 30f6685..97fe7ba 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarPropertyValueTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarPropertyValueTest.java
@@ -18,20 +18,15 @@
 
 import android.car.VehicleAreaType;
 import android.car.hardware.CarPropertyValue;
-
-import static org.junit.Assert.assertArrayEquals;
-
 import android.test.suitebuilder.annotation.MediumTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 /**
  * Unit tests for {@link CarPropertyValue}
  */
-@RunWith(AndroidJUnit4.class)
 @MediumTest
 public class CarPropertyValueTest extends CarPropertyTestBase {
 
@@ -43,20 +38,19 @@
         writeToParcel(floatValue);
 
         CarPropertyValue<Float> valueRead = readFromParcel();
-        assertEquals(10f, valueRead.getValue());
+        assertThat(valueRead.getValue()).isEqualTo((Object) 10f);
     }
 
     @Test
     public void testMixedValue() {
-        Object[] values = {"android", 1, 2.0};
         CarPropertyValue<Object> mixedValue =
                 new CarPropertyValue<>(MIXED_TYPE_PROPERTY_ID,
                         VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL,
-                        values);
+                        new Object[] { "android", 1, 2.0 });
         writeToParcel(mixedValue);
         CarPropertyValue<Object[]> valueRead = readFromParcel();
-        assertArrayEquals(values, valueRead.getValue());
-        assertEquals(MIXED_TYPE_PROPERTY_ID, valueRead.getPropertyId());
-        assertEquals(VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL, valueRead.getAreaId());
+        assertThat(valueRead.getValue()).asList().containsExactly("android", 1, 2.0).inOrder();
+        assertThat(valueRead.getPropertyId()).isEqualTo(MIXED_TYPE_PROPERTY_ID);
+        assertThat(valueRead.getAreaId()).isEqualTo(VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL);
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarSensorManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarSensorManagerTest.java
index 0d3a93c..95bc181 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarSensorManagerTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarSensorManagerTest.java
@@ -18,64 +18,20 @@
 
 import android.car.Car;
 import android.car.hardware.CarSensorManager;
-import android.content.ComponentName;
-import android.content.ServiceConnection;
-import android.os.IBinder;
-import android.os.Looper;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.MediumTest;
 
-import org.junit.After;
-import org.junit.Before;
+import static com.google.common.truth.Truth.assertThat;
 
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
+import org.junit.Test;
 
 @MediumTest
-public class CarSensorManagerTest extends AndroidTestCase {
-    private static final long DEFAULT_WAIT_TIMEOUT_MS = 3000;
+public class CarSensorManagerTest extends CarApiTestBase {
 
-    private final Semaphore mConnectionWait = new Semaphore(0);
-
-    private Car mCar;
-    private CarSensorManager mCarSensorManager;
-
-    private final ServiceConnection mConnectionListener = new ServiceConnection() {
-
-        @Override
-        public void onServiceDisconnected(ComponentName name) {
-            assertMainThread();
-        }
-
-        @Override
-        public void onServiceConnected(ComponentName name, IBinder service) {
-            assertMainThread();
-            mConnectionWait.release();
-        }
-    };
-
-    private void assertMainThread() {
-        assertTrue(Looper.getMainLooper().isCurrentThread());
-    }
-    private void waitForConnection(long timeoutMs) throws InterruptedException {
-        mConnectionWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS);
+    @Test
+    public void testCreate() throws Exception {
+        CarSensorManager carSensorManager = (CarSensorManager) getCar()
+                .getCarManager(Car.SENSOR_SERVICE);
+        assertThat(carSensorManager).isNotNull();
     }
 
-    @Before
-    @Override
-    protected void setUp() throws Exception {
-        super.setUp();
-        mCar = Car.createCar(getContext(), mConnectionListener);
-        mCar.connect();
-        waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
-        mCarSensorManager =
-                (CarSensorManager) mCar.getCarManager(Car.SENSOR_SERVICE);
-    }
-
-    @After
-    @Override
-    protected void tearDown() throws Exception {
-        super.tearDown();
-        mCar.disconnect();
-    }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarTest.java b/tests/android_car_api_test/src/android/car/apitest/CarTest.java
index d483b72..d1532d4 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarTest.java
@@ -16,30 +16,33 @@
 
 package android.car.apitest;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
 import android.car.Car;
 import android.car.ICar;
 import android.car.hardware.CarSensorManager;
 import android.content.ComponentName;
+import android.content.Context;
 import android.content.ServiceConnection;
 import android.os.IBinder;
-import android.os.Looper;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
 import androidx.test.platform.app.InstrumentationRegistry;
-import androidx.test.runner.AndroidJUnit4;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class CarTest extends AndroidTestCase {
+public class CarTest {
     private static final long DEFAULT_WAIT_TIMEOUT_MS = 3000;
 
+    private final Context mContext = InstrumentationRegistry.getInstrumentation()
+            .getTargetContext();
+
     private final Semaphore mConnectionWait = new Semaphore(0);
 
     private ICar mICar;
@@ -48,76 +51,64 @@
 
         @Override
         public void onServiceDisconnected(ComponentName name) {
-            assertMainThread();
+            CarApiTestBase.assertMainThread();
         }
 
         @Override
         public void onServiceConnected(ComponentName name, IBinder service) {
-            assertMainThread();
+            CarApiTestBase.assertMainThread();
             mICar = ICar.Stub.asInterface(service);
             mConnectionWait.release();
         }
     };
 
-    private void assertMainThread() {
-        assertTrue(Looper.getMainLooper().isCurrentThread());
-    }
-
     private void waitForConnection(long timeoutMs) throws InterruptedException {
         mConnectionWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS);
     }
 
     @Test
     public void testCarConnection() throws Exception {
-        Car car = Car.createCar(
-                InstrumentationRegistry.getInstrumentation().getContext(), mConnectionListener);
-        assertFalse(car.isConnected());
-        assertFalse(car.isConnecting());
+        Car car = Car.createCar(mContext, mConnectionListener);
+        assertThat(car.isConnected()).isFalse();
+        assertThat(car.isConnecting()).isFalse();
         car.connect();
         // TODO fix race here
         // assertTrue(car.isConnecting()); // This makes test flaky.
         waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
-        assertTrue(car.isConnected());
-        assertFalse(car.isConnecting());
+        assertThat(car.isConnected()).isTrue();
+        assertThat(car.isConnecting()).isFalse();
         CarSensorManager carSensorManager =
                 (CarSensorManager) car.getCarManager(Car.SENSOR_SERVICE);
-        assertNotNull(carSensorManager);
+        assertThat(carSensorManager).isNotNull();
         CarSensorManager carSensorManager2 =
                 (CarSensorManager) car.getCarManager(Car.SENSOR_SERVICE);
-        assertEquals(carSensorManager, carSensorManager2);
+        assertThat(carSensorManager2).isSameAs(carSensorManager);
         Object noSuchService = car.getCarManager("No such service");
-        assertNull(noSuchService);
+        assertThat(noSuchService).isNull();
         // double disconnect should be safe.
         car.disconnect();
         car.disconnect();
-        assertFalse(car.isConnected());
-        assertFalse(car.isConnecting());
+        assertThat(car.isConnected()).isFalse();
+        assertThat(car.isConnecting()).isFalse();
     }
 
     @Test
     public void testDoubleConnect() throws Exception {
-        Car car = Car.createCar(
-                InstrumentationRegistry.getInstrumentation().getContext(), mConnectionListener);
-        assertFalse(car.isConnected());
-        assertFalse(car.isConnecting());
+        Car car = Car.createCar(mContext, mConnectionListener);
+        assertThat(car.isConnected()).isFalse();
+        assertThat(car.isConnecting()).isFalse();
         car.connect();
-        try {
-            car.connect();
-            fail("dobule connect should throw");
-        } catch (IllegalStateException e) {
-            // expected
-        }
+        assertThrows(IllegalStateException.class, () -> car.connect());
         car.disconnect();
     }
 
     @Test
     public void testConstructorWithICar() throws Exception {
-        Car car = Car.createCar(
-                InstrumentationRegistry.getInstrumentation().getContext(), mConnectionListener);
+        Car car = Car.createCar(mContext, mConnectionListener);
         car.connect();
         waitForConnection(DEFAULT_WAIT_TIMEOUT_MS);
-        assertNotNull(mICar);
-        Car car2 = new Car(InstrumentationRegistry.getInstrumentation().getContext(), mICar, null);
-        assertTrue(car2.isConnected());
+        assertThat(mICar).isNotNull();
+        Car car2 = new Car(mContext, mICar, null);
+        assertThat(car2.isConnected()).isTrue();
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarUserManagerTest.java b/tests/android_car_api_test/src/android/car/apitest/CarUserManagerTest.java
new file mode 100644
index 0000000..e18a200
--- /dev/null
+++ b/tests/android_car_api_test/src/android/car/apitest/CarUserManagerTest.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (C) 2020 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 android.car.apitest;
+
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STOPPED;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STOPPING;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKED;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING;
+
+import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
+
+import static org.junit.Assert.fail;
+
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.app.IActivityManager;
+import android.car.Car;
+import android.car.testapi.BlockingUserLifecycleListener;
+import android.car.user.CarUserManager;
+import android.car.user.CarUserManager.UserLifecycleEvent;
+import android.car.user.UserSwitchResult;
+import android.content.pm.UserInfo;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.util.Log;
+
+import com.android.internal.infra.AndroidFuture;
+
+import org.junit.AfterClass;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+import java.util.List;
+import java.util.concurrent.Executor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+public final class CarUserManagerTest extends CarApiTestBase {
+
+    private static final String TAG = CarUserManagerTest.class.getSimpleName();
+
+    private static final int SWITCH_TIMEOUT_MS = 40_000;
+    private static final int STOP_TIMEOUT_MS = 300_000;
+
+    /**
+     * Stopping the user takes a while, even when calling force stop - change it to false if this
+     * test becomes flaky.
+     */
+    private static final boolean TEST_STOP = true;
+
+    private static final UserManager sUserManager = UserManager.get(sContext);
+
+    private static int sInitialUserId = UserHandle.USER_NULL;
+    private static int sNewUserId = UserHandle.USER_NULL;
+
+    private CarUserManager mCarUserManager;
+
+    @BeforeClass
+    public static void createUserFixture() {
+        sInitialUserId = ActivityManager.getCurrentUser();
+        Log.i(TAG, "Running test as user " + sInitialUserId);
+
+        sNewUserId = createNewUser("Main", /* isGuest= */ false).id;
+    }
+
+    @AfterClass
+    public static void removeUserFixture() {
+        if (sNewUserId == UserHandle.USER_NULL) {
+            Log.w(TAG, "No need to remove user" + sNewUserId);
+            return;
+        }
+
+        Log.i(TAG, "Switching back to " + sInitialUserId);
+        switchUserDirectly(sInitialUserId);
+
+        Log.i(TAG, "Removing user" + sNewUserId);
+        if (!sUserManager.removeUser(sNewUserId)) {
+            Log.wtf(TAG, "Failed to remove user " + sNewUserId);
+        }
+    }
+
+    @Before
+    public void setManager() throws Exception {
+        mCarUserManager = (CarUserManager) getCar().getCarManager(Car.CAR_USER_SERVICE);
+    }
+
+    @Test
+    public void testLifecycleListener() throws Exception {
+        int oldUserId = sInitialUserId;
+        int newUserId = sNewUserId;
+
+        BlockingUserLifecycleListener startListener = new BlockingUserLifecycleListener.Builder()
+                .forUser(newUserId)
+                .setTimeout(SWITCH_TIMEOUT_MS)
+                .addExpectedEvent(USER_LIFECYCLE_EVENT_TYPE_STARTING)
+                .addExpectedEvent(USER_LIFECYCLE_EVENT_TYPE_SWITCHING)
+                .addExpectedEvent(USER_LIFECYCLE_EVENT_TYPE_UNLOCKING)
+                .addExpectedEvent(USER_LIFECYCLE_EVENT_TYPE_UNLOCKED)
+                .build();
+
+        Log.d(TAG, "registering start listener: " + startListener);
+        AtomicBoolean executedRef = new AtomicBoolean();
+
+        Executor mExecutor = (r) -> {
+            executedRef.set(true);
+            r.run();
+        };
+        mCarUserManager.addListener(mExecutor, startListener);
+
+        // Switch while listener is registered
+        switchUser(newUserId);
+
+        List<UserLifecycleEvent> startEvents = startListener.waitForEvents();
+        Log.d(TAG, "Received start events: " + startEvents);
+
+        // Make sure listener callback was executed in the proper threaqd
+        assertWithMessage("not executed on executor").that(executedRef.get()).isTrue();
+
+        // Assert user ids
+        for (UserLifecycleEvent event : startEvents) {
+            assertWithMessage("wrong userId on %s", event)
+                .that(event.getUserId()).isEqualTo(newUserId);
+            assertWithMessage("wrong userHandle on %s", event)
+                .that(event.getUserHandle().getIdentifier()).isEqualTo(newUserId);
+            if (event.getEventType() == USER_LIFECYCLE_EVENT_TYPE_SWITCHING) {
+                assertWithMessage("wrong previousUserId on %s", event)
+                    .that(event.getPreviousUserId()).isEqualTo(oldUserId);
+                assertWithMessage("wrong previousUserHandle on %s", event)
+                    .that(event.getPreviousUserHandle().getIdentifier()).isEqualTo(oldUserId);
+            }
+        }
+
+        Log.d(TAG, "unregistering start listener: " + startListener);
+        mCarUserManager.removeListener(startListener);
+
+        BlockingUserLifecycleListener stopListener = new BlockingUserLifecycleListener.Builder()
+                .forUser(newUserId)
+                .setTimeout(STOP_TIMEOUT_MS)
+                .addExpectedEvent(USER_LIFECYCLE_EVENT_TYPE_STOPPING)
+                .addExpectedEvent(USER_LIFECYCLE_EVENT_TYPE_STOPPED)
+                .build();
+
+        Log.d(TAG, "registering stop listener: " + stopListener);
+        mCarUserManager.addListener(mExecutor, stopListener);
+
+        // Switch back to the previous user
+        switchUser(oldUserId);
+
+        // Must force stop the user, otherwise it can take minutes for its process to finish
+        forceStopUser(newUserId);
+
+        if (TEST_STOP) {
+            // waitForEvents() will also return events for previous user...
+            List<UserLifecycleEvent> allEvents = stopListener.waitForEvents();
+            Log.d(TAG, "All received events on stopListener: " + allEvents);
+            //... so we need to check for just the epected events
+            List<UserLifecycleEvent> stopEvents = stopListener.getExpectedEventsReceived();
+            Log.d(TAG, "Relevant stop events: " + stopEvents);
+
+            // Assert user ids
+            for (UserLifecycleEvent event : stopEvents) {
+                assertWithMessage("wrong userId on %s", event)
+                    .that(event.getUserId()).isEqualTo(newUserId);
+                assertWithMessage("wrong userHandle on %s", event)
+                    .that(event.getUserHandle().getIdentifier()).isEqualTo(newUserId);
+            }
+        }
+
+        // Make sure unregistered listener din't receive any more events
+
+        List<UserLifecycleEvent> allStartEvents = startListener.getAllReceivedEvents();
+        Log.d(TAG, "All start events: " + startEvents);
+        assertThat(allStartEvents).isSameAs(startEvents);
+
+        Log.d(TAG, "unregistering stop listener: " + stopListener);
+        mCarUserManager.removeListener(stopListener);
+    }
+
+    @NonNull
+    private static UserInfo createNewUser(String name, boolean isGuest) {
+        name = "CarUserManagerTest." + name;
+        Log.i(TAG, "Creating new user " + name);
+        UserInfo newUser = isGuest ? sUserManager.createGuest(sContext, name)
+                : sUserManager.createUser(name, /* flags= */ 0);
+
+        Log.i(TAG, "Created new user: " + newUser.toFullString());
+        return newUser;
+    }
+
+    private void switchUser(@UserIdInt int userId) throws Exception {
+        Log.i(TAG, "Switching to user " + userId + " using CarUserManager");
+
+        AndroidFuture<UserSwitchResult> future = mCarUserManager.switchUser(userId);
+        UserSwitchResult result = future.get(SWITCH_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        Log.d(TAG, "Result: " + result);
+
+        // TODO(b/155326051): use result.isSuccess()
+        if (result.getStatus() != UserSwitchResult.STATUS_SUCCESSFUL) {
+            fail("Could not switch to user " + userId + ": " + result);
+        }
+    }
+
+    // TODO: ideally should use switchUser(), but that requires CarUserManager, which is not static.
+    private static void switchUserDirectly(@UserIdInt int userId) {
+        Log.i(TAG, "Switching to user " + userId + " using AM");
+
+        ActivityManager am = sContext.getSystemService(ActivityManager.class);
+        if (!am.switchUser(UserHandle.of(userId))) {
+            fail("Could not switch to user " + userId + " using ActivityManager");
+        }
+    }
+
+    private static void forceStopUser(@UserIdInt int userId) throws RemoteException {
+        Log.i(TAG, "Force-stopping user " + userId);
+        IActivityManager am = ActivityManager.getService();
+        am.stopUser(userId, /* force=*/ true, /* listener= */ null);
+    }
+}
diff --git a/tests/android_car_api_test/src/android/car/apitest/CarUxRestrictionsConfigurationTest.java b/tests/android_car_api_test/src/android/car/apitest/CarUxRestrictionsConfigurationTest.java
index 6ca16b9..6f74074 100644
--- a/tests/android_car_api_test/src/android/car/apitest/CarUxRestrictionsConfigurationTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/CarUxRestrictionsConfigurationTest.java
@@ -26,6 +26,10 @@
 import static android.car.drivingstate.CarUxRestrictionsConfiguration.Builder.SpeedRange.MAX_SPEED;
 import static android.car.drivingstate.CarUxRestrictionsManager.UX_RESTRICTION_MODE_BASELINE;
 
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
 import android.car.drivingstate.CarUxRestrictions;
 import android.car.drivingstate.CarUxRestrictionsConfiguration;
 import android.car.drivingstate.CarUxRestrictionsConfiguration.Builder;
@@ -35,12 +39,8 @@
 import android.util.JsonWriter;
 
 import androidx.test.filters.SmallTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import junit.framework.TestCase;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
@@ -52,14 +52,13 @@
 /**
  * Unit test for UXR config and its subclasses.
  */
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class CarUxRestrictionsConfigurationTest extends TestCase {
+public class CarUxRestrictionsConfigurationTest {
 
     private static final String UX_RESTRICTION_MODE_PASSENGER = "passenger";
 
-    @Test
     // This test verifies the expected way to build config would succeed.
+    @Test
     public void testConstruction() {
         new Builder().build();
 
@@ -99,12 +98,14 @@
         CarUxRestrictionsConfiguration config = new Builder().build();
 
         CarUxRestrictions parkedRestrictions = config.getUxRestrictions(DRIVING_STATE_PARKED, 0f);
-        assertTrue(parkedRestrictions.isRequiresDistractionOptimization());
-        assertEquals(parkedRestrictions.getActiveRestrictions(), UX_RESTRICTIONS_FULLY_RESTRICTED);
+        assertThat(parkedRestrictions.isRequiresDistractionOptimization()).isTrue();
+        assertThat(parkedRestrictions.getActiveRestrictions())
+                .isEqualTo(UX_RESTRICTIONS_FULLY_RESTRICTED);
 
         CarUxRestrictions movingRestrictions = config.getUxRestrictions(DRIVING_STATE_MOVING, 1f);
-        assertTrue(movingRestrictions.isRequiresDistractionOptimization());
-        assertEquals(movingRestrictions.getActiveRestrictions(), UX_RESTRICTIONS_FULLY_RESTRICTED);
+        assertThat(movingRestrictions.isRequiresDistractionOptimization()).isTrue();
+        assertThat(movingRestrictions.getActiveRestrictions())
+                .isEqualTo(UX_RESTRICTIONS_FULLY_RESTRICTED);
     }
 
     @Test
@@ -112,10 +113,10 @@
         CarUxRestrictionsConfiguration config = new Builder()
                 .setUxRestrictions(DRIVING_STATE_MOVING, true, UX_RESTRICTIONS_FULLY_RESTRICTED)
                 .build();
-        assertTrue(config.getUxRestrictions(DRIVING_STATE_PARKED, 0f)
-                .isRequiresDistractionOptimization());
-        assertTrue(config.getUxRestrictions(DRIVING_STATE_IDLING, 0f)
-                .isRequiresDistractionOptimization());
+        assertThat(config.getUxRestrictions(DRIVING_STATE_PARKED, 0f)
+        .isRequiresDistractionOptimization()).isTrue();
+        assertThat(config.getUxRestrictions(DRIVING_STATE_IDLING, 0f)
+        .isRequiresDistractionOptimization()).isTrue();
     }
 
     @Test
@@ -125,12 +126,8 @@
                 true, UX_RESTRICTIONS_NO_VIDEO);
         builder.setUxRestrictions(DRIVING_STATE_IDLING,
                 false, UX_RESTRICTIONS_BASELINE);
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
@@ -144,12 +141,7 @@
                 .setDistractionOptimizationRequired(true)
                 .setRestrictions(UX_RESTRICTIONS_FULLY_RESTRICTED)
                 .setSpeedRange(new Builder.SpeedRange(1f)));
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
@@ -162,8 +154,8 @@
                         .setSpeedRange(new Builder.SpeedRange(1f, 2f)))
                 .build();
 
-        assertTrue(config.getUxRestrictions(DRIVING_STATE_MOVING, 1f, UX_RESTRICTION_MODE_PASSENGER)
-                .isRequiresDistractionOptimization());
+        assertThat(config.getUxRestrictions(DRIVING_STATE_MOVING, 1f, UX_RESTRICTION_MODE_PASSENGER)
+                .isRequiresDistractionOptimization()).isTrue();
     }
 
     @Test
@@ -175,12 +167,7 @@
         builder.setUxRestrictions(DRIVING_STATE_MOVING,
                 new Builder.SpeedRange(2, MAX_SPEED),
                 true, UX_RESTRICTIONS_FULLY_RESTRICTED);
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
@@ -189,12 +176,7 @@
         builder.setUxRestrictions(DRIVING_STATE_MOVING,
                 new Builder.SpeedRange(1, MAX_SPEED),
                 true, UX_RESTRICTIONS_FULLY_RESTRICTED);
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
@@ -206,12 +188,7 @@
         builder.setUxRestrictions(DRIVING_STATE_MOVING,
                 new Builder.SpeedRange(4), true,
                 UX_RESTRICTIONS_FULLY_RESTRICTED);
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
@@ -223,25 +200,14 @@
         builder.setUxRestrictions(DRIVING_STATE_MOVING,
                 new Builder.SpeedRange(8), true,
                 UX_RESTRICTIONS_FULLY_RESTRICTED);
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
     public void testBuilderValidation_NonMovingStateCannotUseSpeedRange() {
         Builder builder = new Builder();
-        try {
-            builder.setUxRestrictions(DRIVING_STATE_PARKED,
-                    new Builder.SpeedRange(0, 5), true,
-                    UX_RESTRICTIONS_FULLY_RESTRICTED);
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.setUxRestrictions(DRIVING_STATE_PARKED,
+                new Builder.SpeedRange(0, 5), true, UX_RESTRICTIONS_FULLY_RESTRICTED));
     }
 
     @Test
@@ -254,12 +220,7 @@
                 .setDistractionOptimizationRequired(true)
                 .setRestrictions(UX_RESTRICTIONS_FULLY_RESTRICTED)
                 .setSpeedRange(new Builder.SpeedRange(1f)));
-        try {
-            builder.build();
-            fail();
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> builder.build());
     }
 
     @Test
@@ -271,38 +232,22 @@
 
     @Test
     public void testSpeedRange_NoNegativeMin() {
-        try {
-            new Builder.SpeedRange(-2f, 1f);
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> new Builder.SpeedRange(-2f, 1f));
     }
 
     @Test
     public void testSpeedRange_NoNegativeMax() {
-        try {
-            new Builder.SpeedRange(2f, -1f);
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> new Builder.SpeedRange(2f, -1f));
     }
 
     @Test
     public void testSpeedRange_MinCannotBeMaxSpeed() {
-        try {
-            new Builder.SpeedRange(MAX_SPEED, 1f);
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> new Builder.SpeedRange(MAX_SPEED, 1f));
     }
 
     @Test
     public void testSpeedRange_MinGreaterThanMax() {
-        try {
-            new Builder.SpeedRange(5f, 2f);
-        } catch (Exception e) {
-            // Expected exception.
-        }
+        assertThrows(Exception.class, () -> new Builder.SpeedRange(5f, 2f));
     }
 
     @Test
@@ -311,8 +256,8 @@
                 new Builder.SpeedRange(1f);
         Builder.SpeedRange s2 =
                 new Builder.SpeedRange(2f);
-        assertTrue(s1.compareTo(s2) < 0);
-        assertTrue(s2.compareTo(s1) > 0);
+        assertThat(s1.compareTo(s2)).isLessThan(0);
+        assertThat(s2.compareTo(s1)).isGreaterThan(0);
     }
 
     @Test
@@ -321,7 +266,7 @@
                 new Builder.SpeedRange(1f);
         Builder.SpeedRange s2 =
                 new Builder.SpeedRange(1f);
-        assertEquals(0, s1.compareTo(s2));
+        assertThat(s1.compareTo(s2)).isEqualTo(0);
     }
 
     @Test
@@ -330,8 +275,8 @@
                 new Builder.SpeedRange(0f, 1f);
         Builder.SpeedRange s2 =
                 new Builder.SpeedRange(0f, 2f);
-        assertTrue(s1.compareTo(s2) < 0);
-        assertTrue(s2.compareTo(s1) > 0);
+        assertThat(s1.compareTo(s2)).isLessThan(0);
+        assertThat(s2.compareTo(s1)).isGreaterThan(0);
     }
 
     @Test
@@ -340,41 +285,42 @@
                 new Builder.SpeedRange(0f, 1f);
         Builder.SpeedRange s2 =
                 new Builder.SpeedRange(0f);
-        assertTrue(s1.compareTo(s2) < 0);
-        assertTrue(s2.compareTo(s1) > 0);
+        assertThat(s1.compareTo(s2)).isLessThan(0);
+        assertThat(s2.compareTo(s1)).isGreaterThan(0);
     }
 
     @Test
+    @SuppressWarnings("TruthSelfEquals")
     public void testSpeedRangeEquals() {
         Builder.SpeedRange s1, s2;
 
         s1 = new Builder.SpeedRange(0f);
-        assertEquals(s1, s1);
+        assertThat(s1).isEqualTo(s1);
 
         s1 = new Builder.SpeedRange(1f);
         s2 = new Builder.SpeedRange(1f);
-        assertEquals(0, s1.compareTo(s2));
-        assertEquals(s1, s2);
+        assertThat(s1.compareTo(s2)).isEqualTo(0);
+        assertThat(s2).isEqualTo(s1);
 
         s1 = new Builder.SpeedRange(0f, 1f);
         s2 = new Builder.SpeedRange(0f, 1f);
-        assertEquals(s1, s2);
+        assertThat(s2).isEqualTo(s1);
 
         s1 = new Builder.SpeedRange(0f, MAX_SPEED);
         s2 = new Builder.SpeedRange(0f, MAX_SPEED);
-        assertEquals(s1, s2);
+        assertThat(s2).isEqualTo(s1);
 
         s1 = new Builder.SpeedRange(0f);
         s2 = new Builder.SpeedRange(1f);
-        assertFalse(s1.equals(s2));
+        assertThat(s1).isNotEqualTo(s2);
 
         s1 = new Builder.SpeedRange(0f, 1f);
         s2 = new Builder.SpeedRange(0f, 2f);
-        assertFalse(s1.equals(s2));
+        assertThat(s1).isNotEqualTo(s2);
     }
 
     @Test
-    public void testJsonSerialization_DefaultConstructor() {
+    public void testJsonSerialization_DefaultConstructor() throws Exception {
         CarUxRestrictionsConfiguration config =
                 new Builder().build();
 
@@ -382,7 +328,7 @@
     }
 
     @Test
-    public void testJsonSerialization_RestrictionParameters() {
+    public void testJsonSerialization_RestrictionParameters() throws Exception {
         CarUxRestrictionsConfiguration config = new Builder()
                 .setMaxStringLength(1)
                 .setMaxCumulativeContentItems(1)
@@ -393,7 +339,7 @@
     }
 
     @Test
-    public void testJsonSerialization_NonMovingStateRestrictions() {
+    public void testJsonSerialization_NonMovingStateRestrictions() throws Exception {
         CarUxRestrictionsConfiguration config = new Builder()
                 .setUxRestrictions(DRIVING_STATE_PARKED, false, UX_RESTRICTIONS_BASELINE)
                 .build();
@@ -402,7 +348,7 @@
     }
 
     @Test
-    public void testJsonSerialization_MovingStateNoSpeedRange() {
+    public void testJsonSerialization_MovingStateNoSpeedRange() throws Exception {
         CarUxRestrictionsConfiguration config = new Builder()
                 .setUxRestrictions(DRIVING_STATE_MOVING, true, UX_RESTRICTIONS_FULLY_RESTRICTED)
                 .build();
@@ -411,7 +357,7 @@
     }
 
     @Test
-    public void testJsonSerialization_MovingStateWithSpeedRange() {
+    public void testJsonSerialization_MovingStateWithSpeedRange() throws Exception {
         CarUxRestrictionsConfiguration config = new Builder()
                 .setUxRestrictions(DRIVING_STATE_MOVING, new DrivingStateRestrictions()
                         .setDistractionOptimizationRequired(true)
@@ -427,7 +373,7 @@
     }
 
     @Test
-    public void testJsonSerialization_UxRestrictionMode() {
+    public void testJsonSerialization_UxRestrictionMode() throws Exception {
         CarUxRestrictionsConfiguration config = new Builder()
                 // Passenger mode
                 .setUxRestrictions(DRIVING_STATE_MOVING, new DrivingStateRestrictions()
@@ -501,15 +447,15 @@
 
         CarUxRestrictionsConfiguration deserialized = CarUxRestrictionsConfiguration.readJson(
                 new JsonReader(new StringReader(v1LegacyJsonFormat)), /* schemaVersion= */ 1);
-        assertEquals(expectedConfig, deserialized);
+        assertThat(deserialized).isEqualTo(expectedConfig);
     }
 
 
-    @Test(expected = IllegalArgumentException.class)
+    @Test
     public void testJsonSerialization_ReadUnsupportedVersion_ThrowsException() throws Exception {
         int unsupportedVersion = -1;
-        CarUxRestrictionsConfiguration deserialized = CarUxRestrictionsConfiguration.readJson(
-                new JsonReader(new StringReader("")), unsupportedVersion);
+        assertThrows(IllegalArgumentException.class, () -> CarUxRestrictionsConfiguration.readJson(
+                new JsonReader(new StringReader("")), unsupportedVersion));
     }
 
     @Test
@@ -585,15 +531,15 @@
         }
 
         String dump = new String(output.toByteArray());
-        assertTrue(dump.contains("Max String length"));
-        assertTrue(dump.contains("Max Cumulative Content Items"));
-        assertTrue(dump.contains("Max Content depth"));
-        assertTrue(dump.contains("State:moving"));
-        assertTrue(dump.contains("Speed Range"));
-        assertTrue(dump.contains("Requires DO?"));
-        assertTrue(dump.contains("Restrictions"));
-        assertTrue(dump.contains("passenger mode"));
-        assertTrue(dump.contains("baseline mode"));
+        assertThat(dump).contains("Max String length");
+        assertThat(dump).contains("Max Cumulative Content Items");
+        assertThat(dump).contains("Max Content depth");
+        assertThat(dump).contains("State:moving");
+        assertThat(dump).contains("Speed Range");
+        assertThat(dump).contains("Requires DO?");
+        assertThat(dump).contains("Restrictions");
+        assertThat(dump).contains("passenger mode");
+        assertThat(dump).contains("baseline mode");
     }
 
     @Test
@@ -605,11 +551,11 @@
                 .build();
 
         CarUxRestrictions restrictions = config.getUxRestrictions(DRIVING_STATE_PARKED, 0f);
-        assertTrue(restrictions.isRequiresDistractionOptimization());
-        assertEquals(UX_RESTRICTIONS_NO_VIDEO, restrictions.getActiveRestrictions());
+        assertThat(restrictions.isRequiresDistractionOptimization()).isTrue();
+        assertThat(restrictions.getActiveRestrictions()).isEqualTo(UX_RESTRICTIONS_NO_VIDEO);
 
-        assertTrue(restrictions.isSameRestrictions(
-                config.getUxRestrictions(DRIVING_STATE_PARKED, 0f, UX_RESTRICTION_MODE_BASELINE)));
+        assertThat(restrictions.isSameRestrictions(
+        config.getUxRestrictions(DRIVING_STATE_PARKED, 0f, UX_RESTRICTION_MODE_BASELINE))).isTrue();
     }
 
     @Test
@@ -626,12 +572,12 @@
 
         CarUxRestrictions passenger = config.getUxRestrictions(
                 DRIVING_STATE_PARKED, 0f, UX_RESTRICTION_MODE_PASSENGER);
-        assertFalse(passenger.isRequiresDistractionOptimization());
+        assertThat(passenger.isRequiresDistractionOptimization()).isFalse();
 
         CarUxRestrictions baseline = config.getUxRestrictions(
                 DRIVING_STATE_PARKED, 0f, UX_RESTRICTION_MODE_BASELINE);
-        assertTrue(baseline.isRequiresDistractionOptimization());
-        assertEquals(UX_RESTRICTIONS_NO_VIDEO, baseline.getActiveRestrictions());
+        assertThat(baseline.isRequiresDistractionOptimization()).isTrue();
+        assertThat(baseline.getActiveRestrictions()).isEqualTo(UX_RESTRICTIONS_NO_VIDEO);
     }
 
     @Test
@@ -644,8 +590,8 @@
 
         CarUxRestrictions passenger = config.getUxRestrictions(
                 DRIVING_STATE_PARKED, 0f, UX_RESTRICTION_MODE_PASSENGER);
-        assertTrue(passenger.isRequiresDistractionOptimization());
-        assertEquals(UX_RESTRICTIONS_NO_VIDEO, passenger.getActiveRestrictions());
+        assertThat(passenger.isRequiresDistractionOptimization()).isTrue();
+        assertThat(passenger.getActiveRestrictions()).isEqualTo(UX_RESTRICTIONS_NO_VIDEO);
     }
 
     @Test
@@ -663,8 +609,8 @@
         // Retrieve with passenger mode for a moving state
         CarUxRestrictions passenger = config.getUxRestrictions(
                 DRIVING_STATE_MOVING, 1f, UX_RESTRICTION_MODE_PASSENGER);
-        assertTrue(passenger.isRequiresDistractionOptimization());
-        assertEquals(UX_RESTRICTIONS_NO_VIDEO, passenger.getActiveRestrictions());
+        assertThat(passenger.isRequiresDistractionOptimization()).isTrue();
+        assertThat(passenger.getActiveRestrictions()).isEqualTo(UX_RESTRICTIONS_NO_VIDEO);
     }
 
     @Test
@@ -683,13 +629,13 @@
         // Retrieve at speed within passenger mode range.
         CarUxRestrictions passenger = config.getUxRestrictions(
                 DRIVING_STATE_MOVING, 5f, UX_RESTRICTION_MODE_PASSENGER);
-        assertFalse(passenger.isRequiresDistractionOptimization());
+        assertThat(passenger.isRequiresDistractionOptimization()).isFalse();
 
         // Retrieve with passenger mode but outside speed range
         CarUxRestrictions baseline = config.getUxRestrictions(
                 DRIVING_STATE_MOVING, 1f, UX_RESTRICTION_MODE_PASSENGER);
-        assertTrue(baseline.isRequiresDistractionOptimization());
-        assertEquals(UX_RESTRICTIONS_NO_VIDEO, baseline.getActiveRestrictions());
+        assertThat(baseline.isRequiresDistractionOptimization()).isTrue();
+        assertThat(baseline.getActiveRestrictions()).isEqualTo(UX_RESTRICTIONS_NO_VIDEO);
     }
 
     @Test
@@ -706,7 +652,7 @@
                 .setMaxContentDepth(1)
                 .build();
 
-        assertTrue(one.hasSameParameters(other));
+        assertThat(one.hasSameParameters(other)).isTrue();
     }
 
     @Test
@@ -723,7 +669,7 @@
                 .setMaxContentDepth(1)
                 .build();
 
-        assertFalse(one.hasSameParameters(other));
+        assertThat(one.hasSameParameters(other)).isFalse();
     }
 
     @Test
@@ -746,8 +692,8 @@
                         new DrivingStateRestrictions().setRestrictions(UX_RESTRICTIONS_NO_VIDEO))
                 .build();
 
-        assertEquals(one, other);
-        assertEquals(one.hashCode(), other.hashCode());
+        assertThat(other).isEqualTo(one);
+        assertThat(other.hashCode()).isEqualTo(one.hashCode());
     }
 
     @Test
@@ -771,7 +717,7 @@
                         new DrivingStateRestrictions().setRestrictions(UX_RESTRICTIONS_BASELINE))
                 .build();
 
-        assertFalse(one.equals(other));
+        assertThat(one.equals(other)).isFalse();
     }
 
     @Test
@@ -801,7 +747,7 @@
 
         CarUxRestrictionsConfiguration deserialized =
                 CarUxRestrictionsConfiguration.CREATOR.createFromParcel(parcel);
-        assertEquals(deserialized, config);
+        assertThat(config).isEqualTo(deserialized);
     }
 
     @Test
@@ -824,8 +770,8 @@
 
         CarUxRestrictionsConfiguration deserialized =
                 CarUxRestrictionsConfiguration.CREATOR.createFromParcel(parcel);
-        assertEquals(deserialized, config);
-        assertNull(deserialized.getPhysicalPort());
+        assertThat(config).isEqualTo(deserialized);
+        assertThat(deserialized.getPhysicalPort()).isNull();
     }
 
     /**
@@ -833,23 +779,17 @@
      * Asserts the deserialized config is the same as input.
      */
     private void verifyConfigThroughJsonSerialization(CarUxRestrictionsConfiguration config,
-            int schemaVersion) {
+            int schemaVersion) throws Exception {
         ByteArrayOutputStream out = new ByteArrayOutputStream();
         try (JsonWriter writer = new JsonWriter(new OutputStreamWriter(out))) {
             config.writeJson(writer);
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
         }
 
         ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
         try (JsonReader reader = new JsonReader(new InputStreamReader(in))) {
             CarUxRestrictionsConfiguration deserialized = CarUxRestrictionsConfiguration.readJson(
                     reader, schemaVersion);
-            assertEquals(config, deserialized);
-        } catch (Exception e) {
-            e.printStackTrace();
-            fail();
+            assertThat(deserialized).isEqualTo(config);
         }
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/FuelTypeTest.java b/tests/android_car_api_test/src/android/car/apitest/FuelTypeTest.java
index 179c1da..2a9481d 100644
--- a/tests/android_car_api_test/src/android/car/apitest/FuelTypeTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/FuelTypeTest.java
@@ -17,56 +17,53 @@
 package android.car.apitest;
 
 import android.car.FuelType;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public final class FuelTypeTest extends AndroidTestCase {
+public final class FuelTypeTest {
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_UNKNOWN,
-                FuelType.UNKNOWN);
+        assertThat(FuelType.UNKNOWN)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_UNKNOWN);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_UNLEADED,
-                FuelType.UNLEADED);
+        assertThat(FuelType.UNLEADED)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_UNLEADED);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_LEADED,
-                FuelType.LEADED);
+        assertThat(FuelType.LEADED)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_LEADED);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_DIESEL_1,
-                FuelType.DIESEL_1);
+        assertThat(FuelType.DIESEL_1)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_DIESEL_1);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_DIESEL_2,
-                FuelType.DIESEL_2);
+        assertThat(FuelType.DIESEL_2)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_DIESEL_2);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_BIODIESEL,
-                FuelType.BIODIESEL);
+        assertThat(FuelType.BIODIESEL)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_BIODIESEL);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_E85,
-                FuelType.E85);
+        assertThat(FuelType.E85)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_E85);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_LPG,
-                FuelType.LPG);
+        assertThat(FuelType.LPG)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_LPG);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_CNG,
-                FuelType.CNG);
+        assertThat(FuelType.CNG)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_CNG);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_LNG,
-                FuelType.LNG);
+        assertThat(FuelType.LNG)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_LNG);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_ELECTRIC,
-                FuelType.ELECTRIC);
+        assertThat(FuelType.ELECTRIC)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_ELECTRIC);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_HYDROGEN,
-                FuelType.HYDROGEN);
+        assertThat(FuelType.HYDROGEN)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_HYDROGEN);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_OTHER,
-                FuelType.OTHER);
+        assertThat(FuelType.OTHER)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.FuelType.FUEL_TYPE_OTHER);
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/PortLocationTypeTest.java b/tests/android_car_api_test/src/android/car/apitest/PortLocationTypeTest.java
index a39cae2..c00889f 100644
--- a/tests/android_car_api_test/src/android/car/apitest/PortLocationTypeTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/PortLocationTypeTest.java
@@ -17,39 +17,36 @@
 package android.car.apitest;
 
 import android.car.PortLocationType;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public final class PortLocationTypeTest extends AndroidTestCase {
+public final class PortLocationTypeTest {
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.UNKNOWN,
-                PortLocationType.UNKNOWN);
+        assertThat(PortLocationType.UNKNOWN)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.UNKNOWN);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.FRONT_LEFT,
-                PortLocationType.FRONT_LEFT);
+        assertThat(PortLocationType.FRONT_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.FRONT_LEFT);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.FRONT_RIGHT,
-                PortLocationType.FRONT_RIGHT);
+        assertThat(PortLocationType.FRONT_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.FRONT_RIGHT);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.REAR_RIGHT,
-                PortLocationType.REAR_RIGHT);
+        assertThat(PortLocationType.REAR_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.REAR_RIGHT);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.REAR_LEFT,
-                PortLocationType.REAR_LEFT);
+        assertThat(PortLocationType.REAR_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.REAR_LEFT);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.FRONT,
-                PortLocationType.FRONT);
+        assertThat(PortLocationType.FRONT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.FRONT);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.PortLocationType.REAR,
-                PortLocationType.REAR);
+        assertThat(PortLocationType.REAR)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.PortLocationType.REAR);
 
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/VehicleAreaMirrorTest.java b/tests/android_car_api_test/src/android/car/apitest/VehicleAreaMirrorTest.java
index ff50809..6886faf 100644
--- a/tests/android_car_api_test/src/android/car/apitest/VehicleAreaMirrorTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/VehicleAreaMirrorTest.java
@@ -16,25 +16,22 @@
 package android.car.apitest;
 
 import android.car.VehicleAreaMirror;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class VehicleAreaMirrorTest extends AndroidTestCase {
+public class VehicleAreaMirrorTest {
 
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaMirror.DRIVER_CENTER,
-                VehicleAreaMirror.MIRROR_DRIVER_CENTER);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaMirror.DRIVER_LEFT,
-                VehicleAreaMirror.MIRROR_DRIVER_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaMirror.DRIVER_RIGHT,
-                VehicleAreaMirror.MIRROR_DRIVER_RIGHT);
+        assertThat(VehicleAreaMirror.MIRROR_DRIVER_CENTER).isEqualTo(
+                android.hardware.automotive.vehicle.V2_0.VehicleAreaMirror.DRIVER_CENTER);
+        assertThat(VehicleAreaMirror.MIRROR_DRIVER_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaMirror.DRIVER_LEFT);
+        assertThat(VehicleAreaMirror.MIRROR_DRIVER_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaMirror.DRIVER_RIGHT);
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/VehicleDoorTest.java b/tests/android_car_api_test/src/android/car/apitest/VehicleDoorTest.java
index 1d00de7..6c15929 100644
--- a/tests/android_car_api_test/src/android/car/apitest/VehicleDoorTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/VehicleDoorTest.java
@@ -16,35 +16,32 @@
 package android.car.apitest;
 
 import android.car.VehicleAreaDoor;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class VehicleDoorTest extends AndroidTestCase {
+public class VehicleDoorTest {
 
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.HOOD,
-                VehicleAreaDoor.DOOR_HOOD);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.REAR,
-                VehicleAreaDoor.DOOR_REAR);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_1_LEFT,
-                VehicleAreaDoor.DOOR_ROW_1_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_1_RIGHT,
-                VehicleAreaDoor.DOOR_ROW_1_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_2_LEFT,
-                VehicleAreaDoor.DOOR_ROW_2_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_2_RIGHT,
-                VehicleAreaDoor.DOOR_ROW_2_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_3_LEFT,
-                VehicleAreaDoor.DOOR_ROW_3_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_3_RIGHT,
-                VehicleAreaDoor.DOOR_ROW_3_RIGHT);
+        assertThat(VehicleAreaDoor.DOOR_HOOD)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.HOOD);
+        assertThat(VehicleAreaDoor.DOOR_REAR)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.REAR);
+        assertThat(VehicleAreaDoor.DOOR_ROW_1_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_1_LEFT);
+        assertThat(VehicleAreaDoor.DOOR_ROW_1_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_1_RIGHT);
+        assertThat(VehicleAreaDoor.DOOR_ROW_2_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_2_LEFT);
+        assertThat(VehicleAreaDoor.DOOR_ROW_2_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_2_RIGHT);
+        assertThat(VehicleAreaDoor.DOOR_ROW_3_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_3_LEFT);
+        assertThat(VehicleAreaDoor.DOOR_ROW_3_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaDoor.ROW_3_RIGHT);
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/VehicleGearTest.java b/tests/android_car_api_test/src/android/car/apitest/VehicleGearTest.java
index ca60fc4..44ca0cd 100644
--- a/tests/android_car_api_test/src/android/car/apitest/VehicleGearTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/VehicleGearTest.java
@@ -16,95 +16,92 @@
 package android.car.apitest;
 
 import android.car.VehicleGear;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class VehicleGearTest extends AndroidTestCase {
+public class VehicleGearTest {
 
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_UNKNOWN,
-                VehicleGear.GEAR_UNKNOWN);
+        assertThat(VehicleGear.GEAR_UNKNOWN)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_UNKNOWN);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_NEUTRAL,
-                VehicleGear.GEAR_NEUTRAL);
+        assertThat(VehicleGear.GEAR_NEUTRAL)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_NEUTRAL);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_REVERSE,
-                VehicleGear.GEAR_REVERSE);
+        assertThat(VehicleGear.GEAR_REVERSE)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_REVERSE);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_PARK,
-                VehicleGear.GEAR_PARK);
+        assertThat(VehicleGear.GEAR_PARK)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_PARK);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_DRIVE,
-                VehicleGear.GEAR_DRIVE);
+        assertThat(VehicleGear.GEAR_DRIVE)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_DRIVE);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_1,
-                VehicleGear.GEAR_FIRST);
+        assertThat(VehicleGear.GEAR_FIRST)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_1);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_2,
-                VehicleGear.GEAR_SECOND);
+        assertThat(VehicleGear.GEAR_SECOND)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_2);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_3,
-                VehicleGear.GEAR_THIRD);
+        assertThat(VehicleGear.GEAR_THIRD)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_3);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_4,
-                VehicleGear.GEAR_FOURTH);
+        assertThat(VehicleGear.GEAR_FOURTH)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_4);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_5,
-                VehicleGear.GEAR_FIFTH);
+        assertThat(VehicleGear.GEAR_FIFTH)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_5);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_6,
-                VehicleGear.GEAR_SIXTH);
+        assertThat(VehicleGear.GEAR_SIXTH)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_6);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_7,
-                VehicleGear.GEAR_SEVENTH);
+        assertThat(VehicleGear.GEAR_SEVENTH)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_7);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_8,
-                VehicleGear.GEAR_EIGHTH);
+        assertThat(VehicleGear.GEAR_EIGHTH)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_8);
 
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_9,
-                VehicleGear.GEAR_NINTH);
+        assertThat(VehicleGear.GEAR_NINTH)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleGear.GEAR_9);
     }
 
     @Test
     public void testToString() {
-        assertEquals("GEAR_UNKNOWN", VehicleGear.toString(VehicleGear.GEAR_UNKNOWN));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_UNKNOWN)).isEqualTo("GEAR_UNKNOWN");
 
-        assertEquals("GEAR_NEUTRAL", VehicleGear.toString(VehicleGear.GEAR_NEUTRAL));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_NEUTRAL)).isEqualTo("GEAR_NEUTRAL");
 
-        assertEquals("GEAR_REVERSE", VehicleGear.toString(VehicleGear.GEAR_REVERSE));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_REVERSE)).isEqualTo("GEAR_REVERSE");
 
-        assertEquals("GEAR_PARK", VehicleGear.toString(VehicleGear.GEAR_PARK));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_PARK)).isEqualTo("GEAR_PARK");
 
-        assertEquals("GEAR_DRIVE", VehicleGear.toString(VehicleGear.GEAR_DRIVE));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_DRIVE)).isEqualTo("GEAR_DRIVE");
 
-        assertEquals("GEAR_FIRST", VehicleGear.toString(VehicleGear.GEAR_FIRST));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_FIRST)).isEqualTo("GEAR_FIRST");
 
-        assertEquals("GEAR_SECOND", VehicleGear.toString(VehicleGear.GEAR_SECOND));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_SECOND)).isEqualTo("GEAR_SECOND");
 
-        assertEquals("GEAR_THIRD", VehicleGear.toString(VehicleGear.GEAR_THIRD));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_THIRD)).isEqualTo("GEAR_THIRD");
 
-        assertEquals("GEAR_FOURTH", VehicleGear.toString(VehicleGear.GEAR_FOURTH));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_FOURTH)).isEqualTo("GEAR_FOURTH");
 
-        assertEquals("GEAR_FIFTH", VehicleGear.toString(VehicleGear.GEAR_FIFTH));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_FIFTH)).isEqualTo("GEAR_FIFTH");
 
-        assertEquals("GEAR_SIXTH", VehicleGear.toString(VehicleGear.GEAR_SIXTH));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_SIXTH)).isEqualTo("GEAR_SIXTH");
 
-        assertEquals("GEAR_SEVENTH", VehicleGear.toString(VehicleGear.GEAR_SEVENTH));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_SEVENTH)).isEqualTo("GEAR_SEVENTH");
 
-        assertEquals("GEAR_EIGHTH", VehicleGear.toString(VehicleGear.GEAR_EIGHTH));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_EIGHTH)).isEqualTo("GEAR_EIGHTH");
 
-        assertEquals("GEAR_NINTH", VehicleGear.toString(VehicleGear.GEAR_NINTH));
+        assertThat(VehicleGear.toString(VehicleGear.GEAR_NINTH)).isEqualTo("GEAR_NINTH");
 
-        assertEquals("0x3", VehicleGear.toString(3));
+        assertThat(VehicleGear.toString(3)).isEqualTo("0x3");
 
-        assertEquals("0xc", VehicleGear.toString(12));
+        assertThat(VehicleGear.toString(12)).isEqualTo("0xc");
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/VehiclePropertyIdsTest.java b/tests/android_car_api_test/src/android/car/apitest/VehiclePropertyIdsTest.java
new file mode 100644
index 0000000..f0020e3
--- /dev/null
+++ b/tests/android_car_api_test/src/android/car/apitest/VehiclePropertyIdsTest.java
@@ -0,0 +1,367 @@
+/*
+ * Copyright (C) 2020 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 android.car.apitest;
+
+import android.car.VehiclePropertyIds;
+import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
+import android.test.AndroidTestCase;
+import android.test.suitebuilder.annotation.SmallTest;
+
+import androidx.test.runner.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Modifier;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+@SmallTest
+public class VehiclePropertyIdsTest extends AndroidTestCase {
+    private static final List<String> MISSING_VEHICLE_PROPERTY_IDS =
+            new ArrayList<>(
+                Arrays.asList(
+                    // TODO(b/150408921): add CREATE_USER = 299896585
+                    "CREATE_USER",
+                    "DISABLED_OPTIONAL_FEATURES",
+                    "HW_ROTARY_INPUT",
+                    // TODO(b/150409600): add REMOVE_USER = 299896586;
+                    "REMOVE_USER",
+                    "SUPPORT_CUSTOMIZE_VENDOR_PERMISSION"));
+    private static final List<Integer> MISSING_VEHICLE_PROPERTY_ID_VALUES =
+            new ArrayList<>(
+                Arrays.asList(
+                    // TODO(b/150408921): add CREATE_USER = 299896585
+                    /*CREATE_USER=*/299896585,
+                    /*DISABLED_OPTIONAL_FEATURES=*/286265094,
+                    /*HW_ROTARY_INPUT=*/289475104,
+                    // TODO(b/150409600): add REMOVE_USER = 299896586;
+                    /*REMOVE_USER=*/299896586,
+                    /*SUPPORT_CUSTOMIZE_VENDOR_PERMISSION=*/287313669));
+
+
+    @Test
+    public void testMatchingVehiclePropertyNamesInVehicleHal() {
+        List<String> vehiclePropertyIdNames = getListOfConstantNames(VehiclePropertyIds.class);
+        List<String> vehiclePropertyNames = getListOfConstantNames(VehicleProperty.class);
+        assertEquals(vehiclePropertyNames.size(),
+                vehiclePropertyIdNames.size() + MISSING_VEHICLE_PROPERTY_IDS.size());
+        for (String vehiclePropertyName: vehiclePropertyNames) {
+            if (MISSING_VEHICLE_PROPERTY_IDS.contains(vehiclePropertyName)) {
+                continue;
+            }
+            assertTrue(vehiclePropertyIdNames.contains(vehiclePropertyName));
+        }
+    }
+
+    @Test
+    public void testMatchingVehiclePropertyValuesInVehicleHal() {
+        List<Integer> vehiclePropertyIds = getListOfConstantValues(VehiclePropertyIds.class);
+        List<Integer> vehicleProperties = getListOfConstantValues(VehicleProperty.class);
+        assertEquals(vehicleProperties.size(),
+                vehiclePropertyIds.size() + MISSING_VEHICLE_PROPERTY_ID_VALUES.size());
+        for (int vehicleProperty: vehicleProperties) {
+            if (MISSING_VEHICLE_PROPERTY_ID_VALUES.contains(vehicleProperty)) {
+                continue;
+            }
+            // TODO(b/151168399): VEHICLE_SPEED_DISPLAY_UNITS mismatch between java and hal.
+            if (vehicleProperty == VehicleProperty.VEHICLE_SPEED_DISPLAY_UNITS) {
+                continue;
+            }
+            assertTrue(vehiclePropertyIds.contains(vehicleProperty));
+        }
+    }
+
+    @Test
+    public void testToString() {
+        assertEquals("INVALID", VehiclePropertyIds.toString(VehiclePropertyIds.INVALID));
+        assertEquals("INFO_VIN", VehiclePropertyIds.toString(VehiclePropertyIds.INFO_VIN));
+        assertEquals("INFO_MAKE", VehiclePropertyIds.toString(VehiclePropertyIds.INFO_MAKE));
+        assertEquals("INFO_MODEL", VehiclePropertyIds.toString(VehiclePropertyIds.INFO_MODEL));
+        assertEquals("INFO_MODEL_YEAR",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_MODEL_YEAR));
+        assertEquals("INFO_FUEL_CAPACITY",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_FUEL_CAPACITY));
+        assertEquals("INFO_FUEL_TYPE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_FUEL_TYPE));
+        assertEquals("INFO_EV_BATTERY_CAPACITY",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_EV_BATTERY_CAPACITY));
+        assertEquals("INFO_MULTI_EV_PORT_LOCATIONS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_MULTI_EV_PORT_LOCATIONS));
+        assertEquals("INFO_EV_CONNECTOR_TYPE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_EV_CONNECTOR_TYPE));
+        assertEquals("INFO_FUEL_DOOR_LOCATION",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_FUEL_DOOR_LOCATION));
+        assertEquals("INFO_EV_PORT_LOCATION",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_EV_PORT_LOCATION));
+        assertEquals("INFO_DRIVER_SEAT",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_DRIVER_SEAT));
+        assertEquals("INFO_EXTERIOR_DIMENSIONS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INFO_EXTERIOR_DIMENSIONS));
+        assertEquals("PERF_ODOMETER",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PERF_ODOMETER));
+        assertEquals("PERF_VEHICLE_SPEED",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PERF_VEHICLE_SPEED));
+        assertEquals("PERF_VEHICLE_SPEED_DISPLAY",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PERF_VEHICLE_SPEED_DISPLAY));
+        assertEquals("PERF_STEERING_ANGLE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PERF_STEERING_ANGLE));
+        assertEquals("PERF_REAR_STEERING_ANGLE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PERF_REAR_STEERING_ANGLE));
+        assertEquals("ENGINE_COOLANT_TEMP",
+                VehiclePropertyIds.toString(VehiclePropertyIds.ENGINE_COOLANT_TEMP));
+        assertEquals("ENGINE_OIL_LEVEL",
+                VehiclePropertyIds.toString(VehiclePropertyIds.ENGINE_OIL_LEVEL));
+        assertEquals("ENGINE_OIL_TEMP",
+                VehiclePropertyIds.toString(VehiclePropertyIds.ENGINE_OIL_TEMP));
+        assertEquals("ENGINE_RPM", VehiclePropertyIds.toString(VehiclePropertyIds.ENGINE_RPM));
+        assertEquals("WHEEL_TICK", VehiclePropertyIds.toString(VehiclePropertyIds.WHEEL_TICK));
+        assertEquals("FUEL_LEVEL", VehiclePropertyIds.toString(VehiclePropertyIds.FUEL_LEVEL));
+        assertEquals("FUEL_DOOR_OPEN",
+                VehiclePropertyIds.toString(VehiclePropertyIds.FUEL_DOOR_OPEN));
+        assertEquals("EV_BATTERY_LEVEL",
+                VehiclePropertyIds.toString(VehiclePropertyIds.EV_BATTERY_LEVEL));
+        assertEquals("EV_CHARGE_PORT_OPEN",
+                VehiclePropertyIds.toString(VehiclePropertyIds.EV_CHARGE_PORT_OPEN));
+        assertEquals("EV_CHARGE_PORT_CONNECTED",
+                VehiclePropertyIds.toString(VehiclePropertyIds.EV_CHARGE_PORT_CONNECTED));
+        assertEquals("EV_BATTERY_INSTANTANEOUS_CHARGE_RATE",
+                VehiclePropertyIds.toString(
+                        VehiclePropertyIds.EV_BATTERY_INSTANTANEOUS_CHARGE_RATE));
+        assertEquals("RANGE_REMAINING",
+                VehiclePropertyIds.toString(VehiclePropertyIds.RANGE_REMAINING));
+        assertEquals("TIRE_PRESSURE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.TIRE_PRESSURE));
+        assertEquals("GEAR_SELECTION",
+                VehiclePropertyIds.toString(VehiclePropertyIds.GEAR_SELECTION));
+        assertEquals("CURRENT_GEAR", VehiclePropertyIds.toString(VehiclePropertyIds.CURRENT_GEAR));
+        assertEquals("PARKING_BRAKE_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PARKING_BRAKE_ON));
+        assertEquals("PARKING_BRAKE_AUTO_APPLY",
+                VehiclePropertyIds.toString(VehiclePropertyIds.PARKING_BRAKE_AUTO_APPLY));
+        assertEquals("FUEL_LEVEL_LOW",
+                VehiclePropertyIds.toString(VehiclePropertyIds.FUEL_LEVEL_LOW));
+        assertEquals("NIGHT_MODE", VehiclePropertyIds.toString(VehiclePropertyIds.NIGHT_MODE));
+        assertEquals("TURN_SIGNAL_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.TURN_SIGNAL_STATE));
+        assertEquals("IGNITION_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.IGNITION_STATE));
+        assertEquals("ABS_ACTIVE", VehiclePropertyIds.toString(VehiclePropertyIds.ABS_ACTIVE));
+        assertEquals("TRACTION_CONTROL_ACTIVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.TRACTION_CONTROL_ACTIVE));
+        assertEquals("HVAC_FAN_SPEED",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_FAN_SPEED));
+        assertEquals("HVAC_FAN_DIRECTION",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_FAN_DIRECTION));
+        assertEquals("HVAC_TEMPERATURE_CURRENT",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_TEMPERATURE_CURRENT));
+        assertEquals("HVAC_TEMPERATURE_SET",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_TEMPERATURE_SET));
+        assertEquals("HVAC_DEFROSTER",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_DEFROSTER));
+        assertEquals("HVAC_AC_ON", VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_AC_ON));
+        assertEquals("HVAC_MAX_AC_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_MAX_AC_ON));
+        assertEquals("HVAC_MAX_DEFROST_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_MAX_DEFROST_ON));
+        assertEquals("HVAC_RECIRC_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_RECIRC_ON));
+        assertEquals("HVAC_DUAL_ON", VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_DUAL_ON));
+        assertEquals("HVAC_AUTO_ON", VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_AUTO_ON));
+        assertEquals("HVAC_SEAT_TEMPERATURE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_SEAT_TEMPERATURE));
+        assertEquals("HVAC_SIDE_MIRROR_HEAT",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_SIDE_MIRROR_HEAT));
+        assertEquals("HVAC_STEERING_WHEEL_HEAT",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_STEERING_WHEEL_HEAT));
+        assertEquals("HVAC_TEMPERATURE_DISPLAY_UNITS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_TEMPERATURE_DISPLAY_UNITS));
+        assertEquals("HVAC_ACTUAL_FAN_SPEED_RPM",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_ACTUAL_FAN_SPEED_RPM));
+        assertEquals("HVAC_POWER_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_POWER_ON));
+        assertEquals("HVAC_FAN_DIRECTION_AVAILABLE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_FAN_DIRECTION_AVAILABLE));
+        assertEquals("HVAC_AUTO_RECIRC_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_AUTO_RECIRC_ON));
+        assertEquals("HVAC_SEAT_VENTILATION",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_SEAT_VENTILATION));
+        assertEquals("HVAC_ELECTRIC_DEFROSTER_ON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HVAC_ELECTRIC_DEFROSTER_ON));
+        assertEquals("DISTANCE_DISPLAY_UNITS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.DISTANCE_DISPLAY_UNITS));
+        assertEquals("FUEL_VOLUME_DISPLAY_UNITS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.FUEL_VOLUME_DISPLAY_UNITS));
+        assertEquals("TIRE_PRESSURE_DISPLAY_UNITS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.TIRE_PRESSURE_DISPLAY_UNITS));
+        assertEquals("EV_BATTERY_DISPLAY_UNITS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.EV_BATTERY_DISPLAY_UNITS));
+        assertEquals("FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME",
+                VehiclePropertyIds.toString(
+                        VehiclePropertyIds.FUEL_CONSUMPTION_UNITS_DISTANCE_OVER_VOLUME));
+        assertEquals("ENV_OUTSIDE_TEMPERATURE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.ENV_OUTSIDE_TEMPERATURE));
+        assertEquals("AP_POWER_STATE_REQ",
+                VehiclePropertyIds.toString(VehiclePropertyIds.AP_POWER_STATE_REQ));
+        assertEquals("AP_POWER_STATE_REPORT",
+                VehiclePropertyIds.toString(VehiclePropertyIds.AP_POWER_STATE_REPORT));
+        assertEquals("AP_POWER_BOOTUP_REASON",
+                VehiclePropertyIds.toString(VehiclePropertyIds.AP_POWER_BOOTUP_REASON));
+        assertEquals("DISPLAY_BRIGHTNESS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.DISPLAY_BRIGHTNESS));
+        assertEquals("HW_KEY_INPUT", VehiclePropertyIds.toString(VehiclePropertyIds.HW_KEY_INPUT));
+        assertEquals("DOOR_POS", VehiclePropertyIds.toString(VehiclePropertyIds.DOOR_POS));
+        assertEquals("DOOR_MOVE", VehiclePropertyIds.toString(VehiclePropertyIds.DOOR_MOVE));
+        assertEquals("DOOR_LOCK", VehiclePropertyIds.toString(VehiclePropertyIds.DOOR_LOCK));
+        assertEquals("MIRROR_Z_POS", VehiclePropertyIds.toString(VehiclePropertyIds.MIRROR_Z_POS));
+        assertEquals("MIRROR_Z_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.MIRROR_Z_MOVE));
+        assertEquals("MIRROR_Y_POS", VehiclePropertyIds.toString(VehiclePropertyIds.MIRROR_Y_POS));
+        assertEquals("MIRROR_Y_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.MIRROR_Y_MOVE));
+        assertEquals("MIRROR_LOCK", VehiclePropertyIds.toString(VehiclePropertyIds.MIRROR_LOCK));
+        assertEquals("MIRROR_FOLD", VehiclePropertyIds.toString(VehiclePropertyIds.MIRROR_FOLD));
+        assertEquals("SEAT_MEMORY_SELECT",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_MEMORY_SELECT));
+        assertEquals("SEAT_MEMORY_SET",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_MEMORY_SET));
+        assertEquals("SEAT_BELT_BUCKLED",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BELT_BUCKLED));
+        assertEquals("SEAT_BELT_HEIGHT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BELT_HEIGHT_POS));
+        assertEquals("SEAT_BELT_HEIGHT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BELT_HEIGHT_MOVE));
+        assertEquals("SEAT_FORE_AFT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_FORE_AFT_POS));
+        assertEquals("SEAT_FORE_AFT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_FORE_AFT_MOVE));
+        assertEquals("SEAT_BACKREST_ANGLE_1_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BACKREST_ANGLE_1_POS));
+        assertEquals("SEAT_BACKREST_ANGLE_1_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BACKREST_ANGLE_1_MOVE));
+        assertEquals("SEAT_BACKREST_ANGLE_2_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BACKREST_ANGLE_2_POS));
+        assertEquals("SEAT_BACKREST_ANGLE_2_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_BACKREST_ANGLE_2_MOVE));
+        assertEquals("SEAT_HEIGHT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEIGHT_POS));
+        assertEquals("SEAT_HEIGHT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEIGHT_MOVE));
+        assertEquals("SEAT_DEPTH_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_DEPTH_POS));
+        assertEquals("SEAT_DEPTH_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_DEPTH_MOVE));
+        assertEquals("SEAT_TILT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_TILT_POS));
+        assertEquals("SEAT_TILT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_TILT_MOVE));
+        assertEquals("SEAT_LUMBAR_FORE_AFT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_LUMBAR_FORE_AFT_POS));
+        assertEquals("SEAT_LUMBAR_FORE_AFT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_LUMBAR_FORE_AFT_MOVE));
+        assertEquals("SEAT_LUMBAR_SIDE_SUPPORT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_LUMBAR_SIDE_SUPPORT_POS));
+        assertEquals("SEAT_LUMBAR_SIDE_SUPPORT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_LUMBAR_SIDE_SUPPORT_MOVE));
+        assertEquals("SEAT_HEADREST_HEIGHT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEADREST_HEIGHT_POS));
+        assertEquals("SEAT_HEADREST_HEIGHT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEADREST_HEIGHT_MOVE));
+        assertEquals("SEAT_HEADREST_ANGLE_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEADREST_ANGLE_POS));
+        assertEquals("SEAT_HEADREST_ANGLE_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEADREST_ANGLE_MOVE));
+        assertEquals("SEAT_HEADREST_FORE_AFT_POS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEADREST_FORE_AFT_POS));
+        assertEquals("SEAT_HEADREST_FORE_AFT_MOVE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_HEADREST_FORE_AFT_MOVE));
+        assertEquals("SEAT_OCCUPANCY",
+                VehiclePropertyIds.toString(VehiclePropertyIds.SEAT_OCCUPANCY));
+        assertEquals("WINDOW_POS", VehiclePropertyIds.toString(VehiclePropertyIds.WINDOW_POS));
+        assertEquals("WINDOW_MOVE", VehiclePropertyIds.toString(VehiclePropertyIds.WINDOW_MOVE));
+        assertEquals("WINDOW_LOCK", VehiclePropertyIds.toString(VehiclePropertyIds.WINDOW_LOCK));
+        assertEquals("VEHICLE_MAP_SERVICE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.VEHICLE_MAP_SERVICE));
+        assertEquals("OBD2_LIVE_FRAME",
+                VehiclePropertyIds.toString(VehiclePropertyIds.OBD2_LIVE_FRAME));
+        assertEquals("OBD2_FREEZE_FRAME",
+                VehiclePropertyIds.toString(VehiclePropertyIds.OBD2_FREEZE_FRAME));
+        assertEquals("OBD2_FREEZE_FRAME_INFO",
+                VehiclePropertyIds.toString(VehiclePropertyIds.OBD2_FREEZE_FRAME_INFO));
+        assertEquals("OBD2_FREEZE_FRAME_CLEAR",
+                VehiclePropertyIds.toString(VehiclePropertyIds.OBD2_FREEZE_FRAME_CLEAR));
+        assertEquals("HEADLIGHTS_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HEADLIGHTS_STATE));
+        assertEquals("HIGH_BEAM_LIGHTS_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HIGH_BEAM_LIGHTS_STATE));
+        assertEquals("FOG_LIGHTS_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.FOG_LIGHTS_STATE));
+        assertEquals("HAZARD_LIGHTS_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HAZARD_LIGHTS_STATE));
+        assertEquals("HEADLIGHTS_SWITCH",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HEADLIGHTS_SWITCH));
+        assertEquals("HIGH_BEAM_LIGHTS_SWITCH",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HIGH_BEAM_LIGHTS_SWITCH));
+        assertEquals("FOG_LIGHTS_SWITCH",
+                VehiclePropertyIds.toString(VehiclePropertyIds.FOG_LIGHTS_SWITCH));
+        assertEquals("HAZARD_LIGHTS_SWITCH",
+                VehiclePropertyIds.toString(VehiclePropertyIds.HAZARD_LIGHTS_SWITCH));
+        assertEquals("CABIN_LIGHTS_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.CABIN_LIGHTS_STATE));
+        assertEquals("CABIN_LIGHTS_SWITCH",
+                VehiclePropertyIds.toString(VehiclePropertyIds.CABIN_LIGHTS_SWITCH));
+        assertEquals("READING_LIGHTS_STATE",
+                VehiclePropertyIds.toString(VehiclePropertyIds.READING_LIGHTS_STATE));
+        assertEquals("READING_LIGHTS_SWITCH",
+                VehiclePropertyIds.toString(VehiclePropertyIds.READING_LIGHTS_SWITCH));
+        assertEquals("VEHICLE_SPEED_DISPLAY_UNITS",
+                VehiclePropertyIds.toString(VehiclePropertyIds.VEHICLE_SPEED_DISPLAY_UNITS));
+        assertEquals("INITIAL_USER_INFO",
+                VehiclePropertyIds.toString(VehiclePropertyIds.INITIAL_USER_INFO));
+        assertEquals("SWITCH_USER", VehiclePropertyIds.toString(VehiclePropertyIds.SWITCH_USER));
+        assertEquals("USER_IDENTIFICATION_ASSOCIATION",
+                VehiclePropertyIds.toString(VehiclePropertyIds.USER_IDENTIFICATION_ASSOCIATION));
+        assertEquals("0x3", VehiclePropertyIds.toString(3));
+    }
+
+    private static List<Integer> getListOfConstantValues(Class clazz) {
+        List<Integer> list = new ArrayList<Integer>();
+        for (Field field : clazz.getDeclaredFields()) {
+            int modifiers = field.getModifiers();
+            if (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) {
+                try {
+                    list.add(field.getInt(null));
+                } catch (IllegalAccessException e) {
+                }
+            }
+        }
+        return list;
+    }
+
+    private static List<String> getListOfConstantNames(Class clazz) {
+        List<String> list = new ArrayList<String>();
+        for (Field field : clazz.getDeclaredFields()) {
+            int modifiers = field.getModifiers();
+            if (Modifier.isStatic(modifiers) && Modifier.isFinal(modifiers)) {
+                list.add(field.getName());
+            }
+        }
+        return list;
+    }
+}
diff --git a/tests/android_car_api_test/src/android/car/apitest/VehicleSeatTest.java b/tests/android_car_api_test/src/android/car/apitest/VehicleSeatTest.java
index 1b5ba5a..6ed1197 100644
--- a/tests/android_car_api_test/src/android/car/apitest/VehicleSeatTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/VehicleSeatTest.java
@@ -16,82 +16,79 @@
 package android.car.apitest;
 
 import android.car.VehicleAreaSeat;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class VehicleSeatTest extends AndroidTestCase {
+public class VehicleSeatTest {
 
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_1_LEFT,
-                VehicleAreaSeat.SEAT_ROW_1_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_1_CENTER,
-                VehicleAreaSeat.SEAT_ROW_1_CENTER);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_1_RIGHT,
-                VehicleAreaSeat.SEAT_ROW_1_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_2_LEFT,
-                VehicleAreaSeat.SEAT_ROW_2_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_2_CENTER,
-                VehicleAreaSeat.SEAT_ROW_2_CENTER);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_2_RIGHT,
-                VehicleAreaSeat.SEAT_ROW_2_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_3_LEFT,
-                VehicleAreaSeat.SEAT_ROW_3_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_3_CENTER,
-                VehicleAreaSeat.SEAT_ROW_3_CENTER);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_3_RIGHT,
-                VehicleAreaSeat.SEAT_ROW_3_RIGHT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_1_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_1_LEFT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_1_CENTER)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_1_CENTER);
+        assertThat(VehicleAreaSeat.SEAT_ROW_1_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_1_RIGHT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_2_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_2_LEFT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_2_CENTER)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_2_CENTER);
+        assertThat(VehicleAreaSeat.SEAT_ROW_2_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_2_RIGHT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_3_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_3_LEFT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_3_CENTER)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_3_CENTER);
+        assertThat(VehicleAreaSeat.SEAT_ROW_3_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaSeat.ROW_3_RIGHT);
     }
 
     @Test
     public void testFromRowAndSide() {
-        assertEquals(VehicleAreaSeat.fromRowAndSide(-1, VehicleAreaSeat.SIDE_LEFT),
-                VehicleAreaSeat.SEAT_UNKNOWN);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(-1, VehicleAreaSeat.SIDE_CENTER),
-                VehicleAreaSeat.SEAT_UNKNOWN);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(-1, VehicleAreaSeat.SIDE_RIGHT),
-                VehicleAreaSeat.SEAT_UNKNOWN);
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(-1, VehicleAreaSeat.SIDE_LEFT));
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(-1, VehicleAreaSeat.SIDE_CENTER));
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(-1, VehicleAreaSeat.SIDE_RIGHT));
 
-        assertEquals(VehicleAreaSeat.fromRowAndSide(0, VehicleAreaSeat.SIDE_LEFT),
-                VehicleAreaSeat.SEAT_UNKNOWN);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(0, VehicleAreaSeat.SIDE_CENTER),
-                VehicleAreaSeat.SEAT_UNKNOWN);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(0, VehicleAreaSeat.SIDE_RIGHT),
-                VehicleAreaSeat.SEAT_UNKNOWN);
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(0, VehicleAreaSeat.SIDE_LEFT));
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(0, VehicleAreaSeat.SIDE_CENTER));
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(0, VehicleAreaSeat.SIDE_RIGHT));
 
-        assertEquals(VehicleAreaSeat.fromRowAndSide(1, VehicleAreaSeat.SIDE_LEFT),
-                VehicleAreaSeat.SEAT_ROW_1_LEFT);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(1, VehicleAreaSeat.SIDE_CENTER),
-                VehicleAreaSeat.SEAT_ROW_1_CENTER);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(1, VehicleAreaSeat.SIDE_RIGHT),
-                VehicleAreaSeat.SEAT_ROW_1_RIGHT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_1_LEFT)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(1, VehicleAreaSeat.SIDE_LEFT));
+        assertThat(VehicleAreaSeat.SEAT_ROW_1_CENTER)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(1, VehicleAreaSeat.SIDE_CENTER));
+        assertThat(VehicleAreaSeat.SEAT_ROW_1_RIGHT)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(1, VehicleAreaSeat.SIDE_RIGHT));
 
-        assertEquals(VehicleAreaSeat.fromRowAndSide(2, VehicleAreaSeat.SIDE_LEFT),
-                VehicleAreaSeat.SEAT_ROW_2_LEFT);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(2, VehicleAreaSeat.SIDE_CENTER),
-                VehicleAreaSeat.SEAT_ROW_2_CENTER);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(2, VehicleAreaSeat.SIDE_RIGHT),
-                VehicleAreaSeat.SEAT_ROW_2_RIGHT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_2_LEFT)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(2, VehicleAreaSeat.SIDE_LEFT));
+        assertThat(VehicleAreaSeat.SEAT_ROW_2_CENTER)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(2, VehicleAreaSeat.SIDE_CENTER));
+        assertThat(VehicleAreaSeat.SEAT_ROW_2_RIGHT)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(2, VehicleAreaSeat.SIDE_RIGHT));
 
-        assertEquals(VehicleAreaSeat.fromRowAndSide(3, VehicleAreaSeat.SIDE_LEFT),
-                VehicleAreaSeat.SEAT_ROW_3_LEFT);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(3, VehicleAreaSeat.SIDE_CENTER),
-                VehicleAreaSeat.SEAT_ROW_3_CENTER);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(3, VehicleAreaSeat.SIDE_RIGHT),
-                VehicleAreaSeat.SEAT_ROW_3_RIGHT);
+        assertThat(VehicleAreaSeat.SEAT_ROW_3_LEFT)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(3, VehicleAreaSeat.SIDE_LEFT));
+        assertThat(VehicleAreaSeat.SEAT_ROW_3_CENTER)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(3, VehicleAreaSeat.SIDE_CENTER));
+        assertThat(VehicleAreaSeat.SEAT_ROW_3_RIGHT)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(3, VehicleAreaSeat.SIDE_RIGHT));
 
-        assertEquals(VehicleAreaSeat.fromRowAndSide(4, VehicleAreaSeat.SIDE_LEFT),
-                VehicleAreaSeat.SEAT_UNKNOWN);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(4, VehicleAreaSeat.SIDE_CENTER),
-                VehicleAreaSeat.SEAT_UNKNOWN);
-        assertEquals(VehicleAreaSeat.fromRowAndSide(4, VehicleAreaSeat.SIDE_RIGHT),
-                VehicleAreaSeat.SEAT_UNKNOWN);
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(4, VehicleAreaSeat.SIDE_LEFT));
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(4, VehicleAreaSeat.SIDE_CENTER));
+        assertThat(VehicleAreaSeat.SEAT_UNKNOWN)
+                .isEqualTo(VehicleAreaSeat.fromRowAndSide(4, VehicleAreaSeat.SIDE_RIGHT));
     }
 }
diff --git a/tests/android_car_api_test/src/android/car/apitest/VehicleWindowTest.java b/tests/android_car_api_test/src/android/car/apitest/VehicleWindowTest.java
index 9fa69e4..a0eb9d8 100644
--- a/tests/android_car_api_test/src/android/car/apitest/VehicleWindowTest.java
+++ b/tests/android_car_api_test/src/android/car/apitest/VehicleWindowTest.java
@@ -16,39 +16,36 @@
 package android.car.apitest;
 
 import android.car.VehicleAreaWindow;
-import android.test.AndroidTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import androidx.test.runner.AndroidJUnit4;
+import static com.google.common.truth.Truth.assertThat;
 
 import org.junit.Test;
-import org.junit.runner.RunWith;
 
-@RunWith(AndroidJUnit4.class)
 @SmallTest
-public class VehicleWindowTest extends AndroidTestCase {
+public class VehicleWindowTest {
 
     @Test
     public void testMatchWithVehicleHal() {
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.FRONT_WINDSHIELD,
-                VehicleAreaWindow.WINDOW_FRONT_WINDSHIELD);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.REAR_WINDSHIELD,
-                VehicleAreaWindow.WINDOW_REAR_WINDSHIELD);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_1_LEFT,
-                VehicleAreaWindow.WINDOW_ROW_1_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_1_RIGHT,
-                VehicleAreaWindow.WINDOW_ROW_1_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_2_LEFT,
-                VehicleAreaWindow.WINDOW_ROW_2_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_2_RIGHT,
-                VehicleAreaWindow.WINDOW_ROW_2_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_3_LEFT,
-                VehicleAreaWindow.WINDOW_ROW_3_LEFT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_3_RIGHT,
-                VehicleAreaWindow.WINDOW_ROW_3_RIGHT);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROOF_TOP_1,
-                VehicleAreaWindow.WINDOW_ROOF_TOP_1);
-        assertEquals(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROOF_TOP_2,
-                VehicleAreaWindow.WINDOW_ROOF_TOP_2);
+        assertThat(VehicleAreaWindow.WINDOW_FRONT_WINDSHIELD).isEqualTo(
+                android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.FRONT_WINDSHIELD);
+        assertThat(VehicleAreaWindow.WINDOW_REAR_WINDSHIELD).isEqualTo(
+                android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.REAR_WINDSHIELD);
+        assertThat(VehicleAreaWindow.WINDOW_ROW_1_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_1_LEFT);
+        assertThat(VehicleAreaWindow.WINDOW_ROW_1_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_1_RIGHT);
+        assertThat(VehicleAreaWindow.WINDOW_ROW_2_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_2_LEFT);
+        assertThat(VehicleAreaWindow.WINDOW_ROW_2_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_2_RIGHT);
+        assertThat(VehicleAreaWindow.WINDOW_ROW_3_LEFT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_3_LEFT);
+        assertThat(VehicleAreaWindow.WINDOW_ROW_3_RIGHT)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROW_3_RIGHT);
+        assertThat(VehicleAreaWindow.WINDOW_ROOF_TOP_1)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROOF_TOP_1);
+        assertThat(VehicleAreaWindow.WINDOW_ROOF_TOP_2)
+                .isEqualTo(android.hardware.automotive.vehicle.V2_0.VehicleAreaWindow.ROOF_TOP_2);
     }
 }
diff --git a/tests/carservice_test/Android.mk b/tests/carservice_test/Android.mk
index 3625a1f..b764df7 100644
--- a/tests/carservice_test/Android.mk
+++ b/tests/carservice_test/Android.mk
@@ -41,7 +41,7 @@
 LOCAL_STATIC_JAVA_LIBRARIES := junit
 # testng imported to use assertThrows, we can remove it once it's ported to JUnit's.
 LOCAL_STATIC_JAVA_LIBRARIES += \
-    android.car.watchdoglib \
+    android.car.test.utils \
     androidx.test.ext.junit \
     androidx.test.rules \
     android.hardware.automotive.vehicle-V2.0-java \
@@ -55,14 +55,17 @@
     vehicle-hal-support-lib-for-test \
     compatibility-device-util-axt
 
-
 LOCAL_JAVA_LIBRARIES := \
     android.car \
     android.car.userlib \
+    android.car.watchdoglib \
     android.test.runner \
     android.test.base
 
-LOCAL_JNI_SHARED_LIBRARIES := libdexmakerjvmtiagent
+# mockito-target-inline dependency
+LOCAL_JNI_SHARED_LIBRARIES := \
+    libdexmakerjvmtiagent \
+    libstaticjvmtiagent
 
 LOCAL_COMPATIBILITY_SUITE := general-tests
 
diff --git a/tests/carservice_test/AndroidManifest.xml b/tests/carservice_test/AndroidManifest.xml
index d960a72..1b3acc0 100644
--- a/tests/carservice_test/AndroidManifest.xml
+++ b/tests/carservice_test/AndroidManifest.xml
@@ -45,12 +45,6 @@
             </intent-filter>
         </service>
 
-        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityA"/>
-        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityB"/>
-        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityC"/>
-        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityThatFinishesImmediately"/>
-        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$BlockingActivity"
-                  android:taskAffinity="com.android.car.carservicetest.block"/>
         <activity android:name="com.android.car.CarUxRestrictionsManagerServiceTest$ActivityViewTestActivity"/>
         <activity android:name="com.android.car.pm.ActivityBlockingActivityTest$NonDoNoHistoryActivity"
                   android:noHistory="true"/>
diff --git a/tests/carservice_test/src/com/android/car/AppFocusTest.java b/tests/carservice_test/src/com/android/car/AppFocusTest.java
index c7ee982..390acf2 100644
--- a/tests/carservice_test/src/com/android/car/AppFocusTest.java
+++ b/tests/carservice_test/src/com/android/car/AppFocusTest.java
@@ -46,6 +46,7 @@
         manager.requestAppFocus(CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, ownershipListener);
         listener.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
                 CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, true);
+        listener.resetWait();
         manager.abandonAppFocus(ownershipListener, CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION);
         listener.waitForFocusChangeAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
                 CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION, false);
@@ -57,7 +58,7 @@
         private boolean mLastChangeAppActive;
         private final Semaphore mChangeWait = new Semaphore(0);
 
-        public boolean waitForFocusChangeAndAssert(long timeoutMs, int expectedAppType,
+        private boolean waitForFocusChangeAndAssert(long timeoutMs, int expectedAppType,
                 boolean expectedAppActive) throws Exception {
             if (!mChangeWait.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
                 return false;
@@ -67,6 +68,10 @@
             return true;
         }
 
+        private void resetWait() {
+            mChangeWait.drainPermits();
+        }
+
         @Override
         public void onAppFocusChanged(int appType, boolean active) {
             Log.i(TAG, "onAppFocusChanged appType=" + appType + " active=" + active);
diff --git a/tests/carservice_test/src/com/android/car/CarDrivingRestrictionsTest.java b/tests/carservice_test/src/com/android/car/CarDrivingRestrictionsTest.java
index 520e910..890981a 100644
--- a/tests/carservice_test/src/com/android/car/CarDrivingRestrictionsTest.java
+++ b/tests/carservice_test/src/com/android/car/CarDrivingRestrictionsTest.java
@@ -29,6 +29,7 @@
 import android.car.drivingstate.CarUxRestrictionsManager;
 import android.hardware.automotive.vehicle.V2_0.VehicleGear;
 import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
+import android.os.Build;
 import android.os.SystemClock;
 import android.util.Log;
 
@@ -211,9 +212,14 @@
                         .setTimestamp(SystemClock.elapsedRealtimeNanos())
                         .build());
         drivingEvent = listener.waitForDrivingStateChange();
-        assertNotNull(drivingEvent);
-        assertThat(drivingEvent.eventValue).isEqualTo(CarDrivingStateEvent.DRIVING_STATE_IDLING);
-
+        if (Build.IS_DEBUGGABLE) {
+            // In userdebug build, payloadChecker in HAL drops the invalid event.
+            assertNull(drivingEvent);
+        } else {
+            assertNotNull(drivingEvent);
+            assertThat(drivingEvent.eventValue).isEqualTo(
+                    CarDrivingStateEvent.DRIVING_STATE_IDLING);
+        }
         // Now, send in an invalid speed value as well, now the driving state will be unknown and
         // the UX restrictions will change to fully restricted.
         listener.reset();
@@ -224,13 +230,19 @@
                         .setTimestamp(SystemClock.elapsedRealtimeNanos())
                         .build());
         drivingEvent = listener.waitForDrivingStateChange();
-        assertNotNull(drivingEvent);
-        assertThat(drivingEvent.eventValue).isEqualTo(CarDrivingStateEvent.DRIVING_STATE_UNKNOWN);
-        restrictions = listener.waitForUxRestrictionsChange();
-        assertNotNull(restrictions);
-        assertTrue(restrictions.isRequiresDistractionOptimization());
-        assertThat(restrictions.getActiveRestrictions())
-                .isEqualTo(CarUxRestrictions.UX_RESTRICTIONS_FULLY_RESTRICTED);
+        if (Build.IS_DEBUGGABLE) {
+            // In userdebug build, payloadChecker in HAL drops the invalid event.
+            assertNull(drivingEvent);
+        } else {
+            assertNotNull(drivingEvent);
+            assertThat(drivingEvent.eventValue).isEqualTo(
+                    CarDrivingStateEvent.DRIVING_STATE_UNKNOWN);
+            restrictions = listener.waitForUxRestrictionsChange();
+            assertNotNull(restrictions);
+            assertTrue(restrictions.isRequiresDistractionOptimization());
+            assertThat(restrictions.getActiveRestrictions())
+                    .isEqualTo(CarUxRestrictions.UX_RESTRICTIONS_FULLY_RESTRICTED);
+        }
         mCarDrivingStateManager.unregisterListener();
         mCarUxRManager.unregisterListener();
     }
diff --git a/tests/carservice_test/src/com/android/car/CarHvacManagerTest.java b/tests/carservice_test/src/com/android/car/CarHvacManagerTest.java
index 5b1199c..df2ce60 100644
--- a/tests/carservice_test/src/com/android/car/CarHvacManagerTest.java
+++ b/tests/carservice_test/src/com/android/car/CarHvacManagerTest.java
@@ -16,9 +16,12 @@
 
 package com.android.car;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
+import static org.testng.Assert.assertThrows;
 
 import android.car.Car;
 import android.car.hardware.CarPropertyValue;
@@ -41,6 +44,8 @@
 import com.android.car.vehiclehal.VehiclePropValueBuilder;
 import com.android.car.vehiclehal.test.MockedVehicleHal.VehicleHalPropertyHandler;
 
+import junit.framework.AssertionFailedError;
+
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
@@ -83,6 +88,8 @@
         super.setUp();
         mAvailable = new Semaphore(0);
         mCarHvacManager = (CarHvacManager) getCar().getCarManager(Car.HVAC_SERVICE);
+        mCarHvacManager.setIntProperty(VehicleProperty.HVAC_FAN_SPEED,
+                VehicleAreaSeat.ROW_1_LEFT, 0);
     }
 
     // Test a boolean property
@@ -101,6 +108,17 @@
         assertFalse(defrost);
     }
 
+    /**
+     * Test {@link CarHvacManager#isPropertyAvailable(int, int)}
+     */
+    @Test
+    public void testHvacPropertyAvailable() {
+        assertThat(mCarHvacManager.isPropertyAvailable(VehicleProperty.HVAC_AC_ON,
+                VehicleAreaSeat.ROW_1_CENTER)).isFalse();
+        assertThat(mCarHvacManager.isPropertyAvailable(VehicleProperty.HVAC_FAN_SPEED,
+                VehicleAreaSeat.ROW_1_LEFT)).isTrue();
+    }
+
     // Test an integer property
     @Test
     public void testHvacFanSpeed() throws Exception {
@@ -213,6 +231,38 @@
         assertEquals(VehicleAreaSeat.ROW_1_LEFT, mEventZoneVal);
     }
 
+    /**
+     * Test {@link CarHvacManager#unregisterCallback(CarHvacEventCallback)}
+     */
+    @Test
+    public void testUnregisterCallback() throws Exception {
+        EventListener listener = new EventListener();
+        mCarHvacManager.registerCallback(listener);
+        // Wait for events generated on registration
+        assertTrue(mAvailable.tryAcquire(2L, TimeUnit.SECONDS));
+        assertTrue(mAvailable.tryAcquire(2L, TimeUnit.SECONDS));
+        assertTrue(mAvailable.tryAcquire(2L, TimeUnit.SECONDS));
+        assertTrue(mAvailable.tryAcquire(2L, TimeUnit.SECONDS));
+
+        // Inject a boolean event and wait for its callback in onPropertySet.
+        VehiclePropValue v = VehiclePropValueBuilder.newBuilder(VehicleProperty.HVAC_DEFROSTER)
+                .setAreaId(VehicleAreaWindow.FRONT_WINDSHIELD)
+                .setTimestamp(SystemClock.elapsedRealtimeNanos())
+                .addIntValue(1)
+                .build();
+        assertEquals(0, mAvailable.availablePermits());
+        getMockedVehicleHal().injectEvent(v);
+
+        // Verify client get the callback.
+        assertTrue(mAvailable.tryAcquire(2L, TimeUnit.SECONDS));
+        assertTrue(mEventBoolVal);
+        assertEquals(mEventZoneVal, VehicleAreaWindow.FRONT_WINDSHIELD);
+
+        // test unregister callback
+        mCarHvacManager.unregisterCallback(listener);
+        assertThrows(AssertionFailedError.class, () -> getMockedVehicleHal().injectEvent(v));
+    }
+
     private class HvacPropertyHandler implements VehicleHalPropertyHandler {
         HashMap<Integer, VehiclePropValue> mMap = new HashMap<>();
 
diff --git a/tests/carservice_test/src/com/android/car/CarInfoManagerTest.java b/tests/carservice_test/src/com/android/car/CarInfoManagerTest.java
index a6ae2fb..4c3cc6d 100644
--- a/tests/carservice_test/src/com/android/car/CarInfoManagerTest.java
+++ b/tests/carservice_test/src/com/android/car/CarInfoManagerTest.java
@@ -15,11 +15,14 @@
  */
 package com.android.car;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
+import static com.google.common.truth.Truth.assertThat;
 
 import android.car.Car;
 import android.car.CarInfoManager;
+import android.car.PortLocationType;
+import android.car.VehicleAreaSeat;
+import android.hardware.automotive.vehicle.V2_0.EvConnectorType;
+import android.hardware.automotive.vehicle.V2_0.FuelType;
 import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -30,11 +33,21 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.Arrays;
+import java.util.List;
+
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public class CarInfoManagerTest extends MockedCarTestBase {
     private static final String MAKE_NAME = "ANDROID";
-
+    private static final String MODEL_NAME = "TEST";
+    private static final int MODEL_YEAR = 2020;
+    private static final String MODEL_YEAR_STRING = "2020";
+    private static final float FAKE_CAPACITY = 2.0f;
+    private static final List<Integer> FUEL_TYPES =
+            Arrays.asList(FuelType.FUEL_TYPE_CNG, FuelType.FUEL_TYPE_BIODIESEL);
+    private static final List<Integer> EV_CONNECTOR_TYPES =
+            Arrays.asList(android.car.EvConnectorType.GBT, android.car.EvConnectorType.GBT_DC);
     private CarInfoManager mCarInfoManager;
 
     @Override
@@ -43,7 +56,37 @@
                 VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_MAKE)
                         .setStringValue(MAKE_NAME)
                         .build());
-
+        addStaticProperty(VehicleProperty.INFO_MODEL_YEAR,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_MODEL_YEAR)
+                        .addIntValue(MODEL_YEAR).build());
+        addStaticProperty(VehicleProperty.INFO_FUEL_CAPACITY,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_FUEL_CAPACITY)
+                        .addFloatValue(FAKE_CAPACITY).build());
+        addStaticProperty(VehicleProperty.INFO_EV_BATTERY_CAPACITY,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_EV_BATTERY_CAPACITY)
+                        .addFloatValue(FAKE_CAPACITY).build());
+        addStaticProperty(VehicleProperty.INFO_MODEL,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_MODEL)
+                        .setStringValue(MODEL_NAME).build());
+        addStaticProperty(VehicleProperty.INFO_FUEL_TYPE,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_FUEL_TYPE)
+                        .addIntValue(FuelType.FUEL_TYPE_CNG)
+                        .addIntValue(FuelType.FUEL_TYPE_BIODIESEL)
+                        .build());
+        addStaticProperty(VehicleProperty.INFO_EV_CONNECTOR_TYPE,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_EV_CONNECTOR_TYPE)
+                        .addIntValue(EvConnectorType.GBT_AC)
+                        .addIntValue(EvConnectorType.GBT_DC)
+                        .build());
+        addStaticProperty(VehicleProperty.INFO_EV_PORT_LOCATION,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_EV_PORT_LOCATION)
+                        .addIntValue(PortLocationType.FRONT).build());
+        addStaticProperty(VehicleProperty.INFO_FUEL_DOOR_LOCATION,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_FUEL_DOOR_LOCATION)
+                        .addIntValue(PortLocationType.FRONT_LEFT).build());
+        addStaticProperty(VehicleProperty.INFO_DRIVER_SEAT,
+                VehiclePropValueBuilder.newBuilder(VehicleProperty.INFO_FUEL_DOOR_LOCATION)
+                        .addIntValue(VehicleAreaSeat.SEAT_ROW_1_LEFT).build());
     }
 
     @Override
@@ -54,17 +97,50 @@
 
     @Test
     public void testVehicleId() throws Exception {
-        assertNotNull(mCarInfoManager.getVehicleId());
+        assertThat(mCarInfoManager.getVehicleId()).isNotNull();
     }
 
     @Test
     public void testManufacturer() throws Exception {
-        assertEquals(MAKE_NAME, mCarInfoManager.getManufacturer());
+        assertThat(mCarInfoManager.getManufacturer()).isEqualTo(MAKE_NAME);
     }
 
     @Test
-    public void testNotNullItems() throws Exception {
-        assertNotNull(mCarInfoManager.getModel());
-        assertNotNull(mCarInfoManager.getModelYear());
+    public void testGetModel() throws Exception {
+        assertThat(mCarInfoManager.getModel()).isEqualTo(MODEL_NAME);
+    }
+
+    @Test
+    public void testGetFuelType() throws Exception {
+        assertThat(mCarInfoManager.getFuelTypes()).asList().containsAllIn(FUEL_TYPES).inOrder();
+    }
+
+    @Test
+    public void testGetEvConnectorTypes() throws Exception {
+        assertThat(mCarInfoManager.getEvConnectorTypes()).asList().containsAllIn(EV_CONNECTOR_TYPES)
+                .inOrder();
+    }
+
+    @Test
+    public void testGetModelYear() throws Exception {
+        assertThat(mCarInfoManager.getModelYear()).isEqualTo(MODEL_YEAR_STRING);
+        assertThat(mCarInfoManager.getModelYearInInteger()).isEqualTo(MODEL_YEAR);
+    }
+
+    @Test
+    public void testGetPortDoorLocation() throws Exception {
+        assertThat(mCarInfoManager.getEvPortLocation()).isEqualTo(PortLocationType.FRONT);
+        assertThat(mCarInfoManager.getFuelDoorLocation()).isEqualTo(PortLocationType.FRONT_LEFT);
+    }
+
+    @Test
+    public void testGetCapacity() throws Exception {
+        assertThat(mCarInfoManager.getEvBatteryCapacity()).isEqualTo(FAKE_CAPACITY);
+        assertThat(mCarInfoManager.getFuelCapacity()).isEqualTo(FAKE_CAPACITY);
+    }
+
+    @Test
+    public void testGetDriverSeat() throws Exception {
+        assertThat(mCarInfoManager.getDriverSeat()).isEqualTo(VehicleAreaSeat.SEAT_ROW_1_LEFT);
     }
 }
diff --git a/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java b/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java
index adfb98b..e94f71c 100644
--- a/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java
+++ b/tests/carservice_test/src/com/android/car/CarPowerManagementTest.java
@@ -139,6 +139,21 @@
                 VehicleApPowerStateReport.SHUTDOWN_CANCELLED);
     }
 
+    @Test
+    @UiThreadTest
+    public void testCancelShutdownFromWaitForFinish() throws Exception {
+        assertWaitForVhal();
+        mPowerStateHandler.sendStateAndCheckResponse(
+                VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP,
+                VehicleApPowerStateReport.DEEP_SLEEP_ENTRY);
+        // After DEEP_SLEEP_ENTRY, we're in WAIT_FOR_FINISH
+        mPowerStateHandler.sendStateAndCheckResponse(
+                VehicleApPowerStateReq.CANCEL_SHUTDOWN,
+                0,
+                VehicleApPowerStateReport.SHUTDOWN_CANCELLED);
+    }
+
     /**********************************************************************************************
      * Test for invalid state transtions
      **********************************************************************************************/
@@ -194,9 +209,6 @@
                 VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.CAN_SLEEP,
                 VehicleApPowerStateReport.DEEP_SLEEP_ENTRY);
-        // Once the device has entered WAIT_FOR_FINISH, shutdown cannot be cancelled.
-        mPowerStateHandler.sendStateAndExpectNoResponse(VehicleApPowerStateReq.CANCEL_SHUTDOWN, 0);
-        mPowerStateHandler.sendStateAndExpectNoResponse(VehicleApPowerStateReq.ON, 0);
         mPowerStateHandler.sendStateAndExpectNoResponse(
                 VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.CAN_SLEEP);
@@ -217,9 +229,6 @@
                 VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.SHUTDOWN_ONLY,
                 VehicleApPowerStateReport.SHUTDOWN_START);
-        // Once the device has entered WAIT_FOR_FINISH, shutdown cannot be cancelled.
-        mPowerStateHandler.sendStateAndExpectNoResponse(VehicleApPowerStateReq.CANCEL_SHUTDOWN, 0);
-        mPowerStateHandler.sendStateAndExpectNoResponse(VehicleApPowerStateReq.ON, 0);
         mPowerStateHandler.sendStateAndExpectNoResponse(
                 VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.CAN_SLEEP);
diff --git a/tests/carservice_test/src/com/android/car/CarPropertyEventTest.java b/tests/carservice_test/src/com/android/car/CarPropertyEventTest.java
new file mode 100644
index 0000000..cf3e482
--- /dev/null
+++ b/tests/carservice_test/src/com/android/car/CarPropertyEventTest.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2020 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.car;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.car.hardware.CarPropertyValue;
+import android.car.hardware.property.CarPropertyEvent;
+import android.car.hardware.property.CarPropertyManager;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import org.junit.After;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.junit.MockitoJUnitRunner;
+
+/** Unit tests for {@link android.car.hardware.property.CarPropertyEvent} */
+@RunWith(MockitoJUnitRunner.class)
+public final class CarPropertyEventTest {
+
+    private static final int FAKE_PROPERTY_ID = 0x1101111;
+    private static final int FAKE_AREA_ID = 0x1;
+    private static final int FAKE_PROPERTY_VALUE = 5;
+    private final Parcel mParcel = Parcel.obtain();
+
+    @After
+    public void tearDown() throws Exception {
+        mParcel.recycle();
+    }
+
+    private <T extends Parcelable> T readFromParcel() {
+        mParcel.setDataPosition(0);
+        return mParcel.readParcelable(null);
+    }
+
+    private void writeToParcel(Parcelable value) {
+        mParcel.writeParcelable(value, 0);
+    }
+
+    @Test
+    public void testCreateErrorEvent() {
+        CarPropertyEvent carPropertyEvent = CarPropertyEvent
+                .createErrorEventWithErrorCode(FAKE_PROPERTY_ID, FAKE_AREA_ID,
+                        CarPropertyManager.CAR_SET_PROPERTY_ERROR_CODE_UNKNOWN);
+
+        assertThat(carPropertyEvent.getErrorCode())
+                .isEqualTo(CarPropertyManager.CAR_SET_PROPERTY_ERROR_CODE_UNKNOWN);
+        assertThat(carPropertyEvent.getCarPropertyValue().getStatus()).isEqualTo(
+                CarPropertyValue.STATUS_ERROR);
+        assertThat(carPropertyEvent.getEventType()).isEqualTo(
+                CarPropertyEvent.PROPERTY_EVENT_ERROR);
+        assertThat(carPropertyEvent.describeContents()).isEqualTo(0);
+    }
+
+    @Test
+    public void testWriteAndReadEvent() {
+        CarPropertyValue<Integer> value = new CarPropertyValue<Integer>(FAKE_PROPERTY_ID,
+                FAKE_AREA_ID, FAKE_PROPERTY_VALUE);
+        CarPropertyEvent carPropertyEvent = new CarPropertyEvent(
+                CarPropertyEvent.PROPERTY_EVENT_PROPERTY_CHANGE, value);
+
+        writeToParcel(carPropertyEvent);
+        CarPropertyEvent eventReadFromParcel = readFromParcel();
+
+        assertThat(eventReadFromParcel.getCarPropertyValue().getAreaId())
+                .isEqualTo(FAKE_AREA_ID);
+        assertThat(eventReadFromParcel.getCarPropertyValue().getPropertyId())
+                .isEqualTo(FAKE_PROPERTY_ID);
+        assertThat(eventReadFromParcel.getCarPropertyValue().getValue())
+                .isEqualTo(FAKE_PROPERTY_VALUE);
+        assertThat(eventReadFromParcel.getEventType())
+                .isEqualTo(CarPropertyEvent.PROPERTY_EVENT_PROPERTY_CHANGE);
+    }
+}
diff --git a/tests/carservice_test/src/com/android/car/CarPropertyManagerTest.java b/tests/carservice_test/src/com/android/car/CarPropertyManagerTest.java
index 4bfbc21..027cef4 100644
--- a/tests/carservice_test/src/com/android/car/CarPropertyManagerTest.java
+++ b/tests/carservice_test/src/com/android/car/CarPropertyManagerTest.java
@@ -98,6 +98,11 @@
     private static final int CUSTOM_GLOBAL_MIXED_PROP_ID_2 =
             0x1102 | VehiclePropertyGroup.VENDOR | VehiclePropertyType.MIXED | VehicleArea.GLOBAL;
 
+    private static final int CUSTOM_GLOBAL_INT_ARRAY_PROP =
+            0x1103 | VehiclePropertyGroup.VENDOR | VehiclePropertyType.INT32_VEC
+                    | VehicleArea.GLOBAL;
+    private static final Integer[] FAKE_INT_ARRAY_VALUE = {1, 2};
+
     // Vendor properties for testing exceptions.
     private static final int PROP_CAUSE_STATUS_CODE_TRY_AGAIN =
             0x1201 | VehiclePropertyGroup.VENDOR | VehiclePropertyType.INT32 | VehicleArea.GLOBAL;
@@ -164,6 +169,8 @@
                 case PROP_CAUSE_STATUS_CODE_INVALID_ARG:
                 case CUSTOM_SEAT_INT_PROP_1:
                 case CUSTOM_SEAT_INT_PROP_2:
+                case CUSTOM_GLOBAL_INT_ARRAY_PROP:
+                case VehiclePropertyIds.INFO_VIN:
                     break;
                 default:
                     Assert.fail("Unexpected CarPropertyConfig: " + cfg.toString());
@@ -185,6 +192,62 @@
         assertThat(result.getValue()).isEqualTo(EXPECTED_VALUE_2);
     }
 
+    /**
+     * Test {@link android.car.hardware.property.CarPropertyManager#getIntArrayProperty(int, int)}
+     */
+    @Test
+    public void testGetIntArrayProperty() {
+        mManager.setProperty(Integer[].class, CUSTOM_GLOBAL_INT_ARRAY_PROP, VehicleArea.GLOBAL,
+                FAKE_INT_ARRAY_VALUE);
+
+        int[] result = mManager.getIntArrayProperty(CUSTOM_GLOBAL_INT_ARRAY_PROP,
+                VehicleArea.GLOBAL);
+        assertThat(result).asList().containsExactlyElementsIn(FAKE_INT_ARRAY_VALUE);
+    }
+
+    /**
+     * Test {@link CarPropertyManager#getProperty(Class, int, int)}
+     */
+    @Test
+    public void testGetPropertyWithClass() {
+        mManager.setProperty(Integer[].class, CUSTOM_GLOBAL_INT_ARRAY_PROP, VehicleArea.GLOBAL,
+                FAKE_INT_ARRAY_VALUE);
+
+        CarPropertyValue<Integer[]> result = mManager.getProperty(Integer[].class,
+                CUSTOM_GLOBAL_INT_ARRAY_PROP, VehicleArea.GLOBAL);
+        assertThat(result.getValue()).asList().containsExactlyElementsIn(FAKE_INT_ARRAY_VALUE);
+    }
+
+    /**
+     * Test {@link CarPropertyManager#isPropertyAvailable(int, int)}
+     */
+    @Test
+    public void testIsPropertyAvailable() {
+        assertThat(mManager.isPropertyAvailable(FAKE_PROPERTY_ID, VehicleArea.GLOBAL)).isFalse();
+        assertThat(mManager.isPropertyAvailable(CUSTOM_GLOBAL_INT_ARRAY_PROP, VehicleArea.GLOBAL))
+                .isTrue();
+    }
+
+    /**
+     * Test {@link CarPropertyManager#getWritePermission(int)}
+     * and {@link CarPropertyManager#getWritePermission(int)}
+     */
+    @Test
+    public void testGetPermission() {
+        String hvacReadPermission = mManager.getReadPermission(
+                VehiclePropertyIds.HVAC_TEMPERATURE_SET);
+        assertThat(hvacReadPermission).isEqualTo(Car.PERMISSION_CONTROL_CAR_CLIMATE);
+        String hvacWritePermission = mManager.getWritePermission(
+                VehiclePropertyIds.HVAC_TEMPERATURE_SET);
+        assertThat(hvacWritePermission).isEqualTo(Car.PERMISSION_CONTROL_CAR_CLIMATE);
+
+        // For read-only property
+        String vinReadPermission = mManager.getReadPermission(VehiclePropertyIds.INFO_VIN);
+        assertThat(vinReadPermission).isEqualTo(Car.PERMISSION_IDENTIFICATION);
+        String vinWritePermission = mManager.getWritePermission(VehiclePropertyIds.INFO_VIN);
+        assertThat(vinWritePermission).isNull();
+    }
+
     @Test
     public void testGetPropertyConfig() {
         CarPropertyConfig config = mManager.getCarPropertyConfig(CUSTOM_SEAT_MIXED_PROP_ID_1);
@@ -413,12 +476,14 @@
         addProperty(CUSTOM_SEAT_MIXED_PROP_ID_1, handler).setConfigArray(CONFIG_ARRAY_1)
                 .addAreaConfig(DRIVER_SIDE_AREA_ID).addAreaConfig(PASSENGER_SIDE_AREA_ID);
         addProperty(CUSTOM_GLOBAL_MIXED_PROP_ID_2, handler).setConfigArray(CONFIG_ARRAY_2);
+        addProperty(CUSTOM_GLOBAL_INT_ARRAY_PROP, handler);
 
         VehiclePropValue tempValue = new VehiclePropValue();
         tempValue.value.floatValues.add(INIT_TEMP_VALUE);
         tempValue.prop = VehiclePropertyIds.HVAC_TEMPERATURE_SET;
         addProperty(VehiclePropertyIds.HVAC_TEMPERATURE_SET, tempValue)
                 .addAreaConfig(DRIVER_SIDE_AREA_ID).addAreaConfig(PASSENGER_SIDE_AREA_ID);
+        addProperty(VehiclePropertyIds.INFO_VIN);
 
         addProperty(PROP_CAUSE_STATUS_CODE_ACCESS_DENIED, handler);
         addProperty(PROP_CAUSE_STATUS_CODE_TRY_AGAIN, handler);
diff --git a/tests/carservice_test/src/com/android/car/ICarImplTest.java b/tests/carservice_test/src/com/android/car/ICarImplTest.java
index d7c2ad1..7b8691f 100644
--- a/tests/carservice_test/src/com/android/car/ICarImplTest.java
+++ b/tests/carservice_test/src/com/android/car/ICarImplTest.java
@@ -17,7 +17,6 @@
 package com.android.car;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doThrow;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
@@ -28,6 +27,7 @@
 import static org.mockito.Mockito.spy;
 
 import android.car.Car;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
 import android.content.Context;
 import android.content.res.Resources;
 import android.hardware.automotive.vehicle.V2_0.IVehicle;
@@ -56,9 +56,7 @@
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
-import org.mockito.MockitoSession;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.mockito.quality.Strictness;
 
 import java.io.File;
 import java.io.IOException;
@@ -77,8 +75,8 @@
  * 7. {@link TimeInterface} provides access to wake lock operations.
  */
 @RunWith(MockitoJUnitRunner.class)
-public class ICarImplTest {
-    private static final String TAG = "ICarImplTest";
+public class ICarImplTest extends AbstractExtendedMockitoTestCase {
+    private static final String TAG = ICarImplTest.class.getSimpleName();
 
     @Mock private ActivityManagerInterface mMockActivityManagerInterface;
     @Mock private DisplayInterface mMockDisplayInterface;
@@ -90,7 +88,6 @@
     @Mock private CarWatchdogService mCarWatchdogService;
 
     private Context mContext;
-    private MockitoSession mSession;
     private SystemInterface mFakeSystemInterface;
     private UserManager mUserManager;
 
@@ -101,11 +98,6 @@
      */
     @Before
     public void setUp() throws Exception {
-        mSession = mockitoSession()
-                .initMocks(this)
-                .strictness(Strictness.LENIENT)
-                .startMocking();
-
         // InstrumentationTestRunner prepares a looper, but AndroidJUnitRunner does not.
         // http://b/25897652.
         if (Looper.myLooper() == null) {
@@ -146,11 +138,13 @@
      */
     @After
     public void tearDown() {
-        if (mMockIOInterface != null) {
-            mMockIOInterface.tearDown();
+        try {
+            if (mMockIOInterface != null) {
+                mMockIOInterface.tearDown();
+            }
+        } finally {
+            CarLocalServices.removeAllServices();
         }
-        mSession.finishMocking();
-        CarLocalServices.removeAllServices();
     }
 
     @Test
diff --git a/tests/carservice_test/src/com/android/car/MockedCarTestBase.java b/tests/carservice_test/src/com/android/car/MockedCarTestBase.java
index f845972..7ceb494 100644
--- a/tests/carservice_test/src/com/android/car/MockedCarTestBase.java
+++ b/tests/carservice_test/src/com/android/car/MockedCarTestBase.java
@@ -15,6 +15,8 @@
  */
 package com.android.car;
 
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 import static org.mockito.ArgumentMatchers.any;
@@ -66,6 +68,8 @@
 
 import org.junit.After;
 import org.junit.Before;
+import org.mockito.MockitoSession;
+import org.mockito.quality.Strictness;
 
 import java.io.File;
 import java.io.IOException;
@@ -103,6 +107,8 @@
     private final SparseArray<VehiclePropConfigBuilder> mPropToConfigBuilder = new SparseArray<>();
     private final CarWatchdogService mCarWatchdogService = mock(CarWatchdogService.class);
 
+    private MockitoSession mSession;
+
     protected synchronized MockedVehicleHal createMockedVehicleHal() {
         return new MockedVehicleHal();
     }
@@ -162,10 +168,21 @@
         return cn.flattenToString();
     }
 
+    /** Child class should override this to configure mocking in different way */
+    protected MockitoSession createMockingSession() {
+        return mockitoSession()
+                .initMocks(this)
+                .strictness(Strictness.LENIENT)
+                .startMocking();
+    }
+
     @Before
     @UiThreadTest
     public void setUp() throws Exception {
         Log.i(TAG, "setUp");
+
+        mSession = createMockingSession();
+
         releaseRealCarService(getContext());
 
         mMockedVehicleHal = createMockedVehicleHal();
@@ -207,15 +224,27 @@
     }
 
     @After
+    @UiThreadTest
     public void tearDown() throws Exception {
-        if (mCar != null) {
-            mCar.disconnect();
-        }
-        if (mCarImpl != null) {
-            mCarImpl.release();
-        }
-        if (mMockIOInterface != null) {
-            mMockIOInterface.tearDown();
+        Log.i(TAG, "tearDown");
+
+        try {
+            if (mCar != null) {
+                mCar.disconnect();
+                mCar = null;
+            }
+            if (mCarImpl != null) {
+                mCarImpl.release();
+                mCarImpl = null;
+            }
+            if (mMockIOInterface != null) {
+                mMockIOInterface.tearDown();
+            }
+            mMockedVehicleHal = null;
+        } finally {
+            if (mSession != null) {
+                mSession.finishMocking();
+            }
         }
     }
 
diff --git a/tests/carservice_test/src/com/android/car/SystemActivityMonitoringServiceTest.java b/tests/carservice_test/src/com/android/car/SystemActivityMonitoringServiceTest.java
deleted file mode 100644
index 778b635..0000000
--- a/tests/carservice_test/src/com/android/car/SystemActivityMonitoringServiceTest.java
+++ /dev/null
@@ -1,250 +0,0 @@
-/*
- * 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.car;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import android.annotation.Nullable;
-import android.app.Activity;
-import android.app.ActivityOptions;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.hardware.display.DisplayManager;
-import android.hardware.display.VirtualDisplay;
-import android.util.Log;
-import android.view.Display;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.filters.FlakyTest;
-import androidx.test.filters.MediumTest;
-import androidx.test.platform.app.InstrumentationRegistry;
-
-import com.android.car.SystemActivityMonitoringService.TopTaskInfoContainer;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.concurrent.Semaphore;
-import java.util.concurrent.TimeUnit;
-import java.util.function.BooleanSupplier;
-
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class SystemActivityMonitoringServiceTest {
-    private static final String TAG = "SystemActivityMonitoringServiceTest";
-
-    private static final long ACTIVITY_TIMEOUT_MS = 5000;
-    private static final long DEFAULT_TIMEOUT_SECONDS = 2;
-
-    private SystemActivityMonitoringService mService;
-    private Semaphore mActivityLaunchSemaphore = new Semaphore(0);
-
-    private final TopTaskInfoContainer[] mTopTaskInfo = new TopTaskInfoContainer[1];
-
-    @Before
-    public void setUp() throws Exception {
-        mService = new SystemActivityMonitoringService(getContext());
-        mService.registerActivityLaunchListener(
-                new FilteredLaunchListener(/* desiredComponent= */ null));
-    }
-
-    @After
-    public void tearDown() throws Exception {
-        mService.registerActivityLaunchListener(null);
-        mService = null;
-    }
-
-    @Test
-    @FlakyTest
-    public void testActivityLaunch() throws Exception {
-        ComponentName activityA = toComponentName(getTestContext(), ActivityA.class);
-        mService.registerActivityLaunchListener(new FilteredLaunchListener(activityA));
-        startActivity(getContext(), activityA);
-        assertTopTaskActivity(activityA);
-
-        ComponentName activityB = toComponentName(getTestContext(), ActivityB.class);
-        mService.registerActivityLaunchListener(new FilteredLaunchListener(activityB));
-        startActivity(getContext(), activityB);
-        assertTopTaskActivity(activityB);
-    }
-
-    @Test
-    @FlakyTest
-    public void testActivityBlocking() throws Exception {
-        ComponentName blackListedActivity = toComponentName(getTestContext(), ActivityC.class);
-        ComponentName blockingActivity = toComponentName(getTestContext(), BlockingActivity.class);
-        Intent blockingIntent = new Intent();
-        blockingIntent.setComponent(blockingActivity);
-
-        // start a black listed activity
-        mService.registerActivityLaunchListener(new FilteredLaunchListener(blackListedActivity));
-        startActivity(getContext(), blackListedActivity);
-        assertTopTaskActivity(blackListedActivity);
-
-        // Instead of start activity, invoke blockActivity.
-        mService.registerActivityLaunchListener(new FilteredLaunchListener(blockingActivity));
-        mService.blockActivity(mTopTaskInfo[0], blockingIntent);
-        assertTopTaskActivity(blockingActivity);
-    }
-
-    @Test
-    @FlakyTest
-    public void testRemovesFromTopTasks() throws Exception {
-        ComponentName activityThatFinishesImmediately =
-                toComponentName(getTestContext(), ActivityThatFinishesImmediately.class);
-        startActivity(getContext(), activityThatFinishesImmediately);
-        waitUntil(() -> topTasksHasComponent(activityThatFinishesImmediately));
-        waitUntil(() -> !topTasksHasComponent(activityThatFinishesImmediately));
-    }
-
-    @Test
-    @FlakyTest
-    public void testGetTopTasksOnMultiDisplay() throws Exception {
-        String virtualDisplayName = "virtual_display";
-        DisplayManager displayManager = getContext().getSystemService(DisplayManager.class);
-        VirtualDisplay virtualDisplay = displayManager.createVirtualDisplay(
-                virtualDisplayName, 10, 10, 10, null, 0);
-
-        ComponentName activityA = toComponentName(getTestContext(), ActivityA.class);
-        startActivity(getContext(), activityA, Display.DEFAULT_DISPLAY);
-        waitUntil(() -> topTasksHasComponent(activityA));
-
-        ComponentName activityB = toComponentName(getTestContext(), ActivityB.class);
-        startActivity(getContext(), activityB, virtualDisplay.getDisplay().getDisplayId());
-        waitUntil(() -> topTasksHasComponent(activityB));
-
-        virtualDisplay.release();
-    }
-
-    private void waitUntil(BooleanSupplier condition) throws Exception {
-        while (!condition.getAsBoolean()) {
-            boolean didAquire =
-                    mActivityLaunchSemaphore.tryAcquire(DEFAULT_TIMEOUT_SECONDS, TimeUnit.SECONDS);
-            if (!didAquire && !condition.getAsBoolean()) {
-                throw new RuntimeException("failed while waiting for condition to become true");
-            }
-        }
-    }
-
-    private boolean topTasksHasComponent(ComponentName component) {
-        for (TopTaskInfoContainer topTaskInfoContainer : mService.getTopTasks()) {
-            if (topTaskInfoContainer.topActivity.equals(component)) {
-                return true;
-            }
-        }
-        return false;
-    }
-
-    /** Activity that closes itself after some timeout to clean up the screen. */
-    public static class TempActivity extends Activity {
-        @Override
-        protected void onResume() {
-            super.onResume();
-            getMainThreadHandler().postDelayed(this::finish, ACTIVITY_TIMEOUT_MS);
-        }
-    }
-
-    public static class ActivityA extends TempActivity {}
-
-    public static class ActivityB extends TempActivity {}
-
-    public static class ActivityC extends TempActivity {}
-
-    public static class ActivityThatFinishesImmediately extends Activity {
-
-        @Override
-        protected void onResume() {
-            super.onResume();
-            finish();
-        }
-    }
-
-    public static class BlockingActivity extends TempActivity {}
-
-    private void assertTopTaskActivity(ComponentName activity) throws Exception {
-        assertTrue(mActivityLaunchSemaphore.tryAcquire(DEFAULT_TIMEOUT_SECONDS, TimeUnit.SECONDS));
-        synchronized (mTopTaskInfo) {
-            assertEquals(activity, mTopTaskInfo[0].topActivity);
-        }
-    }
-
-    private Context getContext() {
-        return InstrumentationRegistry.getInstrumentation().getTargetContext();
-    }
-
-    private Context getTestContext() {
-        return InstrumentationRegistry.getInstrumentation().getContext();
-    }
-
-    private static ComponentName toComponentName(Context ctx, Class<?> cls) {
-        return ComponentName.createRelative(ctx, cls.getName());
-    }
-
-    private static void startActivity(Context ctx, ComponentName name) {
-        startActivity(ctx, name, Display.DEFAULT_DISPLAY);
-    }
-
-    private static void startActivity(Context ctx, ComponentName name, int displayId) {
-        Intent intent = new Intent();
-        intent.setComponent(name);
-        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-
-        ActivityOptions options = ActivityOptions.makeBasic();
-        options.setLaunchDisplayId(displayId);
-
-        ctx.startActivity(intent, options.toBundle());
-    }
-
-    private class FilteredLaunchListener
-            implements SystemActivityMonitoringService.ActivityLaunchListener {
-
-        @Nullable
-        private final ComponentName mDesiredComponent;
-
-        /**
-         * Creates an instance of an
-         * {@link com.android.car.SystemActivityMonitoringService.ActivityLaunchListener}
-         * that filters based on the component name or does not filter if component name is null.
-         */
-        FilteredLaunchListener(@Nullable ComponentName desiredComponent) {
-            mDesiredComponent = desiredComponent;
-        }
-
-        @Override
-        public void onActivityLaunch(TopTaskInfoContainer topTask) {
-            // Ignore activities outside of this test case
-            if (!getTestContext().getPackageName().equals(topTask.topActivity.getPackageName())) {
-                Log.d(TAG, "Component launched from other package: "
-                        + topTask.topActivity.getClassName());
-                return;
-            }
-            if (mDesiredComponent != null && !topTask.topActivity.equals(mDesiredComponent)) {
-                Log.d(TAG, String.format("Unexpected component: %s. Expected: %s",
-                        topTask.topActivity.getClassName(), mDesiredComponent));
-                return;
-            }
-
-            synchronized (mTopTaskInfo) {
-                mTopTaskInfo[0] = topTask;
-            }
-            mActivityLaunchSemaphore.release();
-        }
-    }
-}
diff --git a/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperLegacyTest.java b/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperLegacyTest.java
index 9428681..170ae8c 100644
--- a/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperLegacyTest.java
+++ b/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperLegacyTest.java
@@ -28,6 +28,7 @@
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.android.car.R;
+import com.android.car.audio.hal.AudioControlWrapperV1;
 
 import com.google.common.collect.Lists;
 
@@ -49,7 +50,9 @@
     public final MockitoRule rule = MockitoJUnit.rule();
 
     @Mock
-    private AudioControlWrapper mMockAudioControlWrapper;
+    private AudioControlWrapperV1 mMockAudioControlWrapper;
+    @Mock
+    private CarAudioSettings mMockCarAudioSettings;
 
     private static final int INVALID_BUS = -1;
     private final Context mContext = ApplicationProvider.getApplicationContext();
@@ -61,7 +64,7 @@
 
         RuntimeException exception = expectThrows(RuntimeException.class,
                 () -> new CarAudioZonesHelperLegacy(mContext, mCarVolumeGroups,
-                        carAudioDeviceInfos, mMockAudioControlWrapper));
+                        carAudioDeviceInfos, mMockAudioControlWrapper, mMockCarAudioSettings));
 
         assertThat(exception.getMessage()).contains("Two addresses map to same bus number:");
     }
@@ -74,7 +77,7 @@
 
         RuntimeException exception = expectThrows(RuntimeException.class,
                 () -> new CarAudioZonesHelperLegacy(mContext, mCarVolumeGroups,
-                carAudioDeviceInfos, mMockAudioControlWrapper));
+                carAudioDeviceInfos, mMockAudioControlWrapper, mMockCarAudioSettings));
 
         assertThat(exception.getMessage()).contains("Invalid bus -1 was associated with context");
     }
@@ -85,7 +88,7 @@
         when(mMockAudioControlWrapper.getBusForContext(anyInt())).thenReturn(1);
 
         CarAudioZonesHelperLegacy helper = new CarAudioZonesHelperLegacy(mContext, mCarVolumeGroups,
-                carAudioDeviceInfos, mMockAudioControlWrapper);
+                carAudioDeviceInfos, mMockAudioControlWrapper, mMockCarAudioSettings);
 
         CarAudioZone[] zones = helper.loadAudioZones();
 
@@ -99,7 +102,7 @@
         when(mMockAudioControlWrapper.getBusForContext(anyInt())).thenReturn(1);
 
         CarAudioZonesHelperLegacy helper = new CarAudioZonesHelperLegacy(mContext, mCarVolumeGroups,
-                carAudioDeviceInfos, mMockAudioControlWrapper);
+                carAudioDeviceInfos, mMockAudioControlWrapper, mMockCarAudioSettings);
 
         CarAudioZone[] zones = helper.loadAudioZones();
         CarVolumeGroup[] volumeGroups = zones[0].getVolumeGroups();
@@ -114,7 +117,7 @@
         when(mMockAudioControlWrapper.getBusForContext(CarAudioContext.MUSIC)).thenReturn(1);
 
         CarAudioZonesHelperLegacy helper = new CarAudioZonesHelperLegacy(mContext, mCarVolumeGroups,
-                carAudioDeviceInfos, mMockAudioControlWrapper);
+                carAudioDeviceInfos, mMockAudioControlWrapper, mMockCarAudioSettings);
 
         CarAudioZone[] zones = helper.loadAudioZones();
 
@@ -141,7 +144,7 @@
                 .thenReturn(1);
 
         CarAudioZonesHelperLegacy helper = new CarAudioZonesHelperLegacy(mContext, mCarVolumeGroups,
-                carAudioDeviceInfos, mMockAudioControlWrapper);
+                carAudioDeviceInfos, mMockAudioControlWrapper, mMockCarAudioSettings);
 
         CarAudioZone[] zones = helper.loadAudioZones();
 
diff --git a/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperTest.java b/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperTest.java
index fdb7c38..a37c0e4 100644
--- a/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperTest.java
+++ b/tests/carservice_test/src/com/android/car/audio/CarAudioZonesHelperTest.java
@@ -19,10 +19,6 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.junit.Assert.assertArrayEquals;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.expectThrows;
@@ -56,8 +52,12 @@
 public class CarAudioZonesHelperTest {
     private List<CarAudioDeviceInfo> mCarAudioOutputDeviceInfos;
     private AudioDeviceInfo[] mInputAudioDeviceInfos;
-    private Context mContext;
     private InputStream mInputStream;
+    private Context mContext;
+    private CarAudioSettings mCarAudioSettings;
+
+    private static final String PRIMARY_ZONE_NAME = "primary zone";
+
     private static final String BUS_0_ADDRESS = "bus0_media_out";
     private static final String BUS_1_ADDRESS = "bus1_navigation_out";
     private static final String BUS_3_ADDRESS = "bus3_call_ring_out";
@@ -78,6 +78,7 @@
         mInputAudioDeviceInfos = generateInputDeviceInfos();
         mContext = ApplicationProvider.getApplicationContext();
         mInputStream = mContext.getResources().openRawResource(R.raw.car_audio_configuration);
+        mCarAudioSettings = mock(CarAudioSettings.class);
     }
 
     @After
@@ -134,19 +135,19 @@
 
     @Test
     public void loadAudioZones_parsesAllZones() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
-        CarAudioZone[] zones = cazh.loadAudioZones();
+        List<CarAudioZone> zoneList = Arrays.asList(cazh.loadAudioZones());
 
-        assertThat(zones.length).isEqualTo(2);
+        assertThat(zoneList).hasSize(2);
     }
 
     @Test
     public void loadAudioZones_versionOneParsesAllZones() throws Exception {
         try (InputStream versionOneStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_V1)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, versionOneStream,
+            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, versionOneStream,
                     mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             CarAudioZone[] zones = cazh.loadAudioZones();
@@ -157,7 +158,7 @@
 
     @Test
     public void loadAudioZones_parsesAudioZoneId() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
@@ -165,17 +166,17 @@
         List<Integer> zoneIds = getListOfZoneIds(zones);
         assertThat(zoneIds.size()).isEqualTo(2);
         assertThat(zoneIds)
-                .containsAllOf(CarAudioManager.PRIMARY_AUDIO_ZONE, SECONDARY_ZONE_ID).inOrder();
+                .containsExactly(CarAudioManager.PRIMARY_AUDIO_ZONE, SECONDARY_ZONE_ID).inOrder();
     }
 
     @Test
     public void loadAudioZones_parsesOccupantZoneId() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
-        assertEquals(2, zones.length);
+        assertThat(zones.length).isEqualTo(2);
 
         SparseIntArray audioZoneIdToOccupantZoneIdMapping =
                 cazh.getCarAudioZoneIdToOccupantZoneIdMapping();
@@ -187,43 +188,43 @@
 
     @Test
     public void loadAudioZones_parsesZoneName() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
         CarAudioZone primaryZone = zones[0];
-        assertEquals("primary zone", primaryZone.getName());
+        assertThat(primaryZone.getName()).isEqualTo(PRIMARY_ZONE_NAME);
     }
 
     @Test
     public void loadAudioZones_parsesIsPrimary() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
         CarAudioZone primaryZone = zones[0];
-        assertTrue(primaryZone.isPrimaryZone());
+        assertThat(primaryZone.isPrimaryZone()).isTrue();
 
         CarAudioZone rseZone = zones[1];
-        assertFalse(rseZone.isPrimaryZone());
+        assertThat(rseZone.isPrimaryZone()).isFalse();
     }
 
     @Test
     public void loadAudioZones_parsesVolumeGroups() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
         CarAudioZone primaryZone = zones[0];
-        assertEquals(2, primaryZone.getVolumeGroupCount());
+        assertThat(primaryZone.getVolumeGroupCount()).isEqualTo(2);
     }
 
     @Test
     public void loadAudioZones_parsesAddresses() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
@@ -231,28 +232,29 @@
         CarAudioZone primaryZone = zones[0];
         CarVolumeGroup volumeGroup = primaryZone.getVolumeGroups()[0];
         List<String> addresses = volumeGroup.getAddresses();
-        assertEquals(2, addresses.size());
-        assertEquals(BUS_0_ADDRESS, addresses.get(0));
-        assertEquals(BUS_3_ADDRESS, addresses.get(1));
+        assertThat(addresses).containsExactly(BUS_0_ADDRESS, BUS_3_ADDRESS);
     }
 
     @Test
     public void loadAudioZones_parsesContexts() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
         CarAudioZone primaryZone = zones[0];
         CarVolumeGroup volumeGroup = primaryZone.getVolumeGroups()[0];
-        int[] expectedContextForBus0 = {CarAudioContext.MUSIC};
-        assertArrayEquals(expectedContextForBus0, volumeGroup.getContextsForAddress(BUS_0_ADDRESS));
+        assertThat(volumeGroup.getContextsForAddress(BUS_0_ADDRESS)).asList()
+                .containsExactly(CarAudioContext.MUSIC);
 
-        int[] expectedContextForBus100 = CarAudioContext.CONTEXTS;
         CarAudioZone rearSeatEntertainmentZone = zones[1];
         CarVolumeGroup rseVolumeGroup = rearSeatEntertainmentZone.getVolumeGroups()[0];
-        int[] contextForBus100 = rseVolumeGroup.getContextsForAddress(BUS_100_ADDRESS);
-        assertArrayEquals(expectedContextForBus100, contextForBus100);
+        List<Integer> contextForBus100List =
+                Arrays.stream(rseVolumeGroup.getContextsForAddress(BUS_100_ADDRESS))
+                        .boxed().collect(Collectors.toList());
+        List<Integer> contextsList =
+                Arrays.stream(CarAudioContext.CONTEXTS).boxed().collect(Collectors.toList());
+        assertThat(contextForBus100List).containsExactlyElementsIn(contextsList);
     }
 
     @Test
@@ -260,7 +262,7 @@
         InputStream versionOneStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_V1);
 
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, versionOneStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, versionOneStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
@@ -280,8 +282,9 @@
         InputStream v1NonLegacyContextStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_V1_with_non_legacy_contexts);
 
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, v1NonLegacyContextStream,
-                mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+        CarAudioZonesHelper cazh =
+                new CarAudioZonesHelper(mCarAudioSettings, v1NonLegacyContextStream,
+                        mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         IllegalArgumentException exception = expectThrows(IllegalArgumentException.class,
                 cazh::loadAudioZones);
@@ -291,36 +294,37 @@
 
     @Test
     public void loadAudioZones_parsesPhysicalDisplayAddresses() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
         CarAudioZone primaryZone = zones[0];
         List<DisplayAddress.Physical> primaryPhysicals = primaryZone.getPhysicalDisplayAddresses();
-        assertEquals(2, primaryPhysicals.size());
-        assertEquals(1, (long) primaryPhysicals.get(0).getPort());
-        assertEquals(2, (long) primaryPhysicals.get(1).getPort());
+        assertThat(primaryPhysicals).hasSize(2);
+        assertThat(primaryPhysicals.get(0).getPort()).isEqualTo(1);
+        assertThat(primaryPhysicals.get(1).getPort()).isEqualTo(2);
     }
 
     @Test
     public void loadAudioZones_defaultsDisplayAddressesToEmptyList() throws Exception {
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, mInputStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, mInputStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         CarAudioZone[] zones = cazh.loadAudioZones();
 
         CarAudioZone rseZone = zones[1];
         List<DisplayAddress.Physical> rsePhysicals = rseZone.getPhysicalDisplayAddresses();
-        assertTrue(rsePhysicals.isEmpty());
+        assertThat(rsePhysicals).isEmpty();
     }
 
     @Test(expected = RuntimeException.class)
     public void loadAudioZones_throwsOnDuplicatePorts() throws Exception {
         try (InputStream duplicatePortStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_duplicate_ports)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, duplicatePortStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, duplicatePortStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             cazh.loadAudioZones();
         }
@@ -330,7 +334,7 @@
     public void loadAudioZones_throwsOnNonNumericalPort() {
         InputStream duplicatePortStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_non_numerical_port);
-        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, duplicatePortStream,
+        CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings, duplicatePortStream,
                 mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
         IllegalArgumentException exception = expectThrows(IllegalArgumentException.class,
@@ -342,8 +346,9 @@
     public void loadAudioZones_passesOnMissingAudioZoneIdForPrimary() throws Exception {
         try (InputStream missingAudioZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_no_audio_zone_id_for_primary_zone)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, missingAudioZoneIdStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, missingAudioZoneIdStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             CarAudioZone[] zones = cazh.loadAudioZones();
 
@@ -358,7 +363,7 @@
     public void loadAudioZones_versionOneFailsOnAudioZoneId() throws Exception {
         try (InputStream versionOneAudioZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_V1_with_audio_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext,
+            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings,
                     versionOneAudioZoneIdStream, mCarAudioOutputDeviceInfos,
                     mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
@@ -372,8 +377,9 @@
     public void loadAudioZones_versionOneFailsOnOccupantZoneId() throws Exception {
         try (InputStream versionOneOccupantIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_V1_with_occupant_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, versionOneOccupantIdStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, versionOneOccupantIdStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -385,8 +391,9 @@
     public void loadAudioZones_parsesInputDevices() throws Exception {
         try (InputStream inputDevicesStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_with_input_devices)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, inputDevicesStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, inputDevicesStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             CarAudioZone[] zones = cazh.loadAudioZones();
 
@@ -398,7 +405,7 @@
             List<String> primaryZoneInputAddresses =
                     primaryZoneInputDevices.stream().map(a -> a.getAddress()).collect(
                             Collectors.toList());
-            assertThat(primaryZoneInputAddresses).containsAllOf(PRIMARY_ZONE_FM_TUNER_ADDRESS,
+            assertThat(primaryZoneInputAddresses).containsExactly(PRIMARY_ZONE_FM_TUNER_ADDRESS,
                     PRIMARY_ZONE_MICROPHONE_ADDRESS).inOrder();
 
             CarAudioZone secondaryZone = zones[1];
@@ -407,7 +414,7 @@
             List<String> secondaryZoneInputAddresses =
                     secondaryZoneInputDevices.stream().map(a -> a.getAddress()).collect(
                             Collectors.toList());
-            assertThat(secondaryZoneInputAddresses).containsAllOf(
+            assertThat(secondaryZoneInputAddresses).containsExactly(
                     SECONDARY_ZONE_BUS_1000_INPUT_ADDRESS,
                     SECONDARY_ZONE_BACK_MICROPHONE_ADDRESS).inOrder();
         }
@@ -417,7 +424,7 @@
     public void loadAudioZones_failsOnDuplicateOccupantZoneId() throws Exception {
         try (InputStream duplicateOccupantZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_duplicate_occupant_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext,
+            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings,
                     duplicateOccupantZoneIdStream, mCarAudioOutputDeviceInfos,
                     mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
@@ -431,8 +438,9 @@
     public void loadAudioZones_failsOnDuplicateAudioZoneId() throws Exception {
         try (InputStream duplicateAudioZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_duplicate_audio_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, duplicateAudioZoneIdStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, duplicateAudioZoneIdStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -444,8 +452,9 @@
     public void loadAudioZones_failsOnEmptyInputDeviceAddress() throws Exception {
         try (InputStream inputDevicesStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_empty_input_device)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, inputDevicesStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, inputDevicesStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
@@ -458,8 +467,9 @@
     public void loadAudioZones_failsOnNonNumericalAudioZoneId() throws Exception {
         try (InputStream nonNumericalStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_non_numerical_audio_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, nonNumericalStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, nonNumericalStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -471,8 +481,9 @@
     public void loadAudioZones_failsOnNegativeAudioZoneId() throws Exception {
         try (InputStream negativeAudioZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_negative_audio_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, negativeAudioZoneIdStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, negativeAudioZoneIdStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -484,8 +495,9 @@
     public void loadAudioZones_failsOnMissingInputDevice() throws Exception {
         try (InputStream inputDevicesStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_missing_address)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, inputDevicesStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, inputDevicesStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             NullPointerException thrown =
                     expectThrows(NullPointerException.class,
@@ -498,8 +510,9 @@
     public void loadAudioZones_failsOnNonNumericalOccupantZoneId() throws Exception {
         try (InputStream nonNumericalStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_non_numerical_occupant_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, nonNumericalStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, nonNumericalStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -511,7 +524,7 @@
     public void loadAudioZones_failsOnNegativeOccupantZoneId() throws Exception {
         try (InputStream negativeOccupantZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_negative_occupant_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext,
+            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings,
                     negativeOccupantZoneIdStream, mCarAudioOutputDeviceInfos,
                     mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
@@ -525,8 +538,9 @@
     public void loadAudioZones_failsOnNonExistentInputDevice() throws Exception {
         try (InputStream inputDevicesStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_non_existent_input_device)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, inputDevicesStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, inputDevicesStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
@@ -539,8 +553,9 @@
     public void loadAudioZones_failsOnEmptyOccupantZoneId() throws Exception {
         try (InputStream emptyOccupantZoneIdStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_empty_occupant_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, emptyOccupantZoneIdStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, emptyOccupantZoneIdStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -552,8 +567,9 @@
     public void loadAudioZones_failsOnNonZeroAudioZoneIdForPrimary() throws Exception {
         try (InputStream nonZeroForPrimaryStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_primary_zone_with_non_zero_audio_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, nonZeroForPrimaryStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, nonZeroForPrimaryStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
@@ -565,13 +581,13 @@
     public void loadAudioZones_failsOnZeroAudioZoneIdForSecondary() throws Exception {
         try (InputStream zeroZoneIdForSecondaryStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_non_primary_zone_with_primary_audio_zone_id)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext,
+            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mCarAudioSettings,
                     zeroZoneIdForSecondaryStream, mCarAudioOutputDeviceInfos,
                     mInputAudioDeviceInfos);
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
                             () -> cazh.loadAudioZones());
-            assertThat(thrown).hasMessageThat().contains("for primary zone");
+            assertThat(thrown).hasMessageThat().contains(PRIMARY_ZONE_NAME);
         }
     }
 
@@ -579,8 +595,9 @@
     public void loadAudioZones_failsOnRepeatedInputDevice() throws Exception {
         try (InputStream inputDevicesStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_repeat_input_device)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, inputDevicesStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, inputDevicesStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             IllegalArgumentException thrown =
                     expectThrows(IllegalArgumentException.class,
@@ -593,8 +610,9 @@
     public void loadAudioZones_failsOnMissingOutputDevice() throws Exception {
         try (InputStream outputDevicesStream = mContext.getResources().openRawResource(
                 R.raw.car_audio_configuration_output_address_does_not_exist)) {
-            CarAudioZonesHelper cazh = new CarAudioZonesHelper(mContext, outputDevicesStream,
-                    mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
+            CarAudioZonesHelper cazh =
+                    new CarAudioZonesHelper(mCarAudioSettings, outputDevicesStream,
+                            mCarAudioOutputDeviceInfos, mInputAudioDeviceInfos);
 
             IllegalStateException thrown =
                     expectThrows(IllegalStateException.class,
diff --git a/tests/carservice_test/src/com/android/car/audio/CarVolumeGroupTest.java b/tests/carservice_test/src/com/android/car/audio/CarVolumeGroupTest.java
index ee79d5b..cc9ecd3 100644
--- a/tests/carservice_test/src/com/android/car/audio/CarVolumeGroupTest.java
+++ b/tests/carservice_test/src/com/android/car/audio/CarVolumeGroupTest.java
@@ -15,6 +15,8 @@
  */
 package com.android.car.audio;
 
+import static com.google.common.truth.Truth.assertThat;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
@@ -22,15 +24,18 @@
 import static org.mockito.Matchers.eq;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
+import static org.testng.Assert.expectThrows;
+
+import android.app.ActivityManager;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.os.UserHandle;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
 import com.google.common.primitives.Ints;
 
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
 
@@ -40,22 +45,26 @@
 import java.util.Map;
 
 @RunWith(AndroidJUnit4.class)
-public class CarVolumeGroupTest {
+public class CarVolumeGroupTest extends AbstractExtendedMockitoTestCase{
     private static final int STEP_VALUE = 2;
     private static final int MIN_GAIN = 0;
     private static final int MAX_GAIN = 5;
     private static final int DEFAULT_GAIN = 0;
+    private static final int TEST_USER_10 = 10;
+    private static final int TEST_USER_11 = 11;
     private static final String OTHER_ADDRESS = "other_address";
     private static final String MEDIA_DEVICE_ADDRESS = "music";
     private static final String NAVIGATION_DEVICE_ADDRESS = "navigation";
 
-    @Rule
-    public final ExpectedException thrown = ExpectedException.none();
-
 
     private CarAudioDeviceInfo mMediaDevice;
     private CarAudioDeviceInfo mNavigationDevice;
 
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session.spyStatic(ActivityManager.class);
+    }
+
     @Before
     public void setUp() {
         mMediaDevice = generateCarAudioDeviceInfo(MEDIA_DEVICE_ADDRESS);
@@ -64,8 +73,8 @@
 
     @Test
     public void bind_associatesDeviceAddresses() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         carVolumeGroup.bind(CarAudioContext.MUSIC, mMediaDevice);
@@ -81,8 +90,8 @@
 
     @Test
     public void bind_checksForSameStepSize() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         carVolumeGroup.bind(CarAudioContext.MUSIC, mMediaDevice);
@@ -90,15 +99,16 @@
                 NAVIGATION_DEVICE_ADDRESS, STEP_VALUE + 1,
                 MIN_GAIN, MAX_GAIN);
 
-        thrown.expect(IllegalArgumentException.class);
-        thrown.expectMessage("Gain controls within one group must have same step value");
-        carVolumeGroup.bind(CarAudioContext.NAVIGATION, differentStepValueDevice);
+        IllegalArgumentException thrown = expectThrows(IllegalArgumentException.class,
+                () -> carVolumeGroup.bind(CarAudioContext.NAVIGATION, differentStepValueDevice));
+        assertThat(thrown).hasMessageThat()
+                .contains("Gain controls within one group must have same step value");
     }
 
     @Test
     public void bind_updatesMinGainToSmallestValue() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         CarAudioDeviceInfo largestMinGain = generateCarAudioDeviceInfo(
@@ -122,8 +132,8 @@
 
     @Test
     public void bind_updatesMaxGainToLargestValue() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         CarAudioDeviceInfo smallestMaxGain = generateCarAudioDeviceInfo(
@@ -147,17 +157,16 @@
 
     @Test
     public void bind_checksThatTheSameContextIsNotBoundTwice() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         carVolumeGroup.bind(CarAudioContext.NAVIGATION, mMediaDevice);
 
-        thrown.expect(IllegalArgumentException.class);
-        thrown.expectMessage(
-                "Context NAVIGATION has already been bound to " + MEDIA_DEVICE_ADDRESS);
-
-        carVolumeGroup.bind(CarAudioContext.NAVIGATION, mMediaDevice);
+        IllegalArgumentException thrown = expectThrows(IllegalArgumentException.class,
+                () -> carVolumeGroup.bind(CarAudioContext.NAVIGATION, mMediaDevice));
+        assertThat(thrown).hasMessageThat()
+                .contains("Context NAVIGATION has already been bound to " + MEDIA_DEVICE_ADDRESS);
     }
 
     @Test
@@ -241,27 +250,25 @@
     public void setCurrentGainIndex_checksNewGainIsAboveMin() {
         CarVolumeGroup carVolumeGroup = testVolumeGroupSetup();
 
-        thrown.expect(IllegalArgumentException.class);
-        thrown.expectMessage("Gain out of range (0:5) -2index -1");
-
-        carVolumeGroup.setCurrentGainIndex(-1);
+        IllegalArgumentException thrown = expectThrows(IllegalArgumentException.class,
+                () -> carVolumeGroup.setCurrentGainIndex(-1));
+        assertThat(thrown).hasMessageThat().contains("Gain out of range (0:5) -2index -1");
     }
 
     @Test
     public void setCurrentGainIndex_checksNewGainIsBelowMax() {
         CarVolumeGroup carVolumeGroup = testVolumeGroupSetup();
 
-        thrown.expect(IllegalArgumentException.class);
-        thrown.expectMessage("Gain out of range (0:5) 6index 3");
-
-        carVolumeGroup.setCurrentGainIndex(3);
+        IllegalArgumentException thrown = expectThrows(IllegalArgumentException.class,
+                () -> carVolumeGroup.setCurrentGainIndex(3));
+        assertThat(thrown).hasMessageThat().contains("Gain out of range (0:5) 6index 3");
     }
 
     @Test
     public void getMinGainIndex_alwaysReturnsZero() {
 
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
         CarAudioDeviceInfo minGainPlusOneDevice = generateCarAudioDeviceInfo(
                 NAVIGATION_DEVICE_ADDRESS, STEP_VALUE, 10, MAX_GAIN);
@@ -280,33 +287,33 @@
     public void loadVolumesForUser_setsCurrentGainIndexForUser() {
 
         List<Integer> users = new ArrayList<>();
-        users.add(10);
-        users.add(11);
+        users.add(TEST_USER_10);
+        users.add(TEST_USER_11);
 
         Map<Integer, Integer> storedGainIndex = new HashMap<>();
-        storedGainIndex.put(10, 2);
-        storedGainIndex.put(11, 0);
+        storedGainIndex.put(TEST_USER_10, 2);
+        storedGainIndex.put(TEST_USER_11, 0);
 
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(users, 0 , 0, storedGainIndex);
+        CarAudioSettings settings =
+                generateCarAudioSettings(users, 0 , 0, storedGainIndex);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         CarAudioDeviceInfo deviceInfo = generateCarAudioDeviceInfo(
                 NAVIGATION_DEVICE_ADDRESS, STEP_VALUE, MIN_GAIN, MAX_GAIN);
         carVolumeGroup.bind(CarAudioContext.NAVIGATION, deviceInfo);
-        carVolumeGroup.loadVolumesForUser(10);
+        carVolumeGroup.loadVolumesForUser(TEST_USER_10);
 
         assertEquals(2, carVolumeGroup.getCurrentGainIndex());
 
-        carVolumeGroup.loadVolumesForUser(11);
+        carVolumeGroup.loadVolumesForUser(TEST_USER_11);
 
         assertEquals(0, carVolumeGroup.getCurrentGainIndex());
     }
 
     @Test
     public void loadUserStoredGainIndex_setsCurrentGainIndexToDefault() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0, 0 , 0, 10);
+        CarAudioSettings settings =
+                generateCarAudioSettings(TEST_USER_10, 0, 0, 10);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         CarAudioDeviceInfo deviceInfo = generateCarAudioDeviceInfo(
@@ -323,9 +330,53 @@
     }
 
     @Test
+    public void setCurrentGainIndex_setsCurrentGainIndexForUser() {
+        List<Integer> users = new ArrayList<>();
+        users.add(TEST_USER_11);
+
+        Map<Integer, Integer> storedGainIndex = new HashMap<>();
+        storedGainIndex.put(TEST_USER_11, 2);
+
+        CarAudioSettings settings =
+                generateCarAudioSettings(users, 0 , 0, storedGainIndex);
+        CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
+
+        CarAudioDeviceInfo deviceInfo = generateCarAudioDeviceInfo(
+                NAVIGATION_DEVICE_ADDRESS, STEP_VALUE, MIN_GAIN, MAX_GAIN);
+        carVolumeGroup.bind(CarAudioContext.NAVIGATION, deviceInfo);
+        carVolumeGroup.loadVolumesForUser(TEST_USER_11);
+
+        carVolumeGroup.setCurrentGainIndex(MIN_GAIN);
+
+        verify(settings).storeVolumeGainIndexForUser(TEST_USER_11, 0, 0, MIN_GAIN);
+    }
+
+    @Test
+    public void setCurrentGainIndex_setsCurrentGainIndexForDefaultUser() {
+        List<Integer> users = new ArrayList<>();
+        users.add(UserHandle.USER_CURRENT);
+
+        Map<Integer, Integer> storedGainIndex = new HashMap<>();
+        storedGainIndex.put(UserHandle.USER_CURRENT, 2);
+
+        CarAudioSettings settings =
+                generateCarAudioSettings(users, 0 , 0, storedGainIndex);
+        CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
+
+        CarAudioDeviceInfo deviceInfo = generateCarAudioDeviceInfo(
+                NAVIGATION_DEVICE_ADDRESS, STEP_VALUE, MIN_GAIN, MAX_GAIN);
+        carVolumeGroup.bind(CarAudioContext.NAVIGATION, deviceInfo);
+
+        carVolumeGroup.setCurrentGainIndex(MIN_GAIN);
+
+        verify(settings)
+                .storeVolumeGainIndexForUser(UserHandle.USER_CURRENT, 0, 0, MIN_GAIN);
+    }
+
+    @Test
     public void bind_setsCurrentGainIndexToStoredGainIndex() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         CarAudioDeviceInfo deviceInfo = generateCarAudioDeviceInfo(
@@ -338,8 +389,8 @@
 
     @Test
     public void getAddressForContext_returnsExpectedDeviceAddress() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
 
@@ -352,8 +403,8 @@
 
     @Test
     public void getAddressForContext_returnsNull() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
         String nullAddress = carVolumeGroup.getAddressForContext(CarAudioContext.MUSIC);
@@ -362,8 +413,8 @@
     }
 
     private CarVolumeGroup testVolumeGroupSetup() {
-        CarVolumeSettings settings =
-                generateCarVolumeGroupSettings(0 , 0, 2);
+        CarAudioSettings settings =
+                generateCarAudioSettings(0 , 0, 2);
         CarVolumeGroup carVolumeGroup = new CarVolumeGroup(settings, 0, 0);
 
 
@@ -393,18 +444,18 @@
         return cadiMock;
     }
 
-    private CarVolumeSettings generateCarVolumeGroupSettings(int userId,
+    private CarAudioSettings generateCarAudioSettings(int userId,
             int zoneId, int id, int storedGainIndex) {
-        CarVolumeSettings settingsMock = Mockito.mock(CarVolumeSettings.class);
+        CarAudioSettings settingsMock = Mockito.mock(CarAudioSettings.class);
         when(settingsMock.getStoredVolumeGainIndexForUser(userId, zoneId, id))
                 .thenReturn(storedGainIndex);
 
         return settingsMock;
     }
 
-    private CarVolumeSettings generateCarVolumeGroupSettings(
+    private CarAudioSettings generateCarAudioSettings(
             int zoneId, int id, int storedGainIndex) {
-        CarVolumeSettings settingsMock = Mockito.mock(CarVolumeSettings.class);
+        CarAudioSettings settingsMock = Mockito.mock(CarAudioSettings.class);
 
         when(settingsMock.getStoredVolumeGainIndexForUser(anyInt(), eq(zoneId),
                 eq(id))).thenReturn(storedGainIndex);
@@ -412,9 +463,9 @@
         return settingsMock;
     }
 
-    private CarVolumeSettings generateCarVolumeGroupSettings(List<Integer> users,
+    private CarAudioSettings generateCarAudioSettings(List<Integer> users,
             int zoneId, int id, Map<Integer, Integer> storedGainIndex) {
-        CarVolumeSettings settingsMock = Mockito.mock(CarVolumeSettings.class);
+        CarAudioSettings settingsMock = Mockito.mock(CarAudioSettings.class);
         for (Integer user : users) {
             when(settingsMock.getStoredVolumeGainIndexForUser(user, zoneId,
                     id)).thenReturn(storedGainIndex.get(user));
diff --git a/tests/carservice_test/src/com/android/car/audio/CarZonesAudioFocusTest.java b/tests/carservice_test/src/com/android/car/audio/CarZonesAudioFocusTest.java
index a793fcb..7a3f813 100644
--- a/tests/carservice_test/src/com/android/car/audio/CarZonesAudioFocusTest.java
+++ b/tests/carservice_test/src/com/android/car/audio/CarZonesAudioFocusTest.java
@@ -18,7 +18,11 @@
 
 import static android.media.AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE;
 import static android.media.AudioAttributes.USAGE_MEDIA;
+import static android.media.AudioAttributes.USAGE_VOICE_COMMUNICATION;
 import static android.media.AudioManager.AUDIOFOCUS_GAIN;
+import static android.media.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_DELAYED;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_FAILED;
 import static android.media.AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
 
 import static org.mockito.ArgumentMatchers.anyInt;
@@ -28,6 +32,7 @@
 import static org.mockito.Mockito.when;
 
 import android.car.media.CarAudioManager;
+import android.content.ContentResolver;
 import android.content.pm.PackageManager;
 import android.media.AudioAttributes;
 import android.media.AudioFocusInfo;
@@ -50,6 +55,7 @@
 public class CarZonesAudioFocusTest {
     private static final String MEDIA_CLIENT_ID = "media-client-id";
     private static final String NAVIGATION_CLIENT_ID = "nav-client-id";
+    private static final String CALL_CLIENT_ID = "call-client-id";
     private static final String PACKAGE_NAME = "com.android.car.audio";
     private static final int AUDIOFOCUS_FLAG = 0;
     private static final int PRIMARY_ZONE_ID = CarAudioManager.PRIMARY_AUDIO_ZONE;
@@ -57,6 +63,8 @@
     private static final int MEDIA_CLIENT_UID_1 = 1086753;
     private static final int MEDIA_CLIENT_UID_2 = 1000009;
     private static final int NAVIGATION_CLIENT_UID = 1010101;
+    private static final int TEST_USER_ID = 10;
+    private static final int CALL_CLIENT_UID = 1086753;
 
     @Rule
     public MockitoRule rule = MockitoJUnit.rule();
@@ -72,27 +80,27 @@
     private CarAudioZone mSecondaryAudioZone;
     @Mock
     private CarAudioService mCarAudioService;
-
-    private CarZonesAudioFocus mCarZonesAudioFocus;
+    @Mock
+    private ContentResolver mContentResolver;
+    @Mock
+    private CarAudioSettings mCarAudioSettings;
 
     private CarAudioZone[] mMockAudioZones;
 
     @Before
     public void setUp() {
         mMockAudioZones = generateAudioZones();
-        mCarZonesAudioFocus =
-                new CarZonesAudioFocus(mMockAudioManager, mMockPackageManager, mMockAudioZones);
-        mCarZonesAudioFocus.setOwningPolicy(mCarAudioService, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_withNoCurrentFocusHolder_requestGranted() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_1)).thenReturn(PRIMARY_ZONE_ID);
         AudioFocusInfo audioFocusInfo = new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
                 .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(MEDIA_CLIENT_UID_1).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfo);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfo);
 
         verify(mMockAudioManager, never())
                 .dispatchAudioFocusChange(eq(audioFocusInfo), anyInt(), eq(mAudioPolicy));
@@ -100,19 +108,20 @@
 
     @Test
     public void onAudioFocusRequest_forTwoDifferentZones_requestGranted() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_1)).thenReturn(PRIMARY_ZONE_ID);
         AudioFocusInfo audioFocusInfoClient1 = new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
                 .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(MEDIA_CLIENT_UID_1).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoClient1);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoClient1);
 
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_2)).thenReturn(SECONDARY_ZONE_ID);
         AudioFocusInfo audioFocusInfoClient2 = new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
                 .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(MEDIA_CLIENT_UID_2).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoClient2);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoClient2);
 
         verify(mMockAudioManager, never())
                 .dispatchAudioFocusChange(eq(audioFocusInfoClient1), anyInt(), eq(mAudioPolicy));
@@ -123,21 +132,22 @@
 
     @Test
     public void onAudioFocusRequest_forTwoDifferentZones_abandonInOne_requestGranted() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_1)).thenReturn(PRIMARY_ZONE_ID);
         AudioFocusInfo audioFocusInfoClient1 = new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
                 .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(MEDIA_CLIENT_UID_1).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoClient1);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoClient1);
 
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_2)).thenReturn(SECONDARY_ZONE_ID);
         AudioFocusInfo audioFocusInfoClient2 = new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
                 .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(MEDIA_CLIENT_UID_2).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoClient2);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoClient2);
 
-        mCarZonesAudioFocus.onAudioFocusAbandon(audioFocusInfoClient2);
+        carZonesAudioFocus.onAudioFocusAbandon(audioFocusInfoClient2);
 
         verify(mMockAudioManager, never())
                 .dispatchAudioFocusChange(eq(audioFocusInfoClient1), anyInt(), eq(mAudioPolicy));
@@ -148,6 +158,7 @@
 
     @Test
     public void onAudioFocusRequest_withBundleFocusRequest_requestGranted() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
         when(mCarAudioService.isAudioZoneIdValid(PRIMARY_ZONE_ID)).thenReturn(true);
 
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_1)).thenReturn(PRIMARY_ZONE_ID);
@@ -158,7 +169,7 @@
                 .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(MEDIA_CLIENT_UID_1).setBundle(bundle).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoClient);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoClient);
 
         verify(mMockAudioManager, never())
                 .dispatchAudioFocusChange(eq(audioFocusInfoClient), anyInt(), eq(mAudioPolicy));
@@ -166,12 +177,13 @@
 
     @Test
     public void onAudioFocusRequest_repeatForSameZone_requestGranted() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
         when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_1)).thenReturn(PRIMARY_ZONE_ID);
         AudioFocusInfo audioFocusInfoMediaClient = new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
                         .setClientId(MEDIA_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                         .setClientUid(MEDIA_CLIENT_UID_1).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoMediaClient);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoMediaClient);
 
         when(mCarAudioService.getZoneIdForUid(NAVIGATION_CLIENT_UID)).thenReturn(PRIMARY_ZONE_ID);
         AudioFocusInfo audioFocusInfoNavClient =
@@ -179,7 +191,7 @@
                 .setClientId(NAVIGATION_CLIENT_ID).setGainRequest(AUDIOFOCUS_GAIN)
                 .setClientUid(NAVIGATION_CLIENT_UID).createAudioFocusInfo();
 
-        requestFocusAndAssertIfRequestFailed(audioFocusInfoNavClient);
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoNavClient);
 
         verify(mMockAudioManager)
                 .dispatchAudioFocusChange(eq(audioFocusInfoMediaClient),
@@ -190,10 +202,105 @@
                         anyInt(), eq(mAudioPolicy));
     }
 
-    private void requestFocusAndAssertIfRequestFailed(AudioFocusInfo audioFocusClient) {
-        mCarZonesAudioFocus.onAudioFocusRequest(audioFocusClient, AUDIOFOCUS_REQUEST_GRANTED);
+    @Test
+    public void onAudioFocusRequest_forNavigationWhileOnCall_rejectNavOnCall_requestFailed() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
+        when(mCarAudioService.isAudioZoneIdValid(PRIMARY_ZONE_ID)).thenReturn(true);
+        setUpRejectNavigationOnCallValue(true);
+        carZonesAudioFocus.updateUserForZoneId(PRIMARY_ZONE_ID, TEST_USER_ID);
+
+        when(mCarAudioService.getZoneIdForUid(CALL_CLIENT_UID)).thenReturn(PRIMARY_ZONE_ID);
+        AudioFocusInfo audioFocusInfoCallClient = new AudioFocusInfoBuilder()
+                .setUsage(USAGE_VOICE_COMMUNICATION)
+                .setGainRequest(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
+                .setClientId(CALL_CLIENT_ID)
+                .setClientUid(CALL_CLIENT_UID).createAudioFocusInfo();
+
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoCallClient);
+
+        when(mCarAudioService.getZoneIdForUid(NAVIGATION_CLIENT_UID)).thenReturn(PRIMARY_ZONE_ID);
+        AudioFocusInfo audioFocusInfoNavClient =
+                new AudioFocusInfoBuilder().setUsage(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE)
+                        .setGainRequest(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
+                        .setClientId(NAVIGATION_CLIENT_ID)
+                        .setClientUid(NAVIGATION_CLIENT_UID).createAudioFocusInfo();
+
+        carZonesAudioFocus
+                .onAudioFocusRequest(audioFocusInfoNavClient, AUDIOFOCUS_REQUEST_GRANTED);
+        verify(mMockAudioManager).setFocusRequestResult(audioFocusInfoNavClient,
+                AUDIOFOCUS_REQUEST_FAILED, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocusRequest_forNavigationWhileOnCall_noRejectNavOnCall_requestSucceeds() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(false);
+        when(mCarAudioService.isAudioZoneIdValid(PRIMARY_ZONE_ID)).thenReturn(true);
+        setUpRejectNavigationOnCallValue(false);
+        carZonesAudioFocus.updateUserForZoneId(PRIMARY_ZONE_ID, TEST_USER_ID);
+
+        when(mCarAudioService.getZoneIdForUid(CALL_CLIENT_UID)).thenReturn(PRIMARY_ZONE_ID);
+        AudioFocusInfo audioFocusInfoCallClient = new AudioFocusInfoBuilder()
+                .setUsage(USAGE_VOICE_COMMUNICATION)
+                .setGainRequest(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
+                .setClientId(CALL_CLIENT_ID)
+                .setClientUid(CALL_CLIENT_UID).createAudioFocusInfo();
+
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoCallClient);
+
+        when(mCarAudioService.getZoneIdForUid(NAVIGATION_CLIENT_UID)).thenReturn(PRIMARY_ZONE_ID);
+        AudioFocusInfo audioFocusInfoNavClient =
+                new AudioFocusInfoBuilder().setUsage(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE)
+                        .setGainRequest(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
+                        .setClientId(NAVIGATION_CLIENT_ID)
+                        .setClientUid(NAVIGATION_CLIENT_UID).createAudioFocusInfo();
+
+
+        carZonesAudioFocus
+                .onAudioFocusRequest(audioFocusInfoNavClient, AUDIOFOCUS_REQUEST_GRANTED);
+        verify(mMockAudioManager).setFocusRequestResult(audioFocusInfoNavClient,
+                AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocusRequest_forMediaWhileOnCall_withDelayedEnable_delayedSucceeds() {
+        CarZonesAudioFocus carZonesAudioFocus = getCarZonesAudioFocus(true);
+        when(mCarAudioService.isAudioZoneIdValid(PRIMARY_ZONE_ID)).thenReturn(true);
+
+        when(mCarAudioService.getZoneIdForUid(CALL_CLIENT_UID)).thenReturn(PRIMARY_ZONE_ID);
+        AudioFocusInfo audioFocusInfoCallClient = new AudioFocusInfoBuilder()
+                .setUsage(USAGE_VOICE_COMMUNICATION)
+                .setGainRequest(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK)
+                .setClientId(CALL_CLIENT_ID)
+                .setClientUid(CALL_CLIENT_UID).createAudioFocusInfo();
+
+        requestFocusAndAssertIfRequestNotGranted(carZonesAudioFocus, audioFocusInfoCallClient);
+
+        when(mCarAudioService.getZoneIdForUid(MEDIA_CLIENT_UID_1)).thenReturn(PRIMARY_ZONE_ID);
+        AudioFocusInfo audioFocusMediaClient =
+                new AudioFocusInfoBuilder().setUsage(USAGE_MEDIA)
+                        .setGainRequest(AUDIOFOCUS_GAIN)
+                        .setClientId(MEDIA_CLIENT_ID)
+                        .setDelayedFocusRequestEnable(true)
+                        .setClientUid(MEDIA_CLIENT_UID_1).createAudioFocusInfo();
+
+
+        carZonesAudioFocus
+                .onAudioFocusRequest(audioFocusMediaClient, AUDIOFOCUS_REQUEST_GRANTED);
+        verify(mMockAudioManager).setFocusRequestResult(audioFocusMediaClient,
+                AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+    }
+
+    private void requestFocusAndAssertIfRequestNotGranted(CarZonesAudioFocus carZonesAudioFocus,
+            AudioFocusInfo audioFocusClient) {
+        requestFocusAndAssertIfRequestDiffers(carZonesAudioFocus, audioFocusClient,
+                AUDIOFOCUS_REQUEST_GRANTED);
+    }
+
+    private void requestFocusAndAssertIfRequestDiffers(CarZonesAudioFocus carZonesAudioFocus,
+            AudioFocusInfo audioFocusClient, int expectedAudioFocusResults) {
+        carZonesAudioFocus.onAudioFocusRequest(audioFocusClient, expectedAudioFocusResults);
         verify(mMockAudioManager)
-                .setFocusRequestResult(audioFocusClient, AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+                .setFocusRequestResult(audioFocusClient, expectedAudioFocusResults, mAudioPolicy);
     }
 
     private CarAudioZone[] generateAudioZones() {
@@ -203,6 +310,20 @@
         return zones;
     }
 
+    private CarZonesAudioFocus getCarZonesAudioFocus(boolean enableDelayedFocus) {
+        CarZonesAudioFocus carZonesAudioFocus =
+                new CarZonesAudioFocus(mMockAudioManager, mMockPackageManager,
+                        mMockAudioZones, mCarAudioSettings, enableDelayedFocus);
+        carZonesAudioFocus.setOwningPolicy(mCarAudioService, mAudioPolicy);
+        return carZonesAudioFocus;
+    }
+
+    private void setUpRejectNavigationOnCallValue(boolean rejectNavigationOnCall) {
+        when(mCarAudioSettings.getContentResolver()).thenReturn(mContentResolver);
+        when(mCarAudioSettings.isRejectNavigationOnCallEnabledInSettings(TEST_USER_ID))
+                .thenReturn(rejectNavigationOnCall);
+    }
+
     public class AudioFocusInfoBuilder {
         private int mUsage;
         private int mClientUid;
@@ -213,6 +334,7 @@
         private int mLossReceived = AudioManager.AUDIOFOCUS_NONE;
         private int mFlags = AUDIOFOCUS_FLAG;
         private int mSdk = Build.VERSION.SDK_INT;
+        private boolean mDelayedFocusRequestEnabled = false;
 
         public AudioFocusInfoBuilder setUsage(int usage) {
             mUsage = usage;
@@ -244,11 +366,6 @@
             return this;
         }
 
-        public AudioFocusInfoBuilder setFlags(int flags) {
-            mFlags = flags;
-            return this;
-        }
-
         public AudioFocusInfoBuilder setSdk(int sdk) {
             mSdk = sdk;
             return this;
@@ -259,11 +376,19 @@
             return this;
         }
 
+        public AudioFocusInfoBuilder setDelayedFocusRequestEnable(boolean b) {
+            mDelayedFocusRequestEnabled = b;
+            return this;
+        }
+
         public AudioFocusInfo createAudioFocusInfo() {
             AudioAttributes.Builder builder = new AudioAttributes.Builder().setUsage(mUsage);
             if (mBundle != null) {
                 builder = builder.addBundle(mBundle);
             }
+            if (mDelayedFocusRequestEnabled) {
+                mFlags = mFlags | AudioManager.AUDIOFOCUS_FLAG_DELAY_OK;
+            }
             AudioAttributes audioAttributes = builder.build();
             return new AudioFocusInfo(audioAttributes, mClientUid, mClientId,
                     mPackageName, mGainRequest, mLossReceived, mFlags, mSdk);
diff --git a/tests/carservice_test/src/com/android/car/audio/hal/AudioControlFactoryTest.java b/tests/carservice_test/src/com/android/car/audio/hal/AudioControlFactoryTest.java
new file mode 100644
index 0000000..a4c4acb
--- /dev/null
+++ b/tests/carservice_test/src/com/android/car/audio/hal/AudioControlFactoryTest.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.junit.Assume.assumeTrue;
+
+import androidx.test.core.app.ApplicationProvider;
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.car.R;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(AndroidJUnit4.class)
+public class AudioControlFactoryTest {
+    private static final String TAG = AudioControlFactoryTest.class.getSimpleName();
+
+    @Test
+    public void newAudioControl_returnsInstance() {
+        assumeTrue(isDynamicRoutingEnabled());
+
+        AudioControlWrapper wrapper = AudioControlFactory.newAudioControl();
+        assertThat(wrapper).isNotNull();
+    }
+
+    private boolean isDynamicRoutingEnabled() {
+        return ApplicationProvider.getApplicationContext().getResources()
+                .getBoolean(R.bool.audioUseDynamicRouting);
+    }
+}
diff --git a/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java b/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
index 49ed38c..69632f0 100644
--- a/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
+++ b/tests/carservice_test/src/com/android/car/pm/ActivityBlockingActivityTest.java
@@ -37,27 +37,34 @@
 import androidx.test.InstrumentationRegistry;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.MediumTest;
-import androidx.test.filters.Suppress;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicReference;
+
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public class ActivityBlockingActivityTest {
     private static final String ACTIVITY_BLOCKING_ACTIVITY_TEXTVIEW_ID =
             "com.android.car:id/blocking_text";
 
-    private static final int UI_TIMEOUT_MS = 2000;
-    private static final int NOT_FOUND_UI_TIMEOUT_MS = 1000;
+    // cf_x86_auto is very slow, so uses very long timeout.
+    private static final int UI_TIMEOUT_MS = 20_000;
+    private static final int NOT_FOUND_UI_TIMEOUT_MS = 10_000;
     private static final long ACTIVITY_TIMEOUT_MS = 5000;
 
     private CarDrivingStateManager mCarDrivingStateManager;
 
     private UiDevice mDevice;
 
+    // NOTE: Assume there is only one testing Activity.
+    private static final AtomicReference<TempActivity> sTestingActivity = new AtomicReference<>();
+
     @Before
     public void setUp() throws Exception {
         Car car = Car.createCar(getContext());
@@ -73,10 +80,13 @@
     @After
     public void tearDown() throws Exception {
         setDrivingStateParked();
+
+        TempActivity testingActivity = sTestingActivity.get();
+        if (testingActivity != null) {
+            testingActivity.finishCompletely();
+        }
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_doActivity_isNotBlocked() throws Exception {
         startActivity(toComponentName(getTestContext(), DoActivity.class));
@@ -87,8 +97,6 @@
         assertBlockingActivityNotFound();
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_nonDoActivity_isBlocked() throws Exception {
         startNonDoActivity(NonDoActivity.EXTRA_DO_NOTHING);
@@ -97,8 +105,6 @@
                 UI_TIMEOUT_MS)).isNotNull();
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_nonDoFinishesOnCreate_noBlockingActivity()
             throws Exception {
@@ -107,8 +113,6 @@
         assertBlockingActivityNotFound();
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_nonDoLaunchesDoOnCreate_noBlockingActivity()
             throws Exception {
@@ -117,8 +121,6 @@
         assertBlockingActivityNotFound();
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_nonDoFinishesOnResume_noBlockingActivity()
             throws Exception {
@@ -127,8 +129,6 @@
         assertBlockingActivityNotFound();
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_nonDoLaunchesDoOnResume_noBlockingActivity()
             throws Exception {
@@ -137,8 +137,6 @@
         assertBlockingActivityNotFound();
     }
 
-    // Suppress test to avoid blocking team while b/150491747 is evaluated
-    @Suppress
     @Test
     public void testBlockingActivity_nonDoNoHistory_isBlocked() throws Exception {
         startActivity(toComponentName(getTestContext(), NonDoNoHistoryActivity.class));
@@ -148,8 +146,8 @@
     }
 
     private void assertBlockingActivityNotFound() {
-        assertThat(mDevice.wait(Until.findObject(By.res(ACTIVITY_BLOCKING_ACTIVITY_TEXTVIEW_ID)),
-                NOT_FOUND_UI_TIMEOUT_MS)).isNull();
+        assertThat(mDevice.wait(Until.gone(By.res(ACTIVITY_BLOCKING_ACTIVITY_TEXTVIEW_ID)),
+                NOT_FOUND_UI_TIMEOUT_MS)).isNotNull();
     }
 
     private void startActivity(ComponentName name) {
@@ -246,10 +244,23 @@
 
     /** Activity that closes itself after some timeout to clean up the screen. */
     public static class TempActivity extends Activity {
+        private final CountDownLatch mDestroyed = new CountDownLatch(1);
         @Override
-        protected void onResume() {
-            super.onResume();
-            getMainThreadHandler().postDelayed(this::finish, ACTIVITY_TIMEOUT_MS);
+        protected void onCreate(Bundle savedInstanceState) {
+            super.onCreate(savedInstanceState);
+            sTestingActivity.set(this);
+        }
+
+        @Override
+        protected void onDestroy() {
+            sTestingActivity.set(null);
+            super.onDestroy();
+            mDestroyed.countDown();
+        }
+
+        void finishCompletely() throws InterruptedException {
+            finish();
+            mDestroyed.await(ACTIVITY_TIMEOUT_MS, TimeUnit.MILLISECONDS);
         }
     }
 
diff --git a/tests/carservice_test/src/com/android/car/vms/VmsClientTest.java b/tests/carservice_test/src/com/android/car/vms/VmsClientTest.java
index 257d1ff..d08195b 100644
--- a/tests/carservice_test/src/com/android/car/vms/VmsClientTest.java
+++ b/tests/carservice_test/src/com/android/car/vms/VmsClientTest.java
@@ -64,7 +64,7 @@
 @RunWith(AndroidJUnit4.class)
 @MediumTest
 public class VmsClientTest extends MockedCarTestBase {
-    private static final long CONNECT_TIMEOUT = 1000;
+    private static final long CONNECT_TIMEOUT = 10_000;
 
     private static final byte[] PROVIDER_DESC1 = {1, 2, 3, 4, 5};
     private static final byte[] PROVIDER_DESC2 = {5, 4, 3, 2, 1};
diff --git a/tests/carservice_test/src/com/android/car/watchdog/CarWatchdogManagerTest.java b/tests/carservice_test/src/com/android/car/watchdog/CarWatchdogManagerTest.java
deleted file mode 100644
index 345d7c3..0000000
--- a/tests/carservice_test/src/com/android/car/watchdog/CarWatchdogManagerTest.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2020 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.car;
-
-import static android.car.watchdog.CarWatchdogManager.TIMEOUT_NORMAL;
-
-import static org.testng.Assert.assertThrows;
-
-import android.car.Car;
-import android.car.watchdog.CarWatchdogManager;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-import androidx.test.filters.MediumTest;
-
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import java.util.concurrent.Executor;
-
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class CarWatchdogManagerTest extends MockedCarTestBase {
-
-    private static final String TAG = CarWatchdogManagerTest.class.getSimpleName();
-
-    private CarWatchdogManager mCarWatchdogManager;
-
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        mCarWatchdogManager = (CarWatchdogManager) getCar().getCarManager(Car.CAR_WATCHDOG_SERVICE);
-    }
-
-    @Test
-    public void testRegisterClient() throws Exception {
-        TestClient client = new TestClient();
-        mCarWatchdogManager.registerClient(getContext().getMainExecutor(), client, TIMEOUT_NORMAL);
-        mCarWatchdogManager.unregisterClient(client);
-    }
-
-    @Test
-    public void testUnregisterUnregisteredClient() throws Exception {
-        TestClient client = new TestClient();
-        mCarWatchdogManager.registerClient(getContext().getMainExecutor(), client, TIMEOUT_NORMAL);
-        mCarWatchdogManager.unregisterClient(client);
-        // The following call should not throw an exception.
-        mCarWatchdogManager.unregisterClient(client);
-    }
-
-    @Test
-    public void testRegisterMultipleClients() {
-        Executor executor = getContext().getMainExecutor();
-        TestClient client1 = new TestClient();
-        TestClient client2 = new TestClient();
-        mCarWatchdogManager.registerClient(executor, client1, TIMEOUT_NORMAL);
-        assertThrows(IllegalStateException.class,
-                () -> mCarWatchdogManager.registerClient(executor, client2, TIMEOUT_NORMAL));
-    }
-
-    public class TestClient extends CarWatchdogManager.CarWatchdogClientCallback {
-        @Override
-        public boolean onCheckHealthStatus(int sessionId, int timeout) {
-            return true;
-        }
-    }
-}
diff --git a/tests/carservice_test/src/com/android/car/watchdog/CarWatchdogServiceTest.java b/tests/carservice_test/src/com/android/car/watchdog/CarWatchdogServiceTest.java
new file mode 100644
index 0000000..fb65ff0
--- /dev/null
+++ b/tests/carservice_test/src/com/android/car/watchdog/CarWatchdogServiceTest.java
@@ -0,0 +1,321 @@
+/*
+ * Copyright (C) 2020 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.car.watchdog;
+
+import static android.car.test.mocks.AndroidMockitoHelper.mockQueryService;
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUsers;
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmIsUserRunning;
+import static android.car.test.util.UserTestingHelper.UserInfoBuilder;
+import static android.car.watchdog.CarWatchdogManager.TIMEOUT_CRITICAL;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.automotive.watchdog.ICarWatchdog;
+import android.automotive.watchdog.ICarWatchdogClient;
+import android.car.Car;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.car.watchdog.CarWatchdogManager;
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+import android.os.ServiceManager;
+import android.os.SystemClock;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * <p>This class contains unit tests for the {@link CarWatchdogService}.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class CarWatchdogServiceTest extends AbstractExtendedMockitoTestCase {
+
+    private static final String CAR_WATCHDOG_DAEMON_INTERFACE =
+            "android.automotive.watchdog.ICarWatchdog/default";
+    private static final int MAX_WAIT_TIME_MS = 3000;
+    private static final int INVALID_SESSION_ID = -1;
+
+    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
+    private final Executor mExecutor =
+            InstrumentationRegistry.getInstrumentation().getTargetContext().getMainExecutor();
+    private final ArrayList<UserInfo> mUserInfos = new ArrayList<>(Arrays.asList(
+            new UserInfoBuilder(10).setName("user 1").build(),
+            new UserInfoBuilder(11).setName("user 2").build()
+    ));
+
+    @Mock private Context mMockContext;
+    @Mock private Car mCar;
+    @Mock private UserManager mUserManager;
+    @Mock private IBinder mDaemonBinder;
+    @Mock private IBinder mServiceBinder;
+    @Mock private ICarWatchdog mCarWatchdogDaemon;
+
+    private CarWatchdogService mCarWatchdogService;
+    private ICarWatchdogClient mWatchdogServiceClientImpl;
+
+    @Before
+    public void setUpMocks() throws Exception {
+        mCarWatchdogService = new CarWatchdogService(mMockContext);
+
+        mockQueryService(CAR_WATCHDOG_DAEMON_INTERFACE, mDaemonBinder, mCarWatchdogDaemon);
+        when(mCar.getEventHandler()).thenReturn(mMainHandler);
+        when(mServiceBinder.queryLocalInterface(anyString())).thenReturn(mCarWatchdogService);
+        when(mMockContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        mockUmGetUsers(mUserManager, mUserInfos);
+        mockUmIsUserRunning(mUserManager, 10, true);
+        mockUmIsUserRunning(mUserManager, 11, false);
+
+        mCarWatchdogService.init();
+        mWatchdogServiceClientImpl = registerMediator();
+    }
+
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder builder) {
+        builder
+            .spyStatic(ServiceManager.class)
+            .spyStatic(UserHandle.class);
+    }
+
+    @Test
+    public void testRegisterUnregisterClient() throws Exception {
+        TestClient client = new TestClient(new SelfCheckGoodClient());
+        client.registerClient();
+        assertThat(mCarWatchdogService.getClientCount(TIMEOUT_CRITICAL)).isEqualTo(1);
+        client.unregisterClient();
+        assertThat(mCarWatchdogService.getClientCount(TIMEOUT_CRITICAL)).isEqualTo(0);
+    }
+
+    @Test
+    public void testNoSelfCheckGoodClient() throws Exception {
+        testClientResponse(new NoSelfCheckGoodClient(), 0);
+    }
+
+    @Test
+    public void testSelfCheckGoodClient() throws Exception {
+        testClientResponse(new SelfCheckGoodClient(), 0);
+    }
+
+    @Test
+    public void testBadClient() throws Exception {
+        BadTestClient client = new BadTestClient();
+        testClientResponse(client, 1);
+        assertThat(client.makeSureProcessTerminationNotified()).isEqualTo(true);
+    }
+
+    @Test
+    public void testClientUnderStoppedUser() throws Exception {
+        expectStoppedUser();
+        TestClient client = new TestClient(new BadTestClient());
+        client.registerClient();
+        mWatchdogServiceClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        ArgumentCaptor<int[]> notRespondingClients = ArgumentCaptor.forClass(int[].class);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(
+                eq(mWatchdogServiceClientImpl), notRespondingClients.capture(), eq(123456));
+        assertThat(notRespondingClients.getValue().length).isEqualTo(0);
+        mWatchdogServiceClientImpl.checkIfAlive(987654, TIMEOUT_CRITICAL);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(
+                eq(mWatchdogServiceClientImpl), notRespondingClients.capture(), eq(987654));
+        assertThat(notRespondingClients.getValue().length).isEqualTo(0);
+    }
+
+    @Test
+    public void testMultipleClients() throws Exception {
+        expectRunningUser();
+        ArgumentCaptor<int[]> pidsCaptor = ArgumentCaptor.forClass(int[].class);
+        ArrayList<TestClient> clients = new ArrayList<>(Arrays.asList(
+                new TestClient(new NoSelfCheckGoodClient()),
+                new TestClient(new SelfCheckGoodClient()),
+                new TestClient(new BadTestClient()),
+                new TestClient(new BadTestClient())
+        ));
+        for (int i = 0; i < clients.size(); i++) {
+            clients.get(i).registerClient();
+        }
+
+        mWatchdogServiceClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        for (int i = 0; i < clients.size(); i++) {
+            assertThat(clients.get(i).mAndroidClient.makeSureHealthCheckDone()).isEqualTo(true);
+        }
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(
+                eq(mWatchdogServiceClientImpl), pidsCaptor.capture(), eq(123456));
+        assertThat(pidsCaptor.getValue().length).isEqualTo(0);
+
+        mWatchdogServiceClientImpl.checkIfAlive(987654, TIMEOUT_CRITICAL);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(
+                eq(mWatchdogServiceClientImpl), pidsCaptor.capture(), eq(987654));
+        assertThat(pidsCaptor.getValue().length).isEqualTo(2);
+    }
+
+    private ICarWatchdogClient registerMediator() throws Exception {
+        ArgumentCaptor<ICarWatchdogClient> clientImplCaptor =
+                ArgumentCaptor.forClass(ICarWatchdogClient.class);
+        verify(mCarWatchdogDaemon).registerMediator(clientImplCaptor.capture());
+        return clientImplCaptor.getValue();
+    }
+
+    private void testClientResponse(BaseAndroidClient androidClient, int badClientCount)
+            throws Exception {
+        expectRunningUser();
+        TestClient client = new TestClient(androidClient);
+        client.registerClient();
+        mWatchdogServiceClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        ArgumentCaptor<int[]> notRespondingClients = ArgumentCaptor.forClass(int[].class);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(
+                eq(mWatchdogServiceClientImpl), notRespondingClients.capture(), eq(123456));
+        // Checking Android client health is asynchronous, so wait at most 1 second.
+        int repeat = 10;
+        while (repeat > 0) {
+            int sessionId = androidClient.getLastSessionId();
+            if (sessionId != INVALID_SESSION_ID) {
+                break;
+            }
+            SystemClock.sleep(100L);
+            repeat--;
+        }
+        assertThat(androidClient.getLastSessionId()).isNotEqualTo(INVALID_SESSION_ID);
+        assertThat(notRespondingClients.getValue().length).isEqualTo(0);
+        assertThat(androidClient.makeSureHealthCheckDone()).isEqualTo(true);
+        mWatchdogServiceClientImpl.checkIfAlive(987654, TIMEOUT_CRITICAL);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(
+                eq(mWatchdogServiceClientImpl), notRespondingClients.capture(), eq(987654));
+        assertThat(notRespondingClients.getValue().length).isEqualTo(badClientCount);
+    }
+
+    private void expectRunningUser() {
+        doReturn(10).when(() -> UserHandle.getUserId(Binder.getCallingUid()));
+    }
+
+    private void expectStoppedUser() {
+        doReturn(11).when(() -> UserHandle.getUserId(Binder.getCallingUid()));
+    }
+
+    private final class TestClient {
+        final CarWatchdogManager mCarWatchdogManager;
+        BaseAndroidClient mAndroidClient;
+
+        TestClient(BaseAndroidClient actualClient) {
+            mCarWatchdogManager = new CarWatchdogManager(mCar, mServiceBinder);
+            mAndroidClient = actualClient;
+            actualClient.setManager(mCarWatchdogManager);
+        }
+
+        public void registerClient() {
+            mCarWatchdogManager.registerClient(mExecutor, mAndroidClient, TIMEOUT_CRITICAL);
+        }
+
+        public void unregisterClient() {
+            mCarWatchdogManager.unregisterClient(mAndroidClient);
+        }
+    }
+
+    private abstract class BaseAndroidClient extends CarWatchdogManager.CarWatchdogClientCallback {
+        protected final CountDownLatch mLatchHealthCheckDone = new CountDownLatch(1);
+        protected final CountDownLatch mLatchProcessTermination = new CountDownLatch(1);
+        protected CarWatchdogManager mManager;
+        protected int mLastSessionId = INVALID_SESSION_ID;
+
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            mLastSessionId = sessionId;
+            return false;
+        }
+
+        @Override
+        public void onPrepareProcessTermination() {
+            mLatchProcessTermination.countDown();
+        }
+
+        public int getLastSessionId() {
+            return mLastSessionId;
+        }
+
+        public boolean makeSureProcessTerminationNotified() {
+            try {
+                return mLatchProcessTermination.await(1000, TimeUnit.MILLISECONDS);
+            } catch (InterruptedException ignore) {
+            }
+            return false;
+        }
+
+        public boolean makeSureHealthCheckDone() {
+            try {
+                return mLatchHealthCheckDone.await(1000, TimeUnit.MILLISECONDS);
+            } catch (InterruptedException ignore) {
+            }
+            return false;
+        }
+
+        public void setManager(CarWatchdogManager manager) {
+            mManager = manager;
+        }
+    }
+
+    private final class SelfCheckGoodClient extends BaseAndroidClient {
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            super.onCheckHealthStatus(sessionId, timeout);
+            mMainHandler.post(() -> {
+                mManager.tellClientAlive(this, sessionId);
+                mLatchHealthCheckDone.countDown();
+            });
+            return false;
+        }
+    }
+
+    private final class NoSelfCheckGoodClient extends BaseAndroidClient {
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            super.onCheckHealthStatus(sessionId, timeout);
+            mLatchHealthCheckDone.countDown();
+            return true;
+        }
+    }
+
+    private final class BadTestClient extends BaseAndroidClient {
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            super.onCheckHealthStatus(sessionId, timeout);
+            mLatchHealthCheckDone.countDown();
+            return false;
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/Android.mk b/tests/carservice_unit_test/Android.mk
index e6531df..1033f41 100644
--- a/tests/carservice_unit_test/Android.mk
+++ b/tests/carservice_unit_test/Android.mk
@@ -51,6 +51,8 @@
     EncryptionRunner
 
 LOCAL_STATIC_JAVA_LIBRARIES := \
+    android.car.testapi \
+    android.car.test.utils \
     androidx.test.core \
     androidx.test.ext.junit \
     androidx.test.rules \
diff --git a/tests/carservice_unit_test/AndroidManifest.xml b/tests/carservice_unit_test/AndroidManifest.xml
index e4c0687..87fd276 100644
--- a/tests/carservice_unit_test/AndroidManifest.xml
+++ b/tests/carservice_unit_test/AndroidManifest.xml
@@ -26,5 +26,10 @@
     <application android:label="CarServiceUnitTest"
             android:debuggable="true">
         <uses-library android:name="android.test.runner" />
+        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityA"/>
+        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityB"/>
+        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$ActivityC"/>
+        <activity android:name="com.android.car.SystemActivityMonitoringServiceTest$BlockingActivity"
+                  android:taskAffinity="com.android.car.carservice_unittest.block"/>
     </application>
 </manifest>
diff --git a/tests/carservice_unit_test/src/android/car/CarTest.java b/tests/carservice_unit_test/src/android/car/CarTest.java
index 793f168..d1c7098 100644
--- a/tests/carservice_unit_test/src/android/car/CarTest.java
+++ b/tests/carservice_unit_test/src/android/car/CarTest.java
@@ -78,7 +78,8 @@
         }
 
         @Override
-        public void onFirstUserUnlocked(int userId, long timestampMs, long duration) {
+        public void onFirstUserUnlocked(int userId, long timestampMs, long duration,
+                int halResponseTime) {
         }
 
         @Override
@@ -86,6 +87,10 @@
         }
 
         @Override
+        public void setInitialUser(int userId) {
+        }
+
+        @Override
         public boolean isFeatureEnabled(String featureName) {
             return false;
         }
diff --git a/tests/carservice_unit_test/src/android/car/encryptionrunner/EncryptionRunnerTest.java b/tests/carservice_unit_test/src/android/car/encryptionrunner/EncryptionRunnerTest.java
index d4e6e2d..38802e4 100644
--- a/tests/carservice_unit_test/src/android/car/encryptionrunner/EncryptionRunnerTest.java
+++ b/tests/carservice_unit_test/src/android/car/encryptionrunner/EncryptionRunnerTest.java
@@ -37,54 +37,98 @@
         EncryptionRunner newRunner();
     }
 
+    private interface HandshakeVerifier {
+        void verifyHandshake(EncryptionRunner clientRunner, EncryptionRunner serverRunner)
+                throws Exception;
+    }
+
     @Test
     public void happyFlow_dummyRunner() throws Exception {
-        verifyRunners(EncryptionRunnerFactory::newDummyRunner);
+        verifyRunners(EncryptionRunnerFactory::newDummyRunner,
+                EncryptionRunnerTest::verifyHandshake);
     }
 
     @Test
     public void happyFlow_ukey2Runner() throws Exception {
-        verifyRunners(EncryptionRunnerFactory::newRunner);
+        verifyRunners(EncryptionRunnerTest::newRunner, EncryptionRunnerTest::verifyHandshake);
+    }
+
+    @Test
+    public void happyFlow_oobUkey2Runner() throws Exception {
+        verifyRunners(EncryptionRunnerTest::newOobRunner, EncryptionRunnerTest::verifyOobHandshake);
     }
 
     @Test
     public void happyFlow_dummyRunner_reconnect() throws Exception {
-        setUpFirstConnection(EncryptionRunnerFactory::newDummyRunner);
+        setUpFirstConnection(EncryptionRunnerFactory::newDummyRunner,
+                EncryptionRunnerTest::verifyHandshake);
         verifyRunnersReconnect(EncryptionRunnerFactory::newDummyRunner);
     }
 
     @Test
     public void happyFlow_uKey2Runner_reconnect() throws Exception {
-        setUpFirstConnection(EncryptionRunnerFactory::newRunner);
-        verifyRunnersReconnect(EncryptionRunnerFactory::newRunner);
+        setUpFirstConnection(EncryptionRunnerTest::newRunner,
+                EncryptionRunnerTest::verifyHandshake);
+        verifyRunnersReconnect(EncryptionRunnerTest::newRunner);
+    }
+
+    @Test
+    public void happyFlow_oobUey2Runner_reconnect() throws Exception {
+        setUpFirstConnection(EncryptionRunnerTest::newOobRunner,
+                EncryptionRunnerTest::verifyOobHandshake);
+        verifyRunnersReconnect(EncryptionRunnerTest::newOobRunner);
     }
 
     @Test
     public void uKey2Runner_reconnect_encrypt_and_decrypt() throws Exception {
-        setUpFirstConnection(EncryptionRunnerFactory::newRunner);
-        setUpReconnection(EncryptionRunnerFactory::newRunner);
+        setUpFirstConnection(EncryptionRunnerTest::newRunner,
+                EncryptionRunnerTest::verifyHandshake);
+        setUpReconnection(EncryptionRunnerTest::newRunner, EncryptionRunnerTest::verifyHandshake);
         assertThat(mClientKey.decryptData(mServerKey.encryptData(mData))).isEqualTo(mData);
     }
 
     @Test
     public void dummyRunner_reconnect_encrypt_and_decrypt() throws Exception {
-        setUpFirstConnection(EncryptionRunnerFactory::newDummyRunner);
-        setUpReconnection(EncryptionRunnerFactory::newDummyRunner);
+        setUpFirstConnection(EncryptionRunnerFactory::newDummyRunner,
+                EncryptionRunnerTest::verifyHandshake);
+        setUpReconnection(EncryptionRunnerFactory::newDummyRunner,
+                EncryptionRunnerTest::verifyHandshake);
         assertThat(mClientKey.decryptData(mServerKey.encryptData(mData))).isEqualTo(mData);
     }
 
-    private void setUpFirstConnection(RunnerFactory runnerFactory) throws Exception {
+    @Test
+    public void oobUkey2Runner_reconnect_encrypt_and_decrypt() throws Exception {
+        setUpFirstConnection(EncryptionRunnerTest::newOobRunner,
+                EncryptionRunnerTest::verifyOobHandshake);
+        setUpReconnection(EncryptionRunnerTest::newOobRunner,
+                EncryptionRunnerTest::verifyOobHandshake);
+        assertThat(mClientKey.decryptData(mServerKey.encryptData(mData))).isEqualTo(mData);
+    }
+
+    private static EncryptionRunner newRunner() {
+        return EncryptionRunnerFactory.newRunner(
+                EncryptionRunnerFactory.EncryptionRunnerType.UKEY2);
+    }
+
+    private static EncryptionRunner newOobRunner() {
+        return EncryptionRunnerFactory.newRunner(
+                EncryptionRunnerFactory.EncryptionRunnerType.OOB_UKEY2);
+    }
+
+    private void setUpFirstConnection(RunnerFactory runnerFactory,
+            HandshakeVerifier handshakeVerifier) throws Exception {
         EncryptionRunner clientRunner = runnerFactory.newRunner();
         EncryptionRunner serverRunner = runnerFactory.newRunner();
-        verifyHandshake(clientRunner, serverRunner);
+        handshakeVerifier.verifyHandshake(clientRunner, serverRunner);
         HandshakeMessage finalServerMessage = serverRunner.verifyPin();
         HandshakeMessage finalClientMessage = clientRunner.verifyPin();
         mServerKey = finalServerMessage.getKey();
         mClientKey = finalClientMessage.getKey();
     }
 
-    private void setUpReconnection(RunnerFactory runnerFactory) throws Exception {
-        setUpFirstConnection(runnerFactory);
+    private void setUpReconnection(RunnerFactory runnerFactory, HandshakeVerifier handshakeVerifier)
+            throws Exception {
+        setUpFirstConnection(runnerFactory, handshakeVerifier);
         EncryptionRunner clientRunner = runnerFactory.newRunner();
         EncryptionRunner serverRunner = runnerFactory.newRunner();
         verifyHandshakeReconnect(clientRunner, serverRunner);
@@ -103,11 +147,12 @@
      * Some * of the test is implementation specific because the interface doesn't specify how many
      * round * trips may be needed but this test makes assumptions( i.e. white box testing).
      */
-    private void verifyRunners(RunnerFactory runnerFactory) throws Exception {
+    private void verifyRunners(RunnerFactory runnerFactory, HandshakeVerifier handshakeVerifier)
+            throws Exception {
         EncryptionRunner clientRunner = runnerFactory.newRunner();
         EncryptionRunner serverRunner = runnerFactory.newRunner();
 
-        verifyHandshake(clientRunner, serverRunner);
+        handshakeVerifier.verifyHandshake(clientRunner, serverRunner);
 
         HandshakeMessage finalServerMessage = serverRunner.verifyPin();
         assertThat(finalServerMessage.getHandshakeState())
@@ -156,7 +201,8 @@
         assertThat(finalClientMessage.getNextMessage()).isNull();
     }
 
-    private void verifyHandshake(EncryptionRunner clientRunner, EncryptionRunner serverRunner)
+    private static void verifyHandshake(EncryptionRunner clientRunner,
+            EncryptionRunner serverRunner)
             throws Exception {
         HandshakeMessage initialClientMessage = clientRunner.initHandshake();
 
@@ -204,6 +250,40 @@
                 "last server message size:" + clientMessage.getNextMessage().length);
     }
 
+    private static void verifyOobHandshake(
+            EncryptionRunner clientRunner, EncryptionRunner serverRunner) throws Exception {
+        HandshakeMessage initialClientMessage = clientRunner.initHandshake();
+
+        assertThat(initialClientMessage.getHandshakeState())
+                .isEqualTo(HandshakeMessage.HandshakeState.IN_PROGRESS);
+        assertThat(initialClientMessage.getKey()).isNull();
+        assertThat(initialClientMessage.getNextMessage()).isNotNull();
+
+        HandshakeMessage initialServerMessage =
+                serverRunner.respondToInitRequest(initialClientMessage.getNextMessage());
+
+        assertThat(initialServerMessage.getHandshakeState())
+                .isEqualTo(HandshakeMessage.HandshakeState.IN_PROGRESS);
+        assertThat(initialServerMessage.getKey()).isNull();
+        assertThat(initialServerMessage.getNextMessage()).isNotNull();
+
+        HandshakeMessage clientMessage =
+                clientRunner.continueHandshake(initialServerMessage.getNextMessage());
+
+        assertThat(clientMessage.getHandshakeState())
+                .isEqualTo(HandshakeMessage.HandshakeState.OOB_VERIFICATION_NEEDED);
+        assertThat(clientMessage.getKey()).isNull();
+        assertThat(clientMessage.getOobVerificationCode()).isNotEmpty();
+        assertThat(clientMessage.getNextMessage()).isNotNull();
+
+        HandshakeMessage serverMessage = serverRunner.continueHandshake(
+                clientMessage.getNextMessage());
+        assertThat(serverMessage.getHandshakeState())
+                .isEqualTo(HandshakeMessage.HandshakeState.OOB_VERIFICATION_NEEDED);
+        assertThat(serverMessage.getKey()).isNull();
+        assertThat(serverMessage.getNextMessage()).isNull();
+    }
+
     private void verifyHandshakeReconnect(
             EncryptionRunner clientRunner, EncryptionRunner serverRunner)
             throws HandshakeException {
@@ -249,19 +329,27 @@
 
     @Test
     public void invalidPin_ukey2() throws Exception {
-        invalidPinTest(EncryptionRunnerFactory::newRunner);
+        invalidPinTest(EncryptionRunnerTest::newRunner, EncryptionRunnerTest::verifyHandshake);
     }
 
     @Test
     public void invalidPin_dummy() throws Exception {
-        invalidPinTest(EncryptionRunnerFactory::newDummyRunner);
+        invalidPinTest(EncryptionRunnerFactory::newDummyRunner,
+                EncryptionRunnerTest::verifyHandshake);
     }
 
-    private void invalidPinTest(RunnerFactory runnerFactory) throws Exception {
+    @Test
+    public void invalidPin_oobUkey2() throws Exception {
+        invalidPinTest(EncryptionRunnerTest::newOobRunner,
+                EncryptionRunnerTest::verifyOobHandshake);
+    }
+
+    private void invalidPinTest(RunnerFactory runnerFactory, HandshakeVerifier handshakeVerifier)
+            throws Exception {
         EncryptionRunner clientRunner = runnerFactory.newRunner();
         EncryptionRunner serverRunner = runnerFactory.newRunner();
 
-        verifyHandshake(clientRunner, serverRunner);
+        handshakeVerifier.verifyHandshake(clientRunner, serverRunner);
         clientRunner.invalidPin();
         serverRunner.invalidPin();
 
diff --git a/tests/carservice_unit_test/src/android/car/userlib/CarUserManagerHelperTest.java b/tests/carservice_unit_test/src/android/car/userlib/CarUserManagerHelperTest.java
index b3659b8..5fe5670 100644
--- a/tests/carservice_unit_test/src/android/car/userlib/CarUserManagerHelperTest.java
+++ b/tests/carservice_unit_test/src/android/car/userlib/CarUserManagerHelperTest.java
@@ -16,42 +16,38 @@
 
 package android.car.userlib;
 
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUsers;
+import static android.car.test.util.UserTestingHelper.newUser;
+import static android.os.UserHandle.USER_SYSTEM;
+
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 
 import static com.google.common.truth.Truth.assertThat;
 
-import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 
+import android.annotation.NonNull;
+import android.annotation.UserIdInt;
 import android.app.ActivityManager;
-import android.app.IActivityManager;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
 import android.content.ContentResolver;
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
-import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
 import android.sysprop.CarProperties;
 
 import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.FlakyTest;
 import androidx.test.filters.SmallTest;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
 
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Optional;
 
 /**
@@ -64,11 +60,10 @@
  * 3. {@link ActivityManager} to verify user switch is invoked.
  */
 @SmallTest
-public class CarUserManagerHelperTest {
+public class CarUserManagerHelperTest extends AbstractExtendedMockitoTestCase {
     @Mock private Context mContext;
     @Mock private UserManager mUserManager;
     @Mock private ActivityManager mActivityManager;
-    @Mock private IActivityManager mIActivityManager;
     @Mock private ContentResolver mContentResolver;
 
     // Not worth to mock because it would need to mock a Drawable used by UserIcons.
@@ -77,22 +72,19 @@
     private static final String TEST_USER_NAME = "testUser";
     private static final int NO_FLAGS = 0;
 
-    private MockitoSession mSession;
     private CarUserManagerHelper mCarUserManagerHelper;
-    private UserInfo mSystemUser;
     private final int mForegroundUserId = 42;
 
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session
+            .spyStatic(ActivityManager.class)
+            .spyStatic(CarProperties.class)
+            .spyStatic(UserManager.class);
+    }
+
     @Before
     public void setUpMocksAndVariables() {
-        mSession = mockitoSession()
-                .strictness(Strictness.LENIENT)
-                .spyStatic(ActivityManager.class)
-                .spyStatic(CarProperties.class)
-                .spyStatic(Settings.Global.class)
-                .spyStatic(UserManager.class)
-                .initMocks(this)
-                .startMocking();
-
         doReturn(mUserManager).when(mContext).getSystemService(Context.USER_SERVICE);
         doReturn(mActivityManager).when(mContext).getSystemService(Context.ACTIVITY_SERVICE);
         doReturn(mResources).when(mContext).getResources();
@@ -100,15 +92,7 @@
         doReturn(mContext).when(mContext).getApplicationContext();
         mCarUserManagerHelper = new CarUserManagerHelper(mContext);
 
-        mSystemUser = createUserInfoForId(UserHandle.USER_SYSTEM);
-
-        doReturn(mIActivityManager).when(() -> ActivityManager.getService());
-        doReturn(mForegroundUserId).when(() -> ActivityManager.getCurrentUser());
-    }
-
-    @After
-    public void finishSession() throws Exception {
-        mSession.finishMocking();
+        mockGetCurrentUser(mForegroundUserId);
     }
 
     @Test
@@ -154,70 +138,9 @@
     }
 
     @Test
-    public void testStartForegroundUser_ok() throws Exception {
-        doReturn(true).when(mIActivityManager).startUserInForegroundWithListener(10, null);
-
-        assertThat(mCarUserManagerHelper.startForegroundUser(10)).isTrue();
-    }
-
-    @Test
-    public void testStartForegroundUser_fail() {
-        // startUserInForegroundWithListener will return false by default
-
-        assertThat(mCarUserManagerHelper.startForegroundUser(10)).isFalse();
-    }
-
-    @Test
-    public void testStartForegroundUser_remoteException() throws Exception {
-        doThrow(new RemoteException("DOH!")).when(mIActivityManager)
-                .startUserInForegroundWithListener(10, null);
-
-        assertThat(mCarUserManagerHelper.startForegroundUser(10)).isFalse();
-    }
-
-    @Test
-    public void testStartForegroundUser_nonHeadlessSystemUser() throws Exception {
-        setHeadlessSystemUserMode(false);
-        doReturn(true).when(mIActivityManager)
-                .startUserInForegroundWithListener(UserHandle.USER_SYSTEM, null);
-
-        assertThat(mCarUserManagerHelper.startForegroundUser(UserHandle.USER_SYSTEM)).isTrue();
-    }
-
-    @Test
-    public void testStartForegroundUser_headlessSystemUser() throws Exception {
-        setHeadlessSystemUserMode(true);
-
-        assertThat(mCarUserManagerHelper.startForegroundUser(UserHandle.USER_SYSTEM)).isFalse();
-
-        verify(mIActivityManager, never()).startUserInForegroundWithListener(UserHandle.USER_SYSTEM,
-                null);
-    }
-
-    @Test
-    public void testUnlockSystemUser_startedOk() throws Exception {
-        when(mIActivityManager.startUserInBackground(UserHandle.USER_SYSTEM)).thenReturn(true);
-
-        mCarUserManagerHelper.unlockSystemUser();
-
-        verify(mIActivityManager, never()).unlockUser(UserHandle.USER_SYSTEM, /* token= */ null,
-                /* secret= */ null, /* listener= */ null);
-    }
-
-    @Test
-    public void testUnlockSystemUser_startFailUnlockedInstead() throws Exception {
-        // No need to set startUserInBackground() expectation as it will return false by default
-
-        mCarUserManagerHelper.unlockSystemUser();
-
-        verify(mIActivityManager).unlockUser(UserHandle.USER_SYSTEM, /* token= */ null,
-                /* secret= */ null, /* listener= */ null);
-    }
-
-    @Test
     public void testGrantAdminPermissions() {
         int userId = 30;
-        UserInfo testInfo = createUserInfoForId(userId);
+        UserInfo testInfo = newUser(userId);
 
         // Test that non-admins cannot grant admin permissions.
         doReturn(false).when(mUserManager).isAdminUser(); // Current user non-admin.
@@ -234,7 +157,7 @@
     public void testDefaultNonAdminRestrictions() {
         String testUserName = "Test User";
         int userId = 20;
-        UserInfo newNonAdmin = createUserInfoForId(userId);
+        UserInfo newNonAdmin = newUser(userId);
 
         doReturn(newNonAdmin).when(mUserManager).createUser(testUserName, NO_FLAGS);
 
@@ -248,7 +171,7 @@
     public void testGrantingAdminPermissionsRemovesNonAdminRestrictions() {
         int testUserId = 30;
         boolean restrictionEnabled = false;
-        UserInfo testInfo = createUserInfoForId(testUserId);
+        UserInfo testInfo = newUser(testUserId);
 
         // Only admins can grant permissions.
         doReturn(true).when(mUserManager).isAdminUser();
@@ -261,63 +184,40 @@
 
     @Test
     public void testGetInitialUser_WithValidLastActiveUser_ReturnsLastActiveUser() {
-        int lastActiveUserId = 12;
+        setLastActiveUser(12);
+        mockGetUsers(USER_SYSTEM, 10, 11, 12);
 
-        UserInfo user10 = createUserInfoForId(10);
-        UserInfo user11 = createUserInfoForId(11);
-        UserInfo user12 = createUserInfoForId(12);
-
-        setLastActiveUser(lastActiveUserId);
-        mockGetUsers(mSystemUser, user10, user11, user12);
-
-        assertThat(mCarUserManagerHelper.getInitialUser()).isEqualTo(lastActiveUserId);
+        assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ true))
+                .isEqualTo(12);
     }
 
     @Test
     public void testGetInitialUser_WithNonExistLastActiveUser_ReturnsSmallestUserId() {
-        int lastActiveUserId = 12;
-        int minimumUserId = 10;
+        setLastActiveUser(12);
+        mockGetUsers(USER_SYSTEM, 10, 10 + 1);
 
-        UserInfo smallestUser = createUserInfoForId(minimumUserId);
-        UserInfo notSmallestUser = createUserInfoForId(minimumUserId + 1);
-
-        setLastActiveUser(lastActiveUserId);
-        mockGetUsers(mSystemUser, smallestUser, notSmallestUser);
-
-        assertThat(mCarUserManagerHelper.getInitialUser()).isEqualTo(minimumUserId);
+        assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ true))
+                .isEqualTo(10);
     }
 
     @Test
-    @FlakyTest
     public void testGetInitialUser_WithOverrideId_ReturnsOverrideId() {
-        int lastActiveUserId = 12;
-        int overrideUserId = 11;
+        setDefaultBootUserOverride(11);
+        setLastActiveUser(12);
+        mockGetUsers(USER_SYSTEM, 10, 11, 12);
 
-        UserInfo user10 = createUserInfoForId(10);
-        UserInfo user11 = createUserInfoForId(11);
-        UserInfo user12 = createUserInfoForId(12);
-
-        setDefaultBootUserOverride(overrideUserId);
-        setLastActiveUser(lastActiveUserId);
-        mockGetUsers(mSystemUser, user10, user11, user12);
-
-        assertThat(mCarUserManagerHelper.getInitialUser()).isEqualTo(overrideUserId);
+        assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ true))
+                .isEqualTo(11);
     }
 
     @Test
     public void testGetInitialUser_WithInvalidOverrideId_ReturnsLastActiveUserId() {
-        int lastActiveUserId = 12;
-        int overrideUserId = 15;
+        setDefaultBootUserOverride(15);
+        setLastActiveUser(12);
+        mockGetUsers(USER_SYSTEM, 10, 11, 12);
 
-        UserInfo user10 = createUserInfoForId(10);
-        UserInfo user11 = createUserInfoForId(11);
-        UserInfo user12 = createUserInfoForId(12);
-
-        setDefaultBootUserOverride(overrideUserId);
-        setLastActiveUser(lastActiveUserId);
-        mockGetUsers(mSystemUser, user10, user11, user12);
-
-        assertThat(mCarUserManagerHelper.getInitialUser()).isEqualTo(lastActiveUserId);
+        assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ true))
+                .isEqualTo(12);
     }
 
     @Test
@@ -326,99 +226,82 @@
         int invalidLastActiveUserId = 14;
         int invalidOverrideUserId = 15;
 
-        UserInfo minimumUser = createUserInfoForId(minimumUserId);
-        UserInfo user11 = createUserInfoForId(minimumUserId + 1);
-        UserInfo user12 = createUserInfoForId(minimumUserId + 2);
-
         setDefaultBootUserOverride(invalidOverrideUserId);
         setLastActiveUser(invalidLastActiveUserId);
-        mockGetUsers(mSystemUser, minimumUser, user11, user12);
+        mockGetUsers(USER_SYSTEM, minimumUserId, minimumUserId + 1, minimumUserId + 2);
 
-        assertThat(mCarUserManagerHelper.getInitialUser()).isEqualTo(minimumUserId);
+        assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ true))
+                .isEqualTo(minimumUserId);
     }
 
     @Test
     public void testGetInitialUser_WhenOverrideIdIsIgnored() {
-        int lastActiveUserId = 12;
-        int overrideUserId = 11;
-
-        UserInfo user10 = createUserInfoForId(10);
-        UserInfo user11 = createUserInfoForId(11);
-        UserInfo user12 = createUserInfoForId(12);
-
-        setDefaultBootUserOverride(overrideUserId);
-        setLastActiveUser(lastActiveUserId);
-        mockGetUsers(mSystemUser, user10, user11, user12);
+        setDefaultBootUserOverride(11);
+        setLastActiveUser(12);
+        mockGetUsers(USER_SYSTEM, 10, 11, 12);
 
         assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ false))
-                .isEqualTo(lastActiveUserId);
+                .isEqualTo(12);
     }
 
     @Test
     public void testGetInitialUser_WithEmptyReturnNull() {
-        assertThat(mCarUserManagerHelper.getInitialUser()).isEqualTo(UserHandle.USER_NULL);
+        assertThat(mCarUserManagerHelper.getInitialUser(/* usesOverrideUserIdProperty= */ true))
+                .isEqualTo(UserHandle.USER_NULL);
     }
 
     @Test
     public void testHasInitialUser_onlyHeadlessSystemUser() {
-        setHeadlessSystemUserMode(true);
-        mockGetUsers(mSystemUser);
+        mockIsHeadlessSystemUserMode(true);
+        mockGetUsers(USER_SYSTEM);
 
         assertThat(mCarUserManagerHelper.hasInitialUser()).isFalse();
     }
 
     @Test
     public void testHasInitialUser_onlyNonHeadlessSystemUser() {
-        setHeadlessSystemUserMode(false);
-        mockGetUsers(mSystemUser);
+        mockIsHeadlessSystemUserMode(false);
+        mockGetUsers(USER_SYSTEM);
 
         assertThat(mCarUserManagerHelper.hasInitialUser()).isTrue();
     }
 
     @Test
     public void testHasInitialUser_hasNormalUser() {
-        setHeadlessSystemUserMode(true);
-        UserInfo normalUser = createUserInfoForId(10);
-        mockGetUsers(mSystemUser, normalUser);
+        mockIsHeadlessSystemUserMode(true);
+        mockGetUsers(USER_SYSTEM, 10);
 
         assertThat(mCarUserManagerHelper.hasInitialUser()).isTrue();
     }
 
     @Test
     public void testHasInitialUser_hasOnlyWorkProfile() {
-        setHeadlessSystemUserMode(true);
-        UserInfo workProfile = createUserInfoForId(10);
+        mockIsHeadlessSystemUserMode(true);
+
+        UserInfo systemUser = newUser(UserHandle.USER_SYSTEM);
+
+        UserInfo workProfile = newUser(10);
         workProfile.userType = UserManager.USER_TYPE_PROFILE_MANAGED;
         assertThat(workProfile.isManagedProfile()).isTrue(); // Sanity check
-        mockGetUsers(mSystemUser, workProfile);
+
+        mockGetUsers(systemUser, workProfile);
 
         assertThat(mCarUserManagerHelper.hasInitialUser()).isFalse();
     }
 
-    private UserInfo createUserInfoForId(int id) {
-        UserInfo userInfo = new UserInfo();
-        userInfo.id = id;
-        return userInfo;
+    private void mockGetUsers(@NonNull @UserIdInt int... userIds) {
+        mockUmGetUsers(mUserManager, userIds);
     }
 
-    private void mockGetUsers(UserInfo... users) {
-        List<UserInfo> testUsers = new ArrayList<>();
-        for (UserInfo user : users) {
-            testUsers.add(user);
-        }
-        doReturn(testUsers).when(mUserManager).getUsers(true);
+    private void mockGetUsers(@NonNull UserInfo... users) {
+        mockUmGetUsers(mUserManager, users);
     }
 
-    private void setLastActiveUser(int userId) {
-        doReturn(userId).when(() -> Settings.Global.getInt(mContentResolver,
-                Settings.Global.LAST_ACTIVE_USER_ID, UserHandle.USER_SYSTEM));
+    private void setLastActiveUser(@UserIdInt int userId) {
+        putSettingsInt(Settings.Global.LAST_ACTIVE_USER_ID, userId);
     }
 
-    private void setDefaultBootUserOverride(int userId) {
+    private void setDefaultBootUserOverride(@UserIdInt int userId) {
         doReturn(Optional.of(userId)).when(() -> CarProperties.boot_user_override_id());
     }
-
-    private void setHeadlessSystemUserMode(boolean mode) {
-        doReturn(mode).when(() -> UserManager.isHeadlessSystemUserMode());
-    }
 }
diff --git a/tests/carservice_unit_test/src/android/car/userlib/InitialUserSetterTest.java b/tests/carservice_unit_test/src/android/car/userlib/InitialUserSetterTest.java
index 7f74286..f61b19a 100644
--- a/tests/carservice_unit_test/src/android/car/userlib/InitialUserSetterTest.java
+++ b/tests/carservice_unit_test/src/android/car/userlib/InitialUserSetterTest.java
@@ -15,12 +15,18 @@
  */
 package android.car.userlib;
 
+import static android.car.test.mocks.CarArgumentMatchers.isUserInfo;
+import static android.car.test.util.UserTestingHelper.newGuestUser;
+import static android.car.test.util.UserTestingHelper.newSecondaryUser;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+
 import static com.google.common.truth.Truth.assertThat;
+import static com.google.common.truth.Truth.assertWithMessage;
 
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
@@ -32,21 +38,25 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.app.IActivityManager;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
 import android.content.pm.UserInfo;
 import android.content.pm.UserInfo.UserInfoFlag;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
 
+import com.android.internal.widget.LockPatternUtils;
+
 import org.junit.Before;
 import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
 
-@RunWith(MockitoJUnitRunner.class)
-public final class InitialUserSetterTest {
+import java.util.function.Consumer;
+
+public final class InitialUserSetterTest extends AbstractExtendedMockitoTestCase {
 
     @UserInfoFlag
     private static final int NO_FLAGS = 0;
@@ -54,68 +64,109 @@
     private static final String OWNER_NAME = "OwnerOfALonelyDevice";
     private static final String GUEST_NAME = "GuessWhot";
 
+    private static final int USER_ID = 10;
+    private static final int NEW_USER_ID = 11;
+    private static final int CURRENT_USER_ID = 12;
+
     @Mock
     private CarUserManagerHelper mHelper;
 
     @Mock
+    private IActivityManager mIActivityManager;
+
+    @Mock
     private UserManager mUm;
 
+    @Mock
+    private LockPatternUtils mLockPatternUtils;
+
     // Spy used in tests that need to verify the default behavior as fallback
     private InitialUserSetter mSetter;
 
+    private final MyListener mListener = new MyListener();
+
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session
+            .spyStatic(ActivityManager.class)
+            .spyStatic(UserManager.class);
+    }
+
     @Before
     public void setFixtures() {
-        mSetter = spy(new InitialUserSetter(mHelper, mUm, OWNER_NAME, GUEST_NAME,
+        mSetter = spy(new InitialUserSetter(mHelper, mUm, mListener,
+                mLockPatternUtils, OWNER_NAME, GUEST_NAME,
                 /* supportsOverrideUserIdProperty= */ false));
+
+        doReturn(mIActivityManager).when(() -> ActivityManager.getService());
+        mockGetCurrentUser(CURRENT_USER_ID);
     }
 
     @Test
     public void testSwitchUser_ok_nonGuest() throws Exception {
-        expectUserExists(10);
-        expectSwitchUser(10);
+        UserInfo user = expectUserExists(USER_ID);
+        expectSwitchUser(USER_ID);
 
-        mSetter.switchUser(10);
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ true);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserUnlocked();
+        assertInitialUserSet(user);
     }
 
     @Test
     public void testSwitchUser_ok_systemUser() throws Exception {
-        expectUserExists(UserHandle.USER_SYSTEM);
+        UserInfo user = expectUserExists(UserHandle.USER_SYSTEM);
         expectSwitchUser(UserHandle.USER_SYSTEM);
 
-        mSetter.switchUser(UserHandle.USER_SYSTEM);
+        mSetter.switchUser(UserHandle.USER_SYSTEM, true);
 
         verifyUserSwitched(UserHandle.USER_SYSTEM);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserNeverUnlocked();
+        assertInitialUserSet(user);
     }
 
     @Test
     public void testSwitchUser_ok_guestReplaced() throws Exception {
-        int existingGuestId = 10;
-        int newGuestId = 11;
-        expectGuestExists(existingGuestId, /* isEphemeral= */ true); // ephemeral doesn't matter
-        expectGuestReplaced(existingGuestId, newGuestId);
-        expectSwitchUser(newGuestId);
+        boolean ephemeral = true; // ephemeral doesn't really matter in this test
+        mockGetCurrentUser(CURRENT_USER_ID);
+        expectGuestExists(USER_ID, ephemeral); // ephemeral doesn't matter
+        UserInfo newGuest = newGuestUser(NEW_USER_ID, ephemeral);
+        expectGuestReplaced(USER_ID, newGuest);
+        expectSwitchUser(NEW_USER_ID);
 
-        mSetter.switchUser(existingGuestId);
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ true);
 
-        verifyUserSwitched(newGuestId);
+        verifyUserSwitched(NEW_USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserUnlocked();
-        verifyUserDeleted(existingGuestId);
+        verifyUserDeleted(USER_ID);
+        assertInitialUserSet(newGuest);
+    }
+
+    @Test
+    public void testSwitchUser_ok_guestDoesNotNeedToBeReplaced() throws Exception {
+        boolean ephemeral = true; // ephemeral doesn't really matter in this test
+        UserInfo existingGuest = expectGuestExists(USER_ID, ephemeral);
+        expectSwitchUser(USER_ID);
+
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ false);
+
+        verifyUserSwitched(USER_ID);
+        verifyGuestNeverMarkedForDeletion();
+        verifyFallbackDefaultBehaviorNeverCalled();
+        verifySystemUserUnlocked();
+        assertInitialUserSet(existingGuest);
     }
 
     @Test
     public void testSwitchUser_fail_guestReplacementFailed() throws Exception {
-        int existingGuestId = 10;
-        expectGuestExists(existingGuestId, /* isEphemeral= */ true); // ephemeral doesn't matter
-        expectGuestReplaced(existingGuestId, UserHandle.USER_NULL);
+        expectGuestExists(USER_ID, /* isEphemeral= */ true); // ephemeral doesn't matter
+        expectGuestReplaced(USER_ID, /* newGuest= */ null);
 
-        mSetter.switchUser(existingGuestId);
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ true);
 
         verifyUserNeverSwitched();
         verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch();
@@ -123,28 +174,51 @@
     }
 
     @Test
-    public void testSwitchUser_fail() throws Exception {
-        expectUserExists(10);
+    public void testSwitchUser_fail_switchFail() throws Exception {
+        expectUserExists(USER_ID);
+        expectSwitchUserFails(USER_ID);
 
-        // No need to set switchUser() expectations - will return false by default
-
-        mSetter.switchUser(10);
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ true);
 
         verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch();
         verifySystemUserUnlocked();
-        verifyLastActiverUserNevertSet();
+        verifyLastActiveUserNeverSet();
     }
 
     @Test
-    public void testSwitchUser_userDoesntExist() throws Exception {
+    public void testSwitchUser_fail_userDoesntExist() throws Exception {
         // No need to set user exists expectation / will return null by default
 
-        mSetter.switchUser(10);
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ true);
 
         verifyUserNeverSwitched();
         verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch();
         verifySystemUserNeverUnlocked();
-        verifyLastActiverUserNevertSet();
+    }
+
+    @Test
+    public void testSwitchUser_fail_switchThrowsException() throws Exception {
+        expectUserExists(USER_ID);
+        expectSwitchUserThrowsException(USER_ID);
+
+        mSetter.switchUser(USER_ID, /* replaceGuest= */ true);
+
+        verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch();
+        verifySystemUserUnlocked();
+        verifyLastActiveUserNeverSet();
+    }
+
+    @Test
+    public void testSwitchUser_ok_targetIsCurrentUser() throws Exception {
+        mockGetCurrentUser(CURRENT_USER_ID);
+        UserInfo currentUser = expectUserExists(CURRENT_USER_ID);
+
+        mSetter.switchUser(CURRENT_USER_ID, true);
+
+        verifyUserNeverSwitched();
+        verifyFallbackDefaultBehaviorNeverCalled();
+        verifySystemUserUnlocked();
+        assertInitialUserSet(currentUser);
     }
 
     @Test
@@ -154,9 +228,9 @@
 
     @Test
     public void testReplaceGuestIfNeeded_nonGuest() {
-        UserInfo user = newSecondaryUser(10);
+        UserInfo user = newSecondaryUser(USER_ID);
 
-        assertThat(mSetter.replaceGuestIfNeeded(user)).isEqualTo(10);
+        assertThat(mSetter.replaceGuestIfNeeded(user)).isSameAs(user);
 
         verifyGuestNeverMarkedForDeletion();
         verifyUserNeverCreated();
@@ -164,72 +238,81 @@
 
     @Test
     public void testReplaceGuestIfNeeded_ok_nonEphemeralGuest() {
-        int existingGuestId = 10;
-        int newGuestId = 11;
-        expectCreateGuestUser(newGuestId, GUEST_NAME, NO_FLAGS);
+        UserInfo newGuest = expectCreateGuestUser(NEW_USER_ID, GUEST_NAME, NO_FLAGS);
+        UserInfo user = newGuestUser(USER_ID, /* ephemeral= */ false);
 
-        UserInfo user = newGuestUser(existingGuestId, /* ephemeral= */ false);
-        assertThat(mSetter.replaceGuestIfNeeded(user)).isEqualTo(newGuestId);
+        assertThat(mSetter.replaceGuestIfNeeded(user)).isSameAs(newGuest);
 
-        verifyGuestMarkedForDeletion(existingGuestId);
+        verifyGuestMarkedForDeletion(USER_ID);
+    }
+
+    @Test
+    public void testReplaceGuestIfNeeded_lockScreen() throws Exception {
+        UserInfo user = newGuestUser(USER_ID, /* ephemeral= */ false);
+        expectUserIsSecure(USER_ID);
+        assertThat(mSetter.replaceGuestIfNeeded(user)).isSameAs(user);
+
+        verifyGuestNeverMarkedForDeletion();
+        verifyUserNeverCreated();
     }
 
     @Test
     public void testReplaceGuestIfNeeded_ok_ephemeralGuest() {
-        int existingGuestId = 10;
-        int newGuestId = 11;
-        expectCreateGuestUser(newGuestId, GUEST_NAME, UserInfo.FLAG_EPHEMERAL);
+        UserInfo newGuest = expectCreateGuestUser(NEW_USER_ID, GUEST_NAME, UserInfo.FLAG_EPHEMERAL);
+        UserInfo user = newGuestUser(USER_ID, /* ephemeral= */ true);
 
-        UserInfo user = newGuestUser(existingGuestId, /* ephemeral= */ true);
-        assertThat(mSetter.replaceGuestIfNeeded(user)).isEqualTo(newGuestId);
+        assertThat(mSetter.replaceGuestIfNeeded(user)).isSameAs(newGuest);
 
-        verifyGuestMarkedForDeletion(existingGuestId);
+        verifyGuestMarkedForDeletion(USER_ID);
     }
 
     @Test
     public void testReplaceGuestIfNeeded_fail_ephemeralGuest_createFailed() {
         // don't set create guest expectation, so it returns null
 
-        UserInfo user = newGuestUser(10, /* ephemeral= */ true);
-        assertThat(mSetter.replaceGuestIfNeeded(user)).isEqualTo(UserHandle.USER_NULL);
+        UserInfo user = newGuestUser(USER_ID, /* ephemeral= */ true);
+        assertThat(mSetter.replaceGuestIfNeeded(user)).isEqualTo(null);
 
-        verifyGuestMarkedForDeletion(10);
+        verifyGuestMarkedForDeletion(USER_ID);
     }
 
     @Test
     public void testCreateUser_ok_noflags() throws Exception {
-        expectCreateFullUser(10, "TheDude", NO_FLAGS);
-        expectSwitchUser(10);
+        UserInfo newUser = expectCreateFullUser(USER_ID, "TheDude", NO_FLAGS);
+        expectSwitchUser(USER_ID);
 
         mSetter.createUser("TheDude", UserFlags.NONE);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserUnlocked();
+        assertInitialUserSet(newUser);
     }
 
     @Test
     public void testCreateUser_ok_admin() throws Exception {
-        expectCreateFullUser(10, "TheDude", UserInfo.FLAG_ADMIN);
-        expectSwitchUser(10);
+        UserInfo newUser = expectCreateFullUser(USER_ID, "TheDude", UserInfo.FLAG_ADMIN);
+        expectSwitchUser(USER_ID);
 
         mSetter.createUser("TheDude", UserFlags.ADMIN);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserUnlocked();
+        assertInitialUserSet(newUser);
     }
 
     @Test
     public void testCreateUser_ok_ephemeralGuest() throws Exception {
-        expectCreateGuestUser(10, "TheDude", UserInfo.FLAG_EPHEMERAL);
-        expectSwitchUser(10);
+        UserInfo newGuest = expectCreateGuestUser(USER_ID, "TheDude", UserInfo.FLAG_EPHEMERAL);
+        expectSwitchUser(USER_ID);
 
         mSetter.createUser("TheDude", UserFlags.EPHEMERAL | UserFlags.GUEST);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserUnlocked();
+        assertInitialUserSet(newGuest);
     }
 
     @Test
@@ -265,7 +348,17 @@
 
     @Test
     public void testCreateUser_fail_createFail() throws Exception {
-        // No need to set mUm.createUser() expectation - it shouldn't be called
+        // No need to set mUm.createUser() expectation - it will return false by default
+
+        mSetter.createUser("TheDude", UserFlags.NONE);
+
+        verifyUserNeverSwitched();
+        verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch();
+    }
+
+    @Test
+    public void testCreateUser_fail_createThrowsException() throws Exception {
+        expectCreateUserThrowsException("TheDude", UserFlags.NONE);
 
         mSetter.createUser("TheDude", UserFlags.NONE);
 
@@ -275,28 +368,28 @@
 
     @Test
     public void testCreateUser_fail_switchFail() throws Exception {
-        expectCreateFullUser(10, "TheDude", NO_FLAGS);
-
-        // No need to set switchUser() expectations - will return false by default
+        expectCreateFullUser(USER_ID, "TheDude", NO_FLAGS);
+        expectSwitchUserFails(USER_ID);
 
         mSetter.createUser("TheDude", UserFlags.NONE);
 
         verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch();
         verifySystemUserUnlocked();
-        verifyLastActiverUserNevertSet();
+        verifyLastActiveUserNeverSet();
     }
 
     @Test
     public void testDefaultBehavior_firstBoot_ok() throws Exception {
         // no need to mock hasInitialUser(), it will return false by default
-        expectCreateFullUser(10, OWNER_NAME, UserInfo.FLAG_ADMIN);
-        expectSwitchUser(10);
+        UserInfo newUser = expectCreateFullUser(USER_ID, OWNER_NAME, UserInfo.FLAG_ADMIN);
+        expectSwitchUser(USER_ID);
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifySystemUserUnlocked();
+        assertInitialUserSet(newUser);
     }
 
     @Test
@@ -304,7 +397,7 @@
         // no need to mock hasInitialUser(), it will return false by default
         // no need to mock createUser(), it will return null by default
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
         verifyUserNeverSwitched();
         verifyFallbackDefaultBehaviorCalledFromDefaultBehavior();
@@ -314,68 +407,83 @@
     @Test
     public void testDefaultBehavior_firstBoot_fail_switchFailed() throws Exception {
         // no need to mock hasInitialUser(), it will return false by default
-        expectCreateFullUser(10, OWNER_NAME, UserInfo.FLAG_ADMIN);
-        // no need to mock switchUser(), it will return false by default
+        expectCreateFullUser(USER_ID, OWNER_NAME, UserInfo.FLAG_ADMIN);
+        expectSwitchUserFails(USER_ID);
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
         verifyFallbackDefaultBehaviorCalledFromDefaultBehavior();
         verifySystemUserUnlocked();
-        verifyLastActiverUserNevertSet();
+        verifyLastActiveUserNeverSet();
     }
 
     @Test
     public void testDefaultBehavior_nonFirstBoot_ok() throws Exception {
-        expectHasInitialUser(10);
-        expectSwitchUser(10);
+        UserInfo existingUser = expectHasInitialUser(USER_ID);
+        expectSwitchUser(USER_ID);
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifyUserNeverCreated();
         verifySystemUserUnlocked();
+        assertInitialUserSet(existingUser);
+    }
+
+    @Test
+    public void testDefaultBehavior_nonFirstBoot_ok_targetIsCurrentUser() throws Exception {
+        UserInfo currentUser = expectHasInitialUser(CURRENT_USER_ID);
+        expectSwitchUser(CURRENT_USER_ID);
+
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
+
+        verifyUserNeverSwitched();
+        verifyFallbackDefaultBehaviorNeverCalled();
+        verifyUserNeverCreated();
+        verifySystemUserUnlocked();
+        assertInitialUserSet(currentUser);
     }
 
     @Test
     public void testDefaultBehavior_nonFirstBoot_fail_switchFail() throws Exception {
-        expectHasInitialUser(10);
-        // no need to mock switchUser(), it will return false by default
+        expectHasInitialUser(USER_ID);
+        expectSwitchUserFails(USER_ID);
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
         verifyFallbackDefaultBehaviorCalledFromDefaultBehavior();
         verifyUserNeverCreated();
         verifySystemUserUnlocked();
-        verifyLastActiverUserNevertSet();
+        verifyLastActiveUserNeverSet();
     }
 
     @Test
     public void testDefaultBehavior_nonFirstBoot_ok_guestReplaced() throws Exception {
-        int existingGuestId = 10;
-        int newGuestId = 11;
-        expectHasInitialUser(existingGuestId);
-        expectGuestExists(existingGuestId, /* isEphemeral= */ true); // ephemeral doesn't matter
-        expectGuestReplaced(existingGuestId, newGuestId);
-        expectSwitchUser(newGuestId);
+        boolean ephemeral = true; // ephemeral doesn't really matter in this test
+        expectHasInitialUser(USER_ID);
+        expectGuestExists(USER_ID, ephemeral);
+        UserInfo newGuest = newGuestUser(NEW_USER_ID, ephemeral);
+        expectGuestReplaced(USER_ID, newGuest);
+        expectSwitchUser(NEW_USER_ID);
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
-        verifyUserSwitched(newGuestId);
+        verifyUserSwitched(NEW_USER_ID);
         verifyFallbackDefaultBehaviorNeverCalled();
         verifyUserNeverCreated();
         verifySystemUserUnlocked();
-        verifyUserDeleted(existingGuestId);
+        verifyUserDeleted(USER_ID);
+        assertInitialUserSet(newGuest);
     }
 
     @Test
     public void testDefaultBehavior_nonFirstBoot_fail_guestReplacementFailed() throws Exception {
-        int existingGuestId = 10;
-        expectHasInitialUser(existingGuestId);
-        expectGuestExists(existingGuestId, /* isEphemeral= */ true); // ephemeral doesn't matter
-        expectGuestReplaced(existingGuestId, UserHandle.USER_NULL);
+        expectHasInitialUser(USER_ID);
+        expectGuestExists(USER_ID, /* isEphemeral= */ true); // ephemeral doesn't matter
+        expectGuestReplaced(USER_ID, /* newGuest= */ null);
 
-        mSetter.executeDefaultBehavior();
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ true);
 
         verifyUserNeverSwitched();
         verifyFallbackDefaultBehaviorCalledFromDefaultBehavior();
@@ -384,41 +492,132 @@
     }
 
     @Test
-    public void testDefaultBehavior_testDefaultBehavior_nonFirstBoot_ok_withOverriddenProperty()
-            throws Exception {
+    public void testDefaultBehavior_nonFirstBoot_ok_withOverriddenProperty() throws Exception {
         boolean supportsOverrideUserIdProperty = true;
         // Must use a different helper as the property is set on constructor
-        InitialUserSetter setter = spy(new InitialUserSetter(mHelper, mUm, OWNER_NAME, GUEST_NAME,
-                supportsOverrideUserIdProperty));
-        expectHasInitialUser(10, supportsOverrideUserIdProperty);
-        expectSwitchUser(10);
+        InitialUserSetter setter = spy(new InitialUserSetter(mHelper, mUm, mListener,
+                mLockPatternUtils, OWNER_NAME, GUEST_NAME, supportsOverrideUserIdProperty));
+        UserInfo user = expectHasInitialUser(USER_ID, supportsOverrideUserIdProperty);
+        expectSwitchUser(setter, USER_ID);
 
-        setter.executeDefaultBehavior();
+        setter.executeDefaultBehavior(/* replaceGuest= */ true);
 
-        verifyUserSwitched(10);
+        verifyUserSwitched(setter, USER_ID);
+        verifyFallbackDefaultBehaviorNeverCalled();
+        verifyUserNeverCreated();
+        verifySystemUserUnlocked(setter);
+        assertInitialUserSet(user);
+    }
+
+    @Test
+    public void testDefaultBehavior_nonFirstBoot_ok_guestDoesNotNeedToBeReplaced()
+            throws Exception {
+        boolean ephemeral = true; // ephemeral doesn't really matter in this test
+        UserInfo existingGuest = expectHasInitialGuest(USER_ID);
+        expectSwitchUser(USER_ID);
+
+        mSetter.executeDefaultBehavior(/* replaceGuest= */ false);
+
+        verifyUserSwitched(USER_ID);
+        verifyGuestNeverMarkedForDeletion();
         verifyFallbackDefaultBehaviorNeverCalled();
         verifyUserNeverCreated();
         verifySystemUserUnlocked();
+        assertInitialUserSet(existingGuest);
     }
 
-    private void expectHasInitialUser(@UserIdInt int userId) {
-        expectHasInitialUser(userId, /* supportsOverrideUserIdProperty= */ false);
+    @Test
+    public void testUnlockSystemUser_startedOk() throws Exception {
+        when(mIActivityManager.startUserInBackground(UserHandle.USER_SYSTEM)).thenReturn(true);
+
+        mSetter.unlockSystemUser();
+
+        verify(mIActivityManager, never()).unlockUser(UserHandle.USER_SYSTEM, /* token= */ null,
+                /* secret= */ null, /* listener= */ null);
     }
 
-    private void expectHasInitialUser(@UserIdInt int userId,
+    @Test
+    public void testUnlockSystemUser_startFailUnlockedInstead() throws Exception {
+        // No need to set startUserInBackground() expectation as it will return false by default
+
+        mSetter.unlockSystemUser();
+
+        verify(mIActivityManager).unlockUser(UserHandle.USER_SYSTEM, /* token= */ null,
+                /* secret= */ null, /* listener= */ null);
+    }
+
+    @Test
+    public void testStartForegroundUser_ok() throws Exception {
+        expectAmStartFgUser(10);
+
+        assertThat(mSetter.startForegroundUser(10)).isTrue();
+    }
+
+    @Test
+    public void testStartForegroundUser_fail() {
+        // startUserInForegroundWithListener will return false by default
+
+        assertThat(mSetter.startForegroundUser(10)).isFalse();
+    }
+
+    @Test
+    public void testStartForegroundUser_remoteException() throws Exception {
+        expectAmStartFgUserThrowsException(10);
+
+        assertThat(mSetter.startForegroundUser(10)).isFalse();
+    }
+
+    @Test
+    public void testStartForegroundUser_nonHeadlessSystemUser() throws Exception {
+        mockIsHeadlessSystemUserMode(false);
+        expectAmStartFgUser(UserHandle.USER_SYSTEM);
+
+        assertThat(mSetter.startForegroundUser(UserHandle.USER_SYSTEM)).isTrue();
+    }
+
+    @Test
+    public void testStartForegroundUser_headlessSystemUser() throws Exception {
+        mockIsHeadlessSystemUserMode(true);
+
+        assertThat(mSetter.startForegroundUser(UserHandle.USER_SYSTEM)).isFalse();
+
+        verify(mIActivityManager, never()).startUserInForegroundWithListener(UserHandle.USER_SYSTEM,
+                null);
+    }
+
+    private UserInfo expectHasInitialUser(@UserIdInt int userId) {
+        return expectHasInitialUser(userId, /* supportsOverrideUserIdProperty= */ false);
+    }
+
+    private UserInfo expectHasInitialUser(@UserIdInt int userId,
+            boolean supportsOverrideUserIdProperty) {
+        return expectHasInitialUser(userId, /* isGuest= */ false, supportsOverrideUserIdProperty);
+    }
+
+    private UserInfo expectHasInitialGuest(int userId) {
+        return expectHasInitialUser(userId, /* isGuest= */ true,
+                /* supportsOverrideUserIdProperty= */ false);
+    }
+    private UserInfo expectHasInitialUser(@UserIdInt int userId, boolean isGuest,
             boolean supportsOverrideUserIdProperty) {
         when(mHelper.hasInitialUser()).thenReturn(true);
         when(mHelper.getInitialUser(supportsOverrideUserIdProperty)).thenReturn(userId);
-        expectUserExists(userId);
+        return isGuest ? expectGuestExists(userId, /* isEphemeral= */ true)
+                : expectUserExists(userId);
     }
 
-    private void expectUserExists(@UserIdInt int userId) {
+    private UserInfo expectUserExists(@UserIdInt int userId) {
         UserInfo user = new UserInfo();
         user.id = userId;
         when(mUm.getUserInfo(userId)).thenReturn(user);
+        return user;
     }
 
-    private void expectGuestExists(@UserIdInt int userId, boolean isEphemeral) {
+    private void expectUserIsSecure(@UserIdInt int userId) {
+        when(mLockPatternUtils.isSecure(userId)).thenReturn(true);
+    }
+
+    private UserInfo expectGuestExists(@UserIdInt int userId, boolean isEphemeral) {
         UserInfo user = new UserInfo();
         user.id = userId;
         user.userType = UserManager.USER_TYPE_FULL_GUEST;
@@ -426,42 +625,76 @@
             user.flags = UserInfo.FLAG_EPHEMERAL;
         }
         when(mUm.getUserInfo(userId)).thenReturn(user);
+        return user;
     }
 
-    private void expectGuestReplaced(int existingGuestId, int newGuestId) {
-        doReturn(newGuestId).when(mSetter).replaceGuestIfNeeded(isUserInfo(existingGuestId));
+    private void expectGuestReplaced(int existingGuestId, UserInfo newGuest) {
+        doReturn(newGuest).when(mSetter).replaceGuestIfNeeded(isUserInfo(existingGuestId));
     }
 
     private void expectSwitchUser(@UserIdInt int userId) throws Exception {
-        when(mHelper.startForegroundUser(userId)).thenReturn(true);
+        expectSwitchUser(mSetter, userId);
     }
 
-    private void expectCreateFullUser(@UserIdInt int userId, @Nullable String name,
+    private void expectSwitchUser(@NonNull InitialUserSetter setter, @UserIdInt int userId)
+            throws Exception {
+        doReturn(true).when(setter).startForegroundUser(userId);
+    }
+    private void expectSwitchUserFails(@UserIdInt int userId) {
+        when(mSetter.startForegroundUser(userId)).thenReturn(false);
+    }
+
+    private void expectSwitchUserThrowsException(@UserIdInt int userId) {
+        when(mSetter.startForegroundUser(userId))
+                .thenThrow(new RuntimeException("D'OH! Cannot switch to " + userId));
+    }
+
+    private UserInfo expectCreateFullUser(@UserIdInt int userId, @Nullable String name,
             @UserInfoFlag int flags) {
-        expectCreateUserOfType(UserManager.USER_TYPE_FULL_SECONDARY, userId, name, flags);
+        return expectCreateUserOfType(UserManager.USER_TYPE_FULL_SECONDARY, userId, name, flags);
     }
 
-    private void expectCreateGuestUser(@UserIdInt int userId, @Nullable String name,
+    private UserInfo expectCreateGuestUser(@UserIdInt int userId, @Nullable String name,
             @UserInfoFlag int flags) {
-        expectCreateUserOfType(UserManager.USER_TYPE_FULL_GUEST, userId, name, flags);
+        return expectCreateUserOfType(UserManager.USER_TYPE_FULL_GUEST, userId, name, flags);
     }
 
-    private void expectCreateUserOfType(@NonNull String type, @UserIdInt int userId,
+    private UserInfo expectCreateUserOfType(@NonNull String type, @UserIdInt int userId,
             @Nullable String name, @UserInfoFlag int flags) {
         UserInfo userInfo = new UserInfo(userId, name, flags);
         when(mUm.createUser(name, type, flags)).thenReturn(userInfo);
         // Once user is created, it should exist...
         when(mUm.getUserInfo(userId)).thenReturn(userInfo);
+        return userInfo;
+    }
+
+    private void expectCreateUserThrowsException(@NonNull String name, @UserIdInt int userId) {
+        when(mUm.createUser(eq(name), anyString(), eq(userId)))
+                .thenThrow(new RuntimeException("Cannot create user. D'OH!"));
+    }
+
+    private void expectAmStartFgUser(@UserIdInt int userId) throws Exception {
+        when(mIActivityManager.startUserInForegroundWithListener(userId, null)).thenReturn(true);
+    }
+
+    private void expectAmStartFgUserThrowsException(@UserIdInt int userId) throws Exception {
+        when(mIActivityManager.startUserInForegroundWithListener(userId, null))
+                .thenThrow(new RemoteException("D'OH! Cannot switch to " + userId));
     }
 
     private void verifyUserSwitched(@UserIdInt int userId) throws Exception {
-        verify(mHelper).startForegroundUser(userId);
+        verifyUserSwitched(mSetter, userId);
+    }
+
+    private void verifyUserSwitched(@NonNull InitialUserSetter setter, @UserIdInt int userId)
+            throws Exception {
+        verify(setter).startForegroundUser(userId);
         verify(mHelper).setLastActiveUser(userId);
     }
 
     private void verifyUserNeverSwitched() throws Exception {
-        verify(mHelper, never()).startForegroundUser(anyInt());
-        verifyLastActiverUserNevertSet();
+        verify(mSetter, never()).startForegroundUser(anyInt());
+        verifyLastActiveUserNeverSet();
     }
 
     private void verifyUserNeverCreated() {
@@ -482,10 +715,12 @@
 
     private void verifyFallbackDefaultBehaviorCalledFromCreateOrSwitch() {
         verify(mSetter).fallbackDefaultBehavior(eq(true), anyString());
+        assertInitialUserSet(null);
     }
 
     private void verifyFallbackDefaultBehaviorCalledFromDefaultBehavior() {
         verify(mSetter).fallbackDefaultBehavior(eq(false), anyString());
+        assertInitialUserSet(null);
     }
 
     private void verifyFallbackDefaultBehaviorNeverCalled() {
@@ -493,62 +728,36 @@
     }
 
     private void verifySystemUserUnlocked() {
-        verify(mHelper).unlockSystemUser();
+        verifySystemUserUnlocked(mSetter);
+    }
+
+    private void verifySystemUserUnlocked(InitialUserSetter setter) {
+        verify(setter).unlockSystemUser();
     }
 
     private void verifySystemUserNeverUnlocked() {
-        verify(mHelper, never()).unlockSystemUser();
+        verify(mSetter, never()).unlockSystemUser();
     }
 
-    private void verifyLastActiverUserNevertSet() {
+    private void verifyLastActiveUserNeverSet() {
         verify(mHelper, never()).setLastActiveUser(anyInt());
     }
 
-    // TODO(b/149099817): move stuff below (and some from above) to common testing code
-
-    @NonNull
-    private static UserInfo newSecondaryUser(@UserIdInt int userId) {
-        UserInfo userInfo = new UserInfo();
-        userInfo.userType = UserManager.USER_TYPE_FULL_SECONDARY;
-        userInfo.id = userId;
-        return userInfo;
+    private void assertInitialUserSet(@NonNull UserInfo expectedUser) {
+        assertWithMessage("listener called wrong number of times").that(mListener.numberCalls)
+            .isEqualTo(1);
+        assertWithMessage("wrong initial user set on listener").that(mListener.initialUser)
+            .isSameAs(expectedUser);
     }
 
-    @NonNull
-    private static UserInfo newGuestUser(@UserIdInt int userId, boolean ephemeral) {
-        UserInfo userInfo = new UserInfo();
-        userInfo.userType = UserManager.USER_TYPE_FULL_GUEST;
-        userInfo.id = userId;
-        if (ephemeral) {
-            userInfo.flags = UserInfo.FLAG_EPHEMERAL;
-        }
-        return userInfo;
-    }
-
-    /**
-     * Custom Mockito matcher to check if a {@link UserInfo} has the given {@code userId}.
-     */
-    public static UserInfo isUserInfo(@UserIdInt int userId) {
-        return argThat(new UserInfoMatcher(userId));
-    }
-
-    private static class UserInfoMatcher implements ArgumentMatcher<UserInfo> {
-
-        public final @UserIdInt int userId;
-
-        private UserInfoMatcher(@UserIdInt int userId) {
-            this.userId = userId;
-        }
+    private final class MyListener implements Consumer<UserInfo> {
+        public int numberCalls;
+        public UserInfo initialUser;
 
         @Override
-        public boolean matches(@Nullable UserInfo argument) {
-            return argument != null && argument.id == userId;
-        }
-
-        @Override
-        public String toString() {
-            return "UserInfo(userId=" + userId + ")";
+        public void accept(UserInfo initialUser) {
+            this.initialUser = initialUser;
+            numberCalls++;
         }
     }
-
 }
diff --git a/tests/carservice_unit_test/src/android/car/userlib/UserHalHelperTest.java b/tests/carservice_unit_test/src/android/car/userlib/UserHalHelperTest.java
index 1257adf..33a852a 100644
--- a/tests/carservice_unit_test/src/android/car/userlib/UserHalHelperTest.java
+++ b/tests/carservice_unit_test/src/android/car/userlib/UserHalHelperTest.java
@@ -16,18 +16,45 @@
 
 package android.car.userlib;
 
+import static android.car.userlib.UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.DISASSOCIATE_ALL_USERS;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.DISASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_1;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_2;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_3;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_4;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.KEY_FOB;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.ASSOCIATED_ANOTHER_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.NOT_ASSOCIATED_ANY_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.UNKNOWN;
+
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
+import static org.junit.Assert.fail;
 import static org.testng.Assert.assertThrows;
 
 import android.annotation.NonNull;
 import android.content.pm.UserInfo;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
+import android.hardware.automotive.vehicle.V2_0.UsersInfo;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.os.UserManager;
 
+import com.google.common.collect.Range;
+
 import org.junit.Test;
 
 public final class UserHalHelperTest {
@@ -143,4 +170,422 @@
     public void testUserFlagsToString() {
         assertThat(UserHalHelper.userFlagsToString(-666)).isNotNull();
     }
+
+    @Test
+    public void testCreatePropRequest_withType() {
+        int prop = 1;
+        int requestId = 2;
+        int requestType = 3;
+        long before = SystemClock.elapsedRealtime();
+        VehiclePropValue propRequest = UserHalHelper.createPropRequest(prop, requestId,
+                requestType);
+        long after = SystemClock.elapsedRealtime();
+
+        assertThat(propRequest.value.int32Values)
+                .containsExactly(requestId, requestType)
+                .inOrder();
+        assertThat(propRequest.prop).isEqualTo(prop);
+        assertThat(propRequest.timestamp).isIn(Range.closed(before, after));
+    }
+
+    @Test
+    public void testCreatePropRequest() {
+        int prop = 1;
+        int requestId = 2;
+        long before = SystemClock.elapsedRealtime();
+        VehiclePropValue propRequest = UserHalHelper.createPropRequest(prop, requestId);
+        long after = SystemClock.elapsedRealtime();
+
+        assertThat(propRequest.value.int32Values)
+                .containsExactly(requestId)
+                .inOrder();
+        assertThat(propRequest.prop).isEqualTo(prop);
+        assertThat(propRequest.timestamp).isIn(Range.closed(before, after));
+    }
+
+    @Test
+    public void testAddUsersInfo_nullProp() {
+        UsersInfo infos = new UsersInfo();
+
+        assertThrows(NullPointerException.class, () -> UserHalHelper.addUsersInfo(null, infos));
+    }
+
+    @Test
+    public void testAddUsersInfo_nullCurrentUser() {
+        VehiclePropValue propRequest = new VehiclePropValue();
+
+        UsersInfo infos = new UsersInfo();
+        infos.currentUser = null;
+        assertThrows(NullPointerException.class, () ->
+                UserHalHelper.addUsersInfo(propRequest, infos));
+    }
+
+    @Test
+    public void testAddUsersInfo_mismatchNumberUsers() {
+        VehiclePropValue propRequest = new VehiclePropValue();
+
+        UsersInfo infos = new UsersInfo();
+        infos.currentUser.userId = 42;
+        infos.currentUser.flags = 1;
+        infos.numberUsers = 1;
+        assertThat(infos.existingUsers).isEmpty();
+        assertThrows(IllegalArgumentException.class, () ->
+                UserHalHelper.addUsersInfo(propRequest, infos));
+    }
+
+    @Test
+    public void testAddUsersInfo_success() {
+        VehiclePropValue propRequest = new VehiclePropValue();
+        propRequest.value.int32Values.add(99);
+
+        UsersInfo infos = new UsersInfo();
+        infos.currentUser.userId = 42;
+        infos.currentUser.flags = 1;
+        infos.numberUsers = 1;
+
+        android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
+                new android.hardware.automotive.vehicle.V2_0.UserInfo();
+        userInfo.userId = 43;
+        userInfo.flags = 1;
+        infos.existingUsers.add(userInfo);
+        UserHalHelper.addUsersInfo(propRequest, infos);
+
+        assertThat(propRequest.value.int32Values)
+                .containsExactly(99, 42, 1, 1, 43, 1)
+                .inOrder();
+    }
+
+    @Test
+    public void testAddUserInfo_nullProp() {
+        android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
+                new android.hardware.automotive.vehicle.V2_0.UserInfo();
+
+        assertThrows(NullPointerException.class, () -> UserHalHelper.addUserInfo(null, userInfo));
+    }
+
+    @Test
+    public void testAddUserInfo_nullCurrentUser() {
+        VehiclePropValue prop = new VehiclePropValue();
+
+        assertThrows(NullPointerException.class, () -> UserHalHelper.addUserInfo(prop, null));
+    }
+
+    @Test
+    public void testAddUserInfo_success() {
+        VehiclePropValue propRequest = new VehiclePropValue();
+        propRequest.value.int32Values.add(99);
+
+        android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
+                new android.hardware.automotive.vehicle.V2_0.UserInfo();
+        userInfo.userId = 42;
+        userInfo.flags = 1;
+
+        UserHalHelper.addUserInfo(propRequest, userInfo);
+
+        assertThat(propRequest.value.int32Values)
+                .containsExactly(99, 42, 1)
+                .inOrder();
+    }
+
+    @Test
+    public void testIsValidUserIdentificationAssociationType_valid() {
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationType(KEY_FOB)).isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationType(CUSTOM_1)).isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationType(CUSTOM_2)).isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationType(CUSTOM_3)).isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationType(CUSTOM_4)).isTrue();
+    }
+
+    @Test
+    public void testIsValidUserIdentificationAssociationType_invalid() {
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationType(CUSTOM_4 + 1)).isFalse();
+    }
+
+    @Test
+    public void testIsValidUserIdentificationAssociationValue_valid() {
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationValue(ASSOCIATED_ANOTHER_USER))
+                .isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationValue(ASSOCIATED_CURRENT_USER))
+                .isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationValue(NOT_ASSOCIATED_ANY_USER))
+                .isTrue();
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationValue(UNKNOWN)).isTrue();
+    }
+
+    @Test
+    public void testIsValidUserIdentificationAssociationValue_invalid() {
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationValue(0)).isFalse();
+    }
+
+    @Test
+    public void testIsValidUserIdentificationAssociationSetValue_valid() {
+        assertThat(UserHalHelper
+                .isValidUserIdentificationAssociationSetValue(ASSOCIATE_CURRENT_USER)).isTrue();
+        assertThat(UserHalHelper
+                .isValidUserIdentificationAssociationSetValue(DISASSOCIATE_CURRENT_USER)).isTrue();
+        assertThat(UserHalHelper
+                .isValidUserIdentificationAssociationSetValue(DISASSOCIATE_ALL_USERS)).isTrue();
+    }
+
+    @Test
+    public void testIsValidUserIdentificationAssociationSetValue_invalid() {
+        assertThat(UserHalHelper.isValidUserIdentificationAssociationSetValue(0)).isFalse();
+    }
+
+    @Test
+    public void testUserIdentificationGetRequestToVehiclePropValue_null() {
+        assertThrows(NullPointerException.class,
+                () -> UserHalHelper.toVehiclePropValue((UserIdentificationGetRequest) null));
+    }
+
+    @Test
+    public void testUserIdentificationGetRequestToVehiclePropValue_emptyRequest() {
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationGetRequestToVehiclePropValue_wrongNumberOfAssociations() {
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.numberAssociationTypes = 1;
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationGetRequestToVehiclePropValue_invalidType() {
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.numberAssociationTypes = 1;
+        request.associationTypes.add(CUSTOM_4 + 1);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationGetRequestToVehiclePropValue_missingRequestId() {
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.userInfo.userId = 42;
+        request.userInfo.flags = 108;
+        request.numberAssociationTypes = 1;
+        request.associationTypes.add(KEY_FOB);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationGetRequestToVehiclePropValue_ok() {
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.requestId = 1;
+        request.userInfo.userId = 42;
+        request.userInfo.flags = 108;
+        request.numberAssociationTypes = 2;
+        request.associationTypes.add(KEY_FOB);
+        request.associationTypes.add(CUSTOM_1);
+
+        VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
+        assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+                .isEqualTo(USER_IDENTIFICATION_ASSOCIATION_PROPERTY);
+        assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+                .containsExactly(1, 42, 108, 2, KEY_FOB, CUSTOM_1).inOrder();
+    }
+
+    @Test
+    public void testToUserIdentificationResponse_null() {
+        assertThrows(NullPointerException.class,
+                () -> UserHalHelper.toUserIdentificationResponse(null));
+    }
+
+    @Test
+    public void testToUserIdentificationGetResponse_invalidPropType() {
+        VehiclePropValue prop = new VehiclePropValue();
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toUserIdentificationResponse(prop));
+    }
+
+    @Test
+    public void testToUserIdentificationResponse_invalidSize() {
+        VehiclePropValue prop = new VehiclePropValue();
+        prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
+        // need at least 4: request_id, number associations, type1, value1
+        prop.value.int32Values.add(1);
+        prop.value.int32Values.add(2);
+        prop.value.int32Values.add(3);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toUserIdentificationResponse(prop));
+    }
+
+    @Test
+    public void testToUserIdentificationResponse_invalidRequest() {
+        VehiclePropValue prop = new VehiclePropValue();
+        prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
+        prop.value.int32Values.add(0);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toUserIdentificationResponse(prop));
+    }
+
+    @Test
+    public void testToUserIdentificationResponse_invalidType() {
+        VehiclePropValue prop = new VehiclePropValue();
+        prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
+        prop.value.int32Values.add(42); // request id
+        prop.value.int32Values.add(1); // number of associations
+        prop.value.int32Values.add(CUSTOM_4 + 1);
+        prop.value.int32Values.add(ASSOCIATED_ANOTHER_USER);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toUserIdentificationResponse(prop));
+    }
+
+    @Test
+    public void testToUserIdentificationResponse_invalidValue() {
+        VehiclePropValue prop = new VehiclePropValue();
+        prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
+        prop.value.int32Values.add(42); // request id
+        prop.value.int32Values.add(1); // number of associations
+        prop.value.int32Values.add(KEY_FOB);
+        prop.value.int32Values.add(0);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toUserIdentificationResponse(prop));
+    }
+
+    @Test
+    public void testToUserIdentificationResponse_ok() {
+        VehiclePropValue prop = new VehiclePropValue();
+        prop.prop = UserHalHelper.USER_IDENTIFICATION_ASSOCIATION_PROPERTY;
+        prop.value.int32Values.add(42); // request id
+        prop.value.int32Values.add(3); // number of associations
+        prop.value.int32Values.add(KEY_FOB);
+        prop.value.int32Values.add(ASSOCIATED_ANOTHER_USER);
+        prop.value.int32Values.add(CUSTOM_1);
+        prop.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        prop.value.int32Values.add(CUSTOM_2);
+        prop.value.int32Values.add(NOT_ASSOCIATED_ANY_USER);
+        prop.value.stringValue = "D'OH!";
+
+        UserIdentificationResponse response = UserHalHelper.toUserIdentificationResponse(prop);
+
+        assertWithMessage("Wrong request id on %s", response)
+            .that(response.requestId).isEqualTo(42);
+        assertWithMessage("Wrong number of associations on %s", response)
+            .that(response.numberAssociation).isEqualTo(3);
+        assertAssociation(response, 0, KEY_FOB, ASSOCIATED_ANOTHER_USER);
+        assertAssociation(response, 1, CUSTOM_1, ASSOCIATED_CURRENT_USER);
+        assertAssociation(response, 2, CUSTOM_2, NOT_ASSOCIATED_ANY_USER);
+        assertWithMessage("Wrong error message on %s", response)
+            .that(response.errorMessage).isEqualTo("D'OH!");
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_null() {
+        assertThrows(NullPointerException.class,
+                () -> UserHalHelper.toVehiclePropValue((UserIdentificationSetRequest) null));
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_emptyRequest() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_wrongNumberOfAssociations() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.numberAssociations = 1;
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_invalidType() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.numberAssociations = 1;
+        UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
+        request.associations.add(association1);
+        association1.type = CUSTOM_4 + 1;
+        association1.value = ASSOCIATE_CURRENT_USER;
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_invalidValue() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.numberAssociations = 1;
+        UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
+        request.associations.add(association1);
+        association1.type = KEY_FOB;
+        association1.value = -1;
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_missingRequestId() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.userInfo.userId = 42;
+        request.userInfo.flags = 108;
+        request.numberAssociations = 1;
+        UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
+        association1.type = KEY_FOB;
+        association1.value = ASSOCIATE_CURRENT_USER;
+        request.associations.add(association1);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> UserHalHelper.toVehiclePropValue(request));
+    }
+
+    @Test
+    public void testUserIdentificationSetRequestToVehiclePropValue_ok() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.requestId = 1;
+        request.userInfo.userId = 42;
+        request.userInfo.flags = 108;
+        request.numberAssociations = 2;
+        UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
+        association1.type = KEY_FOB;
+        association1.value = ASSOCIATE_CURRENT_USER;
+        request.associations.add(association1);
+        UserIdentificationSetAssociation association2 = new UserIdentificationSetAssociation();
+        association2.type = CUSTOM_1;
+        association2.value = DISASSOCIATE_CURRENT_USER;
+        request.associations.add(association2);
+
+        VehiclePropValue propValue = UserHalHelper.toVehiclePropValue(request);
+        assertWithMessage("wrong prop on %s", propValue).that(propValue.prop)
+                .isEqualTo(USER_IDENTIFICATION_ASSOCIATION_PROPERTY);
+        assertWithMessage("wrong int32values on %s", propValue).that(propValue.value.int32Values)
+                .containsExactly(1, 42, 108, 2,
+                        KEY_FOB, ASSOCIATE_CURRENT_USER,
+                        CUSTOM_1, DISASSOCIATE_CURRENT_USER)
+                .inOrder();
+    }
+
+    private void assertAssociation(@NonNull UserIdentificationResponse response, int index,
+            int expectedType, int expectedValue) {
+        UserIdentificationAssociation actualAssociation = response.associations.get(index);
+        if (actualAssociation.type != expectedType) {
+            fail("Wrong type for association at index " + index + " on " + response + "; expected "
+                    + UserIdentificationAssociationType.toString(expectedType) + ", got "
+                    + UserIdentificationAssociationType.toString(actualAssociation.type));
+        }
+        if (actualAssociation.type != expectedType) {
+            fail("Wrong value for association at index " + index + " on " + response + "; expected "
+                    + UserIdentificationAssociationValue.toString(expectedValue) + ", got "
+                    + UserIdentificationAssociationValue.toString(actualAssociation.value));
+        }
+    }
 }
diff --git a/tests/carservice_unit_test/src/android/car/userlib/UserHelperTest.java b/tests/carservice_unit_test/src/android/car/userlib/UserHelperTest.java
index 226e681..c372a28 100644
--- a/tests/carservice_unit_test/src/android/car/userlib/UserHelperTest.java
+++ b/tests/carservice_unit_test/src/android/car/userlib/UserHelperTest.java
@@ -18,9 +18,18 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.os.UserHandle;
+import android.os.UserManager;
+
 import org.junit.Test;
 
-public final class UserHelperTest {
+public final class UserHelperTest extends AbstractExtendedMockitoTestCase {
+
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session.spyStatic(UserManager.class);
+    }
 
     @Test
     public void testSafeName() {
@@ -30,4 +39,28 @@
         assertThat(safe).isNotNull();
         assertThat(safe).doesNotContain("UnsafeIAm");
     }
+
+    @Test
+    public void testIsHeadlessSystemUser_system_headlessMode() {
+        mockIsHeadlessSystemUserMode(true);
+        assertThat(UserHelper.isHeadlessSystemUser(UserHandle.USER_SYSTEM)).isTrue();
+    }
+
+    @Test
+    public void testIsHeadlessSystemUser_system_nonHeadlessMode() {
+        mockIsHeadlessSystemUserMode(false);
+        assertThat(UserHelper.isHeadlessSystemUser(UserHandle.USER_SYSTEM)).isFalse();
+    }
+
+    @Test
+    public void testIsHeadlessSystemUser_nonSystem_headlessMode() {
+        mockIsHeadlessSystemUserMode(true);
+        assertThat(UserHelper.isHeadlessSystemUser(10)).isFalse();
+    }
+
+    @Test
+    public void testIsHeadlessSystemUser_nonSystem_nonHeadlessMode() {
+        mockIsHeadlessSystemUserMode(false);
+        assertThat(UserHelper.isHeadlessSystemUser(10)).isFalse();
+    }
 }
diff --git a/tests/carservice_unit_test/src/android/car/watchdoglib/CarWatchdogDaemonHelperTest.java b/tests/carservice_unit_test/src/android/car/watchdoglib/CarWatchdogDaemonHelperTest.java
index 276aba8..223e3e1 100644
--- a/tests/carservice_unit_test/src/android/car/watchdoglib/CarWatchdogDaemonHelperTest.java
+++ b/tests/carservice_unit_test/src/android/car/watchdoglib/CarWatchdogDaemonHelperTest.java
@@ -16,13 +16,12 @@
 
 package android.car.watchdoglib;
 
+import static android.car.test.mocks.AndroidMockitoHelper.mockQueryService;
+
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertThrows;
 
 import android.automotive.watchdog.ICarWatchdog;
@@ -66,7 +65,7 @@
                 .strictness(Strictness.LENIENT)
                 .spyStatic(ServiceManager.class)
                 .startMocking();
-        expectLocalWatchdogDaemonToWork();
+        mockQueryService(CAR_WATCHDOG_DAEMON_INTERFACE, mBinder, mFakeCarWatchdog);
         mCarWatchdogDaemonHelper = new CarWatchdogDaemonHelper();
         mCarWatchdogDaemonHelper.connect();
     }
@@ -173,11 +172,6 @@
                 () -> mCarWatchdogDaemonHelper.unregisterMediator(client));
     }
 
-    private void expectLocalWatchdogDaemonToWork() {
-        when(ServiceManager.getService(CAR_WATCHDOG_DAEMON_INTERFACE)).thenReturn(mBinder);
-        doReturn(mFakeCarWatchdog).when(mBinder).queryLocalInterface(anyString());
-    }
-
     // FakeCarWatchdog mimics ICarWatchdog daemon in local process.
     private final class FakeCarWatchdog extends ICarWatchdog.Default {
 
@@ -209,5 +203,18 @@
     private final class ICarWatchdogClientImpl extends ICarWatchdogClient.Stub {
         @Override
         public void checkIfAlive(int sessionId, int timeout) {}
+
+        @Override
+        public void prepareProcessTermination() {}
+
+        @Override
+        public int getInterfaceVersion() {
+            return this.VERSION;
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return this.HASH;
+        }
     }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/AppFocusServiceTest.java b/tests/carservice_unit_test/src/com/android/car/AppFocusServiceTest.java
new file mode 100644
index 0000000..0e7731b
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/AppFocusServiceTest.java
@@ -0,0 +1,184 @@
+/*
+ * Copyright (C) 2020 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.car;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.doReturn;
+
+import android.car.Car;
+import android.car.CarAppFocusManager;
+import android.car.IAppFocusListener;
+import android.car.IAppFocusOwnershipCallback;
+import android.content.Context;
+import android.os.Handler;
+import android.os.Looper;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.util.concurrent.Semaphore;
+import java.util.concurrent.TimeUnit;
+
+@RunWith(MockitoJUnitRunner.class)
+public class AppFocusServiceTest {
+
+    private static final long WAIT_TIMEOUT_MS = 500;
+
+    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private SystemActivityMonitoringService mSystemActivityMonitoringService;
+    @Mock
+    private Car mCar;
+
+    private AppFocusService mService;
+    private CarAppFocusManager mCarAppFocusManager1;
+    private CarAppFocusManager mCarAppFocusManager2;
+
+    private AppFocusChangedListener mAppFocusChangedListener1 = new AppFocusChangedListener();
+
+    private AppFocusOwnershipCallback mAppFocusOwnershipCallback1 = new AppFocusOwnershipCallback();
+
+    @Before
+    public void setUp() {
+        mService = new AppFocusService(mContext, mSystemActivityMonitoringService);
+        mService.init();
+        doReturn(mMainHandler).when(mCar).getEventHandler();
+        mCarAppFocusManager1 = new CarAppFocusManager(mCar, mService.asBinder());
+        mCarAppFocusManager2 = new CarAppFocusManager(mCar, mService.asBinder());
+    }
+
+    @Test
+    public void testSingleOwner() throws Exception {
+        mCarAppFocusManager2.addFocusListener(mAppFocusChangedListener1,
+                CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION);
+
+        int r = mCarAppFocusManager1.requestAppFocus(CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION,
+                mAppFocusOwnershipCallback1);
+        assertThat(r).isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(mCarAppFocusManager1.isOwningFocus(mAppFocusOwnershipCallback1,
+                CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED)).isTrue();
+        waitForNavFocusChangeAndAssert(mAppFocusChangedListener1, true);
+
+        mAppFocusChangedListener1.resetWait();
+        mCarAppFocusManager1.abandonAppFocus(mAppFocusOwnershipCallback1,
+                CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION);
+        assertThat(mCarAppFocusManager1.isOwningFocus(mAppFocusOwnershipCallback1,
+                CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED)).isFalse();
+        waitForNavFocusChangeAndAssert(mAppFocusChangedListener1, false);
+    }
+
+    private void waitForNavFocusChangeAndAssert(AppFocusChangedListener listener, boolean isActive)
+            throws Exception {
+        listener.waitForEvent();
+        if (isActive) {
+            assertThat(listener.mLastActive).isTrue();
+        } else {
+            assertThat(listener.mLastActive).isFalse();
+        }
+        assertThat(listener.mLastAppType).isEqualTo(CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION);
+    }
+
+    @Test
+    public void testOwnerBinderDeath() throws Exception {
+        mCarAppFocusManager2.addFocusListener(mAppFocusChangedListener1,
+                CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION);
+
+        int r = mCarAppFocusManager1.requestAppFocus(CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION,
+                mAppFocusOwnershipCallback1);
+        assertThat(r).isEqualTo(CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED);
+        assertThat(mCarAppFocusManager1.isOwningFocus(mAppFocusOwnershipCallback1,
+                CarAppFocusManager.APP_FOCUS_REQUEST_SUCCEEDED)).isTrue();
+        waitForNavFocusChangeAndAssert(mAppFocusChangedListener1, true);
+
+        assertThat(mService.mAllOwnershipClients.getInterfaces()).hasSize(1);
+        BinderInterfaceContainer.BinderInterface<IAppFocusOwnershipCallback> binder =
+                mService.mAllOwnershipClients.getInterfaces().iterator().next();
+        // Now fake binder death
+        mAppFocusChangedListener1.resetWait();
+        binder.binderDied();
+        assertThat(mService.mAllOwnershipClients.getInterfaces()).isEmpty();
+        waitForNavFocusChangeAndAssert(mAppFocusChangedListener1, false);
+    }
+
+    @Test
+    public void testListenerBinderDeath() throws Exception {
+
+        mCarAppFocusManager1.addFocusListener(mAppFocusChangedListener1,
+                CarAppFocusManager.APP_FOCUS_TYPE_NAVIGATION);
+        assertThat(mService.mAllChangeClients.getInterfaces()).hasSize(1);
+        BinderInterfaceContainer.BinderInterface<IAppFocusListener> binder =
+                mService.mAllChangeClients.getInterfaces().iterator().next();
+        binder.binderDied();
+        assertThat(mService.mAllChangeClients.getInterfaces()).isEmpty();
+    }
+
+    private class AppFocusChangedListener implements CarAppFocusManager.OnAppFocusChangedListener {
+
+        private final Semaphore mSemaphore = new Semaphore(0);
+        private int mLastAppType;
+        private boolean mLastActive;
+
+        @Override
+        public void onAppFocusChanged(int appType, boolean active) {
+            mLastAppType = appType;
+            mLastActive = active;
+            mSemaphore.release();
+        }
+
+        public void waitForEvent() throws Exception {
+            assertThat(mSemaphore.tryAcquire(WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS)).isTrue();
+        }
+
+        public void resetWait() {
+            mSemaphore.drainPermits();
+        }
+    }
+
+    private class AppFocusOwnershipCallback implements
+            CarAppFocusManager.OnAppFocusOwnershipCallback {
+
+        private final Semaphore mSemaphore = new Semaphore(0);
+        private int mGrantedAppTypes;
+
+        @Override
+        public void onAppFocusOwnershipLost(int appType) {
+            mGrantedAppTypes = mGrantedAppTypes & ~appType;
+            mSemaphore.release();
+        }
+
+        @Override
+        public void onAppFocusOwnershipGranted(int appType) {
+            mGrantedAppTypes = mGrantedAppTypes | appType;
+            mSemaphore.release();
+        }
+
+        public void waitForEvent() throws Exception {
+            mSemaphore.tryAcquire(WAIT_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        }
+
+        public void resetWait() {
+            mSemaphore.drainPermits();
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/CarOccupantZoneServiceTest.java b/tests/carservice_unit_test/src/com/android/car/CarOccupantZoneServiceTest.java
index c5bba05..b7fea82 100644
--- a/tests/carservice_unit_test/src/com/android/car/CarOccupantZoneServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/CarOccupantZoneServiceTest.java
@@ -21,12 +21,13 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertThrows;
 import static org.testng.Assert.expectThrows;
 
-import android.app.ActivityManager;
+import android.annotation.UserIdInt;
 import android.car.Car;
 import android.car.CarOccupantZoneManager;
 import android.car.CarOccupantZoneManager.OccupantZoneInfo;
@@ -36,10 +37,12 @@
 import android.car.user.CarUserManager.UserLifecycleEvent;
 import android.content.Context;
 import android.content.pm.ApplicationInfo;
+import android.content.pm.UserInfo;
 import android.content.res.Resources;
 import android.hardware.display.DisplayManager;
 import android.os.Looper;
 import android.os.UserHandle;
+import android.os.UserManager;
 import android.util.SparseIntArray;
 import android.view.Display;
 import android.view.DisplayAddress;
@@ -48,6 +51,7 @@
 import com.android.car.CarOccupantZoneService.DisplayInfo;
 import com.android.car.CarOccupantZoneService.OccupantConfig;
 import com.android.car.user.CarUserService;
+import com.android.internal.car.ICarServiceHelper;
 
 import org.junit.After;
 import org.junit.Before;
@@ -56,11 +60,14 @@
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 @RunWith(MockitoJUnitRunner.class)
 public class CarOccupantZoneServiceTest {
@@ -83,6 +90,9 @@
     private DisplayManager mDisplayManager;
 
     @Mock
+    private UserManager mUserManager;
+
+    @Mock
     private Resources mResources;
 
     @Mock
@@ -103,6 +113,10 @@
     @Mock
     private Display mDisplay5; // outside display config and become unknown display
 
+    private static final int CURRENT_USER = 100;
+    private static final int PROFILE_USER1 = 1001;
+    private static final int PROFILE_USER2 = 1002;
+
     private static final String[] DEFAULT_OCCUPANT_ZONES = {
             "occupantZoneId=0,occupantType=DRIVER,seatRow=1,seatSide=driver",
             "occupantZoneId=1,occupantType=FRONT_PASSENGER,seatRow=1,seatSide=oppositeDriver",
@@ -145,6 +159,8 @@
     private int mLastChangeFlags;
     private final Semaphore mChangeEventSignal = new Semaphore(0);
 
+    private final ICarServiceHelperImpl mICarServiceHelper = new ICarServiceHelperImpl();
+
     private final CarOccupantZoneManager.OccupantZoneConfigChangeListener mChangeListener =
             new CarOccupantZoneManager.OccupantZoneConfigChangeListener() {
                 @Override
@@ -209,10 +225,11 @@
                 mDisplay5
         });
 
-        mService = new CarOccupantZoneService(mContext, mDisplayManager);
+        mService = new CarOccupantZoneService(mContext, mDisplayManager, mUserManager,
+                /* enableProfileUserAssignmentForMultiDisplay= */ false);
         spyOn(mService);
         doReturn(VehicleAreaSeat.SEAT_ROW_1_LEFT).when(mService).getDriverSeat();
-        doReturn(ActivityManager.getCurrentUser()).when(mService).getCurrentUser();
+        doReturn(CURRENT_USER).when(mService).getCurrentUser();
 
         Car car = new Car(mContext, /* service= */ null, /* handler= */ null);
         mManager = new CarOccupantZoneManager(car, mService);
@@ -283,8 +300,160 @@
         assertDisplayConfig(configs.get(14), CarOccupantZoneManager.DISPLAY_TYPE_MAIN, 3);
     }
 
+    private void setUpServiceWithProfileSupportEnabled() {
+        mService = new CarOccupantZoneService(mContext, mDisplayManager, mUserManager,
+                /* enableProfileUserAssignmentForMultiDisplay= */ true);
+        spyOn(mService);
+        doReturn(VehicleAreaSeat.SEAT_ROW_1_LEFT).when(mService).getDriverSeat();
+        doReturn(CURRENT_USER).when(mService).getCurrentUser();
+        LinkedList<UserInfo> profileUsers = new LinkedList<>();
+        profileUsers.add(new UserInfo(PROFILE_USER1, "1", 0));
+        profileUsers.add(new UserInfo(PROFILE_USER2, "1", 0));
+        doReturn(profileUsers).when(mUserManager).getEnabledProfiles(CURRENT_USER);
+        doReturn(true).when(mUserManager).isUserRunning(anyInt());
+
+        Car car = new Car(mContext, /* service= */ null, /* handler= */ null);
+        mManager = new CarOccupantZoneManager(car, mService);
+    }
+
+    @Test
+    public void testAssignProfileUserFailForNonProfileUser() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+
+        int invalidProfileUser = 2000;
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                invalidProfileUser)).isFalse();
+    }
+
+    private void assertDisplayWhitelist(int userId, int[] displays) {
+        assertThat(mICarServiceHelper.mWhitelists).containsKey(userId);
+        assertThat(mICarServiceHelper.mWhitelists.get(userId)).hasSize(displays.length);
+        for (int display : displays) {
+            assertThat(mICarServiceHelper.mWhitelists.get(userId)).contains(display);
+        }
+    }
+
+    private void assertPassengerDisplaysFromDefaultConfig() throws Exception {
+        assertThat(mICarServiceHelper.mPassengerDisplayIds).hasSize(2);
+        assertThat(mICarServiceHelper.mPassengerDisplayIds).contains(
+                mDisplay2.getDisplayId());
+        assertThat(mICarServiceHelper.mPassengerDisplayIds).contains(
+                mDisplay4.getDisplayId());
+    }
+
+    @Test
+    public void testAssignProfileUserOnce() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+        mService.setCarServiceHelper(mICarServiceHelper);
+
+        assertPassengerDisplaysFromDefaultConfig();
+
+        mICarServiceHelper.mWhitelists.clear();
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                PROFILE_USER1)).isTrue();
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay4.getDisplayId()});
+        assertDisplayWhitelist(PROFILE_USER1, new int[] {mDisplay2.getDisplayId()});
+    }
+
+    @Test
+    public void testAssignProfileUserFailForStoppedUser() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+        mService.setCarServiceHelper(mICarServiceHelper);
+
+        assertPassengerDisplaysFromDefaultConfig();
+
+        mICarServiceHelper.mWhitelists.clear();
+        doReturn(false).when(mUserManager).isUserRunning(PROFILE_USER1);
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                PROFILE_USER1)).isFalse();
+    }
+
+    @Test
+    public void testAssignProfileUserSwitch() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+        mService.setCarServiceHelper(mICarServiceHelper);
+
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                PROFILE_USER1)).isTrue();
+
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay4.getDisplayId()});
+        assertDisplayWhitelist(PROFILE_USER1, new int[] {mDisplay2.getDisplayId()});
+
+        mICarServiceHelper.mWhitelists.clear();
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                PROFILE_USER2)).isTrue();
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay4.getDisplayId()});
+        assertDisplayWhitelist(PROFILE_USER2, new int[] {mDisplay2.getDisplayId()});
+    }
+
+    @Test
+    public void testAssignProfileFollowedByUserSwitch() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+        mService.setCarServiceHelper(mICarServiceHelper);
+
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                PROFILE_USER1)).isTrue();
+
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay4.getDisplayId()});
+        assertDisplayWhitelist(PROFILE_USER1, new int[] {mDisplay2.getDisplayId()});
+
+        mICarServiceHelper.mWhitelists.clear();
+        int newUserId = 200;
+        doReturn(newUserId).when(mService).getCurrentUser();
+        mService.mUserLifecycleListener.onEvent(new UserLifecycleEvent(
+                CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING, newUserId));
+
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(newUserId, new int[] {mDisplay2.getDisplayId(),
+                mDisplay4.getDisplayId()});
+        assertThat(mICarServiceHelper.mWhitelists).hasSize(1);
+    }
+
+    @Test
+    public void testAssignProfileFollowedByNullUserAssignment() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+        mService.setCarServiceHelper(mICarServiceHelper);
+
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                PROFILE_USER1)).isTrue();
+
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay4.getDisplayId()});
+        assertDisplayWhitelist(PROFILE_USER1, new int[] {mDisplay2.getDisplayId()});
+
+        mICarServiceHelper.mWhitelists.clear();
+        assertThat(mManager.assignProfileUserToOccupantZone(mZoneFrontPassengerLHD,
+                UserHandle.USER_NULL)).isTrue();
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay2.getDisplayId(),
+                mDisplay4.getDisplayId()});
+        assertThat(mICarServiceHelper.mWhitelists).hasSize(1);
+    }
+
+    @Test
+    public void testCarServiceHelperInitialUpdate() throws Exception {
+        setUpServiceWithProfileSupportEnabled();
+        mService.init();
+        mService.setCarServiceHelper(mICarServiceHelper);
+
+        assertPassengerDisplaysFromDefaultConfig();
+        assertDisplayWhitelist(CURRENT_USER, new int[] {mDisplay2.getDisplayId(),
+                mDisplay4.getDisplayId()});
+        assertThat(mICarServiceHelper.mWhitelists).hasSize(1);
+    }
+
     private void assertDisplayInfoIncluded(
-            LinkedList<DisplayInfo> displayInfos, Display display, int displayType) {
+            ArrayList<DisplayInfo> displayInfos, Display display, int displayType) {
         for (DisplayInfo info : displayInfos) {
             if (info.display == display && info.displayType == displayType) {
                 return;
@@ -388,13 +557,12 @@
         // key : zone id
         HashMap<Integer, OccupantConfig> configs = mService.getActiveOccupantConfigs();
         assertThat(configs).hasSize(3); // driver, front passenger, one rear
-        int currentUser = ActivityManager.getCurrentUser();
-        assertOccupantConfig(configs.get(0), currentUser, new Display[]{mDisplay0, mDisplay1},
+        assertOccupantConfig(configs.get(0), CURRENT_USER, new Display[]{mDisplay0, mDisplay1},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN,
                         CarOccupantZoneManager.DISPLAY_TYPE_INSTRUMENT_CLUSTER});
-        assertOccupantConfig(configs.get(1), UserHandle.USER_NULL, new Display[]{mDisplay2},
+        assertOccupantConfig(configs.get(1), CURRENT_USER, new Display[]{mDisplay2},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
-        assertOccupantConfig(configs.get(3), UserHandle.USER_NULL, new Display[]{mDisplay4},
+        assertOccupantConfig(configs.get(3), CURRENT_USER, new Display[]{mDisplay4},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
     }
 
@@ -416,15 +584,14 @@
         // key : zone id
         HashMap<Integer, OccupantConfig> configs = mService.getActiveOccupantConfigs();
         assertThat(configs).hasSize(4); // driver, front passenger, two rear
-        int currentUser = ActivityManager.getCurrentUser();
-        assertOccupantConfig(configs.get(0), currentUser, new Display[]{mDisplay0, mDisplay1},
+        assertOccupantConfig(configs.get(0), CURRENT_USER, new Display[]{mDisplay0, mDisplay1},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN,
                         CarOccupantZoneManager.DISPLAY_TYPE_INSTRUMENT_CLUSTER});
-        assertOccupantConfig(configs.get(1), UserHandle.USER_NULL, new Display[]{mDisplay2},
+        assertOccupantConfig(configs.get(1), CURRENT_USER, new Display[]{mDisplay2},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
-        assertOccupantConfig(configs.get(2), UserHandle.USER_NULL, new Display[]{mDisplay3},
+        assertOccupantConfig(configs.get(2), CURRENT_USER, new Display[]{mDisplay3},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
-        assertOccupantConfig(configs.get(3), UserHandle.USER_NULL, new Display[]{mDisplay4},
+        assertOccupantConfig(configs.get(3), CURRENT_USER, new Display[]{mDisplay4},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
     }
 
@@ -442,11 +609,10 @@
         // key : zone id
         HashMap<Integer, OccupantConfig> configs = mService.getActiveOccupantConfigs();
         assertThat(configs).hasSize(2); // driver, front passenger
-        int currentUser = ActivityManager.getCurrentUser();
-        assertOccupantConfig(configs.get(0), currentUser, new Display[]{mDisplay0, mDisplay1},
+        assertOccupantConfig(configs.get(0), CURRENT_USER, new Display[]{mDisplay0, mDisplay1},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN,
                         CarOccupantZoneManager.DISPLAY_TYPE_INSTRUMENT_CLUSTER});
-        assertOccupantConfig(configs.get(1), UserHandle.USER_NULL, new Display[]{mDisplay2},
+        assertOccupantConfig(configs.get(1), CURRENT_USER, new Display[]{mDisplay2},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
     }
 
@@ -454,7 +620,7 @@
     public void testActiveUserAfterUserSwitching() {
         mService.init();
 
-        final int newUserId = 100;
+        final int newUserId = 200;
         doReturn(newUserId).when(mService).getCurrentUser();
         mService.mUserLifecycleListener.onEvent(new UserLifecycleEvent(
                 CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING, newUserId));
@@ -465,9 +631,9 @@
         assertOccupantConfig(configs.get(0), newUserId, new Display[]{mDisplay0, mDisplay1},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN,
                         CarOccupantZoneManager.DISPLAY_TYPE_INSTRUMENT_CLUSTER});
-        assertOccupantConfig(configs.get(1), UserHandle.USER_NULL, new Display[]{mDisplay2},
+        assertOccupantConfig(configs.get(1), newUserId, new Display[]{mDisplay2},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
-        assertOccupantConfig(configs.get(3), UserHandle.USER_NULL, new Display[]{mDisplay4},
+        assertOccupantConfig(configs.get(3), newUserId, new Display[]{mDisplay4},
                 new int[]{CarOccupantZoneManager.DISPLAY_TYPE_MAIN});
     }
 
@@ -656,32 +822,29 @@
     public void testManagerGetUserForOccupant() {
         mService.init();
 
-        int currentUser = ActivityManager.getCurrentUser();
         int driverUser = mManager.getUserForOccupant(mZoneDriverLHD);
-        assertThat(currentUser).isEqualTo(driverUser);
+        assertThat(CURRENT_USER).isEqualTo(driverUser);
 
         //TODO update this after secondary user handling
-        assertThat(mManager.getUserForOccupant(mZoneFrontPassengerLHD)).isEqualTo(
-                UserHandle.USER_NULL);
+        assertThat(mManager.getUserForOccupant(mZoneFrontPassengerLHD)).isEqualTo(driverUser);
         assertThat(mManager.getUserForOccupant(mZoneRearLeft)).isEqualTo(UserHandle.USER_NULL);
-        assertThat(mManager.getUserForOccupant(mZoneRearRight)).isEqualTo(UserHandle.USER_NULL);
+        assertThat(mManager.getUserForOccupant(mZoneRearRight)).isEqualTo(driverUser);
     }
 
     @Test
     public void testManagerGetUserForOccupantAfterUserSwitch() {
         mService.init();
 
-        final int newUserId = 100;
+        final int newUserId = 200;
         doReturn(newUserId).when(mService).getCurrentUser();
         mService.mUserLifecycleListener.onEvent(new UserLifecycleEvent(
                 CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING, newUserId));
 
         assertThat(newUserId).isEqualTo(mManager.getUserForOccupant(mZoneDriverLHD));
         //TODO update this after secondary user handling
-        assertThat(mManager.getUserForOccupant(mZoneFrontPassengerLHD)).isEqualTo(
-                UserHandle.USER_NULL);
+        assertThat(mManager.getUserForOccupant(mZoneFrontPassengerLHD)).isEqualTo(newUserId);
         assertThat(mManager.getUserForOccupant(mZoneRearLeft)).isEqualTo(UserHandle.USER_NULL);
-        assertThat(mManager.getUserForOccupant(mZoneRearRight)).isEqualTo(UserHandle.USER_NULL);
+        assertThat(mManager.getUserForOccupant(mZoneRearRight)).isEqualTo(newUserId);
     }
 
     @Test
@@ -735,4 +898,27 @@
         assertThat(waitForConfigChangeEventAndAssertFlag(eventWaitTimeMs,
                 CarOccupantZoneManager.ZONE_CONFIG_CHANGE_FLAG_AUDIO)).isFalse();
     }
+
+    private static class ICarServiceHelperImpl extends ICarServiceHelper.Stub {
+        private List<Integer> mPassengerDisplayIds;
+
+        /** key: user id, value: display whitelistis */
+        private HashMap<Integer, List<Integer>> mWhitelists = new HashMap<>();
+
+        @Override
+        public int forceSuspend(int timeoutMs) {
+            return 0;
+        }
+
+        @Override
+        public void setDisplayWhitelistForUser(@UserIdInt int userId, int[] displayIds) {
+            mWhitelists.put(userId, Arrays.stream(displayIds).boxed().collect(Collectors.toList()));
+        }
+
+        @Override
+        public void setPassengerDisplays(int[] displayIdsForPassenger) {
+            mPassengerDisplayIds = Arrays.stream(displayIdsForPassenger).boxed().collect(
+                    Collectors.toList());
+        }
+    }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java b/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
index 0009b4a..ad241b5 100644
--- a/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/CarPowerManagementServiceTest.java
@@ -16,36 +16,30 @@
 
 package com.android.car;
 
-import static android.content.pm.UserInfo.FLAG_EPHEMERAL;
-import static android.os.UserHandle.USER_NULL;
-import static android.os.UserHandle.USER_SYSTEM;
-import static android.os.UserManager.USER_TYPE_FULL_GUEST;
+import static android.car.test.mocks.CarArgumentMatchers.isUserInfo;
+import static android.car.test.util.UserTestingHelper.newGuestUser;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
 
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.junit.Assert.fail;
+import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
-import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.notNull;
 import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.when;
 
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
-import android.annotation.Nullable;
 import android.app.ActivityManager;
 import android.car.hardware.power.CarPowerManager.CarPowerStateListener;
 import android.car.hardware.power.ICarPowerStateListener;
-import android.car.userlib.CarUserManagerHelper;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.car.test.util.Visitor;
 import android.car.userlib.HalCallback;
+import android.car.userlib.InitialUserSetter;
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
@@ -60,7 +54,6 @@
 import android.test.suitebuilder.annotation.SmallTest;
 import android.util.Log;
 
-import androidx.test.filters.FlakyTest;
 import androidx.test.platform.app.InstrumentationRegistry;
 
 import com.android.car.hal.PowerHalService;
@@ -75,36 +68,28 @@
 
 import org.junit.After;
 import org.junit.Before;
-import org.junit.Rule;
 import org.junit.Test;
-import org.junit.rules.TestRule;
-import org.junit.rules.TestWatcher;
-import org.junit.runner.Description;
 import org.mockito.Mock;
-import org.mockito.MockitoSession;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.quality.Strictness;
 
 import java.io.File;
 import java.io.IOException;
-import java.lang.annotation.Retention;
-import java.lang.annotation.Target;
-import java.lang.reflect.Method;
 import java.time.Duration;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Optional;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.Semaphore;
 import java.util.concurrent.TimeUnit;
 
 @SmallTest
-public class CarPowerManagementServiceTest {
+public class CarPowerManagementServiceTest extends AbstractExtendedMockitoTestCase {
     private static final String TAG = CarPowerManagementServiceTest.class.getSimpleName();
     private static final long WAIT_TIMEOUT_MS = 2000;
     private static final long WAIT_TIMEOUT_LONG_MS = 5000;
     private static final int NO_USER_INFO_FLAGS = 0;
-    private static final String NEW_GUEST_NAME = "NewestGuestInTheBlock";
+    private static final int WAKE_UP_DELAY = 100;
+
+    private static final int CURRENT_USER_ID = 42;
+    private static final int CURRENT_GUEST_ID = 108; // must be different than CURRENT_USER_ID;
+    private static final int NEW_GUEST_ID = 666;
 
     private final MockDisplayInterface mDisplayInterface = new MockDisplayInterface();
     private final MockSystemStateInterface mSystemStateInterface = new MockSystemStateInterface();
@@ -113,58 +98,29 @@
     private final PowerSignalListener mPowerSignalListener = new PowerSignalListener();
     private final Context mContext = InstrumentationRegistry.getInstrumentation().getContext();
 
-    private MockitoSession mSession;
-
     private MockedPowerHalService mPowerHal;
     private SystemInterface mSystemInterface;
     private CarPowerManagementService mService;
     private CompletableFuture<Void> mFuture;
 
     @Mock
-    private CarUserManagerHelper mCarUserManagerHelper;
-    @Mock
     private UserManager mUserManager;
     @Mock
     private Resources mResources;
     @Mock
     private CarUserService mUserService;
+    @Mock
+    private InitialUserSetter mInitialUserSetter;
 
-    // Wakeup time for the test; it's automatically set based on @WakeupTime annotation
-    private int mWakeupTime;
-
-    // Value used to set config_disableUserSwitchDuringResume - must be defined before initTest();
-    private boolean mDisableUserSwitchDuringResume;
-
-    // Tracks Log.wtf() calls made during code execution / used on verifyWtfNeverLogged()
-    // TODO: move mechanism to common code / custom Rule
-    private final List<UnsupportedOperationException> mWtfs = new ArrayList<>();
-
-    @Rule
-    public final TestRule setWakeupTimeRule = new TestWatcher() {
-        protected void starting(Description description) {
-            final String testName = description.getMethodName();
-            try {
-                Method testMethod = CarPowerManagementServiceTest.class.getMethod(testName);
-                WakeupTime wakeupAnnotation = testMethod.getAnnotation(WakeupTime.class);
-                if (wakeupAnnotation != null) {
-                    mWakeupTime = wakeupAnnotation.value();
-                    Log.d(TAG, "Using annotated wakeup time: " + mWakeupTime);
-                }
-            } catch (Exception e) {
-                Log.e(TAG, "Could not infer wakeupTime for " + testName, e);
-            }
-        }
-    };
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session
+            .spyStatic(ActivityManager.class)
+            .spyStatic(CarProperties.class);
+    }
 
     @Before
     public void setUp() throws Exception {
-        mSession = mockitoSession()
-                .strictness(Strictness.LENIENT)
-                .spyStatic(ActivityManager.class)
-                .spyStatic(CarProperties.class)
-                .spyStatic(Log.class)
-                .initMocks(this)
-                .startMocking();
         mPowerHal = new MockedPowerHalService(true /*isPowerStateSupported*/,
                 true /*isDeepSleepAllowed*/, true /*isTimedWakeupAllowed*/);
         mSystemInterface = SystemInterface.Builder.defaultSystemInterface(mContext)
@@ -172,12 +128,9 @@
             .withSystemStateInterface(mSystemStateInterface)
             .withWakeLockInterface(mWakeLockInterface)
             .withIOInterface(mIOInterface).build();
-        doAnswer((invocation) -> {
-            return addWtf(invocation);
-        }).when(() -> Log.wtf(anyString(), anyString()));
-        doAnswer((invocation) -> {
-            return addWtf(invocation);
-        }).when(() -> Log.wtf(anyString(), anyString(), notNull()));
+
+        setCurrentUser(CURRENT_USER_ID, /* isGuest= */ false);
+        setService();
     }
 
     @After
@@ -186,80 +139,42 @@
             mService.release();
         }
         mIOInterface.tearDown();
-        mSession.finishMocking();
-    }
-
-
-    private Object addWtf(InvocationOnMock invocation) {
-        String message = "Called " + invocation;
-        Log.d(TAG, message); // Log always, as some test expect it
-        mWtfs.add(new UnsupportedOperationException(message));
-        return null;
     }
 
     /**
      * Helper method to create mService and initialize a test case
      */
-    private void initTest() throws Exception {
+    private void setService() throws Exception {
         when(mResources.getInteger(R.integer.maxGarageModeRunningDurationInSecs))
                 .thenReturn(900);
-        when(mResources.getBoolean(R.bool.config_disableUserSwitchDuringResume))
-                .thenReturn(mDisableUserSwitchDuringResume);
-
-        Log.i(TAG, "initTest(): overridden overlay properties: "
+        Log.i(TAG, "setService(): overridden overlay properties: "
                 + "config_disableUserSwitchDuringResume="
                 + mResources.getBoolean(R.bool.config_disableUserSwitchDuringResume)
                 + ", maxGarageModeRunningDurationInSecs="
                 + mResources.getInteger(R.integer.maxGarageModeRunningDurationInSecs));
         mService = new CarPowerManagementService(mContext, mResources, mPowerHal,
-                mSystemInterface, mCarUserManagerHelper, mUserManager, mUserService,
-                NEW_GUEST_NAME);
+                mSystemInterface, mUserManager, mUserService, mInitialUserSetter);
         mService.init();
         mService.setShutdownTimersForTest(0, 0);
         mPowerHal.setSignalListener(mPowerSignalListener);
-        if (mWakeupTime > 0) {
-            registerListenerToService();
-            mService.scheduleNextWakeupTime(mWakeupTime);
-        }
+        mService.scheduleNextWakeupTime(WAKE_UP_DELAY);
         assertStateReceived(MockedPowerHalService.SET_WAIT_FOR_VHAL, 0);
     }
 
-    /**
-     * Same as {@link #initTest()}, but it also assumes the current and initial users are user 10.
-     */
-    private void initTestForUser10() throws Exception {
-        initTest();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(10);
-    }
-
-    @Test
-    public void testBootComplete() throws Exception {
-        initTest();
-
-        verifyWtfNeverLogged();
-    }
-
     @Test
     public void testDisplayOn() throws Exception {
         // start with display off
         mSystemInterface.setDisplayState(false);
         mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS);
-        initTestForUser10();
         // Transition to ON state
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.ON, 0));
 
         // display should be turned on as it started with off state.
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
-
-        verifyWtfNeverLogged();
     }
 
     @Test
     public void testShutdown() throws Exception {
-        initTestForUser10();
-
         // Transition to ON state
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.ON, 0));
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
@@ -274,14 +189,10 @@
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isFalse();
         mPowerSignalListener.waitForShutdown(WAIT_TIMEOUT_MS);
         mSystemStateInterface.waitForShutdown(WAIT_TIMEOUT_MS);
-
-        verifyWtfNeverLogged();
     }
 
     @Test
     public void testSuspend() throws Exception {
-        initTestForUser10();
-
         // Start in the ON state
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.ON, 0));
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
@@ -291,16 +202,11 @@
                         VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                         VehicleApPowerStateShutdownParam.CAN_SLEEP));
         // Verify suspend
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_DEEP_SLEEP_ENTRY, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
-
-        verifyWtfNeverLogged();
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY);
     }
 
     @Test
     public void testShutdownOnSuspend() throws Exception {
-        initTestForUser10();
-
         // Start in the ON state
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.ON, 0));
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
@@ -312,16 +218,14 @@
                         VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                         VehicleApPowerStateShutdownParam.CAN_SLEEP));
         // Verify shutdown
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_SHUTDOWN_START, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_SHUTDOWN_START);
         mPowerSignalListener.waitForShutdown(WAIT_TIMEOUT_MS);
         // Send the finished signal
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.FINISHED, 0));
         mSystemStateInterface.waitForShutdown(WAIT_TIMEOUT_MS);
         // Cancel the shutdown
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.CANCEL_SHUTDOWN, 0));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_SHUTDOWN_CANCELLED, WAIT_TIMEOUT_LONG_MS, 0);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_SHUTDOWN_CANCELLED);
 
         // Request suspend again
         mPowerHal.setCurrentPowerState(
@@ -329,15 +233,11 @@
                         VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                         VehicleApPowerStateShutdownParam.CAN_SLEEP));
         // Verify suspend
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_DEEP_SLEEP_ENTRY, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
-        verifyWtfNeverLogged();
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY);
     }
 
     @Test
     public void testShutdownCancel() throws Exception {
-        initTestForUser10();
-
         // Start in the ON state
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.ON, 0));
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
@@ -346,26 +246,20 @@
                 new PowerState(
                         VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                         VehicleApPowerStateShutdownParam.SHUTDOWN_IMMEDIATELY));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_SHUTDOWN_START, WAIT_TIMEOUT_LONG_MS, 0);
+        assertStateReceived(PowerHalService.SET_SHUTDOWN_START, 0);
         // Cancel the shutdown
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.CANCEL_SHUTDOWN, 0));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_SHUTDOWN_CANCELLED, WAIT_TIMEOUT_LONG_MS, 0);
+        assertStateReceived(PowerHalService.SET_SHUTDOWN_CANCELLED, 0);
         // Go to suspend
         mPowerHal.setCurrentPowerState(
                 new PowerState(
                         VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                         VehicleApPowerStateShutdownParam.CAN_SLEEP));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_DEEP_SLEEP_ENTRY, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
-        verifyWtfNeverLogged();
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY);
     }
 
     @Test
     public void testSleepImmediately() throws Exception {
-        initTestForUser10();
-
         // Transition to ON state
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.ON, 0));
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
@@ -380,39 +274,29 @@
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isFalse();
         mPowerSignalListener.waitForShutdown(WAIT_TIMEOUT_MS);
         mSystemStateInterface.waitForShutdown(WAIT_TIMEOUT_MS);
-        verifyWtfNeverLogged();
     }
 
     @Test
-    @WakeupTime(100)
-    @FlakyTest
     public void testShutdownWithProcessing() throws Exception {
-        initTestForUser10();
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE, 0));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_SHUTDOWN_START, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_SHUTDOWN_START);
         mPowerSignalListener.waitForShutdown(WAIT_TIMEOUT_MS);
         // Send the finished signal
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.FINISHED, 0));
         mSystemStateInterface.waitForShutdown(WAIT_TIMEOUT_MS);
-        verifyWtfNeverLogged();
     }
 
     @Test
-    @WakeupTime(100)
     public void testSleepEntryAndWakeup() throws Exception {
-        initTest();
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.CAN_SLEEP));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_DEEP_SLEEP_ENTRY, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY);
         mPowerSignalListener.waitForSleepEntry(WAIT_TIMEOUT_MS);
         // Send the finished signal from HAL to CPMS
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.FINISHED, 0));
         mSystemStateInterface.waitForSleepEntryAndWakeup(WAIT_TIMEOUT_MS);
         assertStateReceived(PowerHalService.SET_DEEP_SLEEP_EXIT, 0);
         mPowerSignalListener.waitForSleepExit(WAIT_TIMEOUT_MS);
-        verifyWtfNeverLogged();
     }
 
     /**
@@ -421,240 +305,52 @@
      */
     @Test
     public void testSleepEntryAndWakeUpForProcessing() throws Exception {
-        initTest();
+
         // Speed up the polling for power state transitions
         mService.setShutdownTimersForTest(10, 40);
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
 
         suspendAndResume();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
-    public void testUserSwitchingOnResume_differentUser() throws Exception {
-        initTest();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
-
+    public void testUserSwitchingOnResume_noHal() throws Exception {
         suspendAndResumeForUserSwitchingTests();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_sameUser() throws Exception {
-        initTest();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setInitialUser(10);
-        setCurrentUser(10);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserNotSwitched();
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_differentEphemeralUser() throws Exception {
-        initTest();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, FLAG_EPHEMERAL);
-        setCurrentUser(10);
-        setInitialUser(11);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_sameGuest() throws Exception {
-        initTest();
-        setUserInfo(10, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setInitialUser(10);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionOk(10);
-        expectNewGuestCreated(11);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserRemoved(10);
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_differentGuest() throws Exception {
-        initTest();
-        setUserInfo(11, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setInitialUser(11);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionOk(11);
-        expectNewGuestCreated(12);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserRemoved(11);
-        verifyUserSwitched(12);
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_guestCreationFailed() throws Exception {
-        initTest();
-        setUserInfo(10, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setInitialUser(10);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionOk(10);
-        expectNewGuestCreationFailed("ElGuesto");
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserNotSwitched();
-        verifyUserNotRemoved(10);
-        verifyWtfLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_differentPersistentGuest() throws Exception {
-        initTest();
-        setUserInfo(11, "ElGuesto", USER_TYPE_FULL_GUEST, NO_USER_INFO_FLAGS);
-        setInitialUser(11);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionOk(11);
-        expectNewGuestCreated(12);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserRemoved(11);
-        verifyUserSwitched(12);
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_preDeleteGuestFail() throws Exception {
-        initTest();
-        setUserInfo(10, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setInitialUser(10);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionFail(10);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserNotSwitched();
-        verifyNoGuestCreated();
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_systemUser() throws Exception {
-        initTest();
-        setInitialUser(USER_SYSTEM);
-        setCurrentUser(10);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserNotSwitched();
-        verifyWtfLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_noInitialInfo() throws Exception {
-        initTest();
-        setInitialUser(USER_NULL);
-        setCurrentUser(10);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserNotSwitched();
-        verifyWtfLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
     public void testUserSwitchingOnResume_disabledByOEM_nonGuest() throws Exception {
-        disableUserSwitchingDuringResume();
-        initTest();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
+        UserInfo currentUser = setCurrentUser(CURRENT_USER_ID, /* isGuest= */ false);
+        expectNewGuestCreated(CURRENT_USER_ID, currentUser);
 
-        suspendAndResumeForUserSwitchingTests();
+        suspendAndResumeForUserSwitchingTestsWhileDisabledByOem();
 
         verifyUserNotSwitched();
-        verifyNoGuestCreated();
-        verifyWtfNeverLogged();
     }
 
     @Test
-    public void testUserSwitchingOnResume_disabledByOEM_ephemeralGuest() throws Exception {
-        int existingGuestId = 10;
-        int newGuestId = 11;
-        disableUserSwitchingDuringResume();
-        initTest();
-        setUserInfo(existingGuestId, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setCurrentUser(existingGuestId);
-        expectGuestMarkedForDeletionOk(existingGuestId);
-        expectNewGuestCreated(newGuestId);
+    public void testUserSwitchingOnResume_disabledByOEM_guest() throws Exception {
+        setCurrentUser(CURRENT_GUEST_ID, /* isGuest= */ true);
+        UserInfo newGuest = newGuestUser(NEW_GUEST_ID, /* ephemeral= */ true);
+        expectNewGuestCreated(CURRENT_GUEST_ID, newGuest);
 
-        suspendAndResumeForUserSwitchingTests();
+        suspendAndResumeForUserSwitchingTestsWhileDisabledByOem();
 
-        verifyUserSwitched(newGuestId);
-        verifyWtfNeverLogged();
+        verifyUserSwitched(NEW_GUEST_ID);
     }
 
     @Test
-    public void testUserSwitchingOnResume_disabledByOEM_nonEphemeralGuest() throws Exception {
-        int existingGuestId = 10;
-        int newGuestId = 11;
-        disableUserSwitchingDuringResume();
-        initTest();
-        setUserInfo(existingGuestId, "ElGuesto", USER_TYPE_FULL_GUEST, /* flags= */ 0);
-        setCurrentUser(existingGuestId);
-        expectGuestMarkedForDeletionOk(existingGuestId);
-        expectNewGuestCreated(newGuestId);
+    public void testUserSwitchingOnResume_disabledByOEM_guestReplacementFails() throws Exception {
+        setCurrentUser(CURRENT_GUEST_ID, /* isGuest= */ true);
+        expectNewGuestCreated(CURRENT_GUEST_ID, /* newGuest= */ null);
 
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserSwitched(newGuestId);
-        verifyWtfNeverLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_disabledByOEM_newGuestCreationFailed() throws Exception {
-        disableUserSwitchingDuringResume();
-        initTest();
-        setUserInfo(10, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionOk(10);
-        expectNewGuestCreationFailed("ElGuesto");
-
-        suspendAndResumeForUserSwitchingTests();
+        suspendAndResumeForUserSwitchingTestsWhileDisabledByOem();
 
         verifyUserNotSwitched();
-        verifyWtfLogged();
-    }
-
-    @Test
-    public void testUserSwitchingOnResume_disabledByOEM_preDeleteGuestFail() throws Exception {
-        disableUserSwitchingDuringResume();
-        initTest();
-        setUserInfo(10, "ElGuesto", USER_TYPE_FULL_GUEST, FLAG_EPHEMERAL);
-        setCurrentUser(10);
-        expectGuestMarkedForDeletionFail(10);
-
-        suspendAndResumeForUserSwitchingTests();
-
-        verifyUserNotSwitched();
-        verifyNoGuestCreated();
-        verifyWtfNeverLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
@@ -687,90 +383,80 @@
      * same, it should use the default behavior.
      */
     private void userSwitchingWhenHalFailsTest(int status) throws Exception {
-        initTest();
         enableUserHal();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
+
         setGetUserInfoResponse((c) -> c.onResponse(status, /* response= */ null));
 
         suspendAndResumeForUserSwitchingTests();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
     public void testUserSwitchingUsingHal_invalidAction() throws Exception {
-        initTest();
         enableUserHal();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
+
         InitialUserInfoResponse response = new InitialUserInfoResponse();
         response.action = -666;
         setGetUserInfoResponse((c) -> c.onResponse(HalCallback.STATUS_OK, response));
 
         suspendAndResumeForUserSwitchingTests();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
     public void testUserSwitchingUsingHal_default_nullResponse() throws Exception {
-        initTest();
         enableUserHal();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
+
         setGetUserInfoResponse((c) -> c.onResponse(HalCallback.STATUS_OK, /* response= */ null));
         suspendAndResumeForUserSwitchingTests();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
     public void testUserSwitchingUsingHal_default_ok() throws Exception {
-        initTest();
         enableUserHal();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
+
         InitialUserInfoResponse response = new InitialUserInfoResponse();
         response.action = InitialUserInfoResponseAction.DEFAULT;
         setGetUserInfoResponse((c) -> c.onResponse(HalCallback.STATUS_OK, response));
 
         suspendAndResumeForUserSwitchingTests();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
+        verifyDefaultInitialUserBehaviorCalled();
     }
 
     @Test
-    public void testUserSwitchingUsingHal_switch_ok() throws Exception {
-        initTest();
+    public void testUserSwitchingUsingHal_switch() throws Exception {
         enableUserHal();
-        setUserInfo(10, NO_USER_INFO_FLAGS);
-        setUserInfo(11, NO_USER_INFO_FLAGS);
-        setCurrentUser(10);
-        setInitialUser(11);
+
         InitialUserInfoResponse response = new InitialUserInfoResponse();
         response.action = InitialUserInfoResponseAction.SWITCH;
+        response.userToSwitchOrCreate.userId = 10;
         setGetUserInfoResponse((c) -> c.onResponse(HalCallback.STATUS_OK, response));
 
         suspendAndResumeForUserSwitchingTests();
 
-        verifyUserSwitched(11);
-        verifyWtfNeverLogged();
+        verifyUserSwitched(10);
+        verifyDefaultInitilUserBehaviorNeverCalled();
+    }
 
-        // Make sure HAL was called, otherwise test could pass when the property was not set
-        verify(mUserService).getInitialUserInfo(eq(InitialUserInfoRequestType.RESUME), notNull());
+    @Test
+    public void testUserSwitchingUsingHal_create() throws Exception {
+        enableUserHal();
+
+        InitialUserInfoResponse response = new InitialUserInfoResponse();
+        response.action = InitialUserInfoResponseAction.CREATE;
+        response.userToSwitchOrCreate.flags = 42;
+        response.userNameToCreate = "Duffman";
+        setGetUserInfoResponse((c) -> c.onResponse(HalCallback.STATUS_OK, response));
+
+        suspendAndResumeForUserSwitchingTests();
+
+        verifyUserCreated("Duffman", 42);
+        verifyDefaultInitilUserBehaviorNeverCalled();
     }
 
     private void setGetUserInfoResponse(Visitor<HalCallback<InitialUserInfoResponse>> visitor) {
@@ -791,8 +477,7 @@
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.CAN_SLEEP));
         assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isFalse();
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_DEEP_SLEEP_ENTRY, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY);
         mPowerSignalListener.waitForSleepEntry(WAIT_TIMEOUT_MS);
 
         // Send the finished signal
@@ -802,7 +487,7 @@
         mSystemStateInterface.waitForSleepEntryAndWakeup(WAIT_TIMEOUT_MS);
         assertStateReceived(PowerHalService.SET_DEEP_SLEEP_EXIT, 0);
         mPowerSignalListener.waitForSleepExit(WAIT_TIMEOUT_MS);
-        mService.scheduleNextWakeupTime(mWakeupTime);
+        mService.scheduleNextWakeupTime(WAKE_UP_DELAY);
         // second processing after wakeup
         assertThat(mDisplayInterface.getDisplayState()).isFalse();
 
@@ -814,8 +499,7 @@
         CarServiceUtils.runOnLooperSync(mService.getHandlerThread().getLooper(), () -> { });
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
                 VehicleApPowerStateShutdownParam.CAN_SLEEP));
-        assertStateReceivedForShutdownOrSleepWithPostpone(
-                PowerHalService.SET_DEEP_SLEEP_ENTRY, WAIT_TIMEOUT_LONG_MS, mWakeupTime);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY);
         mPowerSignalListener.waitForSleepEntry(WAIT_TIMEOUT_MS);
         mPowerHal.setCurrentPowerState(new PowerState(VehicleApPowerStateReq.FINISHED, 0));
         // PM will shutdown system as it was not woken-up due timer and it is not power on.
@@ -827,7 +511,11 @@
     }
 
     private void suspendAndResumeForUserSwitchingTests() throws Exception {
-        mService.switchUserOnResumeIfNecessary(!mDisableUserSwitchDuringResume);
+        mService.switchUserOnResumeIfNecessary(/* allowSwitching= */ true);
+    }
+
+    private void suspendAndResumeForUserSwitchingTestsWhileDisabledByOem() throws Exception {
+        mService.switchUserOnResumeIfNecessary(/* allowSwitching= */ false);
     }
 
     private void registerListenerToService() {
@@ -856,44 +544,26 @@
         assertThat(state[1]).isEqualTo(expectedParam);
     }
 
-    private void assertStateReceivedForShutdownOrSleepWithPostpone(
-            int lastState, long timeoutMs, int expectedParamForShutdownOrSuspend) throws Exception {
+    private void assertStateReceivedForShutdownOrSleepWithPostpone(int lastState) throws Exception {
         while (true) {
             if (mFuture != null && !mFuture.isDone()) {
                 mFuture.complete(null);
             }
-            int[] state = mPowerHal.waitForSend(timeoutMs);
+            int[] state = mPowerHal.waitForSend(WAIT_TIMEOUT_LONG_MS);
             if (state[0] == PowerHalService.SET_SHUTDOWN_POSTPONE) {
                 continue;
             }
             if (state[0] == lastState) {
-                assertThat(state[1]).isEqualTo(expectedParamForShutdownOrSuspend);
+                int expectedSecondParameter =
+                        (lastState == MockedPowerHalService.SET_DEEP_SLEEP_ENTRY
+                        || lastState == MockedPowerHalService.SET_SHUTDOWN_START)
+                                ? WAKE_UP_DELAY : 0;
+                assertThat(state[1]).isEqualTo(expectedSecondParameter);
                 return;
             }
         }
     }
 
-    // TODO: should be part of @After, but then it would hide the real test failure (if any). We'd
-    // need a custom rule (like CTS's SafeCleaner) for it...
-    private void verifyWtfNeverLogged() {
-        int size = mWtfs.size();
-
-        switch (size) {
-            case 0:
-                return;
-            case 1:
-                throw mWtfs.get(0);
-            default:
-                StringBuilder msg = new StringBuilder("wtf called ").append(size).append(" times")
-                        .append(": ").append(mWtfs);
-                fail(msg.toString());
-        }
-    }
-
-    private void verifyWtfLogged() {
-        assertThat(mWtfs).isNotEmpty();
-    }
-
     private static void waitForSemaphore(Semaphore semaphore, long timeoutMs)
             throws InterruptedException {
         if (!semaphore.tryAcquire(timeoutMs, TimeUnit.MILLISECONDS)) {
@@ -901,72 +571,43 @@
         }
     }
 
-    private void setInitialUser(int userId) {
-        when(mCarUserManagerHelper.getInitialUser()).thenReturn(userId);
-    }
-
-    private void setCurrentUser(int userId) {
-        doReturn(userId).when(() -> ActivityManager.getCurrentUser());
-    }
-
-    private void setUserInfo(int userId, int flags) {
-        setUserInfo(userId, /* name= */ null, /* userType= */ null, flags);
-    }
-
-    private void setUserInfo(int userId, @Nullable String name, @Nullable String userType,
-            int flags) {
+    private UserInfo setCurrentUser(int userId, boolean isGuest) {
+        mockGetCurrentUser(userId);
         final UserInfo userInfo = new UserInfo();
         userInfo.id = userId;
-        userInfo.name = name;
-        userInfo.flags = flags;
-        if (userType != null) {
-            userInfo.userType = userType;
-        }
+        userInfo.userType = isGuest
+                ? UserManager.USER_TYPE_FULL_GUEST
+                : UserManager.USER_TYPE_FULL_SECONDARY;
         Log.v(TAG, "UM.getUserInfo("  + userId + ") will return " + userInfo.toFullString());
         when(mUserManager.getUserInfo(userId)).thenReturn(userInfo);
+        return userInfo;
     }
 
     private void verifyUserNotSwitched() {
-        verify(mCarUserManagerHelper, never()).startForegroundUser(anyInt());
+        verify(mInitialUserSetter, never()).switchUser(anyInt(), anyBoolean());
     }
 
     private void verifyUserSwitched(int userId) {
-        verify(mCarUserManagerHelper, times(1)).startForegroundUser(userId);
+        // TODO(b/153679319): pass proper value for replaceGuest
+        verify(mInitialUserSetter).switchUser(userId, true);
     }
 
-    private void verifyNoGuestCreated() {
-        verify(mUserManager, never()).createGuest(notNull(), anyString());
+    private void expectNewGuestCreated(int existingGuestId, UserInfo newGuest) {
+        when(mInitialUserSetter.replaceGuestIfNeeded(isUserInfo(existingGuestId)))
+                .thenReturn(newGuest);
     }
 
-    private void expectGuestMarkedForDeletionOk(int userId) {
-        when(mUserManager.markGuestForDeletion(userId)).thenReturn(true);
+    private void verifyDefaultInitialUserBehaviorCalled() {
+        // TODO(b/153679319): pass proper value for replaceGuest
+        verify(mInitialUserSetter).executeDefaultBehavior(true);
     }
 
-    private void expectGuestMarkedForDeletionFail(int userId) {
-        when(mUserManager.markGuestForDeletion(userId)).thenReturn(false);
+    private void verifyDefaultInitilUserBehaviorNeverCalled() {
+        verify(mInitialUserSetter, never()).executeDefaultBehavior(anyBoolean());
     }
 
-    private void expectNewGuestCreated(int userId) {
-        final UserInfo userInfo = new UserInfo();
-        userInfo.id = userId;
-        userInfo.name = NEW_GUEST_NAME;
-        when(mUserManager.createGuest(notNull(), eq(NEW_GUEST_NAME))).thenReturn(userInfo);
-    }
-
-    private void expectNewGuestCreationFailed(String name) {
-        when(mUserManager.createGuest(notNull(), eq(name))).thenReturn(null);
-    }
-
-    private void verifyUserRemoved(int userId) {
-        verify(mUserManager, times(1)).removeUser(userId);
-    }
-
-    private void verifyUserNotRemoved(int userId) {
-        verify(mUserManager, never()).removeUser(userId);
-    }
-
-    private void disableUserSwitchingDuringResume() {
-        mDisableUserSwitchDuringResume = true;
+    private void verifyUserCreated(String name, int halFlags) {
+        verify(mInitialUserSetter).createUser(name, halFlags);
     }
 
     private static final class MockDisplayInterface implements DisplayInterface {
@@ -1122,15 +763,4 @@
             }
         }
     }
-
-    @Retention(RUNTIME)
-    @Target({METHOD})
-    private @interface WakeupTime {
-        int value();
-    }
-
-    // TODO(b/149099817): move to common code
-    private interface Visitor<T> {
-        void visit(T t);
-    }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/CarProjectionServiceTest.java b/tests/carservice_unit_test/src/com/android/car/CarProjectionServiceTest.java
index 0224b40..3a2ad2e 100644
--- a/tests/carservice_unit_test/src/com/android/car/CarProjectionServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/CarProjectionServiceTest.java
@@ -51,7 +51,6 @@
 import android.os.RemoteException;
 
 import androidx.test.core.app.ApplicationProvider;
-import androidx.test.filters.FlakyTest;
 
 import org.junit.Before;
 import org.junit.Test;
@@ -246,7 +245,6 @@
     }
 
     @Test
-    @FlakyTest
     public void getWifiChannels() {
         List<Integer> expectedWifiChannels = Arrays.asList(2400, 5600);
         when(mWifiScanner.getAvailableChannels(anyInt())).thenReturn(expectedWifiChannels);
diff --git a/tests/carservice_unit_test/src/com/android/car/SystemActivityMonitoringServiceTest.java b/tests/carservice_unit_test/src/com/android/car/SystemActivityMonitoringServiceTest.java
new file mode 100644
index 0000000..66a522e
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/SystemActivityMonitoringServiceTest.java
@@ -0,0 +1,251 @@
+/*
+ * 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.car;
+
+import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
+
+import static org.junit.Assert.assertTrue;
+
+import android.annotation.NonNull;
+import android.app.Activity;
+import android.app.ActivityOptions;
+import android.app.Instrumentation.ActivityMonitor;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.VirtualDisplay;
+import android.os.SystemClock;
+import android.util.Log;
+import android.view.Display;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+import androidx.test.filters.MediumTest;
+
+import com.android.car.SystemActivityMonitoringService.TopTaskInfoContainer;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+import java.util.function.BooleanSupplier;
+
+@RunWith(AndroidJUnit4.class)
+@MediumTest
+public class SystemActivityMonitoringServiceTest {
+    private static final String TAG = "SystemActivityMonitoringServiceTest";
+
+    private static final long ACTIVITY_TIMEOUT_MS = 5000;
+    private static final long DEFAULT_TIMEOUT_MS = 10_000;
+    private static final int SLEEP_MS = 50;
+
+    private SystemActivityMonitoringService mService;
+
+    @Before
+    public void setUp() throws Exception {
+        mService = new SystemActivityMonitoringService(getContext());
+        mService.init();
+    }
+
+    @After
+    public void tearDown() {
+        mService.registerActivityLaunchListener(null);
+        mService.release();
+        mService = null;
+    }
+
+    @Test
+    public void testActivityLaunch() throws Exception {
+        ComponentName activityA = toComponentName(getTestContext(), ActivityA.class);
+        FilteredLaunchListener listenerA = new FilteredLaunchListener(activityA);
+        mService.registerActivityLaunchListener(listenerA);
+        startActivity(activityA);
+        listenerA.assertTopTaskActivityLaunched();
+
+        ComponentName activityB = toComponentName(getTestContext(), ActivityB.class);
+        FilteredLaunchListener listenerB = new FilteredLaunchListener(activityB);
+        mService.registerActivityLaunchListener(listenerB);
+        startActivity(activityB);
+        listenerB.assertTopTaskActivityLaunched();
+    }
+
+    @Test
+    public void testActivityBlocking() throws Exception {
+        ComponentName blackListedActivity = toComponentName(getTestContext(), ActivityC.class);
+        ComponentName blockingActivity = toComponentName(getTestContext(), BlockingActivity.class);
+        Intent blockingIntent = new Intent();
+        blockingIntent.setComponent(blockingActivity);
+
+        // start a black listed activity
+        FilteredLaunchListener listenerBlackListed =
+                new FilteredLaunchListener(blackListedActivity);
+        mService.registerActivityLaunchListener(listenerBlackListed);
+        startActivity(blackListedActivity);
+        listenerBlackListed.assertTopTaskActivityLaunched();
+
+        // Instead of start activity, invoke blockActivity.
+        FilteredLaunchListener listenerBlocking = new FilteredLaunchListener(blockingActivity);
+        mService.registerActivityLaunchListener(listenerBlocking);
+        mService.blockActivity(listenerBlackListed.mTopTask, blockingIntent);
+        listenerBlocking.assertTopTaskActivityLaunched();
+    }
+
+    @Test
+    public void testRemovesFromTopTasks() throws Exception {
+        ComponentName activityA = toComponentName(getTestContext(), ActivityA.class);
+        FilteredLaunchListener listenerA = new FilteredLaunchListener(activityA);
+        mService.registerActivityLaunchListener(listenerA);
+        Activity launchedActivity = startActivity(activityA);
+        listenerA.assertTopTaskActivityLaunched();
+        assertTrue(topTasksHasComponent(activityA));
+
+        getInstrumentation().runOnMainSync(launchedActivity::finish);
+        waitUntil(() -> !topTasksHasComponent(activityA));
+    }
+
+    @Test
+    public void testGetTopTasksOnMultiDisplay() throws Exception {
+        String virtualDisplayName = "virtual_display";
+        DisplayManager displayManager = getContext().getSystemService(DisplayManager.class);
+        VirtualDisplay virtualDisplay = displayManager.createVirtualDisplay(
+                virtualDisplayName, 10, 10, 10, null, 0);
+
+        ComponentName activityA = toComponentName(getTestContext(), ActivityA.class);
+        FilteredLaunchListener listenerA = new FilteredLaunchListener(activityA);
+        mService.registerActivityLaunchListener(listenerA);
+        startActivity(activityA, Display.DEFAULT_DISPLAY);
+        listenerA.assertTopTaskActivityLaunched();
+        assertTrue(topTasksHasComponent(activityA));
+
+        ComponentName activityB = toComponentName(getTestContext(), ActivityB.class);
+        FilteredLaunchListener listenerB = new FilteredLaunchListener(activityB);
+        mService.registerActivityLaunchListener(listenerB);
+        startActivity(activityB, virtualDisplay.getDisplay().getDisplayId());
+        listenerB.assertTopTaskActivityLaunched();
+        assertTrue(topTasksHasComponent(activityB));
+
+        virtualDisplay.release();
+    }
+
+    private void waitUntil(BooleanSupplier condition) {
+        for (long i = DEFAULT_TIMEOUT_MS / SLEEP_MS; !condition.getAsBoolean() && i > 0; --i) {
+            SystemClock.sleep(SLEEP_MS);
+        }
+        if (!condition.getAsBoolean()) {
+            throw new RuntimeException("failed while waiting for condition to become true");
+        }
+    }
+
+    private boolean topTasksHasComponent(ComponentName component) {
+        for (TopTaskInfoContainer topTaskInfoContainer : mService.getTopTasks()) {
+            if (topTaskInfoContainer.topActivity.equals(component)) {
+                return true;
+            }
+        }
+        return false;
+    }
+
+    /** Activity that closes itself after some timeout to clean up the screen. */
+    public static class TempActivity extends Activity {
+        @Override
+        protected void onResume() {
+            super.onResume();
+            getMainThreadHandler().postDelayed(this::finish, ACTIVITY_TIMEOUT_MS);
+        }
+    }
+
+    public static class ActivityA extends TempActivity {}
+
+    public static class ActivityB extends TempActivity {}
+
+    public static class ActivityC extends TempActivity {}
+
+    public static class BlockingActivity extends TempActivity {}
+
+    private Context getContext() {
+        return getInstrumentation().getTargetContext();
+    }
+
+    private Context getTestContext() {
+        return getInstrumentation().getContext();
+    }
+
+    private static ComponentName toComponentName(Context ctx, Class<?> cls) {
+        return ComponentName.createRelative(ctx, cls.getName());
+    }
+
+    private Activity startActivity(ComponentName name) {
+        return startActivity(name, Display.DEFAULT_DISPLAY);
+    }
+
+    private Activity startActivity(ComponentName name, int displayId) {
+        ActivityMonitor monitor = new ActivityMonitor(name.getClassName(), null, false);
+        getInstrumentation().addMonitor(monitor);
+
+        Intent intent = new Intent();
+        intent.setComponent(name);
+        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+
+        ActivityOptions options = ActivityOptions.makeBasic();
+        options.setLaunchDisplayId(displayId);
+
+        getContext().startActivity(intent, options.toBundle());
+        return monitor.waitForActivityWithTimeout(ACTIVITY_TIMEOUT_MS);
+    }
+
+    private class FilteredLaunchListener
+            implements SystemActivityMonitoringService.ActivityLaunchListener {
+
+        private final ComponentName mDesiredComponent;
+        private final CountDownLatch mActivityLaunched = new CountDownLatch(1);
+        private TopTaskInfoContainer mTopTask;
+
+        /**
+         * Creates an instance of an
+         * {@link com.android.car.SystemActivityMonitoringService.ActivityLaunchListener}
+         * that filters based on the component name or does not filter if component name is null.
+         */
+        FilteredLaunchListener(@NonNull ComponentName desiredComponent) {
+            mDesiredComponent = desiredComponent;
+        }
+
+        @Override
+        public void onActivityLaunch(TopTaskInfoContainer topTask) {
+            // Ignore activities outside of this test case
+            if (!getTestContext().getPackageName().equals(topTask.topActivity.getPackageName())) {
+                Log.d(TAG, "Component launched from other package: "
+                        + topTask.topActivity.getClassName());
+                return;
+            }
+            if (!topTask.topActivity.equals(mDesiredComponent)) {
+                Log.d(TAG, String.format("Unexpected component: %s. Expected: %s",
+                        topTask.topActivity.getClassName(), mDesiredComponent));
+                return;
+            }
+            if (mTopTask == null) {  // We are interested in the first one only.
+                mTopTask = topTask;
+            }
+            mActivityLaunched.countDown();
+        }
+
+        void assertTopTaskActivityLaunched() throws InterruptedException {
+            assertTrue(mActivityLaunched.await(DEFAULT_TIMEOUT_MS, TimeUnit.MILLISECONDS));
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/AudioControlWrapperTest.java b/tests/carservice_unit_test/src/com/android/car/audio/AudioControlWrapperTest.java
deleted file mode 100644
index b54f002..0000000
--- a/tests/carservice_unit_test/src/com/android/car/audio/AudioControlWrapperTest.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright (C) 2020 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.car.audio;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.ArgumentMatchers.anyFloat;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-import static org.testng.Assert.assertThrows;
-
-import androidx.test.ext.junit.runners.AndroidJUnit4;
-
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnit;
-import org.mockito.junit.MockitoRule;
-
-@RunWith(AndroidJUnit4.class)
-public class AudioControlWrapperTest {
-    private static final float FADE_VALUE = 5;
-    private static final float BALANCE_VALUE = 6;
-    private static final int CONTEXT_NUMBER = 3;
-
-    @Rule
-    public MockitoRule rule = MockitoJUnit.rule();
-
-    @Mock
-    android.hardware.automotive.audiocontrol.V1_0.IAudioControl mAudioControlV1;
-    @Mock
-    android.hardware.automotive.audiocontrol.V2_0.IAudioControl mAudioControlV2;
-
-    @Test
-    public void constructor_throwsIfBothVersionsAreNull() throws Exception {
-        assertThrows(IllegalStateException.class, () -> new AudioControlWrapper(null, null));
-    }
-
-    @Test
-    public void constructor_succeedsWithOneVersion() throws Exception {
-        new AudioControlWrapper(null, mAudioControlV2);
-    }
-
-    @Test
-    public void setFadeTowardFront_withBothVersions_defaultsToV2() throws Exception {
-        AudioControlWrapper audioControlWrapper = new AudioControlWrapper(mAudioControlV1,
-                mAudioControlV2);
-        audioControlWrapper.setFadeTowardFront(FADE_VALUE);
-
-        verify(mAudioControlV2).setFadeTowardFront(FADE_VALUE);
-        verify(mAudioControlV1, never()).setFadeTowardFront(anyFloat());
-    }
-
-    @Test
-    public void setFadeTowardFront_withJustV1_succeeds() throws Exception {
-        AudioControlWrapper audioControlWrapper = new AudioControlWrapper(mAudioControlV1, null);
-        audioControlWrapper.setFadeTowardFront(FADE_VALUE);
-
-        verify(mAudioControlV1).setFadeTowardFront(FADE_VALUE);
-    }
-
-    @Test
-    public void setBalanceTowardRight_withBothVersions_defaultsToV2() throws Exception {
-        AudioControlWrapper audioControlWrapper = new AudioControlWrapper(mAudioControlV1,
-                mAudioControlV2);
-        audioControlWrapper.setBalanceTowardRight(BALANCE_VALUE);
-
-        verify(mAudioControlV2).setBalanceTowardRight(BALANCE_VALUE);
-        verify(mAudioControlV1, never()).setBalanceTowardRight(anyFloat());
-    }
-
-    @Test
-    public void setBalanceTowardRight_withJustV1_succeeds() throws Exception {
-        AudioControlWrapper audioControlWrapper = new AudioControlWrapper(mAudioControlV1, null);
-        audioControlWrapper.setBalanceTowardRight(BALANCE_VALUE);
-
-        verify(mAudioControlV1).setBalanceTowardRight(BALANCE_VALUE);
-    }
-
-    @Test
-    public void getBusForContext_withV2Present_throws() {
-        AudioControlWrapper audioControlWrapper = new AudioControlWrapper(mAudioControlV1,
-                mAudioControlV2);
-        assertThrows(IllegalStateException.class,
-                () -> audioControlWrapper.getBusForContext(CONTEXT_NUMBER));
-    }
-
-    @Test
-    public void getBusForContext_withJustV1_returnsBusNumber() throws Exception {
-        AudioControlWrapper audioControlWrapper = new AudioControlWrapper(mAudioControlV1, null);
-        int busNumber = 1;
-        when(mAudioControlV1.getBusForContext(CONTEXT_NUMBER)).thenReturn(busNumber);
-
-        int actualBus = audioControlWrapper.getBusForContext(CONTEXT_NUMBER);
-        assertThat(actualBus).isEqualTo(busNumber);
-    }
-}
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/CarAudioFocusUnitTest.java b/tests/carservice_unit_test/src/com/android/car/audio/CarAudioFocusUnitTest.java
index a00305f..1d82004 100644
--- a/tests/carservice_unit_test/src/com/android/car/audio/CarAudioFocusUnitTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/audio/CarAudioFocusUnitTest.java
@@ -20,16 +20,20 @@
 import static android.media.AudioAttributes.USAGE_ASSISTANT;
 import static android.media.AudioAttributes.USAGE_EMERGENCY;
 import static android.media.AudioAttributes.USAGE_MEDIA;
+import static android.media.AudioAttributes.USAGE_NOTIFICATION_RINGTONE;
 import static android.media.AudioAttributes.USAGE_VEHICLE_STATUS;
 import static android.media.AudioAttributes.USAGE_VOICE_COMMUNICATION;
 import static android.media.AudioManager.AUDIOFOCUS_GAIN;
 import static android.media.AudioManager.AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK;
 import static android.media.AudioManager.AUDIOFOCUS_LOSS;
+import static android.media.AudioManager.AUDIOFOCUS_LOSS_TRANSIENT;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_DELAYED;
 import static android.media.AudioManager.AUDIOFOCUS_REQUEST_FAILED;
 import static android.media.AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
 
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 
@@ -56,6 +60,7 @@
     private static final int CLIENT_UID = 1;
     private static final String FIRST_CLIENT_ID = "first-client-id";
     private static final String SECOND_CLIENT_ID = "second-client-id";
+    private static final String THIRD_CLIENT_ID = "third-client-id";
     private static final String PACKAGE_NAME = "com.android.car.audio";
     private static final int AUDIOFOCUS_FLAG = 0;
 
@@ -67,31 +72,35 @@
     private PackageManager mMockPackageManager;
     @Mock
     private AudioPolicy mAudioPolicy;
+    @Mock
+    private CarAudioSettings mCarAudioSettings;
 
-    private CarAudioFocus mCarAudioFocus;
+    private FocusInteraction mFocusInteraction;
+
 
     @Before
     public void setUp() {
-        mCarAudioFocus = new CarAudioFocus(mMockAudioManager, mMockPackageManager);
-        mCarAudioFocus.setOwningPolicy(mAudioPolicy);
+        mFocusInteraction = new FocusInteraction(mCarAudioSettings);
     }
 
     @Test
     public void onAudioFocusRequest_withNoCurrentFocusHolder_requestGranted() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
         AudioFocusInfo audioFocusInfo = getInfoForFirstClientWithMedia();
-        mCarAudioFocus.onAudioFocusRequest(audioFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(audioFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(audioFocusInfo,
+        verify(mMockAudioManager).setFocusRequestResult(audioFocusInfo,
                 AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_withSameClientIdSameUsage_requestGranted() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
         AudioFocusInfo audioFocusInfo = getInfoForFirstClientWithMedia();
-        mCarAudioFocus.onAudioFocusRequest(audioFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(audioFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
         AudioFocusInfo sameClientAndUsageFocusInfo = getInfoForFirstClientWithMedia();
-        mCarAudioFocus.onAudioFocusRequest(sameClientAndUsageFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(sameClientAndUsageFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
         verify(mMockAudioManager, times(2)).setFocusRequestResult(sameClientAndUsageFocusInfo,
                 AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
@@ -99,44 +108,48 @@
 
     @Test
     public void onAudioFocusRequest_withSameClientIdDifferentUsage_requestFailed() {
-        requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo sameClientFocusInfo = getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE,
-                FIRST_CLIENT_ID, AUDIOFOCUS_GAIN);
-        mCarAudioFocus.onAudioFocusRequest(sameClientFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+                FIRST_CLIENT_ID, AUDIOFOCUS_GAIN, false);
+        carAudioFocus.onAudioFocusRequest(sameClientFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(sameClientFocusInfo,
+        verify(mMockAudioManager).setFocusRequestResult(sameClientFocusInfo,
                 AUDIOFOCUS_REQUEST_FAILED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_concurrentRequest_requestGranted() {
-        requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo concurrentFocusInfo = getConcurrentInfo(AUDIOFOCUS_GAIN);
-        mCarAudioFocus.onAudioFocusRequest(concurrentFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(concurrentFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(concurrentFocusInfo,
+        verify(mMockAudioManager).setFocusRequestResult(concurrentFocusInfo,
                 AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_concurrentRequestWithoutDucking_holderLosesFocus() {
-        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo concurrentFocusInfo = getConcurrentInfo(AUDIOFOCUS_GAIN);
-        mCarAudioFocus.onAudioFocusRequest(concurrentFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(concurrentFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).dispatchAudioFocusChange(initialFocusInfo,
+        verify(mMockAudioManager).dispatchAudioFocusChange(initialFocusInfo,
                 AudioManager.AUDIOFOCUS_LOSS, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_concurrentRequestMayDuck_holderRetainsFocus() {
-        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo concurrentFocusInfo = getConcurrentInfo(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
-        mCarAudioFocus.onAudioFocusRequest(concurrentFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(concurrentFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
         verify(mMockAudioManager, times(0)).dispatchAudioFocusChange(eq(initialFocusInfo),
                 anyInt(), eq(mAudioPolicy));
@@ -144,54 +157,60 @@
 
     @Test
     public void onAudioFocusRequest_exclusiveRequest_requestGranted() {
-        requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo exclusiveRequestInfo = getExclusiveInfo(AUDIOFOCUS_GAIN);
-        mCarAudioFocus.onAudioFocusRequest(exclusiveRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(exclusiveRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(exclusiveRequestInfo,
+        verify(mMockAudioManager).setFocusRequestResult(exclusiveRequestInfo,
                 AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_exclusiveRequest_holderLosesFocus() {
-        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo exclusiveRequestInfo = getExclusiveInfo(AUDIOFOCUS_GAIN);
-        mCarAudioFocus.onAudioFocusRequest(exclusiveRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(exclusiveRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).dispatchAudioFocusChange(initialFocusInfo,
+        verify(mMockAudioManager).dispatchAudioFocusChange(initialFocusInfo,
                 AudioManager.AUDIOFOCUS_LOSS, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocusRequest_exclusiveRequestMayDuck_holderLosesFocusTransiently() {
-        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo exclusiveRequestInfo = getExclusiveInfo(AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
-        mCarAudioFocus.onAudioFocusRequest(exclusiveRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(exclusiveRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).dispatchAudioFocusChange(initialFocusInfo,
+        verify(mMockAudioManager).dispatchAudioFocusChange(initialFocusInfo,
                 AudioManager.AUDIOFOCUS_LOSS_TRANSIENT, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocus_rejectRequest_requestFailed() {
-        requestFocusForUsageWithFirstClient(USAGE_ASSISTANT);
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForUsageWithFirstClient(USAGE_ASSISTANT, carAudioFocus);
 
         AudioFocusInfo rejectRequestInfo = getRejectInfo();
-        mCarAudioFocus.onAudioFocusRequest(rejectRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(rejectRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(rejectRequestInfo,
+        verify(mMockAudioManager).setFocusRequestResult(rejectRequestInfo,
                 AUDIOFOCUS_REQUEST_FAILED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocus_rejectRequest_holderRetainsFocus() {
-        AudioFocusInfo initialFocusInfo = requestFocusForUsageWithFirstClient(USAGE_ASSISTANT);
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForUsageWithFirstClient(USAGE_ASSISTANT,
+                carAudioFocus);
 
         AudioFocusInfo rejectRequestInfo = getRejectInfo();
-        mCarAudioFocus.onAudioFocusRequest(rejectRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(rejectRequestInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
         verify(mMockAudioManager, times(0)).dispatchAudioFocusChange(eq(initialFocusInfo),
                 anyInt(), eq(mAudioPolicy));
@@ -201,43 +220,47 @@
 
     @Test
     public void onAudioFocus_exclusiveWithSystemUsage_requestGranted() {
-        requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo exclusiveSystemUsageInfo = getExclusiveWithSystemUsageInfo();
-        mCarAudioFocus.onAudioFocusRequest(exclusiveSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(exclusiveSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(exclusiveSystemUsageInfo,
+        verify(mMockAudioManager).setFocusRequestResult(exclusiveSystemUsageInfo,
                 AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocus_exclusiveWithSystemUsage_holderLosesFocus() {
-        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo exclusiveSystemUsageInfo = getExclusiveWithSystemUsageInfo();
-        mCarAudioFocus.onAudioFocusRequest(exclusiveSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(exclusiveSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).dispatchAudioFocusChange(initialFocusInfo,
+        verify(mMockAudioManager).dispatchAudioFocusChange(initialFocusInfo,
                 AUDIOFOCUS_LOSS, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocus_concurrentWithSystemUsage_requestGranted() {
-        requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo concurrentSystemUsageInfo = getConcurrentWithSystemUsageInfo();
-        mCarAudioFocus.onAudioFocusRequest(concurrentSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(concurrentSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(concurrentSystemUsageInfo,
+        verify(mMockAudioManager).setFocusRequestResult(concurrentSystemUsageInfo,
                 AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
     }
 
     @Test
     public void onAudioFocus_concurrentWithSystemUsageAndConcurrent_holderRetainsFocus() {
-        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient();
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        AudioFocusInfo initialFocusInfo = requestFocusForMediaWithFirstClient(carAudioFocus);
 
         AudioFocusInfo concurrentSystemUsageInfo = getConcurrentWithSystemUsageInfo();
-        mCarAudioFocus.onAudioFocusRequest(concurrentSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(concurrentSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
         verify(mMockAudioManager, times(0)).dispatchAudioFocusChange(eq(initialFocusInfo),
                 anyInt(), eq(mAudioPolicy));
@@ -245,18 +268,347 @@
 
     @Test
     public void onAudioFocus_rejectWithSystemUsage_requestFailed() {
-        requestFocusForUsageWithFirstClient(USAGE_VOICE_COMMUNICATION);
+        CarAudioFocus carAudioFocus = getCarAudioFocus(false);
+        requestFocusForUsageWithFirstClient(USAGE_VOICE_COMMUNICATION, carAudioFocus);
 
         AudioFocusInfo rejectWithSystemUsageInfo = getRejectWithSystemUsageInfo();
-        mCarAudioFocus.onAudioFocusRequest(rejectWithSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        carAudioFocus.onAudioFocusRequest(rejectWithSystemUsageInfo, AUDIOFOCUS_REQUEST_GRANTED);
 
-        verify(mMockAudioManager, times(1)).setFocusRequestResult(rejectWithSystemUsageInfo,
+        verify(mMockAudioManager).setFocusRequestResult(rejectWithSystemUsageInfo,
                 AUDIOFOCUS_REQUEST_FAILED, mAudioPolicy);
     }
 
+    // Delayed Focus tests
+    @Test
+    public void onAudioFocus_requestWithDelayedFocus_requestGranted() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo delayedFocusInfo = getDelayedExclusiveInfo(AUDIOFOCUS_GAIN);
+        carAudioFocus.onAudioFocusRequest(delayedFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(delayedFocusInfo,
+                        AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocus_delayedRequestAbandonedBeforeGettingFocus_abandonSucceeds() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo delayedFocusInfo = getDelayedExclusiveInfo(AUDIOFOCUS_GAIN);
+        carAudioFocus.onAudioFocusRequest(delayedFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        carAudioFocus.onAudioFocusAbandon(delayedFocusInfo);
+
+        verify(mMockAudioManager, never()).dispatchAudioFocusChange(
+                delayedFocusInfo, AUDIOFOCUS_LOSS, mAudioPolicy);
+
+        carAudioFocus.onAudioFocusAbandon(callFocusInfo);
+
+        verify(mMockAudioManager, never()).dispatchAudioFocusChange(
+                delayedFocusInfo, AUDIOFOCUS_GAIN, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocus_forRequestDelayed_requestDelayed() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo delayedFocusInfo = getDelayedExclusiveInfo(AUDIOFOCUS_GAIN);
+        carAudioFocus.onAudioFocusRequest(delayedFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(delayedFocusInfo,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocus_forRequestDelayed_delayedFocusGained() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo delayedFocusInfo = getDelayedExclusiveInfo(AUDIOFOCUS_GAIN);
+        carAudioFocus.onAudioFocusRequest(delayedFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(delayedFocusInfo,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+
+        carAudioFocus.onAudioFocusAbandon(callFocusInfo);
+
+        verify(mMockAudioManager)
+                .dispatchAudioFocusChange(delayedFocusInfo, AUDIOFOCUS_GAIN, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocus_multipleRequestWithDelayedFocus_requestsDelayed() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo firstRequestWithDelayedFocus = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+        carAudioFocus.onAudioFocusRequest(firstRequestWithDelayedFocus, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(firstRequestWithDelayedFocus,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+
+        AudioFocusInfo secondRequestWithDelayedFocus = getInfo(USAGE_MEDIA, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+        carAudioFocus.onAudioFocusRequest(secondRequestWithDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(secondRequestWithDelayedFocus,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocus_multipleRequestWithDelayedFocus_firstRequestReceivesFocusLoss() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo firstRequestWithDelayedFocus = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+        carAudioFocus.onAudioFocusRequest(firstRequestWithDelayedFocus, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(firstRequestWithDelayedFocus,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+
+        AudioFocusInfo secondRequestWithDelayedFocus = getInfo(USAGE_MEDIA, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(secondRequestWithDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                firstRequestWithDelayedFocus, AUDIOFOCUS_LOSS, mAudioPolicy);
+    }
+
+    @Test
+    public void onAudioFocus_multipleRequestOnlyOneWithDelayedFocus_delayedFocusNotChanged() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo firstRequestWithDelayedFocus = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+        carAudioFocus.onAudioFocusRequest(firstRequestWithDelayedFocus, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(firstRequestWithDelayedFocus,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+
+        AudioFocusInfo secondRequestWithNoDelayedFocus = getInfo(USAGE_MEDIA, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN, false);
+
+        carAudioFocus.onAudioFocusRequest(secondRequestWithNoDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(secondRequestWithNoDelayedFocus,
+                        AUDIOFOCUS_REQUEST_FAILED, mAudioPolicy);
+
+        verify(mMockAudioManager, never()).dispatchAudioFocusChange(
+                firstRequestWithDelayedFocus, AUDIOFOCUS_LOSS, mAudioPolicy);
+    }
+
+    @Test
+    public void
+            onAudioFocus_multipleRequestOnlyOneWithDelayedFocus_nonTransientRequestReceivesLoss() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo mediaRequestWithOutDelayedFocus = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, false);
+        carAudioFocus.onAudioFocusRequest(mediaRequestWithOutDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo mediaRequestWithDelayedFocus = getInfo(USAGE_MEDIA, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(mediaRequestWithDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(mediaRequestWithDelayedFocus,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                mediaRequestWithOutDelayedFocus, AUDIOFOCUS_LOSS, mAudioPolicy);
+    }
+
+    @Test
+    public void
+            onAudioFocus_multipleRequestOnlyOneWithDelayedFocus_duckedRequestReceivesLoss() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo navRequestWithOutDelayedFocus =
+                getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, SECOND_CLIENT_ID,
+                        AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(navRequestWithOutDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                navRequestWithOutDelayedFocus, AUDIOFOCUS_LOSS_TRANSIENT, mAudioPolicy);
+
+        AudioFocusInfo mediaRequestWithDelayedFocus = getInfo(USAGE_MEDIA, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(mediaRequestWithDelayedFocus,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                navRequestWithOutDelayedFocus, AUDIOFOCUS_LOSS, mAudioPolicy);
+    }
+
+    @Test
+    public void
+            onAudioFocus_concurrentRequestAfterDelayedFocus_concurrentFocusGranted() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo delayedFocusRequest = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(delayedFocusRequest,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        AudioFocusInfo mapFocusInfo = getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(mapFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(mapFocusInfo,
+                        AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+    }
+
+    @Test
+    public void
+            onAudioFocus_concurrentRequestsAndAbandonsAfterDelayedFocus_noDelayedFocusChange() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo delayedFocusRequest = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(delayedFocusRequest,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        AudioFocusInfo mapFocusInfo = getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(mapFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        carAudioFocus.onAudioFocusAbandon(mapFocusInfo);
+
+        verify(mMockAudioManager, never()).dispatchAudioFocusChange(
+                delayedFocusRequest, AUDIOFOCUS_LOSS, mAudioPolicy);
+
+        verify(mMockAudioManager, never()).dispatchAudioFocusChange(
+                delayedFocusRequest, AUDIOFOCUS_GAIN, mAudioPolicy);
+    }
+
+    @Test
+    public void
+            onAudioFocus_concurrentRequestAfterDelayedFocus_delayedGainesFocus() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callFocusInfo = setupFocusInfoAndRequestFocusForCall(carAudioFocus);
+
+        AudioFocusInfo delayedFocusRequest = getInfo(USAGE_MEDIA, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(delayedFocusRequest,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        AudioFocusInfo mapFocusInfo = getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(mapFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+
+        carAudioFocus.onAudioFocusAbandon(mapFocusInfo);
+
+        carAudioFocus.onAudioFocusAbandon(callFocusInfo);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                delayedFocusRequest, AUDIOFOCUS_GAIN, mAudioPolicy);
+    }
+
+    @Test
+    public void
+            onAudioFocus_delayedFocusRequestAfterDoubleReject_delayedGainesFocus() {
+        CarAudioFocus carAudioFocus = getCarAudioFocus(true);
+
+        AudioFocusInfo callRingFocusInfo = getInfo(USAGE_NOTIFICATION_RINGTONE, FIRST_CLIENT_ID,
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(callRingFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        verify(mMockAudioManager)
+                .setFocusRequestResult(callRingFocusInfo,
+                        AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+
+        AudioAttributes audioAttributes = new AudioAttributes.Builder()
+                .setSystemUsage(USAGE_EMERGENCY)
+                .build();
+        AudioFocusInfo emergencyFocusInfo = getInfo(audioAttributes, SECOND_CLIENT_ID,
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(emergencyFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        verify(mMockAudioManager)
+                .setFocusRequestResult(emergencyFocusInfo,
+                        AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                callRingFocusInfo, AUDIOFOCUS_LOSS_TRANSIENT, mAudioPolicy);
+
+        AudioFocusInfo delayedFocusRequest = getInfo(USAGE_MEDIA, THIRD_CLIENT_ID,
+                AUDIOFOCUS_GAIN, true);
+
+        carAudioFocus.onAudioFocusRequest(delayedFocusRequest,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        verify(mMockAudioManager)
+                .setFocusRequestResult(delayedFocusRequest,
+                        AUDIOFOCUS_REQUEST_DELAYED, mAudioPolicy);
+
+        carAudioFocus.onAudioFocusAbandon(emergencyFocusInfo);
+
+        verify(mMockAudioManager, never()).dispatchAudioFocusChange(
+                delayedFocusRequest, AUDIOFOCUS_GAIN, mAudioPolicy);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                callRingFocusInfo, AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, mAudioPolicy);
+
+        carAudioFocus.onAudioFocusAbandon(callRingFocusInfo);
+
+        verify(mMockAudioManager).dispatchAudioFocusChange(
+                delayedFocusRequest, AUDIOFOCUS_GAIN, mAudioPolicy);
+
+    }
+
+    private AudioFocusInfo setupFocusInfoAndRequestFocusForCall(CarAudioFocus carAudioFocus) {
+        AudioFocusInfo callFocusInfo = getInfo(USAGE_VOICE_COMMUNICATION, FIRST_CLIENT_ID,
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
+        carAudioFocus.onAudioFocusRequest(callFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+        verify(mMockAudioManager)
+                .setFocusRequestResult(callFocusInfo,
+                        AUDIOFOCUS_REQUEST_GRANTED, mAudioPolicy);
+        return callFocusInfo;
+    }
+
     // USAGE_ASSISTANCE_NAVIGATION_GUIDANCE is concurrent with USAGE_MEDIA
     private AudioFocusInfo getConcurrentInfo(int gainType) {
-        return getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, SECOND_CLIENT_ID, gainType);
+        return getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, SECOND_CLIENT_ID, gainType,
+                false);
     }
 
     // USAGE_VEHICLE_STATUS is concurrent with USAGE_MEDIA
@@ -266,7 +618,12 @@
 
     // USAGE_MEDIA is exclusive with USAGE_MEDIA
     private AudioFocusInfo getExclusiveInfo(int gainType) {
-        return getInfo(USAGE_MEDIA, SECOND_CLIENT_ID, gainType);
+        return getInfo(USAGE_MEDIA, SECOND_CLIENT_ID, gainType, false);
+    }
+
+    // USAGE_MEDIA is exclusive with USAGE_MEDIA
+    private AudioFocusInfo getDelayedExclusiveInfo(int gainType) {
+        return getInfo(USAGE_MEDIA, SECOND_CLIENT_ID, gainType, true);
     }
 
     // USAGE_EMERGENCY is exclusive with USAGE_MEDIA
@@ -277,7 +634,7 @@
     // USAGE_ASSISTANCE_NAVIGATION_GUIDANCE is rejected with USAGE_ASSISTANT
     private AudioFocusInfo getRejectInfo() {
         return getInfo(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE, SECOND_CLIENT_ID,
-                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK);
+                AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK, false);
     }
 
     // USAGE_ANNOUNCEMENT is rejected with USAGE_VOICE_COMMUNICATION
@@ -285,37 +642,49 @@
         return getSystemUsageInfo(USAGE_ANNOUNCEMENT, AUDIOFOCUS_GAIN);
     }
 
-    private AudioFocusInfo requestFocusForUsageWithFirstClient(@AttributeUsage int usage) {
-        AudioFocusInfo initialFocusInfo = getInfo(usage, FIRST_CLIENT_ID, AUDIOFOCUS_GAIN);
-        mCarAudioFocus.onAudioFocusRequest(initialFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
+    private AudioFocusInfo requestFocusForUsageWithFirstClient(@AttributeUsage int usage,
+            CarAudioFocus carAudioFocus) {
+        AudioFocusInfo initialFocusInfo = getInfo(usage, FIRST_CLIENT_ID, AUDIOFOCUS_GAIN,
+                false);
+        carAudioFocus.onAudioFocusRequest(initialFocusInfo, AUDIOFOCUS_REQUEST_GRANTED);
         return initialFocusInfo;
     }
 
-    private AudioFocusInfo requestFocusForMediaWithFirstClient() {
-        return requestFocusForUsageWithFirstClient(USAGE_MEDIA);
+    private AudioFocusInfo requestFocusForMediaWithFirstClient(CarAudioFocus carAudioFocus) {
+        return requestFocusForUsageWithFirstClient(USAGE_MEDIA, carAudioFocus);
     }
 
     private AudioFocusInfo getInfoForFirstClientWithMedia() {
-        return getInfo(USAGE_MEDIA, FIRST_CLIENT_ID, AUDIOFOCUS_GAIN);
+        return getInfo(USAGE_MEDIA, FIRST_CLIENT_ID, AUDIOFOCUS_GAIN, false);
     }
 
-    private AudioFocusInfo getInfo(@AttributeUsage int usage, String clientId, int gainType) {
+    private AudioFocusInfo getInfo(@AttributeUsage int usage, String clientId, int gainType,
+            boolean acceptsDelayedFocus) {
         AudioAttributes audioAttributes = new AudioAttributes.Builder()
                 .setUsage(usage)
                 .build();
-        return getInfo(audioAttributes, clientId, gainType);
+        return getInfo(audioAttributes, clientId, gainType, acceptsDelayedFocus);
     }
 
     private AudioFocusInfo getSystemUsageInfo(@AttributeUsage int systemUsage, int gainType) {
         AudioAttributes audioAttributes = new AudioAttributes.Builder()
                 .setSystemUsage(systemUsage)
                 .build();
-        return getInfo(audioAttributes, SECOND_CLIENT_ID, gainType);
+        return getInfo(audioAttributes, SECOND_CLIENT_ID, gainType, false);
     }
 
-    private AudioFocusInfo getInfo(AudioAttributes audioAttributes, String clientId, int gainType) {
+    private AudioFocusInfo getInfo(AudioAttributes audioAttributes, String clientId, int gainType,
+            boolean acceptsDelayedFocus) {
+        int flags =  acceptsDelayedFocus ? AudioManager.AUDIOFOCUS_FLAG_DELAY_OK : AUDIOFOCUS_FLAG;
         return new AudioFocusInfo(audioAttributes, CLIENT_UID, clientId, PACKAGE_NAME,
                 gainType, AudioManager.AUDIOFOCUS_NONE,
-                AUDIOFOCUS_FLAG, Build.VERSION.SDK_INT);
+                flags, Build.VERSION.SDK_INT);
+    }
+
+    private CarAudioFocus getCarAudioFocus(boolean enableDelayAudioFocus) {
+        CarAudioFocus carAudioFocus = new CarAudioFocus(mMockAudioManager, mMockPackageManager,
+                mFocusInteraction, enableDelayAudioFocus);
+        carAudioFocus.setOwningPolicy(mAudioPolicy);
+        return carAudioFocus;
     }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/CarAudioSettingsUnitTest.java b/tests/carservice_unit_test/src/com/android/car/audio/CarAudioSettingsUnitTest.java
new file mode 100644
index 0000000..cf1b7fd
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/audio/CarAudioSettingsUnitTest.java
@@ -0,0 +1,92 @@
+/*
+ * Copyright (C) 2020 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.car.audio;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import android.car.media.CarAudioManager;
+import android.car.settings.CarSettings;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.content.ContentResolver;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+
+@RunWith(AndroidJUnit4.class)
+public class CarAudioSettingsUnitTest extends AbstractExtendedMockitoTestCase {
+
+    private static final int TEST_USER_ID_1 = 11;
+    private static final int TEST_ZONE_ID = CarAudioManager.PRIMARY_AUDIO_ZONE;
+    private static final int TEST_GROUP_ID = 0;
+    private static final int TEST_GAIN_INDEX = 10;
+    private static final String TEST_GAIN_INDEX_KEY = "android.car.VOLUME_GROUP/0";
+
+
+    @Mock
+    private ContentResolver mMockContentResolver;
+
+    private CarAudioSettings mCarAudioSettings;
+
+    @Before
+    public void setUp() {
+        mCarAudioSettings = new CarAudioSettings(mMockContentResolver);
+    }
+
+    @Test
+    public void isRejectNavigationOnCallEnabledInSettings_whenSetToNotToReject_returnsFalse() {
+        setRejectNavigationOnCallSettingsValues(0);
+        assertThat(
+                mCarAudioSettings.isRejectNavigationOnCallEnabledInSettings(TEST_USER_ID_1))
+                .isFalse();
+    }
+
+    @Test
+    public void isRejectNavigationOnCallEnabledInSettings_whenSetToToReject_returnsTrue() {
+        setRejectNavigationOnCallSettingsValues(1);
+        assertThat(
+                mCarAudioSettings.isRejectNavigationOnCallEnabledInSettings(TEST_USER_ID_1))
+                .isTrue();
+    }
+
+    @Test
+    public void getStoredVolumeGainIndexForUser_returnsSavedValue() {
+        setStoredVolumeGainIndexForUser(TEST_GAIN_INDEX);
+
+        assertThat(mCarAudioSettings.getStoredVolumeGainIndexForUser(TEST_USER_ID_1, TEST_ZONE_ID,
+                        TEST_GROUP_ID)).isEqualTo(TEST_GAIN_INDEX);
+    }
+
+    @Test
+    public void storedVolumeGainIndexForUser_savesValue() {
+        mCarAudioSettings.storeVolumeGainIndexForUser(TEST_USER_ID_1, TEST_ZONE_ID,
+                TEST_GROUP_ID, TEST_GAIN_INDEX);
+        assertThat(getSettingsInt(TEST_GAIN_INDEX_KEY)).isEqualTo(TEST_GAIN_INDEX);
+    }
+
+    private void setStoredVolumeGainIndexForUser(int gainIndexForUser) {
+        putSettingsInt(TEST_GAIN_INDEX_KEY, gainIndexForUser);
+    }
+
+    private void setRejectNavigationOnCallSettingsValues(int settingsValue) {
+        putSettingsInt(CarSettings.Secure.KEY_AUDIO_FOCUS_NAVIGATION_REJECTED_DURING_CALL,
+                settingsValue);
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/CarVolumeTest.java b/tests/carservice_unit_test/src/com/android/car/audio/CarVolumeTest.java
new file mode 100644
index 0000000..06d2299
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/audio/CarVolumeTest.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2020 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.car.audio;
+
+import static android.media.AudioAttributes.USAGE_ALARM;
+import static android.media.AudioAttributes.USAGE_ASSISTANCE_NAVIGATION_GUIDANCE;
+import static android.media.AudioAttributes.USAGE_MEDIA;
+import static android.media.AudioAttributes.USAGE_NOTIFICATION;
+import static android.media.AudioAttributes.USAGE_VIRTUAL_SOURCE;
+import static android.media.AudioAttributes.USAGE_VOICE_COMMUNICATION;
+import static android.telephony.TelephonyManager.CALL_STATE_IDLE;
+import static android.telephony.TelephonyManager.CALL_STATE_OFFHOOK;
+import static android.telephony.TelephonyManager.CALL_STATE_RINGING;
+
+import static com.android.car.audio.CarAudioContext.ALARM;
+import static com.android.car.audio.CarAudioContext.CALL;
+import static com.android.car.audio.CarAudioContext.CALL_RING;
+import static com.android.car.audio.CarAudioContext.NAVIGATION;
+import static com.android.car.audio.CarAudioService.DEFAULT_AUDIO_CONTEXT;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import android.media.AudioAttributes;
+import android.media.AudioAttributes.AttributeUsage;
+import android.media.AudioPlaybackConfiguration;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import com.android.car.audio.CarAudioContext.AudioContext;
+
+import com.google.common.collect.ImmutableList;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class CarVolumeTest {
+    @Test
+    public void getSuggestedAudioContext_withNoConfigurationsAndIdleTelephony_returnsDefault() {
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(new ArrayList<>(),
+                CALL_STATE_IDLE);
+
+        assertThat(suggestedContext).isEqualTo(CarAudioService.DEFAULT_AUDIO_CONTEXT);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withOneConfiguration_returnsAssociatedContext() {
+        List<AudioPlaybackConfiguration> configurations = ImmutableList.of(
+                new Builder().setUsage(USAGE_ALARM).build()
+        );
+
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(configurations,
+                CALL_STATE_IDLE);
+
+        assertThat(suggestedContext).isEqualTo(ALARM);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withCallStateOffHook_returnsCallContext() {
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(new ArrayList<>(),
+                CALL_STATE_OFFHOOK);
+
+        assertThat(suggestedContext).isEqualTo(CALL);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withCallStateRinging_returnsCallRingContext() {
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(new ArrayList<>(),
+                CALL_STATE_RINGING);
+
+        assertThat(suggestedContext).isEqualTo(CALL_RING);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withConfigurations_returnsHighestPriorityContext() {
+        List<AudioPlaybackConfiguration> configurations = ImmutableList.of(
+                new Builder().setUsage(USAGE_ALARM).build(),
+                new Builder().setUsage(USAGE_VOICE_COMMUNICATION).build(),
+                new Builder().setUsage(USAGE_NOTIFICATION).build()
+        );
+
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(configurations,
+                CALL_STATE_IDLE);
+
+        assertThat(suggestedContext).isEqualTo(CALL);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_ignoresInactiveConfigurations() {
+        List<AudioPlaybackConfiguration> configurations = ImmutableList.of(
+                new Builder().setUsage(USAGE_ALARM).build(),
+                new Builder().setUsage(USAGE_VOICE_COMMUNICATION).setInactive().build(),
+                new Builder().setUsage(USAGE_NOTIFICATION).build()
+        );
+
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(configurations,
+                CALL_STATE_IDLE);
+
+        assertThat(suggestedContext).isEqualTo(ALARM);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withLowerPriorityConfigurationsAndCall_returnsCall() {
+        List<AudioPlaybackConfiguration> configurations = ImmutableList.of(
+                new Builder().setUsage(USAGE_ALARM).build(),
+                new Builder().setUsage(USAGE_NOTIFICATION).build()
+        );
+
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(configurations,
+                CALL_STATE_OFFHOOK);
+
+        assertThat(suggestedContext).isEqualTo(CALL);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withNavigationConfigurationAndCall_returnsNavigation() {
+        List<AudioPlaybackConfiguration> configurations = ImmutableList.of(
+                new Builder().setUsage(USAGE_ASSISTANCE_NAVIGATION_GUIDANCE).build()
+        );
+
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(configurations,
+                CALL_STATE_OFFHOOK);
+
+        assertThat(suggestedContext).isEqualTo(NAVIGATION);
+    }
+
+    @Test
+    public void getSuggestedAudioContext_withUnprioritizedUsage_returnsDefault() {
+        List<AudioPlaybackConfiguration> configurations = ImmutableList.of(
+                new Builder().setUsage(USAGE_VIRTUAL_SOURCE).build()
+        );
+
+        @AudioContext int suggestedContext = CarVolume.getSuggestedAudioContext(configurations,
+                CALL_STATE_IDLE);
+
+        assertThat(suggestedContext).isEqualTo(DEFAULT_AUDIO_CONTEXT);
+    }
+
+    private static class Builder {
+        private @AttributeUsage int mUsage = USAGE_MEDIA;
+        private boolean mIsActive = true;
+
+        Builder setUsage(@AttributeUsage int usage) {
+            mUsage = usage;
+            return this;
+        }
+
+        Builder setInactive() {
+            mIsActive = false;
+            return this;
+        }
+
+        AudioPlaybackConfiguration build() {
+            AudioPlaybackConfiguration configuration = mock(AudioPlaybackConfiguration.class);
+            AudioAttributes attributes = new AudioAttributes.Builder().setUsage(mUsage).build();
+            when(configuration.getAudioAttributes()).thenReturn(attributes);
+            when(configuration.isActive()).thenReturn(mIsActive);
+            return configuration;
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/FocusInteractionTest.java b/tests/carservice_unit_test/src/com/android/car/audio/FocusInteractionTest.java
index fd8efc1..d1571a4 100644
--- a/tests/carservice_unit_test/src/com/android/car/audio/FocusInteractionTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/audio/FocusInteractionTest.java
@@ -20,6 +20,7 @@
 import static com.android.car.audio.FocusInteraction.INTERACTION_CONCURRENT;
 import static com.android.car.audio.FocusInteraction.INTERACTION_EXCLUSIVE;
 import static com.android.car.audio.FocusInteraction.INTERACTION_REJECT;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
@@ -28,12 +29,18 @@
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertThrows;
 
+import android.content.ContentResolver;
 import android.media.AudioManager;
 
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 
+import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
 
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -41,14 +48,31 @@
 
 @RunWith(AndroidJUnit4.class)
 public class FocusInteractionTest {
-
     private static final int UNDEFINED_CONTEXT_VALUE = -10;
+    private static final int TEST_USER_ID = 10;
+
+    @Mock
+    private CarAudioSettings mMockCarAudioSettings;
+    @Mock
+    private ContentResolver mMockContentResolver;
+    @Rule
+    public MockitoRule mMockitoRule = MockitoJUnit.rule();
+
     private final List<FocusEntry> mLosers = new ArrayList<>();
 
+    private FocusInteraction mFocusInteraction;
+
+    @Before
+    public void setUp() {
+        doReturn(mMockContentResolver).when(mMockCarAudioSettings).getContentResolver();
+        mFocusInteraction = new FocusInteraction(mMockCarAudioSettings);
+    }
+
     @Test
     public void getInteractionMatrix_returnsNByNMatrix() {
         int n = CarAudioContext.CONTEXTS.length + 1; // One extra for CarAudioContext.INVALID
-        int[][] interactionMatrix = FocusInteraction.getInteractionMatrix();
+
+        int[][] interactionMatrix = mFocusInteraction.getInteractionMatrix();
 
         assertThat(interactionMatrix.length).isEqualTo(n);
         for (int i = 0; i < n; i++) {
@@ -61,7 +85,8 @@
     public void getInteractionMatrix_hasValidInteractionValues() {
         List<Integer> supportedInteractions = Arrays.asList(INTERACTION_REJECT,
                 INTERACTION_EXCLUSIVE, INTERACTION_CONCURRENT);
-        int[][] interactionMatrix = FocusInteraction.getInteractionMatrix();
+
+        int[][] interactionMatrix = mFocusInteraction.getInteractionMatrix();
 
         for (int i = 0; i < interactionMatrix.length; i++) {
             for (int j = 0; j < interactionMatrix[i].length; j++) {
@@ -76,8 +101,37 @@
     public void evaluateResult_forRejectPair_returnsFailed() {
         FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.INVALID);
 
-        int result = FocusInteraction.evaluateRequest(CarAudioContext.INVALID, focusEntry, mLosers,
-                false);
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.INVALID, focusEntry, mLosers,
+                false, false);
+
+        assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_FAILED);
+    }
+
+    @Test
+    public void evaluateResult_forCallAndNavigation_withNavigationNotRejected_returnsConcurrent() {
+        doReturn(false)
+                .when(mMockCarAudioSettings)
+                .isRejectNavigationOnCallEnabledInSettings(TEST_USER_ID);
+
+        mFocusInteraction.setUserIdForSettings(TEST_USER_ID);
+        FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.CALL);
+
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.NAVIGATION, focusEntry,
+                mLosers, false, false);
+
+        assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
+    }
+
+    @Test
+    public void evaluateResult_forCallAndNavigation_withNavigationRejected_returnsConcurrent() {
+        doReturn(true)
+                .when(mMockCarAudioSettings)
+                .isRejectNavigationOnCallEnabledInSettings(TEST_USER_ID);
+        mFocusInteraction.setUserIdForSettings(TEST_USER_ID);
+        FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.CALL);
+
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.NAVIGATION, focusEntry,
+                mLosers, false, false);
 
         assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_FAILED);
     }
@@ -86,7 +140,9 @@
     public void evaluateResult_forRejectPair_doesNotAddToLosers() {
         FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.INVALID);
 
-        FocusInteraction.evaluateRequest(CarAudioContext.INVALID, focusEntry, mLosers, false);
+        mFocusInteraction
+                .evaluateRequest(CarAudioContext.INVALID, focusEntry, mLosers, false,
+                        false);
 
         assertThat(mLosers).isEmpty();
     }
@@ -95,8 +151,8 @@
     public void evaluateRequest_forExclusivePair_returnsGranted() {
         FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.MUSIC);
 
-        int result = FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
-                false);
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
+                false, false);
 
         assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
     }
@@ -105,7 +161,9 @@
     public void evaluateRequest_forExclusivePair_addsEntryToLosers() {
         FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.MUSIC);
 
-        FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, false);
+        mFocusInteraction
+                .evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, false,
+                        false);
 
         assertThat(mLosers).containsExactly(focusEntry);
     }
@@ -114,44 +172,53 @@
     public void evaluateResult_forConcurrentPair_returnsGranted() {
         FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.NAVIGATION);
 
-        int result = FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
-                false);
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
+                false, false);
 
         assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
     }
 
     @Test
     public void evaluateResult_forConcurrentPair_andNoDucking_addsToLosers() {
-        FocusEntry focusEntry = newMockFocusEntryWithDuckingBehavior(false, false);
+        FocusEntry focusEntry =
+                newMockFocusEntryWithDuckingBehavior(false, false);
 
-        FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, false);
+        mFocusInteraction
+                .evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, false, false);
 
         assertThat(mLosers).containsExactly(focusEntry);
     }
 
     @Test
     public void evaluateResult_forConcurrentPair_andWantsPauseInsteadOfDucking_addsToLosers() {
-        FocusEntry focusEntry = newMockFocusEntryWithDuckingBehavior(true, false);
+        FocusEntry focusEntry =
+                newMockFocusEntryWithDuckingBehavior(true, false);
 
-        FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, true);
+        mFocusInteraction
+                .evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, true, false);
 
         assertThat(mLosers).containsExactly(focusEntry);
     }
 
     @Test
     public void evaluateResult_forConcurrentPair_andReceivesDuckEvents_addsToLosers() {
-        FocusEntry focusEntry = newMockFocusEntryWithDuckingBehavior(false, true);
+        FocusEntry focusEntry =
+                newMockFocusEntryWithDuckingBehavior(false, true);
 
-        FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, true);
+        mFocusInteraction
+                .evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, true, false);
 
         assertThat(mLosers).containsExactly(focusEntry);
     }
 
     @Test
     public void evaluateResult_forConcurrentPair_andDucking_doesAddsToLosers() {
-        FocusEntry focusEntry = newMockFocusEntryWithDuckingBehavior(false, true);
+        FocusEntry focusEntry =
+                newMockFocusEntryWithDuckingBehavior(false, true);
 
-        FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, true);
+        mFocusInteraction
+                .evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers, true,
+                        false);
 
         assertThat(mLosers).containsExactly(focusEntry);
     }
@@ -161,8 +228,8 @@
         FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.NAVIGATION);
 
         assertThrows(IllegalArgumentException.class,
-                () -> FocusInteraction.evaluateRequest(UNDEFINED_CONTEXT_VALUE, focusEntry, mLosers,
-                        false));
+                () -> mFocusInteraction.evaluateRequest(UNDEFINED_CONTEXT_VALUE, focusEntry,
+                        mLosers, false, false));
     }
 
     @Test
@@ -170,8 +237,38 @@
         FocusEntry focusEntry = newMockFocusEntryWithContext(UNDEFINED_CONTEXT_VALUE);
 
         assertThrows(IllegalArgumentException.class,
-                () -> FocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry,
-                        mLosers, false));
+                () -> mFocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry,
+                        mLosers, false, false));
+    }
+
+    @Test
+    public void evaluateRequest_forExclusivePair_withDelayedFocus_returnsGranted() {
+        FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.MUSIC);
+
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
+                false, true);
+
+        assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_GRANTED);
+    }
+
+    @Test
+    public void evaluateRequest_forRejectPair_withDelayedFocus_returnsDelayed() {
+        FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.CALL);
+
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
+                false, true);
+
+        assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_DELAYED);
+    }
+
+    @Test
+    public void evaluateRequest_forRejectPair_withoutDelayedFocus_returnsReject() {
+        FocusEntry focusEntry = newMockFocusEntryWithContext(CarAudioContext.CALL);
+
+        int result = mFocusInteraction.evaluateRequest(CarAudioContext.MUSIC, focusEntry, mLosers,
+                false, false);
+
+        assertThat(result).isEqualTo(AudioManager.AUDIOFOCUS_REQUEST_FAILED);
     }
 
     private FocusEntry newMockFocusEntryWithContext(@AudioContext int audioContext) {
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/OWNERS b/tests/carservice_unit_test/src/com/android/car/audio/OWNERS
new file mode 100644
index 0000000..8d34cdd
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/audio/OWNERS
@@ -0,0 +1,3 @@
+# Audio owners
+haydengomes@google.com
+oscarazu@google.com
\ No newline at end of file
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/hal/AudioControlWrapperV1Test.java b/tests/carservice_unit_test/src/com/android/car/audio/hal/AudioControlWrapperV1Test.java
new file mode 100644
index 0000000..c559d89
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/audio/hal/AudioControlWrapperV1Test.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertThrows;
+
+import android.hardware.automotive.audiocontrol.V1_0.IAudioControl;
+import android.hardware.automotive.audiocontrol.V2_0.IFocusListener;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+@RunWith(AndroidJUnit4.class)
+public class AudioControlWrapperV1Test {
+    private static final float FADE_VALUE = 5;
+    private static final float BALANCE_VALUE = 6;
+    private static final int CONTEXT_NUMBER = 3;
+    private static final int USAGE = AudioAttributes.USAGE_MEDIA;
+    private static final int ZONE_ID = 2;
+    private static final int FOCUS_GAIN = AudioManager.AUDIOFOCUS_GAIN;
+
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
+
+    @Mock
+    IAudioControl mAudioControlV1;
+
+    @Test
+    public void setFadeTowardFront_succeeds() throws Exception {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+        audioControlWrapperV1.setFadeTowardFront(FADE_VALUE);
+
+        verify(mAudioControlV1).setFadeTowardFront(FADE_VALUE);
+    }
+
+    @Test
+    public void setBalanceTowardRight_succeeds() throws Exception {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+        audioControlWrapperV1.setBalanceTowardRight(BALANCE_VALUE);
+
+        verify(mAudioControlV1).setBalanceTowardRight(BALANCE_VALUE);
+    }
+
+    @Test
+    public void getBusForContext_returnsBusNumber() throws Exception {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+        int busNumber = 1;
+        when(mAudioControlV1.getBusForContext(CONTEXT_NUMBER)).thenReturn(busNumber);
+
+        int actualBus = audioControlWrapperV1.getBusForContext(CONTEXT_NUMBER);
+        assertThat(actualBus).isEqualTo(busNumber);
+    }
+
+    @Test
+    public void supportsHalAudioFocus_returnsFalse() {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+
+        assertThat(audioControlWrapperV1.supportsHalAudioFocus()).isFalse();
+    }
+
+    @Test
+    public void registerFocusListener_throws() {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+        IFocusListener mockListener = mock(IFocusListener.class);
+
+        assertThrows(UnsupportedOperationException.class,
+                () -> audioControlWrapperV1.registerFocusListener(mockListener));
+    }
+
+    @Test
+    public void unregisterFocusListener_throws() {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+        IFocusListener mockListener = mock(IFocusListener.class);
+
+        assertThrows(UnsupportedOperationException.class,
+                () -> audioControlWrapperV1.unregisterFocusListener());
+    }
+
+    @Test
+    public void onAudioFocusChange_throws() {
+        AudioControlWrapperV1 audioControlWrapperV1 = new AudioControlWrapperV1(mAudioControlV1);
+
+        assertThrows(UnsupportedOperationException.class,
+                () -> audioControlWrapperV1.onAudioFocusChange(USAGE, ZONE_ID, FOCUS_GAIN));
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/hal/AudioControlWrapperV2Test.java b/tests/carservice_unit_test/src/com/android/car/audio/hal/AudioControlWrapperV2Test.java
new file mode 100644
index 0000000..a57b68d
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/audio/hal/AudioControlWrapperV2Test.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.hardware.automotive.audiocontrol.V2_0.IAudioControl;
+import android.hardware.automotive.audiocontrol.V2_0.ICloseHandle;
+import android.hardware.automotive.audiocontrol.V2_0.IFocusListener;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+@RunWith(AndroidJUnit4.class)
+public class AudioControlWrapperV2Test {
+    private static final float FADE_VALUE = 5;
+    private static final float BALANCE_VALUE = 6;
+    private static final int CONTEXT_NUMBER = 3;
+    private static final int USAGE = AudioAttributes.USAGE_MEDIA;
+    private static final int ZONE_ID = 2;
+    private static final int FOCUS_GAIN = AudioManager.AUDIOFOCUS_GAIN;
+
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
+
+    @Mock
+    IAudioControl mAudioControlV2;
+
+    @Test
+    public void setFadeTowardFront_succeeds() throws Exception {
+        AudioControlWrapperV2 audioControlWrapperV2 = new AudioControlWrapperV2(mAudioControlV2);
+        audioControlWrapperV2.setFadeTowardFront(FADE_VALUE);
+
+        verify(mAudioControlV2).setFadeTowardFront(FADE_VALUE);
+    }
+
+    @Test
+    public void setBalanceTowardRight_succeeds() throws Exception {
+        AudioControlWrapperV2 audioControlWrapperV2 = new AudioControlWrapperV2(mAudioControlV2);
+        audioControlWrapperV2.setBalanceTowardRight(BALANCE_VALUE);
+
+        verify(mAudioControlV2).setBalanceTowardRight(BALANCE_VALUE);
+    }
+
+    @Test
+    public void supportsHalAudioFocus_returnsTrue() {
+        AudioControlWrapperV2 audioControlWrapperV2 = new AudioControlWrapperV2(mAudioControlV2);
+
+        assertThat(audioControlWrapperV2.supportsHalAudioFocus()).isTrue();
+    }
+
+    @Test
+    public void registerFocusListener_succeeds() throws Exception {
+        AudioControlWrapperV2 audioControlWrapperV2 = new AudioControlWrapperV2(mAudioControlV2);
+        IFocusListener mockListener = mock(IFocusListener.class);
+        audioControlWrapperV2.registerFocusListener(mockListener);
+
+        verify(mAudioControlV2).registerFocusListener(mockListener);
+    }
+
+    @Test
+    public void unregisterFocusListener_closesHandle() throws Exception {
+        IFocusListener mockListener = mock(IFocusListener.class);
+        ICloseHandle mockCloseHandle = mock(ICloseHandle.class);
+        when(mAudioControlV2.registerFocusListener(mockListener)).thenReturn(mockCloseHandle);
+
+        AudioControlWrapperV2 audioControlWrapperV2 = new AudioControlWrapperV2(mAudioControlV2);
+        audioControlWrapperV2.registerFocusListener(mockListener);
+
+        audioControlWrapperV2.unregisterFocusListener();
+
+        verify(mockCloseHandle).close();
+    }
+
+    @Test
+    public void onAudioFocusChange_succeeds() throws Exception {
+        AudioControlWrapperV2 audioControlWrapperV2 = new AudioControlWrapperV2(mAudioControlV2);
+        audioControlWrapperV2.onAudioFocusChange(USAGE, ZONE_ID, FOCUS_GAIN);
+
+        verify(mAudioControlV2).onAudioFocusChange(USAGE, ZONE_ID, FOCUS_GAIN);
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/audio/hal/HalAudioFocusTest.java b/tests/carservice_unit_test/src/com/android/car/audio/hal/HalAudioFocusTest.java
new file mode 100644
index 0000000..310c984
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/audio/hal/HalAudioFocusTest.java
@@ -0,0 +1,374 @@
+/*
+ * Copyright (C) 2020 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.car.audio.hal;
+
+import static android.media.AudioAttributes.USAGE_ALARM;
+import static android.media.AudioAttributes.USAGE_MEDIA;
+import static android.media.AudioManager.AUDIOFOCUS_GAIN;
+import static android.media.AudioManager.AUDIOFOCUS_LOSS;
+import static android.media.AudioManager.AUDIOFOCUS_LOSS_TRANSIENT;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_FAILED;
+import static android.media.AudioManager.AUDIOFOCUS_REQUEST_GRANTED;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoMoreInteractions;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertThrows;
+
+import android.car.media.CarAudioManager;
+import android.media.AudioFocusRequest;
+import android.media.AudioManager;
+import android.media.AudioManager.OnAudioFocusChangeListener;
+import android.os.Bundle;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnit;
+import org.mockito.junit.MockitoRule;
+
+@RunWith(AndroidJUnit4.class)
+public class HalAudioFocusTest {
+    private static final int[] AUDIO_ZONE_IDS = {0, 1, 2, 3};
+    private static final int ZONE_ID = 0;
+    private static final int SECOND_ZONE_ID = 1;
+    private static final int INVALID_ZONE_ID = 5;
+
+    @Rule
+    public MockitoRule rule = MockitoJUnit.rule();
+
+    @Mock
+    AudioManager mMockAudioManager;
+    @Mock
+    AudioControlWrapper mAudioControlWrapper;
+
+    private HalAudioFocus mHalAudioFocus;
+
+    @Before
+    public void setUp() {
+        mHalAudioFocus = new HalAudioFocus(mMockAudioManager, mAudioControlWrapper, AUDIO_ZONE_IDS);
+    }
+
+    @Test
+    public void registerFocusListener_succeeds() {
+        mHalAudioFocus.registerFocusListener();
+
+        verify(mAudioControlWrapper).registerFocusListener(mHalAudioFocus);
+    }
+
+    @Test
+    public void requestAudioFocus_notifiesHalOfFocusChange() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mAudioControlWrapper).onAudioFocusChange(USAGE_MEDIA, ZONE_ID,
+                AUDIOFOCUS_REQUEST_GRANTED);
+    }
+
+    @Test
+    public void requestAudioFocus_specifiesUsage() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        AudioFocusRequest actualRequest = getLastRequest();
+        assertThat(actualRequest.getAudioAttributes().getUsage()).isEqualTo(USAGE_MEDIA);
+    }
+
+    @Test
+    public void requestAudioFocus_specifiesFocusGain() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        AudioFocusRequest actualRequest = getLastRequest();
+        assertThat(actualRequest.getFocusGain()).isEqualTo(AUDIOFOCUS_GAIN);
+    }
+
+    @Test
+    public void requestAudioFocus_specifiesZoneId() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        AudioFocusRequest actualRequest = getLastRequest();
+        Bundle bundle = actualRequest.getAudioAttributes().getBundle();
+        assertThat(bundle.getInt(CarAudioManager.AUDIOFOCUS_EXTRA_REQUEST_ZONE_ID)).isEqualTo(
+                ZONE_ID);
+    }
+
+    @Test
+    public void requestAudioFocus_providesFocusChangeListener() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        AudioFocusRequest actualRequest = getLastRequest();
+        assertThat(actualRequest.getOnAudioFocusChangeListener()).isNotNull();
+    }
+
+    @Test
+    public void requestAudioFocus_withInvalidZone_throws() {
+        whenAnyFocusRequestGranted();
+
+        assertThrows(IllegalArgumentException.class,
+                () -> mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, INVALID_ZONE_ID,
+                        AUDIOFOCUS_GAIN));
+    }
+
+    @Test
+    public void requestAudioFocus_withSameZoneAndUsage_keepsExistingRequest() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest firstRequest = getLastRequest();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(firstRequest);
+    }
+
+    @Test
+    public void requestAudioFocus_withSameZoneAndUsage_notifiesHalOfExistingRequestStatus() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest firstRequest = getLastRequest();
+        OnAudioFocusChangeListener listener = firstRequest.getOnAudioFocusChangeListener();
+        listener.onAudioFocusChange(AUDIOFOCUS_LOSS_TRANSIENT);
+
+        verify(mAudioControlWrapper).onAudioFocusChange(USAGE_MEDIA, ZONE_ID,
+                AUDIOFOCUS_LOSS_TRANSIENT);
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mAudioControlWrapper, times(2)).onAudioFocusChange(USAGE_MEDIA, ZONE_ID,
+                AUDIOFOCUS_LOSS_TRANSIENT);
+    }
+
+    @Test
+    public void requestAudioFocus_withDifferentZoneAndSameUsage_keepsExistingRequest() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest firstRequest = getLastRequest();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, SECOND_ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(firstRequest);
+    }
+
+    @Test
+    public void requestAudioFocus_withSameZoneAndDifferentUsage_keepsExistingRequest() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest firstRequest = getLastRequest();
+        mHalAudioFocus.requestAudioFocus(USAGE_ALARM, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(firstRequest);
+    }
+
+    @Test
+    public void requestAudioFocus_withPreviouslyFailedRequest_doesNothingForOldRequest() {
+        when(mMockAudioManager.requestAudioFocus(any())).thenReturn(AUDIOFOCUS_REQUEST_FAILED,
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest firstRequest = getLastRequest();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(firstRequest);
+    }
+
+    @Test
+    public void onAudioFocusChange_notifiesHalOfChange() {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        verify(mAudioControlWrapper, never()).onAudioFocusChange(USAGE_MEDIA, ZONE_ID,
+                AUDIOFOCUS_LOSS_TRANSIENT);
+
+        AudioFocusRequest actualRequest = getLastRequest();
+        OnAudioFocusChangeListener listener = actualRequest.getOnAudioFocusChangeListener();
+        listener.onAudioFocusChange(AUDIOFOCUS_LOSS_TRANSIENT);
+
+        verify(mAudioControlWrapper).onAudioFocusChange(USAGE_MEDIA, ZONE_ID,
+                AUDIOFOCUS_LOSS_TRANSIENT);
+    }
+
+    @Test
+    public void abandonAudioFocus_withNoCurrentRequest_doesNothing() throws Exception {
+        whenAnyFocusRequestGranted();
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, ZONE_ID);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(any());
+    }
+
+    @Test
+    public void abandonAudioFocus_withInvalidZone_throws() {
+        whenAnyFocusRequestGranted();
+
+        assertThrows(IllegalArgumentException.class,
+                () -> mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, INVALID_ZONE_ID));
+    }
+
+    @Test
+    public void abandonAudioFocus_withCurrentRequest_abandonsExistingFocus() throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest actualRequest = getLastRequest();
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, ZONE_ID);
+
+        verify(mMockAudioManager).abandonAudioFocusRequest(actualRequest);
+    }
+
+    @Test
+    public void abandonAudioFocus_withCurrentRequest_notifiesHalOfFocusChange() throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest actualRequest = getLastRequest();
+        when(mMockAudioManager.abandonAudioFocusRequest(actualRequest)).thenReturn(
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, ZONE_ID);
+
+        verify(mAudioControlWrapper).onAudioFocusChange(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_LOSS);
+    }
+
+    @Test
+    public void abandonAudioFocus_withFocusAlreadyLost_doesNothing() throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest actualRequest = getLastRequest();
+        OnAudioFocusChangeListener listener = actualRequest.getOnAudioFocusChangeListener();
+        listener.onAudioFocusChange(AUDIOFOCUS_LOSS);
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, ZONE_ID);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(actualRequest);
+    }
+
+    @Test
+    public void abandonAudioFocus_withFocusTransientlyLost_abandonsExistingFocus()
+            throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest actualRequest = getLastRequest();
+        OnAudioFocusChangeListener listener = actualRequest.getOnAudioFocusChangeListener();
+        listener.onAudioFocusChange(AUDIOFOCUS_LOSS_TRANSIENT);
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, ZONE_ID);
+
+        verify(mMockAudioManager).abandonAudioFocusRequest(actualRequest);
+    }
+
+    @Test
+    public void abandonAudioFocus_withExistingRequestOfDifferentUsage_doesNothing()
+            throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_ALARM, ZONE_ID);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(any());
+    }
+
+    @Test
+    public void abandonAudioFocus_withExistingRequestOfDifferentZoneId_doesNothing()
+            throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, SECOND_ZONE_ID);
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(any());
+    }
+
+    @Test
+    public void abandonAudioFocus_withFailedRequest_doesNotNotifyHal() throws Exception {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest request = getLastRequest();
+
+        when(mMockAudioManager.abandonAudioFocusRequest(request))
+                .thenReturn(AUDIOFOCUS_REQUEST_FAILED);
+
+        mHalAudioFocus.abandonAudioFocus(USAGE_MEDIA, ZONE_ID);
+
+        verify(mAudioControlWrapper, never())
+                .onAudioFocusChange(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_LOSS);
+    }
+
+    @Test
+    public void reset_abandonsExistingRequests() {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest mediaRequest = getLastRequest();
+        mHalAudioFocus.requestAudioFocus(USAGE_ALARM, ZONE_ID, AUDIOFOCUS_GAIN);
+        AudioFocusRequest alarmRequest = getLastRequest();
+
+        verify(mMockAudioManager, never()).abandonAudioFocusRequest(any());
+
+        mHalAudioFocus.reset();
+
+        verify(mMockAudioManager).abandonAudioFocusRequest(mediaRequest);
+        verify(mMockAudioManager).abandonAudioFocusRequest(alarmRequest);
+        verifyNoMoreInteractions(mMockAudioManager);
+    }
+
+    @Test
+    public void reset_notifiesHal() {
+        whenAnyFocusRequestGranted();
+        mHalAudioFocus.requestAudioFocus(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_GAIN);
+        mHalAudioFocus.requestAudioFocus(USAGE_ALARM, ZONE_ID, AUDIOFOCUS_GAIN);
+
+        verify(mAudioControlWrapper, never()).onAudioFocusChange(anyInt(), eq(ZONE_ID),
+                eq(AUDIOFOCUS_LOSS));
+        when(mMockAudioManager.abandonAudioFocusRequest(any())).thenReturn(
+                AUDIOFOCUS_REQUEST_GRANTED);
+
+        mHalAudioFocus.reset();
+
+        verify(mAudioControlWrapper).onAudioFocusChange(USAGE_MEDIA, ZONE_ID, AUDIOFOCUS_LOSS);
+        verify(mAudioControlWrapper).onAudioFocusChange(USAGE_ALARM, ZONE_ID, AUDIOFOCUS_LOSS);
+    }
+
+    private void whenAnyFocusRequestGranted() {
+        when(mMockAudioManager.requestAudioFocus(any())).thenReturn(AUDIOFOCUS_REQUEST_GRANTED);
+    }
+
+    private AudioFocusRequest getLastRequest() {
+        ArgumentCaptor<AudioFocusRequest> captor = ArgumentCaptor.forClass(AudioFocusRequest.class);
+        verify(mMockAudioManager, atLeastOnce()).requestAudioFocus(captor.capture());
+        return captor.getValue();
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/com/android/car/cluster/InstrumentClusterServiceTest.java b/tests/carservice_unit_test/src/com/android/car/com/android/car/cluster/InstrumentClusterServiceTest.java
new file mode 100644
index 0000000..f1bd536
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/com/android/car/cluster/InstrumentClusterServiceTest.java
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2020 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.car.cluster;
+
+import static android.car.settings.CarSettings.Global.DISABLE_INSTRUMENTATION_SERVICE;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doAnswer;
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+
+import android.car.cluster.renderer.IInstrumentCluster;
+import android.car.cluster.renderer.IInstrumentClusterNavigation;
+import android.car.navigation.CarNavigationInstrumentCluster;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.content.ContentResolver;
+import android.content.Context;
+import android.os.Bundle;
+import android.os.Looper;
+import android.view.KeyEvent;
+
+import androidx.test.InstrumentationRegistry;
+
+import com.android.car.AppFocusService;
+import com.android.car.CarInputService;
+import com.android.car.CarLocalServices;
+import com.android.car.CarServiceUtils;
+import com.android.car.R;
+import com.android.car.user.CarUserService;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+import org.mockito.stubbing.Answer;
+
+public class InstrumentClusterServiceTest extends AbstractExtendedMockitoTestCase {
+
+    private static final String DEFAULT_RENDERER_SERVICE =
+            "com.android.car.carservice_unittest/.FakeService";
+
+    private InstrumentClusterService mService;
+
+    @Mock
+    private Context mContext;
+    @Mock
+    private AppFocusService mAppFocusService;
+    @Mock
+    private CarInputService mCarInputService;
+    @Mock
+    private CarUserService mCarUserService;
+
+    private final IInstrumentClusterNavigationImpl mInstrumentClusterNavigation =
+            new IInstrumentClusterNavigationImpl();
+
+    private final IInstrumentCluster mInstrumentClusterRenderer = new IInstrumentCluster.Stub() {
+
+        @Override
+        public IInstrumentClusterNavigation getNavigationService() {
+            return mInstrumentClusterNavigation;
+        }
+
+        @Override
+        public void setNavigationContextOwner(int uid, int pid) {
+        }
+
+        @Override
+        public void onKeyEvent(KeyEvent keyEvent) {
+        }
+    };
+
+    @Before
+    public void setUp() {
+        doReturn(DEFAULT_RENDERER_SERVICE).when(mContext).getString(
+                R.string.instrumentClusterRendererService);
+        doReturn(true).when(mContext).bindServiceAsUser(any(), any(), anyInt(), any());
+        ContentResolver cr = InstrumentationRegistry.getTargetContext().getContentResolver();
+        doReturn(cr).when(mContext).getContentResolver();
+        putSettingsString(DISABLE_INSTRUMENTATION_SERVICE, "false");
+        doAnswer((Answer<Void>) invocationOnMock -> {
+                    Runnable r = invocationOnMock.getArgument(0);
+                    r.run();
+                    return null;
+                }
+        ).when(mCarUserService).runOnUser0Unlock(any());
+        CarLocalServices.removeServiceForTest(CarUserService.class);
+        CarLocalServices.addService(CarUserService.class, mCarUserService);
+
+        setNewService();
+    }
+
+    private void setNewService() {
+        // Must prepare Looper (once) otherwise InstrumentClusterService constructor will fail.
+        Looper looper = Looper.myLooper();
+        if (looper == null) {
+            Looper.prepare();
+        }
+        mService = new InstrumentClusterService(mContext, mAppFocusService, mCarInputService);
+    }
+
+    @After
+    public void tearDown() {
+        CarLocalServices.removeServiceForTest(CarUserService.class);
+    }
+
+    private void initService(boolean connect) {
+        mService.init();
+        if (connect) {
+            notifyRendererServiceConnection();
+        }
+    }
+
+    private void notifyRendererServiceConnection() {
+        mService.mRendererServiceConnection.onServiceConnected(null,
+                mInstrumentClusterRenderer.asBinder());
+    }
+
+    @Test
+    public void testNonNullManager() throws Exception {
+        initService(/* connect= */ true);
+        checkValidClusterNavigation();
+    }
+
+    @Test
+    public void testDelayedConnection() throws Exception {
+        initService(/* connect= */ false);
+        CarServiceUtils.runOnMain(() -> {
+            // need to delay notification
+            try {
+                Thread.sleep(50);
+            } catch (InterruptedException e) {
+            }
+            notifyRendererServiceConnection();
+        });
+        checkValidClusterNavigation();
+    }
+
+    @Test
+    public void testNoConfig() throws Exception {
+        doReturn("").when(mContext).getString(R.string.instrumentClusterRendererService);
+        setNewService();
+        initService(/* connect= */ false);
+        IInstrumentClusterNavigation navigationService = mService.getNavigationService();
+        assertThat(navigationService).isNull();
+    }
+
+    private void checkValidClusterNavigation() throws Exception {
+        IInstrumentClusterNavigation navigationService = mService.getNavigationService();
+        assertThat(navigationService).isNotNull();
+        // should pass wrapper from car service
+        assertThat(navigationService).isNotEqualTo(mInstrumentClusterNavigation);
+        assertThat(navigationService.getInstrumentClusterInfo()).isEqualTo(
+                mInstrumentClusterNavigation.mClusterInfo);
+        Bundle bundle = new Bundle();
+        navigationService.onNavigationStateChanged(bundle);
+        assertThat(bundle).isEqualTo(mInstrumentClusterNavigation.mLastBundle);
+    }
+
+    private static class IInstrumentClusterNavigationImpl
+            extends IInstrumentClusterNavigation.Stub {
+
+        private final CarNavigationInstrumentCluster mClusterInfo =
+                CarNavigationInstrumentCluster.createCustomImageCluster(/*minIntervalMs= */ 100,
+                        /* imageWidth= */ 800, /* imageHeight= */ 480,
+                        /* imageColorDepthBits= */ 32);
+
+        private Bundle mLastBundle;
+
+        @Override
+        public void onNavigationStateChanged(Bundle bundle) {
+            mLastBundle = bundle;
+        }
+
+        @Override
+        public CarNavigationInstrumentCluster getInstrumentClusterInfo() {
+            return mClusterInfo;
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/HalClientUnitTest.java b/tests/carservice_unit_test/src/com/android/car/hal/HalClientUnitTest.java
new file mode 100644
index 0000000..8b18119
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/hal/HalClientUnitTest.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2020 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.car.hal;
+
+import static android.car.test.mocks.CarArgumentMatchers.isProperty;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.expectThrows;
+
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.hardware.automotive.vehicle.V2_0.IVehicle;
+import android.hardware.automotive.vehicle.V2_0.IVehicleCallback;
+import android.hardware.automotive.vehicle.V2_0.StatusCode;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
+import android.os.Looper;
+import android.os.RemoteException;
+import android.os.ServiceSpecificException;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+
+public final class HalClientUnitTest extends AbstractExtendedMockitoTestCase {
+
+    private static final int WAIT_CAP_FOR_RETRIABLE_RESULT_MS = 100;
+    private static final int SLEEP_BETWEEN_RETRIABLE_INVOKES_MS = 50;
+
+    private static final int PROP = 42;
+    private static final int AREA_ID = 108;
+
+    private final VehiclePropValue mProp = new VehiclePropValue();
+
+    @Mock IVehicle mIVehicle;
+    @Mock IVehicleCallback mIVehicleCallback;
+
+    private HalClient mClient;
+
+    @Before
+    public void setFixtures() {
+        mClient = new HalClient(mIVehicle, Looper.getMainLooper(), mIVehicleCallback,
+                WAIT_CAP_FOR_RETRIABLE_RESULT_MS, SLEEP_BETWEEN_RETRIABLE_INVOKES_MS);
+        mProp.prop = PROP;
+        mProp.areaId = AREA_ID;
+    }
+
+    @Test
+    public void testSet_remoteExceptionThenFail() throws Exception {
+        when(mIVehicle.set(isProperty(PROP)))
+            .thenThrow(new RemoteException("Never give up, never surrender!"))
+            .thenThrow(new RemoteException("D'OH!"));
+
+        Exception actualException = expectThrows(ServiceSpecificException.class,
+                () -> mClient.setValue(mProp));
+
+        assertThat(actualException).hasMessageThat().contains(Integer.toHexString(PROP));
+        assertThat(actualException).hasMessageThat().contains(Integer.toHexString(AREA_ID));
+    }
+
+    @Test
+    public void testSet_remoteExceptionThenOk() throws Exception {
+        when(mIVehicle.set(isProperty(PROP)))
+            .thenThrow(new RemoteException("Never give up, never surrender!"))
+            .thenReturn(StatusCode.OK);
+
+        mClient.setValue(mProp);
+    }
+
+    @Test
+    public void testSet_invalidArgument() throws Exception {
+        when(mIVehicle.set(isProperty(PROP))).thenReturn(StatusCode.INVALID_ARG);
+
+        Exception actualException = expectThrows(IllegalArgumentException.class,
+                () -> mClient.setValue(mProp));
+
+        assertThat(actualException).hasMessageThat().contains(Integer.toHexString(PROP));
+        assertThat(actualException).hasMessageThat().contains(Integer.toHexString(AREA_ID));
+    }
+
+    @Test
+    public void testSet_otherError() throws Exception {
+        when(mIVehicle.set(isProperty(PROP))).thenReturn(StatusCode.INTERNAL_ERROR);
+
+        Exception actualException = expectThrows(ServiceSpecificException.class,
+                () -> mClient.setValue(mProp));
+
+        assertThat(actualException).hasMessageThat().contains(Integer.toHexString(PROP));
+        assertThat(actualException).hasMessageThat().contains(Integer.toHexString(AREA_ID));
+    }
+
+    @Test
+    public void testSet_ok() throws Exception {
+        when(mIVehicle.set(isProperty(PROP))).thenReturn(StatusCode.OK);
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/PropertyHalServiceIdsTest.java b/tests/carservice_unit_test/src/com/android/car/hal/PropertyHalServiceIdsTest.java
index 59498cb..e128b19 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/PropertyHalServiceIdsTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/PropertyHalServiceIdsTest.java
@@ -17,12 +17,22 @@
 package com.android.car.hal;
 
 import android.car.Car;
+import android.car.VehicleHvacFanDirection;
 import android.car.VehiclePropertyIds;
+import android.hardware.automotive.vehicle.V2_0.VehicleGear;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
+import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
+import android.hardware.automotive.vehicle.V2_0.VehicleUnit;
 import android.hardware.automotive.vehicle.V2_0.VehicleVendorPermission;
+import android.os.SystemClock;
 import android.util.Log;
 
 import androidx.test.runner.AndroidJUnit4;
 
+import com.android.car.vehiclehal.VehiclePropValueBuilder;
+
+import com.google.common.truth.Truth;
+
 import org.junit.Assert;
 import org.junit.Before;
 import org.junit.Rule;
@@ -53,6 +63,32 @@
             VehiclePropertyIds.HVAC_FAN_SPEED, VehiclePropertyIds.DOOR_LOCK};
     private static final List<Integer> CONFIG_ARRAY = new ArrayList<>();
     private static final List<Integer> CONFIG_ARRAY_INVALID = new ArrayList<>();
+    //payload test
+    private static final VehiclePropValue GEAR_WITH_VALID_VALUE =
+            VehiclePropValueBuilder.newBuilder(VehicleProperty.GEAR_SELECTION)
+            .addIntValue(VehicleGear.GEAR_DRIVE)
+            .setTimestamp(SystemClock.elapsedRealtimeNanos()).build();
+    private static final VehiclePropValue GEAR_WITH_EXTRA_VALUE =
+            VehiclePropValueBuilder.newBuilder(VehicleProperty.GEAR_SELECTION)
+                    .addIntValue(VehicleGear.GEAR_DRIVE)
+                    .addIntValue(VehicleGear.GEAR_1)
+                    .setTimestamp(SystemClock.elapsedRealtimeNanos()).build();
+    private static final VehiclePropValue GEAR_WITH_INVALID_VALUE =
+            VehiclePropValueBuilder.newBuilder(VehicleProperty.GEAR_SELECTION)
+                    .addIntValue(VehicleUnit.KILOPASCAL)
+                    .setTimestamp(SystemClock.elapsedRealtimeNanos()).build();
+    private static final VehiclePropValue GEAR_WITH_INVALID_TYPE_VALUE =
+            VehiclePropValueBuilder.newBuilder(VehicleProperty.GEAR_SELECTION)
+                    .addFloatValue(1.0f)
+                    .setTimestamp(SystemClock.elapsedRealtimeNanos()).build();
+    private static final VehiclePropValue HVAC_FAN_DIRECTIONS_VALID =
+            VehiclePropValueBuilder.newBuilder(VehicleProperty.HVAC_FAN_DIRECTION)
+                    .addIntValue(VehicleHvacFanDirection.FACE | VehicleHvacFanDirection.FLOOR)
+                    .setTimestamp(SystemClock.elapsedRealtimeNanos()).build();
+    private static final VehiclePropValue HVAC_FAN_DIRECTIONS_INVALID =
+            VehiclePropValueBuilder.newBuilder(VehicleProperty.HVAC_FAN_DIRECTION)
+                    .addIntValue(VehicleHvacFanDirection.FACE | 0x100)
+                    .setTimestamp(SystemClock.elapsedRealtimeNanos()).build();
     @Before
     public void setUp() {
         mPropertyHalServiceIds = new PropertyHalServiceIds();
@@ -90,7 +126,6 @@
         Assert.assertEquals(Car.PERMISSION_CONTROL_CAR_CLIMATE,
                 mPropertyHalServiceIds.getWritePermission(VehiclePropertyIds.HVAC_FAN_SPEED));
     }
-
     /**
      * Test {@link PropertyHalServiceIds#customizeVendorPermission(List)}
      */
@@ -143,4 +178,19 @@
         }
     }
 
+    /**
+     * Test {@link PropertyHalServiceIds#checkPayload(VehiclePropValue)}
+     */
+    @Test
+    public void testPayload() {
+        Truth.assertThat(mPropertyHalServiceIds.checkPayload(GEAR_WITH_VALID_VALUE)).isTrue();
+        Truth.assertThat(mPropertyHalServiceIds.checkPayload(GEAR_WITH_EXTRA_VALUE)).isFalse();
+        Truth.assertThat(mPropertyHalServiceIds.checkPayload(GEAR_WITH_INVALID_VALUE)).isFalse();
+        Truth.assertThat(mPropertyHalServiceIds.checkPayload(GEAR_WITH_INVALID_TYPE_VALUE))
+                .isFalse();
+
+        Truth.assertThat(mPropertyHalServiceIds.checkPayload(HVAC_FAN_DIRECTIONS_VALID)).isTrue();
+        Truth.assertThat(mPropertyHalServiceIds.checkPayload(HVAC_FAN_DIRECTIONS_INVALID))
+                .isFalse();
+    }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java b/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java
index 622c66b..67a9b6f 100644
--- a/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/hal/UserHalServiceTest.java
@@ -18,18 +18,32 @@
 import static android.car.VehiclePropertyIds.CURRENT_GEAR;
 import static android.car.VehiclePropertyIds.INITIAL_USER_INFO;
 import static android.car.VehiclePropertyIds.SWITCH_USER;
+import static android.car.VehiclePropertyIds.USER_IDENTIFICATION_ASSOCIATION;
+import static android.car.test.mocks.CarArgumentMatchers.isProperty;
+import static android.car.test.mocks.CarArgumentMatchers.isPropertyWithValues;
+import static android.car.test.util.VehicleHalTestingHelper.newConfig;
+import static android.car.test.util.VehicleHalTestingHelper.newSubscribableConfig;
 import static android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType.COLD_BOOT;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.CUSTOM_1;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType.KEY_FOB;
+import static android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
 import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.argThat;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertThrows;
 
+import android.annotation.NonNull;
 import android.car.hardware.property.VehicleHalStatusCode;
 import android.car.userlib.HalCallback;
 import android.car.userlib.UserHalHelper;
@@ -39,22 +53,31 @@
 import android.hardware.automotive.vehicle.V2_0.SwitchUserResponse;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
 import android.hardware.automotive.vehicle.V2_0.UserInfo;
 import android.hardware.automotive.vehicle.V2_0.UsersInfo;
 import android.hardware.automotive.vehicle.V2_0.VehiclePropConfig;
 import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
-import android.hardware.automotive.vehicle.V2_0.VehiclePropertyAccess;
-import android.hardware.automotive.vehicle.V2_0.VehiclePropertyChangeMode;
+import android.os.Handler;
+import android.os.Looper;
 import android.os.ServiceSpecificException;
 import android.os.SystemClock;
 import android.os.UserHandle;
 import android.util.Log;
 import android.util.Pair;
 
+import com.android.car.CarLocalServices;
+import com.android.car.user.CarUserService;
+
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.ArgumentMatcher;
+import org.mockito.ArgumentCaptor;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 
@@ -74,7 +97,7 @@
     /**
      * Timeout passed to {@link UserHalService} methods
      */
-    private static final int TIMEOUT_MS = 20;
+    private static final int TIMEOUT_MS = 50;
 
     /**
      * Timeout for {@link GenericHalCallback#assertCalled()} for tests where the HAL is supposed to
@@ -86,29 +109,39 @@
      * Timeout for {@link GenericHalCallback#assertCalled()} for tests where the HAL is not supposed
      * to return anything - it's a slightly longer to make sure the test doesn't fail prematurely.
      */
-    private static final int CALLBACK_TIMEOUT_TIMEOUT = TIMEOUT_MS + 500;
+    private static final int CALLBACK_TIMEOUT_TIMEOUT = TIMEOUT_MS + 450;
 
-    // Used when crafting a reqquest property - the real value will be set by the mock.
-    private static final int REQUEST_ID_PLACE_HOLDER = 42;
+    // Used when crafting a request property - the real value will be set by the mock.
+    private static final int REQUEST_ID_PLACE_HOLDER = 1111;
+
+    private static final int DEFAULT_REQUEST_ID = 2222;
+
+    private static final int DEFAULT_USER_ID = 333;
+    private static final int DEFAULT_USER_FLAGS = 444;
 
     private static final int INITIAL_USER_INFO_RESPONSE_ACTION = 108;
 
+
     @Mock
     private VehicleHal mVehicleHal;
+    @Mock
+    private CarUserService mCarUserService;
+
+    private final Handler mHandler = new Handler(Looper.getMainLooper());
 
     private final UserInfo mUser0 = new UserInfo();
     private final UserInfo mUser10 = new UserInfo();
 
     private final UsersInfo mUsersInfo = new UsersInfo();
 
+    // Must be a spy so we can mock getNextRequestId()
     private UserHalService mUserHalService;
 
     @Before
     public void setFixtures() {
-        mUserHalService = new UserHalService(mVehicleHal);
-        mUserHalService.takeProperties(Arrays.asList(
-                newSubscribableConfig(INITIAL_USER_INFO),
-                newSubscribableConfig(SWITCH_USER)));
+        mUserHalService = spy(new UserHalService(mVehicleHal, mHandler));
+        // Needs at least one property, otherwise isSupported() will return false
+        mUserHalService.takeProperties(Arrays.asList(newSubscribableConfig(INITIAL_USER_INFO)));
 
         mUser0.userId = 0;
         mUser0.flags = 100;
@@ -120,6 +153,13 @@
         mUsersInfo.existingUsers = new ArrayList<>(2);
         mUsersInfo.existingUsers.add(mUser0);
         mUsersInfo.existingUsers.add(mUser10);
+
+        CarLocalServices.addService(CarUserService.class, mCarUserService);
+    }
+
+    @After
+    public void clearFixtures() {
+        CarLocalServices.removeServiceForTest(CarUserService.class);
     }
 
     @Test
@@ -153,7 +193,8 @@
     public void testSupportedProperties() {
         assertThat(mUserHalService.getAllSupportedProperties()).asList().containsAllOf(
                 INITIAL_USER_INFO,
-                SWITCH_USER);
+                SWITCH_USER,
+                USER_IDENTIFICATION_ASSOCIATION);
     }
 
     @Test
@@ -233,10 +274,8 @@
 
     @Test
     public void testGetUserInfo_halReplyWithWrongRequestId() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = INITIAL_USER_INFO;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+                    REQUEST_ID_PLACE_HOLDER, INITIAL_USER_INFO_RESPONSE_ACTION);
 
         replySetPropertyWithOnChangeEvent(INITIAL_USER_INFO, propResponse,
                 /* rightRequestId= */ false);
@@ -253,11 +292,8 @@
 
     @Test
     public void testGetUserInfo_halReturnedInvalidAction() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = INITIAL_USER_INFO;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(INITIAL_USER_INFO_RESPONSE_ACTION);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+                    REQUEST_ID_PLACE_HOLDER, INITIAL_USER_INFO_RESPONSE_ACTION);
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
                 INITIAL_USER_INFO, propResponse, /* rightRequestId= */ true);
@@ -279,11 +315,8 @@
 
     @Test
     public void testGetUserInfo_successDefault() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = INITIAL_USER_INFO;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(InitialUserInfoResponseAction.DEFAULT);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+                    REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.DEFAULT);
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
                 INITIAL_USER_INFO, propResponse, /* rightRequestId= */ true);
@@ -311,11 +344,8 @@
     @Test
     public void testGetUserInfo_successSwitchUser() throws Exception {
         int userIdToSwitch = 42;
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = INITIAL_USER_INFO;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(InitialUserInfoResponseAction.SWITCH);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+                    REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.SWITCH);
         propResponse.value.int32Values.add(userIdToSwitch);
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
@@ -345,11 +375,8 @@
     public void testGetUserInfo_successCreateUser() throws Exception {
         int newUserFlags = 108;
         String newUserName = "Groot";
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = INITIAL_USER_INFO;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(InitialUserInfoResponseAction.CREATE);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(INITIAL_USER_INFO,
+                    REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.CREATE);
         propResponse.value.int32Values.add(newUserFlags);
         propResponse.value.stringValue = newUserName;
 
@@ -438,10 +465,8 @@
 
     @Test
     public void testSwitchUser_halReplyWithWrongRequestId() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = SWITCH_USER;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                    REQUEST_ID_PLACE_HOLDER, InitialUserInfoResponseAction.SWITCH);
 
         replySetPropertyWithOnChangeEvent(SWITCH_USER, propResponse,
                 /* rightRequestId= */ false);
@@ -457,11 +482,8 @@
 
     @Test
     public void testSwitchUser_halReturnedInvalidMessageType() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = SWITCH_USER;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(SwitchUserMessageType.VEHICLE_REQUEST);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.LEGACY_ANDROID_SWITCH);
         propResponse.value.int32Values.add(SwitchUserStatus.SUCCESS);
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
@@ -474,7 +496,7 @@
         callback.assertCalled();
 
         // Make sure the arguments were properly converted
-        assertSwitchUserSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
+        assertHALSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
 
         // Assert response
         assertCallbackStatus(callback, HalCallback.STATUS_WRONG_HAL_RESPONSE);
@@ -483,11 +505,8 @@
 
     @Test
     public void testUserSwitch_success() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = SWITCH_USER;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(SwitchUserMessageType.VEHICLE_RESPONSE);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                    REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE);
         propResponse.value.int32Values.add(SwitchUserStatus.SUCCESS);
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
@@ -500,7 +519,7 @@
         callback.assertCalled();
 
         // Make sure the arguments were properly converted
-        assertSwitchUserSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
+        assertHALSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
 
         // Assert response
         assertCallbackStatus(callback, HalCallback.STATUS_OK);
@@ -511,11 +530,8 @@
 
     @Test
     public void testUserSwitch_failure() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = SWITCH_USER;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(SwitchUserMessageType.VEHICLE_RESPONSE);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                    REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE);
         propResponse.value.int32Values.add(SwitchUserStatus.FAILURE);
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
@@ -528,7 +544,7 @@
         callback.assertCalled();
 
         // Make sure the arguments were properly converted
-        assertSwitchUserSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
+        assertHALSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
 
         // Assert response
         assertCallbackStatus(callback, HalCallback.STATUS_OK);
@@ -557,11 +573,8 @@
 
     @Test
     public void testSwitchUser_halReturnedInvalidStatus() throws Exception {
-        // TODO(b/150419600): use helper method to convert prop value to proper req
-        VehiclePropValue propResponse = new VehiclePropValue();
-        propResponse.prop = SWITCH_USER;
-        propResponse.value.int32Values.add(REQUEST_ID_PLACE_HOLDER);
-        propResponse.value.int32Values.add(SwitchUserMessageType.VEHICLE_RESPONSE);
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                    REQUEST_ID_PLACE_HOLDER, SwitchUserMessageType.VEHICLE_RESPONSE);
         propResponse.value.int32Values.add(/*status =*/ 110); // an invalid status
 
         AtomicReference<VehiclePropValue> reqCaptor = replySetPropertyWithOnChangeEvent(
@@ -574,13 +587,403 @@
         callback.assertCalled();
 
         // Make sure the arguments were properly converted
-        assertSwitchUserSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
+        assertHALSetRequest(reqCaptor.get(), SwitchUserMessageType.ANDROID_SWITCH, mUser10);
 
         // Assert response
         assertCallbackStatus(callback, HalCallback.STATUS_WRONG_HAL_RESPONSE);
         assertThat(callback.response).isNull();
     }
 
+    @Test
+    public void testUserSwitch_OEMRequest_success() throws Exception {
+        int requestId = -4;
+        int targetUserId = 11;
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                requestId, SwitchUserMessageType.VEHICLE_REQUEST);
+
+        propResponse.value.int32Values.add(targetUserId);
+
+        mUserHalService.onHalEvents(Arrays.asList(propResponse));
+        waitForHandler();
+
+        verify(mCarUserService).switchAndroidUserFromHal(requestId, targetUserId);
+    }
+
+    @Test
+    public void testUserSwitch_OEMRequest_failure_positiveRequestId() throws Exception {
+        int requestId = 4;
+        int targetUserId = 11;
+        VehiclePropValue propResponse = UserHalHelper.createPropRequest(SWITCH_USER,
+                requestId, SwitchUserMessageType.VEHICLE_REQUEST);
+        propResponse.value.int32Values.add(targetUserId);
+
+        mUserHalService.onHalEvents(Arrays.asList(propResponse));
+        waitForHandler();
+
+        verify(mCarUserService, never()).switchAndroidUserFromHal(anyInt(), anyInt());
+    }
+
+    @Test
+    public void testPostSwitchResponse_noUsersInfo() {
+        assertThrows(NullPointerException.class,
+                () -> mUserHalService.postSwitchResponse(42, mUser10, null));
+    }
+
+    @Test
+    public void testPostSwitchResponse_HalCalledWithCorrectProp() {
+        mUserHalService.postSwitchResponse(42, mUser10, mUsersInfo);
+        ArgumentCaptor<VehiclePropValue> propCaptor =
+                ArgumentCaptor.forClass(VehiclePropValue.class);
+        verify(mVehicleHal).set(propCaptor.capture());
+        VehiclePropValue prop = propCaptor.getValue();
+        assertHALSetRequest(prop, SwitchUserMessageType.ANDROID_POST_SWITCH,
+                mUser10);
+    }
+
+    @Test
+    public void testUserSwitchLegacy_noUsersInfo() {
+        assertThrows(NullPointerException.class,
+                () -> mUserHalService.legacyUserSwitch(mUser10, null));
+    }
+
+    @Test
+    public void testUserSwitchLegacy_HalCalledWithCorrectProp() {
+        mUserHalService.legacyUserSwitch(mUser10, mUsersInfo);
+        ArgumentCaptor<VehiclePropValue> propCaptor =
+                ArgumentCaptor.forClass(VehiclePropValue.class);
+        verify(mVehicleHal).set(propCaptor.capture());
+        VehiclePropValue prop = propCaptor.getValue();
+        assertHALSetRequest(prop, SwitchUserMessageType.LEGACY_ANDROID_SWITCH,
+                mUser10);
+    }
+
+    @Test
+    public void testGetUserAssociation_nullRequest() {
+        assertThrows(NullPointerException.class, () -> mUserHalService.getUserAssociation(null));
+    }
+
+    @Test
+    public void testGetUserAssociation_requestWithDuplicatedTypes() {
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.numberAssociationTypes = 2;
+        request.associationTypes.add(KEY_FOB);
+        request.associationTypes.add(KEY_FOB);
+
+        assertThrows(IllegalArgumentException.class,
+                () -> mUserHalService.getUserAssociation(request));
+    }
+
+    @Test
+    public void testGetUserAssociation_invalidResponse() {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(1); // 1 associations
+        propResponse.value.int32Values.add(KEY_FOB); // type only, it's missing value
+        UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
+                propResponse);
+
+        assertThat(mUserHalService.getUserAssociation(request)).isNull();
+    }
+
+    @Test
+    public void testGetUserAssociation_nullResponse() {
+        UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(null);
+
+        assertThat(mUserHalService.getUserAssociation(request)).isNull();
+
+        verifyValidGetUserIdentificationRequestMade();
+    }
+
+    @Test
+    public void testGetUserAssociation_wrongNumberOfAssociationsOnResponse() {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(2); // 2 associations
+        propResponse.value.int32Values.add(KEY_FOB);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        propResponse.value.int32Values.add(CUSTOM_1);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
+                propResponse);
+
+        assertThat(mUserHalService.getUserAssociation(request)).isNull();
+
+        verifyValidGetUserIdentificationRequestMade();
+    }
+
+    @Test
+    public void testGetUserAssociation_typesOnResponseMismatchTypesOnRequest() {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(1); // 1 association
+        propResponse.value.int32Values.add(CUSTOM_1);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
+                propResponse);
+
+        assertThat(mUserHalService.getUserAssociation(request)).isNull();
+
+        verifyValidGetUserIdentificationRequestMade();
+    }
+
+    @Test
+    public void testGetUserAssociation_requestIdMismatch() {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID + 1);
+        propResponse.value.int32Values.add(1); // 1 association
+        propResponse.value.int32Values.add(KEY_FOB);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
+                propResponse);
+
+        assertThat(mUserHalService.getUserAssociation(request)).isNull();
+
+        verifyValidGetUserIdentificationRequestMade();
+    }
+
+    @Test
+    public void testGetUserAssociation_ok() {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(1); // 1 association
+        propResponse.value.int32Values.add(KEY_FOB);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        UserIdentificationGetRequest request = replyToValidGetUserIdentificationRequest(
+                propResponse);
+
+        UserIdentificationResponse response = mUserHalService.getUserAssociation(request);
+
+        assertThat(response.requestId).isEqualTo(DEFAULT_REQUEST_ID);
+        assertThat(response.numberAssociation).isEqualTo(1);
+        assertThat(response.associations).hasSize(1);
+        UserIdentificationAssociation actualAssociation = response.associations.get(0);
+        assertThat(actualAssociation.type).isEqualTo(KEY_FOB);
+        assertThat(actualAssociation.value).isEqualTo(ASSOCIATED_CURRENT_USER);
+    }
+
+    @Test
+    public void testSetUserAssociation_invalidTimeout() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        assertThrows(IllegalArgumentException.class, () ->
+                mUserHalService.setUserAssociation(0, request, (i, r) -> { }));
+        assertThrows(IllegalArgumentException.class, () ->
+                mUserHalService.setUserAssociation(-1, request, (i, r) -> { }));
+    }
+
+    @Test
+    public void testSetUserAssociation_nullRequest() {
+        assertThrows(NullPointerException.class, () ->
+                mUserHalService.setUserAssociation(TIMEOUT_MS, null, (i, r) -> { }));
+    }
+
+    @Test
+    public void testSetUserAssociation_nullCallback() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        assertThrows(NullPointerException.class, () ->
+                mUserHalService.setUserAssociation(TIMEOUT_MS, request, null));
+    }
+
+    @Test
+    public void testSetUserAssociation_requestWithDuplicatedTypes() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.numberAssociations = 2;
+        UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
+        association1.type = KEY_FOB;
+        association1.value = ASSOCIATE_CURRENT_USER;
+        request.associations.add(association1);
+        request.associations.add(association1);
+
+        assertThrows(IllegalArgumentException.class, () ->
+                mUserHalService.setUserAssociation(TIMEOUT_MS, request, (i, r) -> { }));
+    }
+
+    @Test
+    public void testSetUserAssociation_halSetTimedOut() throws Exception {
+        UserIdentificationSetRequest request = validUserIdentificationSetRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+        replySetPropertyWithTimeoutException(USER_IDENTIFICATION_ASSOCIATION);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_HAL_SET_TIMEOUT);
+        assertThat(callback.response).isNull();
+
+        // Make sure the pending request was removed
+        SystemClock.sleep(CALLBACK_TIMEOUT_TIMEOUT);
+        callback.assertNotCalledAgain();
+    }
+
+    @Test
+    public void testSetUserAssociation_halDidNotReply() throws Exception {
+        UserIdentificationSetRequest request = validUserIdentificationSetRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_HAL_RESPONSE_TIMEOUT);
+        assertThat(callback.response).isNull();
+    }
+
+    @Test
+    public void testSetUserAssociation_secondCallFailWhilePending() throws Exception {
+        UserIdentificationSetRequest request = validUserIdentificationSetRequest();
+        GenericHalCallback<UserIdentificationResponse> callback1 = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+        GenericHalCallback<UserIdentificationResponse> callback2 = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback1);
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback2);
+
+        callback1.assertCalled();
+        assertCallbackStatus(callback1, HalCallback.STATUS_HAL_RESPONSE_TIMEOUT);
+        assertThat(callback1.response).isNull();
+
+        callback2.assertCalled();
+        assertCallbackStatus(callback2, HalCallback.STATUS_CONCURRENT_OPERATION);
+        assertThat(callback1.response).isNull();
+    }
+
+    @Test
+    public void testSetUserAssociation_responseWithWrongRequestId() throws Exception {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID + 1);
+        AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+                USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
+        UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        // Assert request
+        verifyValidSetUserIdentificationRequestMade(propRequest.get());
+        // Assert response
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_WRONG_HAL_RESPONSE);
+        assertThat(callback.response).isNull();
+    }
+
+    @Test
+    public void testSetUserAssociation_notEnoughValuesOnResponse() throws Exception {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        // need at least 4: requestId, number associations, type1, value1
+        propResponse.value.int32Values.add(1);
+        propResponse.value.int32Values.add(2);
+        propResponse.value.int32Values.add(3);
+
+        AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+                USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
+        UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        // Assert request
+        verifyValidSetUserIdentificationRequestMade(propRequest.get());
+        // Assert response
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_WRONG_HAL_RESPONSE);
+        assertThat(callback.response).isNull();
+    }
+
+    @Test
+    public void testSetUserAssociation_wrongNumberOfAssociationsOnResponse() throws Exception {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(2); // 2 associations; request is just 1
+        propResponse.value.int32Values.add(KEY_FOB);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+        propResponse.value.int32Values.add(CUSTOM_1);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+
+        AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+                USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
+        UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        // Assert request
+        verifyValidSetUserIdentificationRequestMade(propRequest.get());
+        // Assert response
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_WRONG_HAL_RESPONSE);
+        assertThat(callback.response).isNull();
+    }
+
+    @Test
+    public void testSetUserAssociation_typeMismatchOnResponse() throws Exception {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(1); // 1 association
+        propResponse.value.int32Values.add(CUSTOM_1); // request is KEY_FOB
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+
+        AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+                USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
+        UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        // Assert request
+        verifyValidSetUserIdentificationRequestMade(propRequest.get());
+        // Assert response
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_WRONG_HAL_RESPONSE);
+        assertThat(callback.response).isNull();
+    }
+
+    @Test
+    public void testSetUserAssociation_ok() throws Exception {
+        VehiclePropValue propResponse = new VehiclePropValue();
+        propResponse.prop = USER_IDENTIFICATION_ASSOCIATION;
+        propResponse.value.int32Values.add(DEFAULT_REQUEST_ID);
+        propResponse.value.int32Values.add(1); // 1 association
+        propResponse.value.int32Values.add(KEY_FOB);
+        propResponse.value.int32Values.add(ASSOCIATED_CURRENT_USER);
+
+        AtomicReference<VehiclePropValue> propRequest = replySetPropertyWithOnChangeEvent(
+                USER_IDENTIFICATION_ASSOCIATION, propResponse, /* rightRequestId= */ true);
+        UserIdentificationSetRequest request = replyToValidSetUserIdentificationRequest();
+        GenericHalCallback<UserIdentificationResponse> callback = new GenericHalCallback<>(
+                CALLBACK_TIMEOUT_TIMEOUT);
+
+        mUserHalService.setUserAssociation(TIMEOUT_MS, request, callback);
+
+        // Assert request
+        verifyValidSetUserIdentificationRequestMade(propRequest.get());
+        // Assert response
+        callback.assertCalled();
+        assertCallbackStatus(callback, HalCallback.STATUS_OK);
+
+        UserIdentificationResponse actualResponse = callback.response;
+
+        assertThat(actualResponse.requestId).isEqualTo(DEFAULT_REQUEST_ID);
+        assertThat(actualResponse.numberAssociation).isEqualTo(1);
+        assertThat(actualResponse.associations).hasSize(1);
+        UserIdentificationAssociation actualAssociation = actualResponse.associations.get(0);
+        assertThat(actualAssociation.type).isEqualTo(KEY_FOB);
+        assertThat(actualAssociation.value).isEqualTo(ASSOCIATED_CURRENT_USER);
+    }
+
     /**
      * Asserts the given {@link UsersInfo} is properly represented in the {@link VehiclePropValue}.
      *
@@ -589,7 +992,9 @@
      * @param initialIndex first index of the info values in the property's {@code int32Values}
      */
     private void assertUsersInfo(VehiclePropValue value, UsersInfo info, int initialIndex) {
-        // TODO(b/150419600): use helper method to convert prop value to proper req to check users
+        // TODO: consider using UserHalHelper to convert the property into a specific request,
+        // and compare the request's UsersInfo.
+        // But such method is not needed in production code yet.
         ArrayList<Integer> values = value.value.int32Values;
         assertWithMessage("wrong values size").that(values)
                 .hasSize(initialIndex + 3 + info.numberUsers * 2);
@@ -635,7 +1040,8 @@
             int requestId = request.value.int32Values.get(0);
             int responseId = rightRequestId ? requestId : requestId + 1000;
             response.value.int32Values.set(0, responseId);
-            Log.d(TAG, "mockSetPropertyWithOnChange(): resp=" + response + " for req=" + request);
+            Log.d(TAG, "replySetPropertyWithOnChangeEvent(): resp=" + response + " for req="
+                    + request);
             mUserHalService.onHalEvents(Arrays.asList(response));
             return null;
         }).when(mVehicleHal).set(isProperty(prop));
@@ -650,12 +1056,67 @@
                 "PropId: 0x" + Integer.toHexString(prop))).when(mVehicleHal).set(isProperty(prop));
     }
 
+    /**
+     * Creates and set expectations for a valid request.
+     */
+    private UserIdentificationGetRequest replyToValidGetUserIdentificationRequest(
+            @NonNull VehiclePropValue response) {
+        mockNextRequestId(DEFAULT_REQUEST_ID);
+
+        UserIdentificationGetRequest request = new UserIdentificationGetRequest();
+        request.userInfo.userId = DEFAULT_USER_ID;
+        request.userInfo.flags = DEFAULT_USER_FLAGS;
+        request.numberAssociationTypes = 1;
+        request.associationTypes.add(KEY_FOB);
+
+        when(mVehicleHal.get(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
+                DEFAULT_REQUEST_ID, DEFAULT_USER_ID, DEFAULT_USER_FLAGS,
+                /* numberAssociations= */ 1, KEY_FOB)))
+            .thenReturn(response);
+
+        return request;
+    }
+
+    /**
+     * Creates and set expectations for a valid request.
+     */
+    private UserIdentificationSetRequest replyToValidSetUserIdentificationRequest() {
+        mockNextRequestId(DEFAULT_REQUEST_ID);
+        return validUserIdentificationSetRequest();
+    }
+
+    /**
+     * Creates a valid request that can be used in test cases where its content is not asserted.
+     */
+    private UserIdentificationSetRequest validUserIdentificationSetRequest() {
+        UserIdentificationSetRequest request = new UserIdentificationSetRequest();
+        request.userInfo.userId = DEFAULT_USER_ID;
+        request.userInfo.flags = DEFAULT_USER_FLAGS;
+        request.numberAssociations = 1;
+        UserIdentificationSetAssociation association1 = new UserIdentificationSetAssociation();
+        association1.type = KEY_FOB;
+        association1.value = ASSOCIATE_CURRENT_USER;
+        request.associations.add(association1);
+        return request;
+    }
+
+    /**
+     * Run empty runnable to make sure that all posted handlers are done.
+     */
+    private void waitForHandler() {
+        mHandler.runWithScissors(() -> { }, /* Default timeout */ CALLBACK_TIMEOUT_TIMEOUT);
+    }
+
+    private void mockNextRequestId(int requestId) {
+        doReturn(requestId).when(mUserHalService).getNextRequestId();
+    }
+
     private void assertInitialUserInfoSetRequest(VehiclePropValue req, int requestType) {
         assertThat(req.value.int32Values.get(1)).isEqualTo(requestType);
         assertUsersInfo(req, mUsersInfo, 2);
     }
 
-    private void assertSwitchUserSetRequest(VehiclePropValue req, int messageType,
+    private void assertHALSetRequest(VehiclePropValue req, int messageType,
             UserInfo targetUserInfo) {
         assertThat(req.value.int32Values.get(1)).isEqualTo(messageType);
         assertWithMessage("targetuser.id mismatch").that(req.value.int32Values.get(2))
@@ -665,8 +1126,7 @@
         assertUsersInfo(req, mUsersInfo, 4);
     }
 
-    private void assertCallbackStatus(GenericHalCallback callback,
-            int expectedStatus) {
+    private void assertCallbackStatus(GenericHalCallback<?> callback, int expectedStatus) {
         int actualStatus = callback.status;
         if (actualStatus == expectedStatus) return;
 
@@ -675,6 +1135,27 @@
                 + UserHalHelper.halCallbackStatusToString(actualStatus));
     }
 
+    /**
+     * Verifies {@code hal.get()} was called with the values used on
+     * {@link #replyToValidGetUserIdentificationRequest(VehiclePropValue)}.
+     */
+    private void verifyValidGetUserIdentificationRequestMade() {
+        verify(mVehicleHal).get(isPropertyWithValues(USER_IDENTIFICATION_ASSOCIATION,
+                DEFAULT_REQUEST_ID, DEFAULT_USER_ID, DEFAULT_USER_FLAGS,
+                /* numberAssociations= */ 1, KEY_FOB));
+    }
+
+    /**
+     * Verifies {@code hal.set()} was called with the values used on
+     * {@link #replyToValidSetUserIdentificationRequest(VehiclePropValue)}.
+     */
+    private void verifyValidSetUserIdentificationRequestMade(@NonNull VehiclePropValue request) {
+        assertThat(request.prop).isEqualTo(USER_IDENTIFICATION_ASSOCIATION);
+        assertThat(request.value.int32Values).containsExactly(DEFAULT_REQUEST_ID, DEFAULT_USER_ID,
+                DEFAULT_USER_FLAGS,
+                /* numberAssociations= */ 1, KEY_FOB, ASSOCIATE_CURRENT_USER);
+    }
+
     private final class GenericHalCallback<R> implements HalCallback<R> {
 
         private final CountDownLatch mLatch = new CountDownLatch(1);
@@ -720,47 +1201,4 @@
                     + mExtraCalls);
         }
     }
-
-    // TODO(b/149099817): move stuff below to common code
-
-    /**
-     * Custom Mockito matcher to check if a {@link VehiclePropValue} has the given {@code prop}.
-     */
-    public static VehiclePropValue isProperty(int prop) {
-        return argThat(new PropertyIdMatcher(prop));
-    }
-
-    private static class PropertyIdMatcher implements ArgumentMatcher<VehiclePropValue> {
-
-        public final int prop;
-
-        private PropertyIdMatcher(int prop) {
-            this.prop = prop;
-        }
-
-        @Override
-        public boolean matches(VehiclePropValue argument) {
-            return argument.prop == prop;
-        }
-    }
-
-    /**
-     * Creates an empty config for the given property.
-     */
-    private static VehiclePropConfig newConfig(int prop) {
-        VehiclePropConfig config = new VehiclePropConfig();
-        config.prop = prop;
-        return config;
-    }
-
-    /**
-     * Creates a config for the given property that passes the
-     * {@link VehicleHal#isPropertySubscribable(VehiclePropConfig)} criteria.
-     */
-    private static VehiclePropConfig newSubscribableConfig(int prop) {
-        VehiclePropConfig config = newConfig(prop);
-        config.access = VehiclePropertyAccess.READ_WRITE;
-        config.changeMode = VehiclePropertyChangeMode.ON_CHANGE;
-        return config;
-    }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/hardware/power/CarPowerManagerUnitTest.java b/tests/carservice_unit_test/src/com/android/car/hardware/power/CarPowerManagerUnitTest.java
new file mode 100644
index 0000000..29022f5
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/hardware/power/CarPowerManagerUnitTest.java
@@ -0,0 +1,381 @@
+/*
+ * Copyright (C) 2020 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.car.hardware.power;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+import android.car.Car;
+import android.car.hardware.power.CarPowerManager;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.car.test.mocks.JavaMockitoHelper;
+import android.content.Context;
+import android.content.res.Resources;
+import android.hardware.automotive.vehicle.V2_0.VehicleApPowerStateReq;
+import android.hardware.automotive.vehicle.V2_0.VehicleApPowerStateShutdownParam;
+import android.test.suitebuilder.annotation.SmallTest;
+import android.util.Log;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import com.android.car.CarPowerManagementService;
+import com.android.car.MockedPowerHalService;
+import com.android.car.R;
+import com.android.car.hal.PowerHalService;
+import com.android.car.hal.PowerHalService.PowerState;
+import com.android.car.systeminterface.DisplayInterface;
+import com.android.car.systeminterface.SystemInterface;
+import com.android.car.systeminterface.SystemStateInterface;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+
+import java.time.Duration;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Semaphore;
+
+@SmallTest
+public class CarPowerManagerUnitTest extends AbstractExtendedMockitoTestCase {
+    private static final String TAG = CarPowerManagerUnitTest.class.getSimpleName();
+    private static final long WAIT_TIMEOUT_MS = 20;
+    private static final long WAIT_TIMEOUT_LONG_MS = 50;
+
+    private final MockDisplayInterface mDisplayInterface = new MockDisplayInterface();
+    private final MockSystemStateInterface mSystemStateInterface = new MockSystemStateInterface();
+    private final Context mContext =
+            InstrumentationRegistry.getInstrumentation().getTargetContext();
+
+    private MockedPowerHalService mPowerHal;
+    private SystemInterface mSystemInterface;
+    private CarPowerManagementService mService;
+    private CarPowerManager mCarPowerManager;
+
+    @Mock
+    private Resources mResources;
+    @Mock
+    private Car mCar;
+
+    @Before
+    public void setUp() throws Exception {
+        mPowerHal = new MockedPowerHalService(true /*isPowerStateSupported*/,
+                true /*isDeepSleepAllowed*/, true /*isTimedWakeupAllowed*/);
+        mSystemInterface = SystemInterface.Builder.defaultSystemInterface(mContext)
+            .withDisplayInterface(mDisplayInterface)
+            .withSystemStateInterface(mSystemStateInterface)
+            .build();
+        setService();
+        mCarPowerManager = new CarPowerManager(mCar, mService);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        if (mService != null) {
+            mService.release();
+        }
+    }
+
+    @Test
+    public void testRequestShutdownOnNextSuspend_positive() throws Exception {
+        setPowerOn();
+        // Tell it to shutdown
+        mCarPowerManager.requestShutdownOnNextSuspend();
+        // Request suspend
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP);
+        // Verify shutdown
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_SHUTDOWN_START, 0);
+    }
+
+    @Test
+    public void testRequestShutdownOnNextSuspend_negative() throws Exception {
+        setPowerOn();
+
+        // Do not tell it to shutdown
+
+        // Request suspend
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP);
+        // Verify suspend
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY, 0);
+    }
+
+    @Test
+    public void testScheduleNextWakeupTime() throws Exception {
+        setPowerOn();
+
+        int wakeTime = 1234;
+        mCarPowerManager.scheduleNextWakeupTime(wakeTime);
+
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP);
+
+        // Verify that we suspended with the requested wake-up time
+        assertStateReceivedForShutdownOrSleepWithPostpone(
+                PowerHalService.SET_DEEP_SLEEP_ENTRY, wakeTime);
+    }
+
+    @Test
+    public void testSetListener() throws Exception {
+        setPowerOn();
+
+        WaitablePowerStateListener listener = new WaitablePowerStateListener(2);
+
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP);
+
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY, 0);
+
+        int finalState = listener.await();
+        assertThat(finalState).isEqualTo(PowerHalService.SET_DEEP_SLEEP_ENTRY);
+    }
+
+    @Test
+    public void testSetListenerWithCompletion() throws Exception {
+        setPowerOn();
+
+        WaitablePowerStateListenerWithCompletion listener =
+                new WaitablePowerStateListenerWithCompletion(2);
+
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY, 0);
+
+        int finalState = listener.await();
+        assertThat(finalState).isEqualTo(PowerHalService.SET_DEEP_SLEEP_ENTRY);
+    }
+
+    @Test
+    public void testClearListener() throws Exception {
+        setPowerOn();
+
+        // Set a listener
+        WaitablePowerStateListener listener = new WaitablePowerStateListener(1);
+
+        mCarPowerManager.clearListener();
+
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                VehicleApPowerStateShutdownParam.CAN_SLEEP);
+
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY, 0);
+        // Verify that the listener didn't run
+        assertThrows(IllegalStateException.class, () -> listener.await());
+    }
+
+    @Test
+    public void testGetPowerState() throws Exception {
+        setPowerOn();
+        assertThat(mCarPowerManager.getPowerState()).isEqualTo(PowerHalService.SET_ON);
+
+        // Request suspend
+        setPowerState(VehicleApPowerStateReq.SHUTDOWN_PREPARE,
+                        VehicleApPowerStateShutdownParam.CAN_SLEEP);
+        assertStateReceivedForShutdownOrSleepWithPostpone(PowerHalService.SET_DEEP_SLEEP_ENTRY, 0);
+        assertThat(mCarPowerManager.getPowerState())
+                .isEqualTo(PowerHalService.SET_DEEP_SLEEP_ENTRY);
+    }
+
+    /**
+     * Helper method to create mService and initialize a test case
+     */
+    private void setService() throws Exception {
+        Log.i(TAG, "setService(): overridden overlay properties: "
+                + "config_disableUserSwitchDuringResume="
+                + mResources.getBoolean(R.bool.config_disableUserSwitchDuringResume)
+                + ", maxGarageModeRunningDurationInSecs="
+                + mResources.getInteger(R.integer.maxGarageModeRunningDurationInSecs));
+        mService = new CarPowerManagementService(mContext, mResources, mPowerHal,
+                mSystemInterface, null, null, null);
+        mService.init();
+        mService.setShutdownTimersForTest(0, 0);
+        assertStateReceived(MockedPowerHalService.SET_WAIT_FOR_VHAL, 0);
+    }
+
+    private void assertStateReceived(int expectedState, int expectedParam) throws Exception {
+        int[] state = mPowerHal.waitForSend(WAIT_TIMEOUT_MS);
+        assertThat(state).asList().containsExactly(expectedState, expectedParam).inOrder();
+    }
+
+    /**
+     * Helper method to get the system into ON
+     */
+    private void setPowerOn() throws Exception {
+        setPowerState(VehicleApPowerStateReq.ON, 0);
+        assertThat(mDisplayInterface.waitForDisplayStateChange(WAIT_TIMEOUT_MS)).isTrue();
+    }
+
+    /**
+     * Helper to set the PowerHal state
+     *
+     * @param stateEnum Requested state enum
+     * @param stateParam Addition state parameter
+     */
+    private void setPowerState(int stateEnum, int stateParam) {
+        mPowerHal.setCurrentPowerState(new PowerState(stateEnum, stateParam));
+    }
+
+    private void assertStateReceivedForShutdownOrSleepWithPostpone(
+            int lastState, int stateParameter) throws Exception {
+        long startTime = System.currentTimeMillis();
+        while (true) {
+            int[] state = mPowerHal.waitForSend(WAIT_TIMEOUT_LONG_MS);
+            if (state[0] == lastState) {
+                assertThat(state[1]).isEqualTo(stateParameter);
+                return;
+            }
+            assertThat(state[0]).isEqualTo(PowerHalService.SET_SHUTDOWN_POSTPONE);
+            assertThat(System.currentTimeMillis() - startTime).isLessThan(WAIT_TIMEOUT_LONG_MS);
+        }
+    }
+
+    private static final class MockDisplayInterface implements DisplayInterface {
+        private boolean mDisplayOn = true;
+        private final Semaphore mDisplayStateWait = new Semaphore(0);
+
+        @Override
+        public void setDisplayBrightness(int brightness) {}
+
+        @Override
+        public synchronized void setDisplayState(boolean on) {
+            mDisplayOn = on;
+            mDisplayStateWait.release();
+        }
+
+        public synchronized boolean getDisplayState() {
+            return mDisplayOn;
+        }
+
+        public boolean waitForDisplayStateChange(long timeoutMs) throws Exception {
+            JavaMockitoHelper.await(mDisplayStateWait, timeoutMs);
+            return mDisplayOn;
+        }
+
+        @Override
+        public void startDisplayStateMonitoring(CarPowerManagementService service) {}
+
+        @Override
+        public void stopDisplayStateMonitoring() {}
+
+        @Override
+        public void refreshDisplayBrightness() {}
+    }
+
+    /**
+     * Helper class to set a power-state listener,
+     * verify that the listener gets called the
+     * right number of times, and return the final
+     * power state.
+     */
+    private final class WaitablePowerStateListener {
+        private final CountDownLatch mLatch;
+        private int mListenedState = -1;
+        WaitablePowerStateListener(int initialCount) {
+            mLatch = new CountDownLatch(initialCount);
+            mCarPowerManager.setListener(
+                    (state) -> {
+                        mListenedState = state;
+                        mLatch.countDown();
+                    });
+        }
+
+        int await() throws Exception {
+            JavaMockitoHelper.await(mLatch, WAIT_TIMEOUT_MS);
+            return mListenedState;
+        }
+    }
+
+    /**
+     * Helper class to set a power-state listener with completion,
+     * verify that the listener gets called the right number of times,
+     * verify that the CompletableFuture is provided, complete the
+     * CompletableFuture, and return the final power state.
+     */
+    private final class WaitablePowerStateListenerWithCompletion {
+        private final CountDownLatch mLatch;
+        private int mListenedState = -1;
+        WaitablePowerStateListenerWithCompletion(int initialCount) {
+            mLatch = new CountDownLatch(initialCount);
+            mCarPowerManager.setListenerWithCompletion(
+                    (state, future) -> {
+                        mListenedState = state;
+                        if (state == PowerHalService.SET_SHUTDOWN_PREPARE) {
+                            assertThat(future).isNotNull();
+                            future.complete(null);
+                        } else {
+                            assertThat(future).isNull();
+                        }
+                        mLatch.countDown();
+                    });
+        }
+
+        int await() throws Exception {
+            JavaMockitoHelper.await(mLatch, WAIT_TIMEOUT_MS);
+            return mListenedState;
+        }
+    }
+
+    private static final class MockSystemStateInterface implements SystemStateInterface {
+        private final Semaphore mShutdownWait = new Semaphore(0);
+        private final Semaphore mSleepWait = new Semaphore(0);
+        private final Semaphore mSleepExitWait = new Semaphore(0);
+        private boolean mWakeupCausedByTimer = false;
+
+        @Override
+        public void shutdown() {
+            mShutdownWait.release();
+        }
+
+        public void waitForShutdown(long timeoutMs) throws Exception {
+            JavaMockitoHelper.await(mShutdownWait, timeoutMs);
+        }
+
+        @Override
+        public boolean enterDeepSleep() {
+            mSleepWait.release();
+            try {
+                mSleepExitWait.acquire();
+            } catch (InterruptedException e) {
+            }
+            return true;
+        }
+
+        public void waitForSleepEntryAndWakeup(long timeoutMs) throws Exception {
+            JavaMockitoHelper.await(mSleepWait, timeoutMs);
+            mSleepExitWait.release();
+        }
+
+        @Override
+        public void scheduleActionForBootCompleted(Runnable action, Duration delay) {}
+
+        @Override
+        public boolean isWakeupCausedByTimer() {
+            Log.i(TAG, "isWakeupCausedByTimer:" + mWakeupCausedByTimer);
+            return mWakeupCausedByTimer;
+        }
+
+        public synchronized void setWakeupCausedByTimer(boolean set) {
+            mWakeupCausedByTimer = set;
+        }
+
+        @Override
+        public boolean isSystemSupportingDeepSleep() {
+            return true;
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceControllerTest.java b/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceControllerTest.java
index 450ae93..3be64a5 100644
--- a/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceControllerTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/pm/VendorServiceControllerTest.java
@@ -16,20 +16,20 @@
 
 package com.android.car.pm;
 
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
+import static android.car.test.mocks.CarArgumentMatchers.isUserHandle;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
 import static org.junit.Assert.fail;
-import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.Mockito.when;
 
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.car.testapi.BlockingUserLifecycleListener;
 import android.car.user.CarUserManager;
-import android.car.user.CarUserManager.UserLifecycleEvent;
+import android.car.user.CarUserManager.UserLifecycleEventType;
 import android.car.userlib.CarUserManagerHelper;
 import android.content.ComponentName;
 import android.content.Context;
@@ -42,6 +42,7 @@
 import android.os.Looper;
 import android.os.UserHandle;
 import android.os.UserManager;
+import android.util.Log;
 
 import androidx.test.core.app.ApplicationProvider;
 
@@ -49,29 +50,33 @@
 import com.android.car.hal.UserHalService;
 import com.android.car.user.CarUserService;
 import com.android.internal.annotations.GuardedBy;
+import com.android.internal.util.Preconditions;
 
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
-import org.mockito.ArgumentMatcher;
 import org.mockito.Mock;
 import org.mockito.Mockito;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-public final class VendorServiceControllerTest {
-    private static final Long DEFAULT_TIMEOUT_MS = 1000L;
+public final class VendorServiceControllerTest extends AbstractExtendedMockitoTestCase {
+    private static final String TAG = VendorServiceControllerTest.class.getSimpleName();
+
+    // TODO(b/152069895): decrease value once refactored. In fact, it should not even use
+    // runWithScissors(), but only rely on CountdownLatches
+    private static final long DEFAULT_TIMEOUT_MS = 5_000;
 
     private static final int FG_USER_ID = 13;
 
-    private static final String SERVICE_BIND_ALL_USERS_ASAP = "com.andorid.car/.AllUsersService";
-    private static final String SERVICE_BIND_FG_USER_UNLOCKED = "com.andorid.car/.ForegroundUsers";
-    private static final String SERVICE_START_SYSTEM_UNLOCKED = "com.andorid.car/.SystemUser";
+    private static final String SERVICE_BIND_ALL_USERS_ASAP = "com.android.car/.AllUsersService";
+    private static final String SERVICE_BIND_FG_USER_UNLOCKED = "com.android.car/.ForegroundUsers";
+    private static final String SERVICE_START_SYSTEM_UNLOCKED = "com.android.car/.SystemUser";
 
     private static final String[] FAKE_SERVICES = new String[] {
             SERVICE_BIND_ALL_USERS_ASAP + "#bind=bind,user=all,trigger=asap",
@@ -88,19 +93,19 @@
     @Mock
     private UserHalService mUserHal;
 
-    private MockitoSession mSession;
     private ServiceLauncherContext mContext;
     private CarUserManagerHelper mUserManagerHelper;
     private CarUserService mCarUserService;
     private VendorServiceController mController;
 
+
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session.spyStatic(ActivityManager.class);
+    }
+
     @Before
     public void setUp() {
-        mSession = mockitoSession()
-                .initMocks(this)
-                .strictness(Strictness.LENIENT)
-                .spyStatic(ActivityManager.class)
-                .startMocking();
         mContext = new ServiceLauncherContext(ApplicationProvider.getApplicationContext());
         mUserManagerHelper = Mockito.spy(new CarUserManagerHelper(mContext));
         mCarUserService = new CarUserService(mContext, mUserHal, mUserManagerHelper, mUserManager,
@@ -119,7 +124,6 @@
     @After
     public void tearDown() {
         CarLocalServices.removeServiceForTest(CarUserService.class);
-        mSession.finishMocking();
     }
 
     @Test
@@ -134,6 +138,7 @@
 
     @Test
     public void init_systemUser() throws Exception {
+        mContext.expectServices(SERVICE_BIND_ALL_USERS_ASAP);
         mockGetCurrentUser(UserHandle.USER_SYSTEM);
         mController.init();
 
@@ -146,11 +151,14 @@
         mController.init();
         mContext.reset();
 
+        // TODO(b/152069895): must refactor this test because
+        // SERVICE_BIND_ALL_USERS_ASAP is bound twice (users 0 and 10)
+        mContext.expectServices(SERVICE_START_SYSTEM_UNLOCKED);
+
         // Unlock system user
         mockUserUnlock(UserHandle.USER_SYSTEM);
-        runOnMainThreadAndWaitForIdle(() -> mCarUserService.onUserLifecycleEvent(
-                new UserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING,
-                        UserHandle.USER_SYSTEM)));
+        sendUserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING,
+                UserHandle.USER_SYSTEM);
 
         mContext.assertStartedService(SERVICE_START_SYSTEM_UNLOCKED);
         mContext.verifyNoMoreServiceLaunches();
@@ -162,12 +170,14 @@
         mController.init();
         mContext.reset();
 
+        mContext.expectServices(SERVICE_BIND_ALL_USERS_ASAP, SERVICE_BIND_FG_USER_UNLOCKED);
+
         // Switch user to foreground
         mockGetCurrentUser(FG_USER_ID);
-        when(ActivityManager.getCurrentUser()).thenReturn(FG_USER_ID);
-        runOnMainThreadAndWaitForIdle(() -> mCarUserService.onUserLifecycleEvent(
-                new UserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING,
-                        FG_USER_ID)));
+        // TODO(b/155918094): Update this test,
+        UserInfo nullUser = new UserInfo(UserHandle.USER_NULL, "null user", 0);
+        when(mUserManager.getUserInfo(UserHandle.USER_NULL)).thenReturn(nullUser);
+        sendUserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING, FG_USER_ID);
 
         // Expect only services with ASAP trigger to be started
         mContext.assertBoundService(SERVICE_BIND_ALL_USERS_ASAP);
@@ -175,9 +185,7 @@
 
         // Unlock foreground user
         mockUserUnlock(FG_USER_ID);
-        runOnMainThreadAndWaitForIdle(() -> mCarUserService.onUserLifecycleEvent(
-                new UserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING,
-                        FG_USER_ID)));
+        sendUserLifecycleEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING, FG_USER_ID);
 
         mContext.assertBoundService(SERVICE_BIND_FG_USER_UNLOCKED);
         mContext.verifyNoMoreServiceLaunches();
@@ -190,20 +198,34 @@
     }
 
     private void mockUserUnlock(@UserIdInt int userId) {
-        when(mUserManager.isUserUnlockingOrUnlocked(isUser(userId))).thenReturn(true);
+        when(mUserManager.isUserUnlockingOrUnlocked(isUserHandle(userId))).thenReturn(true);
         when(mUserManager.isUserUnlockingOrUnlocked(userId)).thenReturn(true);
     }
 
-    private static void assertServiceBound(List<Intent> intents, String service) {
-        assertWithMessage("Service %s not bound yet", service).that(intents)
+    private static void assertHasService(List<Intent> intents, String service, String action) {
+        assertWithMessage("Service %s not %s yet", service, action).that(intents)
                 .hasSize(1);
-        assertWithMessage("Wrong component bound").that(intents.get(0).getComponent())
+        assertWithMessage("Wrong component %s", action).that(intents.get(0).getComponent())
                 .isEqualTo(ComponentName.unflattenFromString(service));
         intents.clear();
     }
 
+    private void sendUserLifecycleEvent(@UserLifecycleEventType int eventType,
+            @UserIdInt int userId) throws InterruptedException {
+        // Adding a blocking listener to ensure CarUserService event notification is completed
+        // before proceeding with test execution.
+        BlockingUserLifecycleListener blockingListener = BlockingUserLifecycleListener
+                .newDefaultListener();
+        mCarUserService.addUserLifecycleListener(blockingListener);
+
+        runOnMainThreadAndWaitForIdle(() -> mCarUserService.onUserLifecycleEvent(eventType,
+                /* timestampMs= */ 0, /* fromUserId= */ UserHandle.USER_NULL, userId));
+        blockingListener.waitForEvent();
+    }
+
     /** Overrides framework behavior to succeed on binding/starting processes. */
     public final class ServiceLauncherContext extends ContextWrapper {
+
         private final Object mLock = new Object();
 
         @GuardedBy("mLock")
@@ -211,8 +233,8 @@
         @GuardedBy("mLock")
         private List<Intent> mStartedServicesIntents = new ArrayList<>();
 
-        private final CountDownLatch mBoundLatch = new CountDownLatch(1);
-        private final CountDownLatch mStartedLatch = new CountDownLatch(1);
+        private final Map<String, CountDownLatch> mBoundLatches = new HashMap<>();
+        private final Map<String, CountDownLatch> mStartedLatches = new HashMap<>();
 
         ServiceLauncherContext(Context base) {
             super(base);
@@ -223,7 +245,7 @@
             synchronized (mLock) {
                 mStartedServicesIntents.add(service);
             }
-            mStartedLatch.countDown();
+            countdown(mStartedLatches, service, "started");
             return service.getComponent();
         }
 
@@ -232,9 +254,10 @@
                 Handler handler, UserHandle user) {
             synchronized (mLock) {
                 mBoundIntents.add(service);
+                Log.v(TAG, "Added service (" + service + ") to bound intents");
             }
-            mBoundLatch.countDown();
             conn.onServiceConnected(service.getComponent(), null);
+            countdown(mBoundLatches, service, "bound");
             return true;
         }
 
@@ -249,24 +272,53 @@
             return mResources;
         }
 
-        private void await(CountDownLatch latch, String method) throws InterruptedException {
-            if (!latch.await(DEFAULT_TIMEOUT_MS, TimeUnit.MICROSECONDS)) {
-                fail(method + " not called in " + DEFAULT_TIMEOUT_MS + "ms");
+        private void expectServices(String... services) {
+            for (String service : services) {
+                Log.v(TAG, "expecting service " + service);
+                mBoundLatches.put(service, new CountDownLatch(1));
+                mStartedLatches.put(service, new CountDownLatch(1));
+            }
+        }
+
+        private void await(Map<String, CountDownLatch> latches, String service, String method)
+                throws InterruptedException {
+            CountDownLatch latch = latches.get(service);
+            Preconditions.checkArgument(latch != null,
+                    "no latch set for %s - did you call expectBoundServices()?", service);
+            Log.d(TAG, "waiting " + DEFAULT_TIMEOUT_MS + "ms for " + method);
+            if (!latch.await(DEFAULT_TIMEOUT_MS, TimeUnit.MILLISECONDS)) {
+                String errorMessage = method + " not called in " + DEFAULT_TIMEOUT_MS + "ms";
+                Log.e(TAG, errorMessage);
+                fail(errorMessage);
+            }
+            Log.v(TAG, "latch.await for service (" + service + ") and method ("
+                    + method + ") called fine");
+        }
+
+        private void countdown(Map<String, CountDownLatch> latches, Intent service, String action) {
+            String serviceName = service.getComponent().flattenToShortString();
+            CountDownLatch latch = latches.get(serviceName);
+            if (latch == null) {
+                Log.e(TAG, "unexpected service (" + serviceName + ") " + action + ". Expected only "
+                        + mBoundLatches.keySet());
+            } else {
+                latch.countDown();
+                Log.v(TAG, "latch.countDown for service (" + service + ") and action ("
+                        + action + ") called fine");
             }
         }
 
         void assertBoundService(String service) throws InterruptedException {
-            await(mBoundLatch, "bind()");
+            await(mBoundLatches, service, "bind()");
             synchronized (mLock) {
-                assertServiceBound(mBoundIntents, service);
-
+                assertHasService(mBoundIntents, service, "bound");
             }
         }
 
         void assertStartedService(String service) throws InterruptedException {
-            await(mStartedLatch, "start()");
+            await(mStartedLatches, service, "start()");
             synchronized (mLock) {
-                assertServiceBound(mStartedServicesIntents, service);
+                assertHasService(mStartedServicesIntents, service, "started");
             }
         }
 
@@ -282,7 +334,6 @@
                 mStartedServicesIntents.clear();
                 mBoundIntents.clear();
             }
-
         }
 
         @Override
@@ -293,31 +344,4 @@
             return super.getSystemService(name);
         }
     }
-
-    // TODO(b/149099817): move stuff below to common code
-
-    private static void mockGetCurrentUser(@UserIdInt int userId) {
-        doReturn(userId).when(() -> ActivityManager.getCurrentUser());
-    }
-
-    /**
-     * Custom Mockito matcher to check if a {@link UserHandle} has the given {@code userId}.
-     */
-    public static UserHandle isUser(@UserIdInt int userId) {
-        return argThat(new UserHandleMatcher(userId));
-    }
-
-    private static class UserHandleMatcher implements ArgumentMatcher<UserHandle> {
-
-        public final @UserIdInt int userId;
-
-        private UserHandleMatcher(@UserIdInt int userId) {
-            this.userId = userId;
-        }
-
-        @Override
-        public boolean matches(UserHandle argument) {
-            return argument != null && argument.getIdentifier() == userId;
-        }
-    }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/user/CarUserManagerUnitTest.java b/tests/carservice_unit_test/src/com/android/car/user/CarUserManagerUnitTest.java
index 1ddeb8e..80318a7 100644
--- a/tests/carservice_unit_test/src/com/android/car/user/CarUserManagerUnitTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/user/CarUserManagerUnitTest.java
@@ -15,62 +15,79 @@
  */
 package com.android.car.user;
 
+import static android.Manifest.permission.INTERACT_ACROSS_USERS;
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUsers;
+import static android.car.test.util.UserTestingHelper.newUsers;
+import static android.car.testapi.CarMockitoHelper.mockHandleRemoteExceptionFromCarServiceWithDefaultValue;
+import static android.content.pm.PackageManager.PERMISSION_GRANTED;
 import static android.os.UserHandle.USER_SYSTEM;
 
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
-
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.notNull;
+import static org.mockito.ArgumentMatchers.same;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertThrows;
 
+import android.annotation.NonNull;
+import android.annotation.Nullable;
+import android.annotation.UserIdInt;
 import android.car.Car;
+import android.car.ICarUserService;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
 import android.car.user.CarUserManager;
+import android.car.user.CarUserManager.UserLifecycleListener;
+import android.car.user.CarUserManager.UserSwitchUiCallback;
+import android.car.user.UserIdentificationAssociationResponse;
+import android.car.user.UserSwitchResult;
+import android.content.Context;
 import android.content.pm.UserInfo;
-import android.os.IBinder;
+import android.os.RemoteException;
 import android.os.UserManager;
 
-import org.junit.After;
+import com.android.internal.infra.AndroidFuture;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.Mock;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
 
-import java.util.Arrays;
 import java.util.List;
-import java.util.stream.Collectors;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
-public final class CarUserManagerUnitTest {
+public final class CarUserManagerUnitTest extends AbstractExtendedMockitoTestCase {
+
+    private static final long ASYNC_TIMEOUT_MS = 500;
 
     @Mock
     private Car mCar;
     @Mock
-    private IBinder mService;
-    @Mock
     private UserManager mUserManager;
+    @Mock
+    private ICarUserService mService;
 
-    private MockitoSession mSession;
     private CarUserManager mMgr;
 
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session.spyStatic(UserManager.class);
+    }
+
     @Before
     public void setFixtures() {
-        mSession = mockitoSession()
-                .strictness(Strictness.LENIENT)
-                .spyStatic(UserManager.class)
-                .initMocks(this)
-                .startMocking();
         mMgr = new CarUserManager(mCar, mService, mUserManager);
     }
 
-    @After
-    public void finishSession() throws Exception {
-        mSession.finishMocking();
-    }
-
     @Test
     public void testIsValidUser_headlessSystemUser() {
-        setHeadlessSystemUserMode(true);
+        mockIsHeadlessSystemUserMode(true);
         setExistingUsers(USER_SYSTEM);
 
         assertThat(mMgr.isValidUser(USER_SYSTEM)).isFalse();
@@ -78,7 +95,7 @@
 
     @Test
     public void testIsValidUser_nonHeadlessSystemUser() {
-        setHeadlessSystemUserMode(false);
+        mockIsHeadlessSystemUserMode(false);
         setExistingUsers(USER_SYSTEM);
 
         assertThat(mMgr.isValidUser(USER_SYSTEM)).isTrue();
@@ -105,25 +122,249 @@
         assertThat(mMgr.isValidUser(666)).isFalse();
     }
 
+    @Test
+    public void testAddListener_nullExecutor() {
+        mockInteractAcrossUsersPermission();
+
+        assertThrows(NullPointerException.class, () -> mMgr.addListener(null, (e) -> { }));
+    }
+
+    @Test
+    public void testAddListener_nullListener() {
+        mockInteractAcrossUsersPermission();
+
+        assertThrows(NullPointerException.class, () -> mMgr.addListener(Runnable::run, null));
+    }
+
+    @Test
+    public void testAddListener_sameListenerAddedTwice() {
+        mockInteractAcrossUsersPermission();
+
+        UserLifecycleListener listener = (e) -> { };
+
+        mMgr.addListener(Runnable::run, listener);
+        assertThrows(IllegalStateException.class, () -> mMgr.addListener(Runnable::run, listener));
+    }
+
+    @Test
+    public void testAddListener_differentListenersAddedTwice() {
+        mockInteractAcrossUsersPermission();
+
+        mMgr.addListener(Runnable::run, (e) -> { });
+        mMgr.addListener(Runnable::run, (e) -> { });
+    }
+
+    @Test
+    public void testRemoveListener_nullListener() {
+        mockInteractAcrossUsersPermission();
+
+        assertThrows(NullPointerException.class, () -> mMgr.removeListener(null));
+    }
+
+    @Test
+    public void testRemoveListener_notAddedBefore() {
+        mockInteractAcrossUsersPermission();
+
+        UserLifecycleListener listener = (e) -> { };
+
+        assertThrows(IllegalStateException.class, () -> mMgr.removeListener(listener));
+    }
+
+    @Test
+    public void testRemoveListener_addAndRemove() {
+        mockInteractAcrossUsersPermission();
+        UserLifecycleListener listener = (e) -> { };
+
+        mMgr.addListener(Runnable::run, listener);
+        mMgr.removeListener(listener);
+
+        // Make sure it was removed
+        assertThrows(IllegalStateException.class, () -> mMgr.removeListener(listener));
+    }
+
+    @Test
+    public void testSwitchUser_success() throws Exception {
+        expectServiceSwitchUserSucceeds(11, UserSwitchResult.STATUS_SUCCESSFUL, "D'OH!");
+
+        AndroidFuture<UserSwitchResult> future = mMgr.switchUser(11);
+
+        assertThat(future).isNotNull();
+        UserSwitchResult result = getResult(future);
+        assertThat(result.getStatus()).isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertThat(result.getErrorMessage()).isEqualTo("D'OH!");
+    }
+
+    @Test
+    public void testSwitchUser_remoteException() throws Exception {
+        expectServiceSwitchUserSucceeds(11);
+        mockHandleRemoteExceptionFromCarServiceWithDefaultValue(mCar);
+
+        AndroidFuture<UserSwitchResult> future = mMgr.switchUser(11);
+
+        assertThat(future).isNotNull();
+        UserSwitchResult result = getResult(future);
+        assertThat(result.getStatus()).isEqualTo(UserSwitchResult.STATUS_HAL_INTERNAL_FAILURE);
+        assertThat(result.getErrorMessage()).isNull();
+    }
+
+    @Test
+    public void testSetSwitchUserUICallback_success() throws Exception {
+        UserSwitchUiCallback callback = (u)-> { };
+
+        mMgr.setUserSwitchUiCallback(callback);
+
+        verify(mService).setUserSwitchUiCallback(any());
+    }
+
+    @Test
+    public void testSetSwitchUserUICallback_nullCallback() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mMgr.setUserSwitchUiCallback(null));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_nullTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.getUserIdentificationAssociation(null));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_emptyTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.getUserIdentificationAssociation(new int[] {}));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_remoteException() throws Exception {
+        int[] types = new int[] {1};
+        when(mService.getUserIdentificationAssociation(types))
+                .thenThrow(new RemoteException("D'OH!"));
+        mockHandleRemoteExceptionFromCarServiceWithDefaultValue(mCar);
+
+        assertThat(mMgr.getUserIdentificationAssociation(types)).isNull();
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_ok() throws Exception {
+        int[] types = new int[] { 4, 8, 15, 16, 23, 42 };
+        UserIdentificationAssociationResponse expectedResponse =
+                UserIdentificationAssociationResponse.forSuccess(types);
+        when(mService.getUserIdentificationAssociation(types)).thenReturn(expectedResponse);
+
+        UserIdentificationAssociationResponse actualResponse =
+                mMgr.getUserIdentificationAssociation(types);
+
+        assertThat(actualResponse).isSameAs(expectedResponse);
+    }
+
+    // TODO(b/155311595): remove once permission check is done only on service
+    private void mockInteractAcrossUsersPermission() {
+        Context context = mock(Context.class);
+        when(mCar.getContext()).thenReturn(context);
+        when(context.checkSelfPermission(INTERACT_ACROSS_USERS)).thenReturn(PERMISSION_GRANTED);
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_nullTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.setUserIdentificationAssociation(null, new int[] {42}));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_emptyTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.setUserIdentificationAssociation(new int[0], new int[] {42}));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_nullValues() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.setUserIdentificationAssociation(new int[] {42}, null));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_emptyValues() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.setUserIdentificationAssociation(new int[] {42}, new int[0]));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_sizeMismatch() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mMgr.setUserIdentificationAssociation(new int[] {1}, new int[] {2, 3}));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_remoteException() throws Exception {
+        int[] types = new int[] {1};
+        int[] values = new int[] {2};
+        doThrow(new RemoteException("D'OH!")).when(mService)
+                .setUserIdentificationAssociation(anyInt(), same(types), same(values), notNull());
+        mockHandleRemoteExceptionFromCarServiceWithDefaultValue(mCar);
+
+        AndroidFuture<UserIdentificationAssociationResponse> future =
+                mMgr.setUserIdentificationAssociation(types, values);
+
+        assertThat(future).isNotNull();
+        UserIdentificationAssociationResponse result = getResult(future);
+        assertThat(result.isSuccess()).isFalse();
+        assertThat(result.getValues()).isNull();
+        assertThat(result.getErrorMessage()).isNull();
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_ok() throws Exception {
+        int[] types = new int[] { 1, 2, 3 };
+        int[] values = new int[] { 10, 20, 30 };
+        doAnswer((inv) -> {
+            @SuppressWarnings("unchecked")
+            AndroidFuture<UserIdentificationAssociationResponse> future =
+                    (AndroidFuture<UserIdentificationAssociationResponse>) inv.getArguments()[3];
+            UserIdentificationAssociationResponse response =
+                    UserIdentificationAssociationResponse.forSuccess(values, "D'OH!");
+            future.complete(response);
+            return null;
+        }).when(mService)
+                .setUserIdentificationAssociation(anyInt(), same(types), same(values), notNull());
+        mockHandleRemoteExceptionFromCarServiceWithDefaultValue(mCar);
+
+        AndroidFuture<UserIdentificationAssociationResponse> future =
+                mMgr.setUserIdentificationAssociation(types, values);
+
+        assertThat(future).isNotNull();
+        UserIdentificationAssociationResponse result = getResult(future);
+        assertThat(result.isSuccess()).isTrue();
+        assertThat(result.getValues()).asList().containsAllOf(10, 20, 30).inOrder();
+        assertThat(result.getErrorMessage()).isEqualTo("D'OH!");
+    }
+
+    private void expectServiceSwitchUserSucceeds(@UserIdInt int userId,
+            @UserSwitchResult.Status int status, @Nullable String errorMessage)
+            throws RemoteException {
+        doAnswer((invocation) -> {
+            @SuppressWarnings("unchecked")
+            AndroidFuture<UserSwitchResult> future = (AndroidFuture<UserSwitchResult>) invocation
+                    .getArguments()[2];
+            future.complete(new UserSwitchResult(status, errorMessage));
+            return null;
+        }).when(mService).switchUser(eq(userId), anyInt(), notNull());
+    }
+
+    private void expectServiceSwitchUserSucceeds(@UserIdInt int userId) throws RemoteException {
+        doThrow(new RemoteException("D'OH!")).when(mService)
+            .switchUser(eq(userId), anyInt(), notNull());
+    }
+
+    @NonNull
+    private static <T> T getResult(@NonNull AndroidFuture<T> future) throws Exception {
+        try {
+            return future.get(ASYNC_TIMEOUT_MS, TimeUnit.MILLISECONDS);
+        } catch (TimeoutException e) {
+            throw new IllegalStateException("not called in " + ASYNC_TIMEOUT_MS + "ms", e);
+        }
+    }
+
     private void setExistingUsers(int... userIds) {
-        List<UserInfo> users = toUserInfoList(userIds);
-        when(mUserManager.getUsers()).thenReturn(users);
+        List<UserInfo> users = newUsers(userIds);
+        mockUmGetUsers(mUserManager, users);
     }
-
-    private static List<UserInfo> toUserInfoList(int... userIds) {
-        return Arrays.stream(userIds)
-                .mapToObj(id -> toUserInfo(id))
-                .collect(Collectors.toList());
-    }
-
-    private static UserInfo toUserInfo(int userId) {
-        UserInfo user = new UserInfo();
-        user.id = userId;
-        return user;
-    }
-
-    private static void setHeadlessSystemUserMode(boolean mode) {
-        doReturn(mode).when(() -> UserManager.isHeadlessSystemUserMode());
-    }
-
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/user/CarUserNoticeServiceTest.java b/tests/carservice_unit_test/src/com/android/car/user/CarUserNoticeServiceTest.java
index 3ca7d7c..3b95c82 100644
--- a/tests/carservice_unit_test/src/com/android/car/user/CarUserNoticeServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/user/CarUserNoticeServiceTest.java
@@ -17,7 +17,6 @@
 package com.android.car.user;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 
 import static com.google.common.truth.Truth.assertThat;
 
@@ -36,6 +35,7 @@
 import android.car.hardware.power.CarPowerManager;
 import android.car.hardware.power.CarPowerManager.CarPowerStateListener;
 import android.car.settings.CarSettings;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
 import android.car.user.CarUserManager;
 import android.car.user.CarUserManager.UserLifecycleEvent;
 import android.car.user.CarUserManager.UserLifecycleListener;
@@ -57,19 +57,16 @@
 import com.android.car.CarPowerManagementService;
 import com.android.car.R;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
 import org.mockito.Captor;
 import org.mockito.Mock;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
 
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
 
-public class CarUserNoticeServiceTest {
+public class CarUserNoticeServiceTest extends AbstractExtendedMockitoTestCase {
 
     @Mock
     private Context mMockContext;
@@ -97,33 +94,28 @@
     @Captor
     private ArgumentCaptor<CarPowerStateListener> mPowerStateListener;
 
-    private MockitoSession mSession;
     private CarUserNoticeService mCarUserNoticeService;
 
     private final Handler mHandler = new Handler(Looper.getMainLooper());
 
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder session) {
+        session
+            .spyStatic(CarLocalServices.class);
+    }
+
     /**
      * Initialize all of the objects with the @Mock annotation.
      */
     @Before
     public void setUpMocks() throws Exception {
-        mSession = mockitoSession()
-                .initMocks(this)
-                .mockStatic(CarLocalServices.class)
-                .mockStatic(Settings.Secure.class)
-                .strictness(Strictness.LENIENT)
-                .startMocking();
-
         doReturn(mCarPowerManager).when(() -> CarLocalServices.createCarPowerManager(mMockContext));
         doReturn(mMockCarPowerManagementService)
                 .when(() -> CarLocalServices.getService(CarPowerManagementService.class));
-        doReturn(mCarPowerManager).when(() -> CarLocalServices.createCarPowerManager(mMockContext));
         doReturn(mMockCarUserService)
                 .when(() -> CarLocalServices.getService(CarUserService.class));
 
-        doReturn(1).when(() -> Settings.Secure.getIntForUser(any(),
-                eq(CarSettings.Secure.KEY_ENABLE_INITIAL_NOTICE_SCREEN_TO_USER), anyInt(),
-                anyInt()));
+        putSettingsInt(CarSettings.Secure.KEY_ENABLE_INITIAL_NOTICE_SCREEN_TO_USER, 1);
 
         doReturn(mMockedResources).when(mMockContext).getResources();
         doReturn(InstrumentationRegistry.getInstrumentation().getTargetContext()
@@ -143,11 +135,6 @@
         verify(mCarPowerManager).setListener(mPowerStateListener.capture());
     }
 
-    @After
-    public void tearDown() {
-        mSession.finishMocking();
-    }
-
     @Test
     public void featureDisabledTest() {
         Context mockContext = mock(Context.class);
@@ -260,7 +247,7 @@
         return latch;
     }
 
-    private CountDownLatch mockKeySettings(String key, int value) {
+    private static CountDownLatch mockKeySettings(String key, int value) {
         CountDownLatch latch = new CountDownLatch(1);
         when(Settings.Secure.getIntForUser(any(),
                 eq(key), anyInt(),
diff --git a/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java b/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java
index 36136f5..c44ea24 100644
--- a/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/user/CarUserServiceTest.java
@@ -16,11 +16,14 @@
 
 package com.android.car.user;
 
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetSystemUser;
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUserInfo;
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUsers;
+import static android.car.test.util.UserTestingHelper.UserInfoBuilder;
 import static android.content.pm.UserInfo.FLAG_EPHEMERAL;
 import static android.content.pm.UserInfo.FLAG_GUEST;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
@@ -30,6 +33,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.argThat;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.notNull;
 import static org.mockito.ArgumentMatchers.same;
@@ -37,23 +41,34 @@
 import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 import static org.testng.Assert.assertThrows;
 
 import android.annotation.NonNull;
+import android.annotation.Nullable;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
 import android.app.IActivityManager;
 import android.car.CarOccupantZoneManager.OccupantTypeEnum;
 import android.car.CarOccupantZoneManager.OccupantZoneInfo;
 import android.car.settings.CarSettings;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.car.test.mocks.AndroidMockitoHelper;
+import android.car.test.mocks.BlockingAnswer;
+import android.car.test.util.BlockingResultReceiver;
+import android.car.testapi.BlockingUserLifecycleListener;
 import android.car.user.CarUserManager;
 import android.car.user.CarUserManager.UserLifecycleEvent;
+import android.car.user.CarUserManager.UserLifecycleEventType;
 import android.car.user.CarUserManager.UserLifecycleListener;
+import android.car.user.UserIdentificationAssociationResponse;
+import android.car.user.UserSwitchResult;
 import android.car.userlib.CarUserManagerHelper;
 import android.car.userlib.HalCallback;
 import android.car.userlib.UserHalHelper;
+import android.car.userlib.UserHelper;
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.content.res.Resources;
@@ -61,44 +76,44 @@
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponse;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoResponseAction;
-import android.hardware.automotive.vehicle.V2_0.SwitchUserMessageType;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserResponse;
 import android.hardware.automotive.vehicle.V2_0.SwitchUserStatus;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
 import android.hardware.automotive.vehicle.V2_0.UsersInfo;
 import android.location.LocationManager;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.UserHandle;
 import android.os.UserManager;
-import android.provider.Settings;
 import android.util.Log;
 import android.util.SparseArray;
 
-import androidx.annotation.Nullable;
 import androidx.test.InstrumentationRegistry;
 
 import com.android.car.hal.UserHalService;
 import com.android.internal.R;
+import com.android.internal.infra.AndroidFuture;
 import com.android.internal.os.IResultReceiver;
 import com.android.internal.util.Preconditions;
 
-import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.mockito.ArgumentCaptor;
+import org.mockito.ArgumentMatcher;
 import org.mockito.Captor;
 import org.mockito.Mock;
-import org.mockito.MockitoSession;
-import org.mockito.quality.Strictness;
 
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 /**
  * This class contains unit tests for the {@link CarUserService}.
@@ -112,11 +127,13 @@
  * <li> {@link Drawable} provides bitmap of user icon.
  * <ol/>
  */
-public class CarUserServiceTest {
+public final class CarUserServiceTest extends AbstractExtendedMockitoTestCase {
 
     private static final String TAG = CarUserServiceTest.class.getSimpleName();
     private static final int NO_USER_INFO_FLAGS = 0;
 
+    private static final int NON_EXISTING_USER = 55; // must not be on mExistingUsers
+
     @Mock private Context mMockContext;
     @Mock private Context mApplicationContext;
     @Mock private LocationManager mLocationManager;
@@ -126,45 +143,55 @@
     @Mock private UserManager mMockedUserManager;
     @Mock private Resources mMockedResources;
     @Mock private Drawable mMockedDrawable;
-    @Mock private UserLifecycleListener mUserLifecycleListener;
-    @Captor private ArgumentCaptor<UserLifecycleEvent> mLifeCycleEventCaptor;
+    @Mock private UserMetrics mUserMetrics;
+    @Mock IResultReceiver mSwitchUserUiReceiver;
+
+    private final BlockingUserLifecycleListener mUserLifecycleListener =
+            BlockingUserLifecycleListener.newDefaultListener();
+
     @Captor private ArgumentCaptor<UsersInfo> mUsersInfoCaptor;
 
-    private MockitoSession mSession;
     private CarUserService mCarUserService;
     private boolean mUser0TaskExecuted;
     private FakeCarOccupantZoneService mFakeCarOccupantZoneService;
 
     private final int mGetUserInfoRequestType = InitialUserInfoRequestType.COLD_BOOT;
+    private final AndroidFuture<UserSwitchResult> mUserSwitchFuture = new AndroidFuture<>();
+    private final AndroidFuture<UserIdentificationAssociationResponse> mUserAssociationRespFuture =
+            new AndroidFuture<>();
     private final int mAsyncCallTimeoutMs = 100;
     private final BlockingResultReceiver mReceiver =
             new BlockingResultReceiver(mAsyncCallTimeoutMs);
     private final InitialUserInfoResponse mGetUserInfoResponse = new InitialUserInfoResponse();
     private final SwitchUserResponse mSwitchUserResponse = new SwitchUserResponse();
 
-    private final @NonNull UserInfo mSystemUser = UserInfoBuilder.newSystemUserInfo();
-    private final @NonNull UserInfo mAdminUser = new UserInfoBuilder(10)
+    private final @NonNull UserInfo mAdminUser = new UserInfoBuilder(100)
             .setAdmin(true)
             .build();
-    private final @NonNull UserInfo mGuestUser = new UserInfoBuilder(11)
+    private final @NonNull UserInfo mGuestUser = new UserInfoBuilder(111)
             .setGuest(true)
             .setEphemeral(true)
             .build();
-    private final List<UserInfo> mExistingUsers = Arrays.asList(mSystemUser, mAdminUser,
-            mGuestUser);
+    private final @NonNull UserInfo mRegularUser = new UserInfoBuilder(222)
+            .build();
+    private final List<UserInfo> mExistingUsers =
+            Arrays.asList(mAdminUser, mGuestUser, mRegularUser);
+
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder builder) {
+        builder
+            .spyStatic(ActivityManager.class)
+            // TODO(b/156299496): it cannot spy on UserManager, as it would slow down the tests
+            // considerably (more than 5 minutes total, instead of just a couple seconds). So, it's
+            // mocking UserHelper.isHeadlessSystemUser() (on mockIsHeadlessSystemUser()) instead...
+            .spyStatic(UserHelper.class);
+    }
 
     /**
      * Initialize all of the objects with the @Mock annotation.
      */
     @Before
     public void setUpMocks() {
-        mSession = mockitoSession()
-                .initMocks(this)
-                .strictness(Strictness.LENIENT)
-                .spyStatic(ActivityManager.class)
-                .mockStatic(Settings.Global.class)
-                .startMocking();
-
         doReturn(mApplicationContext).when(mMockContext).getApplicationContext();
         doReturn(mLocationManager).when(mMockContext).getSystemService(Context.LOCATION_SERVICE);
         doReturn(InstrumentationRegistry.getTargetContext().getContentResolver())
@@ -183,35 +210,9 @@
                         mMockedCarUserManagerHelper,
                         mMockedUserManager,
                         mMockedIActivityManager,
-                        3);
+                        3, mUserMetrics);
 
         mFakeCarOccupantZoneService = new FakeCarOccupantZoneService(mCarUserService);
-        // Restore default value at the beginning of each test.
-        mockSettingsGlobal();
-        putSettingsInt(CarSettings.Global.DEFAULT_USER_RESTRICTIONS_SET, 0);
-    }
-
-    /**
-     *  Clean up before running the next test
-     */
-    @After
-    public void tearDown() {
-        mSession.finishMocking();
-    }
-
-    /**
-     * Test that the {@link CarUserService} does not set restrictions on user 0 if they have already
-     * been set.
-     */
-    @Test
-    public void testDoesNotSetSystemUserRestrictions_IfRestrictionsAlreadySet() {
-        putSettingsInt(CarSettings.Global.DEFAULT_USER_RESTRICTIONS_SET, 1);
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
-        verify(mMockedUserManager, never())
-                .setUserRestriction(
-                        UserManager.DISALLOW_MODIFY_ACCOUNTS,
-                        true,
-                        UserHandle.of(UserHandle.USER_SYSTEM));
     }
 
     @Test
@@ -227,54 +228,62 @@
     }
 
     @Test
-    public void testOnSwitchUser_addListenerAndReceiveEvent() {
+    public void testOnUserLifecycleEvent_notifyListener() throws Exception {
         // Arrange
         mCarUserService.addUserLifecycleListener(mUserLifecycleListener);
+        mockExistingUsers();
 
         // Act
-        int anyNewUserId = 11;
-        onUserSwitching(anyNewUserId);
+        sendUserSwitchingEvent(mAdminUser.id, mRegularUser.id);
 
         // Verify
-        verifyListenerOnEventInvoked(anyNewUserId,
+        verifyListenerOnEventInvoked(mRegularUser.id,
                 CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING);
     }
 
     @Test
-    public void testOnSwitchUser_ensureAllListenersAreNotified() {
+    public void testOnUserLifecycleEvent_ensureAllListenersAreNotified() throws Exception {
         // Arrange: add two listeners, one to fail on onEvent
         // Adding the failure listener first.
         UserLifecycleListener failureListener = mock(UserLifecycleListener.class);
         doThrow(new RuntimeException("Failed onEvent invocation")).when(
                 failureListener).onEvent(any(UserLifecycleEvent.class));
         mCarUserService.addUserLifecycleListener(failureListener);
+        mockExistingUsers();
 
         // Adding the non-failure listener later.
         mCarUserService.addUserLifecycleListener(mUserLifecycleListener);
 
         // Act
-        int anyNewUserId = 11;
-        onUserSwitching(anyNewUserId);
+        sendUserSwitchingEvent(mAdminUser.id, mRegularUser.id);
 
         // Verify
-        verifyListenerOnEventInvoked(anyNewUserId,
+        verifyListenerOnEventInvoked(mRegularUser.id,
                 CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING);
     }
 
-    private void verifyListenerOnEventInvoked(int expectedNewUserId, int expectedEventType) {
-        verify(mUserLifecycleListener).onEvent(mLifeCycleEventCaptor.capture());
-        UserLifecycleEvent actualEvent = mLifeCycleEventCaptor.getValue();
+    private void verifyListenerOnEventInvoked(int expectedNewUserId, int expectedEventType)
+            throws Exception {
+        UserLifecycleEvent actualEvent = mUserLifecycleListener.waitForEvent();
         assertThat(actualEvent.getEventType()).isEqualTo(expectedEventType);
         assertThat(actualEvent.getUserId()).isEqualTo(expectedNewUserId);
     }
 
+    private void verifyLastActiveUserSet(@UserIdInt int userId) {
+        verify(mMockedCarUserManagerHelper).setLastActiveUser(userId);
+    }
+
+    private void verifyLastActiveUserNotSet() {
+        verify(mMockedCarUserManagerHelper, never()).setLastActiveUser(anyInt());
+    }
+
     /**
      * Test that the {@link CarUserService} disables the location service for headless user 0 upon
      * first run.
      */
     @Test
     public void testDisableLocationForHeadlessSystemUserOnFirstRun() {
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
+        sendUserUnlockedEvent(UserHandle.USER_SYSTEM);
         verify(mLocationManager).setLocationEnabledForUser(
                 /* enabled= */ false, UserHandle.of(UserHandle.USER_SYSTEM));
     }
@@ -283,15 +292,24 @@
      * Test that the {@link CarUserService} updates last active user on user switch.
      */
     @Test
-    public void testLastActiveUserUpdatedOnUserSwitch() {
-        int lastActiveUserId = 99;
-        UserInfo persistentUser = new UserInfo(lastActiveUserId, "persistent user",
-                NO_USER_INFO_FLAGS);
-        doReturn(persistentUser).when(mMockedUserManager).getUserInfo(lastActiveUserId);
+    public void testLastActiveUserUpdatedOnUserSwitch_nonHeadlessSystemUser() throws Exception {
+        mockIsHeadlessSystemUser(mRegularUser.id, false);
+        mockExistingUsers();
 
-        onUserSwitching(lastActiveUserId);
+        sendUserSwitchingEvent(mAdminUser.id, mRegularUser.id);
 
-        verify(mMockedCarUserManagerHelper).setLastActiveUser(lastActiveUserId);
+        verifyLastActiveUserSet(mRegularUser.id);
+    }
+
+    @Test
+    public void testLastActiveUserUpdatedOnUserSwitch_headlessSystemUser() throws Exception {
+        mockIsHeadlessSystemUser(mRegularUser.id, true);
+        mockUmGetSystemUser(mMockedUserManager);
+        mockExistingUsers();
+
+        sendUserSwitchingEvent(mAdminUser.id, UserHandle.USER_SYSTEM);
+
+        verifyLastActiveUserNotSet();
     }
 
     /**
@@ -299,24 +317,14 @@
      */
     @Test
     public void testInitializeGuestRestrictions_IfNotAlreadySet() {
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
+        sendUserUnlockedEvent(UserHandle.USER_SYSTEM);
         assertThat(getSettingsInt(CarSettings.Global.DEFAULT_USER_RESTRICTIONS_SET)).isEqualTo(1);
     }
 
-    /**
-     * Test that the {@link CarUserService} does not set restrictions after they have been set once.
-     */
-    @Test
-    public void test_DoesNotInitializeGuestRestrictions_IfAlreadySet() {
-        putSettingsInt(CarSettings.Global.DEFAULT_USER_RESTRICTIONS_SET, 1);
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
-        verify(mMockedUserManager, never()).setDefaultGuestRestrictions(any(Bundle.class));
-    }
-
     @Test
     public void testRunOnUser0UnlockImmediate() {
         mUser0TaskExecuted = false;
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
+        sendUserUnlockedEvent(UserHandle.USER_SYSTEM);
         mCarUserService.runOnUser0Unlock(() -> {
             mUser0TaskExecuted = true;
         });
@@ -330,7 +338,7 @@
             mUser0TaskExecuted = true;
         });
         assertFalse(mUser0TaskExecuted);
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
+        sendUserUnlockedEvent(UserHandle.USER_SYSTEM);
         assertTrue(mUser0TaskExecuted);
     }
 
@@ -358,32 +366,32 @@
         doReturn(user4GuestInfo).when(mMockedUserManager).getUserInfo(user4Guest);
         doReturn(user5Info).when(mMockedUserManager).getUserInfo(user5);
 
-        doReturn(user1).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
+        mockGetCurrentUser(user1);
+        sendUserUnlockedEvent(UserHandle.USER_SYSTEM);
         // user 0 should never go to that list.
         assertTrue(mCarUserService.getBackgroundUsersToRestart().isEmpty());
 
-        sendUserUnlockingEvent(user1);
+        sendUserUnlockedEvent(user1);
         assertEquals(new Integer[]{user1},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
 
         // user 2 background, ignore in restart list
-        sendUserUnlockingEvent(user2);
+        sendUserUnlockedEvent(user2);
         assertEquals(new Integer[]{user1},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
 
-        doReturn(user3).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(user3);
+        mockGetCurrentUser(user3);
+        sendUserUnlockedEvent(user3);
         assertEquals(new Integer[]{user3, user1},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
 
-        doReturn(user4Guest).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(user4Guest);
+        mockGetCurrentUser(user4Guest);
+        sendUserUnlockedEvent(user4Guest);
         assertEquals(new Integer[]{user3, user1},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
 
-        doReturn(user5).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(user5);
+        mockGetCurrentUser(user5);
+        sendUserUnlockedEvent(user5);
         assertEquals(new Integer[]{user5, user3},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
     }
@@ -405,14 +413,14 @@
         doReturn(user2Info).when(mMockedUserManager).getUserInfo(user2);
         doReturn(user3Info).when(mMockedUserManager).getUserInfo(user3);
 
-        doReturn(user1).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(UserHandle.USER_SYSTEM);
-        sendUserUnlockingEvent(user1);
-        doReturn(user2).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(user2);
-        sendUserUnlockingEvent(user1);
-        doReturn(user3).when(() -> ActivityManager.getCurrentUser());
-        sendUserUnlockingEvent(user3);
+        mockGetCurrentUser(user1);
+        sendUserUnlockedEvent(UserHandle.USER_SYSTEM);
+        sendUserUnlockedEvent(user1);
+        mockGetCurrentUser(user2);
+        sendUserUnlockedEvent(user2);
+        sendUserUnlockedEvent(user1);
+        mockGetCurrentUser(user3);
+        sendUserUnlockedEvent(user3);
 
         assertEquals(new Integer[]{user3, user2},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
@@ -422,7 +430,7 @@
                 null, null, null);
         assertEquals(new Integer[]{user2},
                 mCarUserService.startAllBackgroundUsers().toArray());
-        sendUserUnlockingEvent(user2);
+        sendUserUnlockedEvent(user2);
         assertEquals(new Integer[]{user3, user2},
                 mCarUserService.getBackgroundUsersToRestart().toArray());
 
@@ -445,7 +453,7 @@
     @Test
     public void testStopBackgroundUserForFgUser() throws RemoteException {
         int user1 = 101;
-        doReturn(user1).when(() -> ActivityManager.getCurrentUser());
+        mockGetCurrentUser(user1);
         assertFalse(mCarUserService.stopBackgroundUser(UserHandle.USER_SYSTEM));
     }
 
@@ -516,7 +524,7 @@
     public void testSwitchDriver() throws RemoteException {
         int currentId = 11;
         int targetId = 12;
-        doReturn(currentId).when(() -> ActivityManager.getCurrentUser());
+        mockGetCurrentUser(currentId);
         doReturn(true).when(mMockedIActivityManager).switchUser(targetId);
         doReturn(false).when(mMockedUserManager)
                 .hasUserRestriction(UserManager.DISALLOW_USER_SWITCH);
@@ -527,7 +535,7 @@
     public void testSwitchDriver_IfUserSwitchIsNotAllowed() throws RemoteException {
         int currentId = 11;
         int targetId = 12;
-        doReturn(currentId).when(() -> ActivityManager.getCurrentUser());
+        mockGetCurrentUser(currentId);
         doReturn(true).when(mMockedIActivityManager).switchUser(targetId);
         doReturn(UserManager.SWITCHABILITY_STATUS_USER_SWITCH_DISALLOWED).when(mMockedUserManager)
                 .getUserSwitchability();
@@ -537,7 +545,7 @@
     @Test
     public void testSwitchDriver_IfSwitchedToCurrentUser() throws RemoteException {
         int currentId = 11;
-        doReturn(currentId).when(() -> ActivityManager.getCurrentUser());
+        mockGetCurrentUser(currentId);
         doReturn(false).when(mMockedUserManager)
                 .hasUserRestriction(UserManager.DISALLOW_USER_SWITCH);
         assertTrue(mCarUserService.switchDriver(11));
@@ -569,7 +577,7 @@
         associateParentChild(user1Info, passenger1Info);
         doReturn(passenger1Info).when(mMockedUserManager).getUserInfo(passenger1Id);
         doReturn(null).when(mMockedUserManager).getUserInfo(passenger2Id);
-        doReturn(user1Id).when(() -> ActivityManager.getCurrentUser());
+        mockGetCurrentUser(user1Id);
         doReturn(true).when(mMockedIActivityManager)
                 .startUserInBackgroundWithListener(anyInt(), eq(null));
         assertTrue(mCarUserService.startPassenger(passenger1Id, zoneId));
@@ -640,67 +648,364 @@
     }
 
     @Test
-    public void testSwitchUser_nullReceiver() throws Exception {
-        assertThrows(NullPointerException.class, () -> mCarUserService
-                .switchUser(mAdminUser, mAsyncCallTimeoutMs, null));
+    public void testSwitchUser_nonExistingTarget() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .switchUser(NON_EXISTING_USER, mAsyncCallTimeoutMs, mUserSwitchFuture));
+    }
+
+    @Test
+    public void testSwitchUser_targetSameAsCurrentUser() throws Exception {
+        mockExistingUsers();
+        mockGetCurrentUser(mAdminUser.id);
+        mCarUserService.switchUser(mAdminUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+        assertThat(getUserSwitchResult().getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_ALREADY_REQUESTED_USER);
     }
 
     @Test
     public void testSwitchUser_HalSuccessAndroidSuccess() throws Exception {
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
         mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
-        mockHalSwitchUser(mAdminUser.id, mSwitchUserResponse, mGuestUser);
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
         mockAmSwitchUser(mGuestUser, true);
 
-        mCarUserService.switchUser(mGuestUser, mAsyncCallTimeoutMs, mReceiver);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
 
-        assertThat(mReceiver.getResultCode())
-                .isEqualTo(CarUserManager.USER_SWICTH_STATUS_SUCCESSFUL);
-        Bundle resultData = mReceiver.getResultData();
-        assertThat(resultData).isNotNull();
-        assertSwitchUserStatus(resultData, mSwitchUserResponse.status);
+        assertThat(getUserSwitchResult().getStatus()).isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+
+        // update current user due to successful user switch
+        mockCurrentUser(mGuestUser);
+        sendUserUnlockedEvent(mGuestUser.id);
+        assertPostSwitch(requestId, mGuestUser.id, mGuestUser.id);
     }
 
     @Test
     public void testSwitchUser_HalSuccessAndroidFailure() throws Exception {
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
         mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
-        mockHalSwitchUser(mAdminUser.id, mSwitchUserResponse, mGuestUser);
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
         mockAmSwitchUser(mGuestUser, false);
 
-        mCarUserService.switchUser(mGuestUser, mAsyncCallTimeoutMs, mReceiver);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
 
-        assertThat(mReceiver.getResultCode())
-                .isEqualTo(CarUserManager.USER_SWICTH_STATUS_ANDROID_FAILURE);
-        Bundle resultData = mReceiver.getResultData();
-        assertThat(resultData).isNotNull();
-        assertSwitchUserStatus(resultData, mSwitchUserResponse.status);
+        assertThat(getUserSwitchResult().getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_ANDROID_FAILURE);
+        assertPostSwitch(requestId, mAdminUser.id, mGuestUser.id);
     }
 
     @Test
     public void testSwitchUser_HalFailure() throws Exception {
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
         mSwitchUserResponse.status = SwitchUserStatus.FAILURE;
-        mSwitchUserResponse.messageType = SwitchUserMessageType.VEHICLE_RESPONSE;
         mSwitchUserResponse.errorMessage = "Error Message";
-        mockHalSwitchUser(mAdminUser.id, mSwitchUserResponse, mGuestUser);
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
 
-        mCarUserService.switchUser(mGuestUser, mAsyncCallTimeoutMs, mReceiver);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
 
-        assertThat(mReceiver.getResultCode())
-                .isEqualTo(CarUserManager.USER_SWICTH_STATUS_HAL_FAILURE);
-        Bundle resultData = mReceiver.getResultData();
-        assertThat(resultData).isNotNull();
-        assertSwitchUserStatus(resultData, mSwitchUserResponse.status);
-        assertSwitchUserMessageType(resultData, mSwitchUserResponse.messageType);
-        assertSwitchUserErrorMessage(resultData, mSwitchUserResponse.errorMessage);
+        UserSwitchResult result = getUserSwitchResult();
+        assertThat(result.getStatus()).isEqualTo(UserSwitchResult.STATUS_HAL_FAILURE);
+        assertThat(result.getErrorMessage()).isEqualTo(mSwitchUserResponse.errorMessage);
+    }
+
+    @Test
+    public void testSwitchUser_error_badCallbackStatus() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mockHalSwitch(mAdminUser.id, HalCallback.STATUS_WRONG_HAL_RESPONSE, mSwitchUserResponse,
+                mGuestUser);
+
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        assertThat(getUserSwitchResult().getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_HAL_INTERNAL_FAILURE);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsDifferentUser_beforeFirstUserUnlocked()
+            throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
+        mockAmSwitchUser(mGuestUser, true);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        // calling another user switch before unlock
+        int newRequestId = 43;
+        SwitchUserResponse switchUserResponse = new SwitchUserResponse();
+        switchUserResponse.status = SwitchUserStatus.SUCCESS;
+        switchUserResponse.requestId = newRequestId;
+        mockHalSwitch(mAdminUser.id, mRegularUser, switchUserResponse);
+        mockAmSwitchUser(mRegularUser, true);
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mRegularUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+
+        assertThat(getUserSwitchResult().getStatus()).isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertNoPostSwitch();
+        assertHalSwitch(mAdminUser.id, mGuestUser.id, mAdminUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsDifferentUser_beforeFirstUserUnlock_abandonFirstCall()
+            throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
+        mockAmSwitchUser(mGuestUser, true);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        // calling another user switch before unlock
+        int newRequestId = 43;
+        SwitchUserResponse switchUserResponse = new SwitchUserResponse();
+        switchUserResponse.status = SwitchUserStatus.SUCCESS;
+        switchUserResponse.requestId = newRequestId;
+        mockHalSwitch(mAdminUser.id, mRegularUser, switchUserResponse);
+        mockAmSwitchUser(mRegularUser, true);
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mRegularUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+        mockCurrentUser(mRegularUser);
+        sendUserUnlockedEvent(mRegularUser.id);
+
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertPostSwitch(newRequestId, mRegularUser.id, mRegularUser.id);
+        assertHalSwitch(mAdminUser.id, mGuestUser.id, mAdminUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsDifferentUser_beforeHALResponded()
+            throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        // calling another user switch before unlock
+        int newRequestId = 43;
+        SwitchUserResponse switchUserResponse = new SwitchUserResponse();
+        switchUserResponse.status = SwitchUserStatus.SUCCESS;
+        switchUserResponse.requestId = newRequestId;
+        mockHalSwitch(mAdminUser.id, mRegularUser, switchUserResponse);
+        mockAmSwitchUser(mRegularUser, true);
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mRegularUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertNoPostSwitch();
+        assertHalSwitch(mAdminUser.id, mGuestUser.id, mAdminUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsDifferentUser_beforeHALResponded_abandonFirstCall()
+            throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        // calling another user switch before unlock
+        int newRequestId = 43;
+        SwitchUserResponse switchUserResponse = new SwitchUserResponse();
+        switchUserResponse.status = SwitchUserStatus.SUCCESS;
+        switchUserResponse.requestId = newRequestId;
+        mockHalSwitch(mAdminUser.id, mRegularUser, switchUserResponse);
+        mockAmSwitchUser(mRegularUser, true);
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mRegularUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+        mockCurrentUser(mRegularUser);
+        sendUserUnlockedEvent(mRegularUser.id);
+
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertPostSwitch(newRequestId, mRegularUser.id, mRegularUser.id);
+        assertHalSwitch(mAdminUser.id, mGuestUser.id, mAdminUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsDifferentUser_HALRespondedLate_abandonFirstCall()
+            throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        BlockingAnswer<Void> blockingAnswer = mockHalSwitchLateResponse(mAdminUser.id, mGuestUser,
+                mSwitchUserResponse);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        // calling another user switch before unlock
+        int newRequestId = 43;
+        SwitchUserResponse switchUserResponse = new SwitchUserResponse();
+        switchUserResponse.status = SwitchUserStatus.SUCCESS;
+        switchUserResponse.requestId = newRequestId;
+        mockHalSwitch(mAdminUser.id, mRegularUser, switchUserResponse);
+        mockAmSwitchUser(mRegularUser, true);
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mRegularUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+        mockCurrentUser(mRegularUser);
+        sendUserUnlockedEvent(mRegularUser.id);
+        blockingAnswer.unblock();
+
+        UserSwitchResult result = getUserSwitchResult();
+        assertThat(result.getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_TARGET_USER_ABANDONED_DUE_TO_A_NEW_REQUEST);
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertPostSwitch(newRequestId, mRegularUser.id, mRegularUser.id);
+        assertHalSwitch(mAdminUser.id, mGuestUser.id, mAdminUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsSameUser_beforeHALResponded() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+        // calling another user switch before unlock
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO);
+        assertNoPostSwitch();
+        assertHalSwitch(mAdminUser.id, mGuestUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsSameUser_beforeFirstUserUnlocked() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
+        mockAmSwitchUser(mGuestUser, true);
+
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+        // calling another user switch before unlock
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+
+        assertThat(getUserSwitchResult().getStatus()).isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO);
+        assertNoPostSwitch();
+        assertHalSwitch(mAdminUser.id, mGuestUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_multipleCallsSameUser_beforeFirstUserUnlocked_noAffectOnFirstCall()
+            throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
+        mockAmSwitchUser(mGuestUser, true);
+
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+        int newRequestId = 43;
+        mSwitchUserResponse.requestId = newRequestId;
+
+        // calling another user switch before unlock
+        AndroidFuture<UserSwitchResult> futureNewRequest = new AndroidFuture<>();
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, futureNewRequest);
+        mockCurrentUser(mGuestUser);
+        sendUserUnlockedEvent(mGuestUser.id);
+
+        assertThat(getUserSwitchResult().getStatus()).isEqualTo(UserSwitchResult.STATUS_SUCCESSFUL);
+        assertThat(getResult(futureNewRequest).getStatus())
+                .isEqualTo(UserSwitchResult.STATUS_TARGET_USER_ALREADY_BEING_SWITCHED_TO);
+        assertPostSwitch(requestId, mGuestUser.id, mGuestUser.id);
+        assertHalSwitch(mAdminUser.id, mGuestUser.id);
     }
 
     @Test
     public void testSwitchUser_InvalidPermission() throws Exception {
         mockManageUsersPermission(android.Manifest.permission.MANAGE_USERS, false);
-        assertThrows(SecurityException.class,
-                () -> mCarUserService.switchUser(mGuestUser, mAsyncCallTimeoutMs, mReceiver));
+        assertThrows(SecurityException.class, () -> mCarUserService
+                .switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture));
+    }
+
+    @Test
+    public void testHalUserSwitchOnAndroidSwitch_successfulNoExitingUserSwitch() {
+        mockExistingUsers();
+
+        sendUserSwitchingEvent(mAdminUser.id, mRegularUser.id);
+
+        ArgumentCaptor<android.hardware.automotive.vehicle.V2_0.UserInfo> targetUser =
+                ArgumentCaptor.forClass(android.hardware.automotive.vehicle.V2_0.UserInfo.class);
+        ArgumentCaptor<UsersInfo> usersInfo = ArgumentCaptor.forClass(UsersInfo.class);
+        verify(mUserHal).legacyUserSwitch(targetUser.capture(), usersInfo.capture());
+        assertThat(targetUser.getValue().userId).isEqualTo(mRegularUser.id);
+        assertThat(usersInfo.getValue().currentUser.userId).isEqualTo(mAdminUser.id);
+    }
+
+    @Test
+    public void testHalUserSwitchOnAndroidSwitch_failureExitingUserSwitch() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
+        mockAmSwitchUser(mGuestUser, true);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        sendUserSwitchingEvent(mAdminUser.id, mGuestUser.id);
+
+        verify(mUserHal, never()).legacyUserSwitch(any(), any());
+    }
+
+    @Test
+    public void testSetSwitchUserUI_receiverSetAndCalled() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        int requestId = 42;
+        mSwitchUserResponse.status = SwitchUserStatus.SUCCESS;
+        mSwitchUserResponse.requestId = requestId;
+        mockHalSwitch(mAdminUser.id, mGuestUser, mSwitchUserResponse);
+        mockAmSwitchUser(mGuestUser, true);
+
+        mCarUserService.setUserSwitchUiCallback(mSwitchUserUiReceiver);
+        mCarUserService.switchUser(mGuestUser.id, mAsyncCallTimeoutMs, mUserSwitchFuture);
+
+        // update current user due to successful user switch
+        verify(mSwitchUserUiReceiver).send(mGuestUser.id, null);
+    }
+
+    @Test
+    public void testSwitchUser_OEMRequest_success() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        mockAmSwitchUser(mRegularUser, true);
+        int requestId = -1;
+
+        mCarUserService.switchAndroidUserFromHal(requestId, mRegularUser.id);
+        mockCurrentUser(mRegularUser);
+        sendUserUnlockedEvent(mRegularUser.id);
+
+        assertPostSwitch(requestId, mRegularUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testSwitchUser_OEMRequest_failure() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        mockAmSwitchUser(mRegularUser, false);
+        int requestId = -1;
+
+        mCarUserService.switchAndroidUserFromHal(requestId, mRegularUser.id);
+
+        assertPostSwitch(requestId, mAdminUser.id, mRegularUser.id);
     }
 
     @Test
@@ -718,7 +1023,7 @@
 
     @Test
     public void testGetUserInfo_defaultResponse() throws Exception {
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
 
         mGetUserInfoResponse.action = InitialUserInfoResponseAction.DEFAULT;
         mockGetInitialInfo(mAdminUser.id, mGetUserInfoResponse);
@@ -734,7 +1039,7 @@
     @Test
     public void testGetUserInfo_switchUserResponse() throws Exception {
         int switchUserId = mGuestUser.id;
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
 
         mGetUserInfoResponse.action = InitialUserInfoResponseAction.SWITCH;
         mGetUserInfoResponse.userToSwitchOrCreate.userId = switchUserId;
@@ -756,7 +1061,7 @@
         int newUserFlags = 42;
         String newUserName = "TheDude";
 
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
 
         mGetUserInfoResponse.action = InitialUserInfoResponseAction.CREATE;
         mGetUserInfoResponse.userToSwitchOrCreate.flags = newUserFlags;
@@ -780,7 +1085,7 @@
     @Test
     public void testGetInitialUserInfo() throws Exception {
         int requestType = 42;
-        mockCurrentUsers(mAdminUser);
+        mockExistingUsersAndCurrentUser(mAdminUser);
         HalCallback<InitialUserInfoResponse> callback = (s, r) -> { };
         mCarUserService.getInitialUserInfo(requestType, callback);
         verify(mUserHal).getInitialUserInfo(eq(requestType), anyInt(), mUsersInfoCaptor.capture(),
@@ -802,21 +1107,260 @@
     }
 
     @Test
+    public void testGetInitialUser_invalidPermission() throws Exception {
+        mockManageUsersPermission(android.Manifest.permission.INTERACT_ACROSS_USERS, false);
+        mockManageUsersPermission(android.Manifest.permission.INTERACT_ACROSS_USERS_FULL, false);
+        assertThrows(SecurityException.class, () -> mCarUserService.getInitialUser());
+    }
+
+    @Test
+    public void testGetInitialUser_ok() throws Exception {
+        assertThat(mCarUserService.getInitialUser()).isNull();
+        UserInfo user = new UserInfo();
+        mCarUserService.setInitialUser(user);
+        assertThat(mCarUserService.getInitialUser()).isSameAs(user);
+    }
+
+    @Test
     public void testIsHalSupported() throws Exception {
         when(mUserHal.isSupported()).thenReturn(true);
         assertThat(mCarUserService.isUserHalSupported()).isTrue();
     }
 
+    @Test
+    public void testGetUserIdentificationAssociation_nullTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mCarUserService.getUserIdentificationAssociation(null));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_emptyTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class,
+                () -> mCarUserService.getUserIdentificationAssociation(new int[] {}));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_noPermission() throws Exception {
+        mockManageUsersPermission(android.Manifest.permission.MANAGE_USERS, false);
+        assertThrows(SecurityException.class,
+                () -> mCarUserService.getUserIdentificationAssociation(new int[] { 42 }));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_noSuchUser() throws Exception {
+        // Should fail because we're not mocking UserManager.getUserInfo() to set the flag
+        assertThrows(IllegalArgumentException.class,
+                () -> mCarUserService.getUserIdentificationAssociation(new int[] { 42 }));
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_service_returnNull() throws Exception {
+        mockCurrentUserForBinderCalls();
+
+        // Not mocking service call, so it will return null
+
+        UserIdentificationAssociationResponse response = mCarUserService
+                .getUserIdentificationAssociation(new int[] { 108 });
+
+        assertThat(response.isSuccess()).isFalse();
+        assertThat(response.getValues()).isNull();
+        assertThat(response.getErrorMessage()).isNull();
+    }
+
+    @Test
+    public void testGetUserIdentificationAssociation_ok() throws Exception {
+        UserInfo currentUser = mockCurrentUserForBinderCalls();
+
+        int[] types = new int[] { 1, 2, 3 };
+        int[] values = new int[] { 10, 20, 30 };
+        mockHalGetUserIdentificationAssociation(currentUser, types, values, "D'OH!");
+
+        UserIdentificationAssociationResponse response = mCarUserService
+                .getUserIdentificationAssociation(types);
+
+        assertThat(response.isSuccess()).isTrue();
+        assertThat(response.getValues()).asList().containsAllOf(10, 20, 30).inOrder();
+        assertThat(response.getErrorMessage()).isEqualTo("D'OH!");
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_nullTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        null, new int[] {42}, mUserAssociationRespFuture));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_emptyTypes() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        new int[0], new int[] {42}, mUserAssociationRespFuture));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_nullValues() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        new int[] {42}, null, mUserAssociationRespFuture));
+    }
+    @Test
+    public void testSetUserIdentificationAssociation_sizeMismatch() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        new int[] {1}, new int[] {2, 2}, mUserAssociationRespFuture));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_nullFuture() throws Exception {
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        new int[] {42}, new int[] {42}, null));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_noPermission() throws Exception {
+        mockManageUsersPermission(android.Manifest.permission.MANAGE_USERS, false);
+        assertThrows(SecurityException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        new int[] {42}, new int[] {42}, mUserAssociationRespFuture));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_noCurrentUser() throws Exception {
+        // Should fail because we're not mocking UserManager.getUserInfo() to set the flag
+        assertThrows(IllegalArgumentException.class, () -> mCarUserService
+                .setUserIdentificationAssociation(mAsyncCallTimeoutMs,
+                        new int[] {42}, new int[] {42}, mUserAssociationRespFuture));
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_halFailedWithErrorMessage() throws Exception {
+        mockCurrentUserForBinderCalls();
+        mockHalSetUserIdentificationAssociationFailure("D'OH!");
+        int[] types = new int[] { 1, 2, 3 };
+        int[] values = new int[] { 10, 20, 30 };
+        mCarUserService.setUserIdentificationAssociation(mAsyncCallTimeoutMs, types, values,
+                mUserAssociationRespFuture);
+
+        UserIdentificationAssociationResponse response = getUserAssociationRespResult();
+
+        assertThat(response.isSuccess()).isFalse();
+        assertThat(response.getValues()).isNull();
+        assertThat(response.getErrorMessage()).isEqualTo("D'OH!");
+
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_halFailedWithoutErrorMessage()
+            throws Exception {
+        mockCurrentUserForBinderCalls();
+        mockHalSetUserIdentificationAssociationFailure(/* errorMessage= */ null);
+        int[] types = new int[] { 1, 2, 3 };
+        int[] values = new int[] { 10, 20, 30 };
+        mCarUserService.setUserIdentificationAssociation(mAsyncCallTimeoutMs, types, values,
+                mUserAssociationRespFuture);
+
+        UserIdentificationAssociationResponse response = getUserAssociationRespResult();
+
+        assertThat(response.isSuccess()).isFalse();
+        assertThat(response.getValues()).isNull();
+        assertThat(response.getErrorMessage()).isNull();
+    }
+
+    @Test
+    public void testSetUserIdentificationAssociation_ok() throws Exception {
+        UserInfo currentUser = mockCurrentUserForBinderCalls();
+
+        int[] types = new int[] { 1, 2, 3 };
+        int[] values = new int[] { 10, 20, 30 };
+        mockHalSetUserIdentificationAssociationSuccess(currentUser, types, values, "D'OH!");
+
+        mCarUserService.setUserIdentificationAssociation(mAsyncCallTimeoutMs, types, values,
+                mUserAssociationRespFuture);
+
+        UserIdentificationAssociationResponse response = getUserAssociationRespResult();
+
+        assertThat(response.isSuccess()).isTrue();
+        assertThat(response.getValues()).asList().containsAllOf(10, 20, 30).inOrder();
+        assertThat(response.getErrorMessage()).isEqualTo("D'OH!");
+    }
+
+    @Test
+    public void testUserMetric_SendEvent() throws Exception {
+        mockExistingUsersAndCurrentUser(mAdminUser);
+        sendUserSwitchingEvent(mAdminUser.id, mRegularUser.id);
+
+        verify(mUserMetrics).onEvent(CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING,
+                0, mAdminUser.id, mRegularUser.id);
+    }
+
+    @Test
+    public void testUserMetric_FirstUnlock() {
+        int userId = 99;
+        long timestampMs = 0;
+        long duration = 153;
+        int halResponseTime = 5;
+        mCarUserService.onFirstUserUnlocked(userId, timestampMs, duration, halResponseTime);
+
+        verify(mUserMetrics).logFirstUnlockedUser(userId, timestampMs, duration, halResponseTime);
+    }
+
+    @NonNull
+    private UserSwitchResult getUserSwitchResult() throws Exception {
+        return getResult(mUserSwitchFuture);
+    }
+
+    @NonNull
+    private UserIdentificationAssociationResponse getUserAssociationRespResult()
+            throws Exception {
+        return getResult(mUserAssociationRespFuture);
+    }
+
+    @NonNull
+    private <T> T getResult(@NonNull AndroidFuture<T> future) throws Exception {
+        try {
+            return future.get(mAsyncCallTimeoutMs, TimeUnit.MILLISECONDS);
+        } catch (TimeoutException e) {
+            throw new IllegalStateException("not called in " + mAsyncCallTimeoutMs + "ms", e);
+        }
+    }
+
+    /**
+     * This method must be called for cases where the service infers the user id of the caller
+     * using Binder - it's not worth the effort of mocking such (native) calls.
+     */
+    @NonNull
+    private UserInfo mockCurrentUserForBinderCalls() {
+        int currentUserId = ActivityManager.getCurrentUser();
+        Log.d(TAG, "testetUserIdentificationAssociation_ok(): current user is " + currentUserId);
+        UserInfo currentUser = mockUmGetUserInfo(mMockedUserManager, currentUserId,
+                UserInfo.FLAG_ADMIN);
+        return currentUser;
+    }
+
     /**
      * Mock calls that generate a {@code UsersInfo}.
      */
-    private void mockCurrentUsers(@NonNull UserInfo user) throws Exception {
+    private void mockExistingUsersAndCurrentUser(@NonNull UserInfo user)
+            throws Exception {
+        mockExistingUsers();
+        mockCurrentUser(user);
+    }
+
+    private void mockExistingUsers() {
+        mockUmGetUsers(mMockedUserManager, mExistingUsers);
+        for (UserInfo user : mExistingUsers) {
+            AndroidMockitoHelper.mockUmGetUserInfo(mMockedUserManager, user);
+        }
+    }
+
+    private void mockCurrentUser(@NonNull UserInfo user) throws Exception {
         when(mMockedIActivityManager.getCurrentUser()).thenReturn(user);
-        when(mMockedUserManager.getUsers()).thenReturn(mExistingUsers);
+        mockGetCurrentUser(user.id);
     }
 
     private void mockAmSwitchUser(@NonNull UserInfo user, boolean result) throws Exception {
-        when(mMockedIActivityManager.switchUser(eq(user.id))).thenReturn(result);
+        when(mMockedIActivityManager.switchUser(user.id)).thenReturn(result);
     }
 
     private void mockGetInitialInfo(@UserIdInt int currentUserId,
@@ -833,8 +1377,39 @@
                 eq(usersInfo), notNull());
     }
 
-    private void mockHalSwitchUser(@UserIdInt int currentUserId,
-            @NonNull SwitchUserResponse response, @NonNull UserInfo androidTargetUser) {
+    private void mockIsHeadlessSystemUser(@UserIdInt int userId, boolean mode) {
+        doReturn(mode).when(() -> UserHelper.isHeadlessSystemUser(userId));
+    }
+
+    private void mockHalSwitch(@UserIdInt int currentUserId, @NonNull UserInfo androidTargetUser,
+            @Nullable SwitchUserResponse response) {
+        mockHalSwitch(currentUserId, HalCallback.STATUS_OK, response, androidTargetUser);
+    }
+
+    private BlockingAnswer<Void> mockHalSwitchLateResponse(@UserIdInt int currentUserId,
+            @NonNull UserInfo androidTargetUser, @Nullable SwitchUserResponse response) {
+        android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
+                new android.hardware.automotive.vehicle.V2_0.UserInfo();
+        halTargetUser.userId = androidTargetUser.id;
+        halTargetUser.flags = UserHalHelper.convertFlags(androidTargetUser);
+        UsersInfo usersInfo = newUsersInfo(currentUserId);
+
+        BlockingAnswer<Void> blockingAnswer = BlockingAnswer.forVoidReturn(10_000, (invocation) -> {
+            Log.d(TAG, "Answering " + invocation + " with " + response);
+            @SuppressWarnings("unchecked")
+            HalCallback<SwitchUserResponse> callback = (HalCallback<SwitchUserResponse>) invocation
+                    .getArguments()[3];
+            callback.onResponse(HalCallback.STATUS_OK, response);
+        });
+        doAnswer(blockingAnswer).when(mUserHal).switchUser(eq(halTargetUser),
+                eq(mAsyncCallTimeoutMs), eq(usersInfo), notNull());
+        return blockingAnswer;
+
+    }
+
+    private void mockHalSwitch(@UserIdInt int currentUserId,
+            @HalCallback.HalCallbackStatus int callbackStatus,
+            @Nullable SwitchUserResponse response, @NonNull UserInfo androidTargetUser) {
         android.hardware.automotive.vehicle.V2_0.UserInfo halTargetUser =
                 new android.hardware.automotive.vehicle.V2_0.UserInfo();
         halTargetUser.userId = androidTargetUser.id;
@@ -845,12 +1420,78 @@
             @SuppressWarnings("unchecked")
             HalCallback<SwitchUserResponse> callback =
                     (HalCallback<SwitchUserResponse>) invocation.getArguments()[3];
-            callback.onResponse(HalCallback.STATUS_OK, response);
+            callback.onResponse(callbackStatus, response);
             return null;
         }).when(mUserHal).switchUser(eq(halTargetUser), eq(mAsyncCallTimeoutMs), eq(usersInfo),
                 notNull());
     }
 
+    private void mockHalGetUserIdentificationAssociation(@NonNull UserInfo user,
+            @NonNull int[] types, @NonNull int[] values,  @Nullable String errorMessage) {
+        assertWithMessage("mismatch on number of types and values").that(types.length)
+                .isEqualTo(values.length);
+
+        UserIdentificationResponse response = new UserIdentificationResponse();
+        response.numberAssociation = types.length;
+        response.errorMessage = errorMessage;
+        for (int i = 0; i < types.length; i++) {
+            UserIdentificationAssociation association = new UserIdentificationAssociation();
+            association.type = types[i];
+            association.value = values[i];
+            response.associations.add(association);
+        }
+
+        when(mUserHal.getUserAssociation(isUserIdentificationGetRequest(user, types)))
+                .thenReturn(response);
+    }
+
+    private void mockHalSetUserIdentificationAssociationSuccess(@NonNull UserInfo user,
+            @NonNull int[] types, @NonNull int[] values,  @Nullable String errorMessage) {
+        assertWithMessage("mismatch on number of types and values").that(types.length)
+                .isEqualTo(values.length);
+
+        UserIdentificationResponse response = new UserIdentificationResponse();
+        response.numberAssociation = types.length;
+        response.errorMessage = errorMessage;
+        for (int i = 0; i < types.length; i++) {
+            UserIdentificationAssociation association = new UserIdentificationAssociation();
+            association.type = types[i];
+            association.value = values[i];
+            response.associations.add(association);
+        }
+
+        doAnswer((invocation) -> {
+            Log.d(TAG, "Answering " + invocation + " with " + response);
+            @SuppressWarnings("unchecked")
+            UserIdentificationSetRequest request =
+                    (UserIdentificationSetRequest) invocation.getArguments()[1];
+            assertWithMessage("Wrong user on %s", request)
+                    .that(request.userInfo.userId)
+                    .isEqualTo(user.id);
+            assertWithMessage("Wrong flags on %s", request)
+                    .that(UserHalHelper.toUserInfoFlags(request.userInfo.flags))
+                    .isEqualTo(user.flags);
+            @SuppressWarnings("unchecked")
+            HalCallback<UserIdentificationResponse> callback =
+                    (HalCallback<UserIdentificationResponse>) invocation.getArguments()[2];
+            callback.onResponse(HalCallback.STATUS_OK, response);
+            return null;
+        }).when(mUserHal).setUserAssociation(eq(mAsyncCallTimeoutMs), notNull(), notNull());
+    }
+
+    private void mockHalSetUserIdentificationAssociationFailure(@NonNull String errorMessage) {
+        UserIdentificationResponse response = new UserIdentificationResponse();
+        response.errorMessage = errorMessage;
+        doAnswer((invocation) -> {
+            Log.d(TAG, "Answering " + invocation + " with " + response);
+            @SuppressWarnings("unchecked")
+            HalCallback<UserIdentificationResponse> callback =
+                    (HalCallback<UserIdentificationResponse>) invocation.getArguments()[2];
+            callback.onResponse(HalCallback.STATUS_WRONG_HAL_RESPONSE, response);
+            return null;
+        }).when(mUserHal).setUserAssociation(eq(mAsyncCallTimeoutMs), notNull(), notNull());
+    }
+
     private void mockManageUsersPermission(String permission, boolean granted) {
         int result;
         if (granted) {
@@ -962,25 +1603,43 @@
                 .isEqualTo(expectedAction);
     }
 
-    private void assertSwitchUserStatus(@NonNull Bundle resultData, int expectedStatus) {
-        int actualStatus = resultData.getInt(CarUserManager.BUNDLE_USER_SWITCH_STATUS);
-        assertWithMessage("wrong status on bundle extra %s",
-                CarUserManager.BUNDLE_USER_SWITCH_STATUS).that(actualStatus)
-                .isEqualTo(expectedStatus);
+    private void assertNoPostSwitch() {
+        verify(mUserHal, never()).postSwitchResponse(anyInt(), any(), any());
     }
 
-    private void assertSwitchUserMessageType(@NonNull Bundle resultData, int expectedType) {
-        int actualType = resultData.getInt(CarUserManager.BUNDLE_USER_SWITCH_MSG_TYPE);
-        assertWithMessage("wrong message type on bundle extra %s",
-                CarUserManager.BUNDLE_USER_SWITCH_MSG_TYPE).that(actualType)
-                .isEqualTo(expectedType);
+    private void assertPostSwitch(int requestId, int currentId, int targetId) {
+        // verify post switch response
+        ArgumentCaptor<android.hardware.automotive.vehicle.V2_0.UserInfo> targetUser =
+                ArgumentCaptor.forClass(android.hardware.automotive.vehicle.V2_0.UserInfo.class);
+        ArgumentCaptor<UsersInfo> usersInfo = ArgumentCaptor.forClass(UsersInfo.class);
+        verify(mUserHal).postSwitchResponse(eq(requestId), targetUser.capture(),
+                usersInfo.capture());
+        assertThat(targetUser.getValue().userId).isEqualTo(targetId);
+        assertThat(usersInfo.getValue().currentUser.userId).isEqualTo(currentId);
     }
 
-    private void assertSwitchUserErrorMessage(@NonNull Bundle resultData, String expectedMsg) {
-        String actualMsg = resultData.getString(CarUserManager.BUNDLE_USER_SWITCH_ERROR_MSG);
-        assertWithMessage("wrong error message on bundle extra %s",
-                CarUserManager.BUNDLE_USER_SWITCH_ERROR_MSG).that(actualMsg)
-                .isEqualTo(expectedMsg);
+    // TODO(b/154966308): Refactor to use argument matcher
+    private void assertHalSwitch(int currentId, int targetId) {
+        ArgumentCaptor<android.hardware.automotive.vehicle.V2_0.UserInfo> targetUser =
+                ArgumentCaptor.forClass(android.hardware.automotive.vehicle.V2_0.UserInfo.class);
+        ArgumentCaptor<UsersInfo> usersInfo = ArgumentCaptor.forClass(UsersInfo.class);
+        verify(mUserHal).switchUser(targetUser.capture(), eq(mAsyncCallTimeoutMs),
+                usersInfo.capture(), any());
+        assertThat(targetUser.getValue().userId).isEqualTo(targetId);
+        assertThat(usersInfo.getValue().currentUser.userId).isEqualTo(currentId);
+    }
+
+    // TODO(b/154966308): Refactor to use argument matcher
+    private void assertHalSwitch(int currentId1, int targetId1, int currentId2, int targetId2) {
+        ArgumentCaptor<android.hardware.automotive.vehicle.V2_0.UserInfo> targetUser =
+                ArgumentCaptor.forClass(android.hardware.automotive.vehicle.V2_0.UserInfo.class);
+        ArgumentCaptor<UsersInfo> usersInfo = ArgumentCaptor.forClass(UsersInfo.class);
+        verify(mUserHal, times(2)).switchUser(targetUser.capture(), eq(mAsyncCallTimeoutMs),
+                usersInfo.capture(), any());
+        assertThat(targetUser.getAllValues().get(0).userId).isEqualTo(targetId1);
+        assertThat(usersInfo.getAllValues().get(0).currentUser.userId).isEqualTo(currentId1);
+        assertThat(targetUser.getAllValues().get(1).userId).isEqualTo(targetId2);
+        assertThat(usersInfo.getAllValues().get(1).currentUser.userId).isEqualTo(currentId2);
     }
 
     static final class FakeCarOccupantZoneService {
@@ -1025,183 +1684,83 @@
         }
     }
 
-    // TODO(b/148403316): Refactor to use common fake settings provider
-    private void mockSettingsGlobal() {
-        when(Settings.Global.putInt(any(), eq(CarSettings.Global.DEFAULT_USER_RESTRICTIONS_SET),
-                anyInt())).thenAnswer(invocation -> {
-                            int value = (int) invocation.getArguments()[2];
-                            when(Settings.Global.getInt(any(),
-                                    eq(CarSettings.Global.DEFAULT_USER_RESTRICTIONS_SET), anyInt()))
-                                    .thenReturn(value);
-                            return null;
-                        }
-        );
+    private void sendUserLifecycleEvent(@UserIdInt int fromUserId, @UserIdInt int toUserId,
+            @UserLifecycleEventType int eventType) {
+        mCarUserService.onUserLifecycleEvent(eventType, /* timestampMs= */ 0, fromUserId, toUserId);
     }
 
-    private void putSettingsInt(String key, int value) {
-        Settings.Global.putInt(InstrumentationRegistry.getTargetContext().getContentResolver(),
-                key, value);
+    private void sendUserUnlockedEvent(@UserIdInt int userId) {
+        sendUserLifecycleEvent(/* fromUser */ 0, userId,
+                CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKED);
     }
 
-    private int getSettingsInt(String key) {
-        return Settings.Global.getInt(
-                InstrumentationRegistry.getTargetContext().getContentResolver(),
-                key, /* default= */ 0);
+    private void sendUserSwitchingEvent(@UserIdInt int fromUserId, @UserIdInt int toUserId) {
+        sendUserLifecycleEvent(fromUserId, toUserId,
+                CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING);
     }
 
-    private void sendUserUnlockingEvent(int userId) {
-        mCarUserService.onUserLifecycleEvent(new UserLifecycleEvent(
-                CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING, userId));
+    @NonNull
+    private static UserIdentificationGetRequest isUserIdentificationGetRequest(
+            @NonNull UserInfo user, @NonNull int[] types) {
+        return argThat(new UserIdentificationGetRequestMatcher(user, types));
     }
 
-    private void onUserSwitching(int userId) {
-        mCarUserService.onUserLifecycleEvent(new UserLifecycleEvent(
-                CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING, userId));
-    }
+    private static class UserIdentificationGetRequestMatcher implements
+            ArgumentMatcher<UserIdentificationGetRequest> {
 
-    // TODO(b/149099817): move stuff below to common code
+        private static final String MY_TAG =
+                UserIdentificationGetRequestMatcher.class.getSimpleName();
 
-    /**
-     * Builder for {@link UserInfo} objects.
-     *
-     */
-    public static final class UserInfoBuilder {
+        private final @UserIdInt int mUserId;
+        private final int mHalFlags;
+        private final @NonNull int[] mTypes;
 
-        @UserIdInt
-        private final int mUserId;
-
-        @Nullable
-        private String mName;
-
-        private boolean mGuest;
-        private boolean mEphemeral;
-        private boolean mAdmin;
-
-        /**
-         * Default constructor.
-         */
-        public UserInfoBuilder(@UserIdInt int userId) {
-            mUserId = userId;
-        }
-
-        /**
-         * Sets the user name.
-         */
-        @NonNull
-        public UserInfoBuilder setName(@Nullable String name) {
-            mName = name;
-            return this;
-        }
-
-        /**
-         * Sets whether the user is a guest.
-         */
-        @NonNull
-        public UserInfoBuilder setGuest(boolean guest) {
-            mGuest = guest;
-            return this;
-        }
-
-        /**
-         * Sets whether the user is ephemeral.
-         */
-        @NonNull
-        public UserInfoBuilder setEphemeral(boolean ephemeral) {
-            mEphemeral = ephemeral;
-            return this;
-        }
-
-        /**
-         * Sets whether the user is an admin.
-         */
-        @NonNull
-        public UserInfoBuilder setAdmin(boolean admin) {
-            mAdmin = admin;
-            return this;
-        }
-
-        /**
-         * Creates a new {@link UserInfo}.
-         */
-        @NonNull
-        public UserInfo build() {
-            int flags = 0;
-            if (mEphemeral) {
-                flags |= UserInfo.FLAG_EPHEMERAL;
-            }
-            if (mAdmin) {
-                flags |= UserInfo.FLAG_ADMIN;
-            }
-            UserInfo info = new UserInfo(mUserId, mName, flags);
-            if (mGuest) {
-                info.userType = UserManager.USER_TYPE_FULL_GUEST;
-            }
-            return info;
-        }
-
-        /**
-         * Creates a new {@link UserInfo} for a system user.
-         */
-        @NonNull
-        public static UserInfo newSystemUserInfo() {
-            UserInfo info = new UserInfo();
-            info.id = UserHandle.USER_SYSTEM;
-            return info;
-        }
-    }
-
-    /**
-     * Implementation of {@link IResultReceiver} that blocks waiting for the result.
-     */
-    public static final class BlockingResultReceiver extends IResultReceiver.Stub {
-
-        private final CountDownLatch mLatch = new CountDownLatch(1);
-        private final long mTimeoutMs;
-
-        private int mResultCode;
-        @Nullable private Bundle mResultData;
-
-        /**
-         * Default constructor.
-         *
-         * @param timeoutMs how long to wait for before failing.
-         */
-        public BlockingResultReceiver(long timeoutMs) {
-            mTimeoutMs = timeoutMs;
+        private UserIdentificationGetRequestMatcher(@NonNull UserInfo user, @NonNull int[] types) {
+            mUserId = user.id;
+            mHalFlags = UserHalHelper.convertFlags(user);
+            mTypes = types;
         }
 
         @Override
-        public void send(int resultCode, Bundle resultData) {
-            Log.d(TAG, "send() received: code=" + resultCode + ", data=" + resultData + ", count="
-                    + mLatch.getCount());
-            Preconditions.checkState(mLatch.getCount() == 1,
-                    "send() already called (code=" + mResultCode + ", data=" + mResultData);
-            mResultCode = resultCode;
-            mResultData = resultData;
-            mLatch.countDown();
+        public boolean matches(UserIdentificationGetRequest argument) {
+            if (argument == null) {
+                Log.w(MY_TAG, "null argument");
+                return false;
+            }
+            if (argument.userInfo.userId != mUserId) {
+                Log.w(MY_TAG, "wrong user id on " + argument + "; expected " + mUserId);
+                return false;
+            }
+            if (argument.userInfo.flags != mHalFlags) {
+                Log.w(MY_TAG, "wrong flags on " + argument + "; expected " + mHalFlags);
+                return false;
+            }
+            if (argument.numberAssociationTypes != mTypes.length) {
+                Log.w(MY_TAG, "wrong numberAssociationTypes on " + argument + "; expected "
+                        + mTypes.length);
+                return false;
+            }
+            if (argument.associationTypes.size() != mTypes.length) {
+                Log.w(MY_TAG, "wrong associationTypes size on " + argument + "; expected "
+                        + mTypes.length);
+                return false;
+            }
+            for (int i = 0; i < mTypes.length; i++) {
+                if (argument.associationTypes.get(i) != mTypes[i]) {
+                    Log.w(MY_TAG, "wrong association type on index " + i + " on " + argument
+                            + "; expected types: " + Arrays.toString(mTypes));
+                    return false;
+                }
+            }
+            Log.d(MY_TAG, "Good News, Everyone! " + argument + " matches " + this);
+            return true;
         }
 
-        private void assertCalled() throws InterruptedException {
-            boolean called = mLatch.await(mTimeoutMs, TimeUnit.MILLISECONDS);
-            Log.d(TAG, "assertCalled(): " + called);
-            assertWithMessage("receiver not called in %sms", mTimeoutMs).that(called).isTrue();
-        }
-
-        /**
-         * Gets the {@code resultCode} or fails if it times out before {@code send()} is called.
-         */
-        public int getResultCode() throws InterruptedException {
-            assertCalled();
-            return mResultCode;
-        }
-
-        /**
-         * Gets the {@code resultData} or fails if it times out before {@code send()} is called.
-         */
-        @Nullable
-        public Bundle getResultData() throws InterruptedException {
-            assertCalled();
-            return mResultData;
+        @Override
+        public String toString() {
+            return "isUserIdentificationGetRequest(userId=" + mUserId + ", flags="
+                    + UserHalHelper.userFlagsToString(mHalFlags) + ", types="
+                    + Arrays.toString(mTypes) + ")";
         }
     }
 }
diff --git a/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserManagerUnitTest.java b/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserManagerUnitTest.java
new file mode 100644
index 0000000..026754c
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/user/ExperimentalCarUserManagerUnitTest.java
@@ -0,0 +1,197 @@
+/*
+ * Copyright (C) 2020 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.car.user;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+
+import android.annotation.UserIdInt;
+import android.car.Car;
+import android.car.ICarUserService;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.car.test.util.UserTestingHelper;
+import android.car.user.CarUserManager;
+import android.car.user.ExperimentalCarUserManager;
+import android.content.pm.UserInfo;
+import android.os.UserHandle;
+import android.os.UserManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mock;
+
+import java.util.Arrays;
+import java.util.List;
+
+public final class ExperimentalCarUserManagerUnitTest extends AbstractExtendedMockitoTestCase {
+
+    @Mock
+    private Car mCar;
+    @Mock
+    private UserManager mUserManager;
+    @Mock
+    private ICarUserService mService;
+
+    private ExperimentalCarUserManager mManager;
+
+    @Before public void setFixtures() {
+        mManager =
+                ExperimentalCarUserManager.from(new CarUserManager(mCar, mService, mUserManager));
+    }
+
+    @Test
+    public void testCreateDriver_Success_Admin() throws Exception {
+        expectCreateDriverSucceed(10);
+        int userId = mManager.createDriver("test driver", true);
+        assertThat(userId).isEqualTo(10);
+    }
+
+    @Test
+    public void testCreateDriver_Success_NonAdmin() throws Exception {
+        expectCreateDriverSucceed(10);
+        int userId = mManager.createDriver("test driver", false);
+        assertThat(userId).isEqualTo(10);
+    }
+
+    @Test
+    public void testCreateDriver_Error() throws Exception {
+        expectCreateDriverFail();
+        int userId = mManager.createDriver("test driver", false);
+        assertThat(userId).isEqualTo(UserHandle.USER_NULL);
+    }
+
+    @Test
+    public void testCreatePassenger_Success() throws Exception {
+        expectCreatePassengerSucceed();
+        int userId = mManager.createPassenger("test passenger", 10);
+        assertThat(userId).isNotEqualTo(UserHandle.USER_NULL);
+    }
+
+    @Test
+    public void testCreatePassenger_Error() throws Exception {
+        expectCreatePassengerFail();
+        int userId = mManager.createPassenger("test passenger", 20);
+        assertThat(userId).isEqualTo(UserHandle.USER_NULL);
+    }
+
+    @Test
+    public void testSwitchDriver_Success() throws Exception {
+        expectSwitchDriverSucceed();
+        boolean success = mManager.switchDriver(10);
+        assertThat(success).isTrue();
+    }
+
+    @Test
+    public void testSwitchDriver_Error() throws Exception {
+        expectSwitchDriverFail();
+        boolean success = mManager.switchDriver(20);
+        assertThat(success).isFalse();
+    }
+
+    @Test
+    public void testGetAllDrivers() throws Exception {
+        List<UserInfo> userInfos = UserTestingHelper.newUsers(10, 20, 30);
+        when(mService.getAllDrivers()).thenReturn(userInfos);
+        List<Integer> drivers = mManager.getAllDrivers();
+        assertThat(drivers).containsExactly(10, 20, 30);
+    }
+
+    @Test
+    public void testGetAllPassengers() throws Exception {
+        List<UserInfo> userInfos = UserTestingHelper.newUsers(100, 101, 102);
+        when(mService.getPassengers(10)).thenReturn(userInfos);
+        when(mService.getPassengers(20)).thenReturn(Arrays.asList());
+
+        List<Integer> passengers = mManager.getPassengers(10);
+        assertThat(passengers).containsExactly(100, 101, 102);
+
+        passengers = mManager.getPassengers(20);
+        assertThat(passengers).isEmpty();
+    }
+
+    @Test
+    public void testStartPassenger_Success() throws Exception {
+        expectStartPassengerSucceed();
+        boolean success = mManager.startPassenger(100, /* zoneId = */ 1);
+        assertThat(success).isTrue();
+    }
+
+    @Test
+    public void testStartPassenger_Error() throws Exception {
+        expectStartPassengerFail();
+        boolean success = mManager.startPassenger(200, /* zoneId = */ 1);
+        assertThat(success).isFalse();
+    }
+
+    @Test
+    public void testStopPassenger_Success() throws Exception {
+        expectStopPassengerSucceed();
+        boolean success = mManager.stopPassenger(100);
+        assertThat(success).isTrue();
+    }
+
+    @Test
+    public void testStopPassenger_Error() throws Exception {
+        expectStopPassengerFail();
+        boolean success = mManager.stopPassenger(200);
+        assertThat(success).isFalse();
+    }
+
+    private void expectCreateDriverSucceed(@UserIdInt int userId) throws Exception {
+        UserInfo userInfo = UserTestingHelper.newUser(userId);
+        when(mService.createDriver(eq("test driver"), anyBoolean())).thenReturn(userInfo);
+    }
+
+    private void expectCreateDriverFail() throws Exception {
+        when(mService.createDriver(eq("test driver"), anyBoolean())).thenReturn(null);
+    }
+
+    private void expectCreatePassengerSucceed() throws Exception {
+        UserInfo userInfo = UserTestingHelper.newUser(100);
+        when(mService.createPassenger("test passenger", /* driverId = */ 10)).thenReturn(userInfo);
+    }
+
+    private void expectCreatePassengerFail() throws Exception {
+        when(mService.createPassenger("test passenger", /* driverId = */ 10)).thenReturn(null);
+    }
+
+    private void expectSwitchDriverSucceed() throws Exception {
+        when(mService.switchDriver(10)).thenReturn(true);
+    }
+
+    private void expectSwitchDriverFail() throws Exception {
+        when(mService.switchDriver(20)).thenReturn(false);
+    }
+
+    private void expectStartPassengerSucceed() throws Exception {
+        when(mService.startPassenger(100, /* zoneId = */ 1)).thenReturn(true);
+    }
+
+    private void expectStartPassengerFail() throws Exception {
+        when(mService.startPassenger(200, /* zoneId = */ 1)).thenReturn(false);
+    }
+
+    private void expectStopPassengerSucceed() throws Exception {
+        when(mService.stopPassenger(100)).thenReturn(true);
+    }
+
+    private void expectStopPassengerFail() throws Exception {
+        when(mService.stopPassenger(200)).thenReturn(false);
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/user/UserIdentificationAssociationResponseTest.java b/tests/carservice_unit_test/src/com/android/car/user/UserIdentificationAssociationResponseTest.java
new file mode 100644
index 0000000..f9ca16d
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/user/UserIdentificationAssociationResponseTest.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2020 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.car.user;
+
+import static android.car.user.UserIdentificationAssociationResponse.forFailure;
+import static android.car.user.UserIdentificationAssociationResponse.forSuccess;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+import android.car.user.UserIdentificationAssociationResponse;
+
+import org.junit.Test;
+
+public final class UserIdentificationAssociationResponseTest {
+
+    @Test
+    public void testFailure_noMessage() {
+        UserIdentificationAssociationResponse response = forFailure();
+
+        assertThat(response).isNotNull();
+        assertThat(response.isSuccess()).isFalse();
+        assertThat(response.getErrorMessage()).isNull();
+        assertThat(response.getValues()).isNull();
+    }
+
+    @Test
+    public void testFailure_withMessage() {
+        UserIdentificationAssociationResponse response = forFailure("D'OH!");
+
+        assertThat(response).isNotNull();
+        assertThat(response.isSuccess()).isFalse();
+        assertThat(response.getErrorMessage()).isEqualTo("D'OH!");
+        assertThat(response.getValues()).isNull();
+    }
+
+    @Test
+    public void testSuccess_nullValues() {
+        assertThrows(IllegalArgumentException.class, () -> forSuccess(null));
+    }
+
+    @Test
+    public void testSuccess_nullValuesWithMessage() {
+        assertThrows(IllegalArgumentException.class, () -> forSuccess(null, "D'OH!"));
+    }
+
+    @Test
+    public void testSuccess_emptyValues() {
+        assertThrows(IllegalArgumentException.class, () -> forSuccess(new int[0]));
+    }
+
+    @Test
+    public void testSuccess_emptyValuesWithMessage() {
+        assertThrows(IllegalArgumentException.class, () -> forSuccess(new int[0], "D'OH!"));
+    }
+
+    @Test
+    public void testSuccess_noMessage() {
+        UserIdentificationAssociationResponse response = forSuccess(new int[] {1, 2, 3});
+
+        assertThat(response).isNotNull();
+        assertThat(response.isSuccess()).isTrue();
+        assertThat(response.getErrorMessage()).isNull();
+        assertThat(response.getValues()).asList().containsAllOf(1, 2, 3).inOrder();
+    }
+
+    @Test
+    public void testSuccess_withMessage() {
+        UserIdentificationAssociationResponse response = forSuccess(new int[] {1, 2, 3}, "D'OH!");
+
+        assertThat(response).isNotNull();
+        assertThat(response.isSuccess()).isTrue();
+        assertThat(response.getErrorMessage()).isEqualTo("D'OH!");
+        assertThat(response.getValues()).asList().containsAllOf(1, 2, 3).inOrder();
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/user/UserMetricsTest.java b/tests/carservice_unit_test/src/com/android/car/user/UserMetricsTest.java
new file mode 100644
index 0000000..5e97f3a
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/user/UserMetricsTest.java
@@ -0,0 +1,238 @@
+/*
+ * Copyright (C) 2020 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.car.user;
+
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STARTING;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STOPPED;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_STOPPING;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_SWITCHING;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKED;
+import static android.car.user.CarUserManager.USER_LIFECYCLE_EVENT_TYPE_UNLOCKING;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.testng.Assert.assertThrows;
+
+
+import android.annotation.UserIdInt;
+import android.os.SystemClock;
+import android.util.SparseArray;
+
+import com.android.car.user.UserMetrics.UserStartingMetric;
+import com.android.car.user.UserMetrics.UserStoppingMetric;
+
+import org.junit.Test;
+
+public final class UserMetricsTest {
+
+    private final UserMetrics mUserMetrics = new UserMetrics();
+    @UserIdInt private final int mFromUserId = 10;
+    @UserIdInt private final int mUserId = 11;
+
+    @Test
+    public void testStartingEvent_success() {
+        long timestamp = sendStartingEvent(mUserId);
+
+        assertStartTime(timestamp, mUserId);
+    }
+
+    @Test
+    public void testStartingEvent_multipleCallsDifferentUser() {
+        long timestamp1 = sendStartingEvent(mUserId);
+        int userId = 12;
+        long timestamp2 = sendStartingEvent(userId);
+
+        assertStartTime(timestamp1, mUserId);
+        assertStartTime(timestamp2, userId);
+    }
+
+    @Test
+    public void testStartingEvent_multipleCallsSameUser() {
+        long timestamp1 = sendStartingEvent(mUserId);
+        assertStartTime(timestamp1, mUserId);
+        long timestamp2 = sendStartingEvent(mUserId);
+
+        assertStartTime(timestamp2, mUserId);
+    }
+
+    @Test
+    public void testSwitchingEvent_failure() {
+        sendSwitchingEvent(mFromUserId, mUserId);
+
+        assertNoStartingMetric(mUserId);
+    }
+
+    @Test
+    public void testSwitchingEvent_success() {
+        sendStartingEvent(mUserId);
+        long timestamp = sendSwitchingEvent(mFromUserId, mUserId);
+
+        assertSwitchTime(timestamp, mFromUserId, mUserId);
+    }
+
+    @Test
+    public void testUnlockingEvent_failure() {
+        sendUnlockingEvent(mUserId);
+
+        assertNoStartingMetric(mUserId);
+    }
+
+    @Test
+    public void testUnlockingEvent_success() {
+        sendStartingEvent(mUserId);
+        long timestamp = sendUnlockingEvent(mUserId);
+
+        assertUnlockingTime(timestamp, mUserId);
+    }
+
+    @Test
+    public void testUnlockedEvent_failure() {
+        sendUnlockedEvent(mUserId);
+
+        assertNoStartingMetric(mUserId);
+    }
+
+    @Test
+    public void testUnlockedEvent_success() {
+        long timestamp = sendStartingEvent(mUserId);
+        assertStartTime(timestamp, mUserId);
+        sendUnlockedEvent(mUserId);
+
+        // a successful unlocked event would have removed the metric
+        assertNoStartingMetric(mUserId);
+    }
+
+    @Test
+    public void testStopingEvent_success() {
+        long timestamp = sendStopingEvent(mUserId);
+
+        assertStopingTime(timestamp, mUserId);
+    }
+
+    @Test
+    public void testStopingEvent_multipleCallsDifferentUser() {
+        long timestamp1 = sendStopingEvent(mUserId);
+        int userId = 12;
+        long timestamp2 = sendStopingEvent(userId);
+
+        assertStopingTime(timestamp1, mUserId);
+        assertStopingTime(timestamp2, userId);
+    }
+
+    @Test
+    public void testStopingEvent_multipleCallsSameUser() {
+        long timestamp1 = sendStopingEvent(mUserId);
+        assertStopingTime(timestamp1, mUserId);
+        long timestamp2 = sendStopingEvent(mUserId);
+
+        assertStopingTime(timestamp2, mUserId);
+    }
+
+    @Test
+    public void testStoppedEvent_failure() {
+        sendStoppedEvent(mUserId);
+
+        assertNoStoppingMetric(mUserId);
+    }
+
+    @Test
+    public void testStoppedEvent_success() {
+        long timestamp = sendStopingEvent(mUserId);
+        assertStopingTime(timestamp, mUserId);
+        sendStoppedEvent(mUserId);
+
+        // a successful stopped event would have removed the metric
+        assertNoStoppingMetric(mUserId);
+    }
+
+    private long sendStartingEvent(@UserIdInt int userId) {
+        long timestampMs = SystemClock.elapsedRealtimeNanos();
+        mUserMetrics.onEvent(USER_LIFECYCLE_EVENT_TYPE_STARTING, timestampMs, /* fromUserId */ -1,
+                userId);
+        return timestampMs;
+    }
+
+    private long sendSwitchingEvent(@UserIdInt int fromUserId, @UserIdInt int userId) {
+        long timestampMs = SystemClock.elapsedRealtimeNanos();
+        mUserMetrics.onEvent(USER_LIFECYCLE_EVENT_TYPE_SWITCHING, timestampMs, fromUserId, userId);
+        return timestampMs;
+    }
+
+    private long sendUnlockingEvent(@UserIdInt int userId) {
+        long timestampMs = SystemClock.elapsedRealtimeNanos();
+        mUserMetrics.onEvent(USER_LIFECYCLE_EVENT_TYPE_UNLOCKING, timestampMs, /* fromUserId */ -1,
+                userId);
+        return timestampMs;
+    }
+
+    private long sendUnlockedEvent(@UserIdInt int userId) {
+        long timestampMs = SystemClock.elapsedRealtimeNanos();
+        mUserMetrics.onEvent(USER_LIFECYCLE_EVENT_TYPE_UNLOCKED, timestampMs, /* fromUserId */ -1,
+                userId);
+        return timestampMs;
+    }
+
+    private long sendStopingEvent(@UserIdInt int userId) {
+        long timestampMs = SystemClock.elapsedRealtimeNanos();
+        mUserMetrics.onEvent(USER_LIFECYCLE_EVENT_TYPE_STOPPING, timestampMs, /* fromUserId */ -1,
+                userId);
+        return timestampMs;
+    }
+
+    private long sendStoppedEvent(@UserIdInt int userId) {
+        long timestampMs = SystemClock.elapsedRealtimeNanos();
+        mUserMetrics.onEvent(USER_LIFECYCLE_EVENT_TYPE_STOPPED, timestampMs, /* fromUserId */ -1,
+                userId);
+        return timestampMs;
+    }
+
+    private void assertStartTime(long timestamp, @UserIdInt int userId) {
+        SparseArray<UserStartingMetric> startArray = mUserMetrics.getUserStartMetrics();
+        UserStartingMetric metric = startArray.get(userId);
+        assertThat(metric.startTime).isEqualTo(timestamp);
+    }
+
+    private void assertSwitchTime(long timestamp, @UserIdInt int fromUserId,
+            @UserIdInt int userId) {
+        SparseArray<UserStartingMetric> startArray = mUserMetrics.getUserStartMetrics();
+        UserStartingMetric metric = startArray.get(userId);
+        assertThat(metric.switchFromUserId).isEqualTo(fromUserId);
+        assertThat(metric.switchTime).isEqualTo(timestamp);
+    }
+
+    private void assertUnlockingTime(long timestamp, int userId) {
+        SparseArray<UserStartingMetric> startArray = mUserMetrics.getUserStartMetrics();
+        UserStartingMetric metric = startArray.get(userId);
+        assertThat(metric.unlockingTime).isEqualTo(timestamp);
+    }
+
+    private void assertNoStartingMetric(@UserIdInt int userId) {
+        SparseArray<UserStartingMetric> startArray = mUserMetrics.getUserStartMetrics();
+        assertThrows(NullPointerException.class, () -> startArray.get(userId));
+    }
+
+    private void assertStopingTime(long timestamp, @UserIdInt int userId) {
+        SparseArray<UserStoppingMetric> stopArray = mUserMetrics.getUserStopMetrics();
+        UserStoppingMetric metric = stopArray.get(userId);
+        assertThat(metric.stopTime).isEqualTo(timestamp);
+    }
+
+    private void assertNoStoppingMetric(@UserIdInt int userId) {
+        SparseArray<UserStoppingMetric> stopArray = mUserMetrics.getUserStopMetrics();
+        assertThrows(NullPointerException.class, () -> stopArray.get(userId));
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/vms/VmsBrokerServiceTest.java b/tests/carservice_unit_test/src/com/android/car/vms/VmsBrokerServiceTest.java
index dd1c02f..e85dece 100644
--- a/tests/carservice_unit_test/src/com/android/car/vms/VmsBrokerServiceTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/vms/VmsBrokerServiceTest.java
@@ -19,8 +19,11 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.same;
 import static org.mockito.Mockito.atLeastOnce;
+import static org.mockito.Mockito.doThrow;
 import static org.mockito.Mockito.never;
 import static org.mockito.Mockito.times;
 import static org.mockito.Mockito.verify;
@@ -46,6 +49,8 @@
 import android.os.RemoteException;
 import android.os.SharedMemory;
 import android.os.UserHandle;
+import android.util.ArrayMap;
+import android.util.Pair;
 
 import androidx.test.filters.SmallTest;
 
@@ -63,6 +68,7 @@
 
 import java.util.Arrays;
 import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
 @RunWith(MockitoJUnitRunner.class)
@@ -106,14 +112,14 @@
     @Mock
     private IVmsClientCallback mClientCallback1;
     @Mock
-    private Binder mClientBinder1;
+    private IBinder mClientBinder1;
     @Mock
     private VmsClientLogger mClientLog1;
 
     @Mock
     private IVmsClientCallback mClientCallback2;
     @Mock
-    private Binder mClientBinder2;
+    private IBinder mClientBinder2;
     @Mock
     private VmsClientLogger mClientLog2;
 
@@ -126,6 +132,8 @@
 
     private VmsBrokerService mBrokerService;
     private int mCallingAppUid;
+    private Map<IBinder /* token */, Pair<IBinder /* callback */, IBinder.DeathRecipient>>
+            mDeathRecipients = new ArrayMap<>();
 
     @Before
     public void setUp() throws Exception {
@@ -160,7 +168,7 @@
     @Test
     public void testRegister() {
         VmsRegistrationInfo registrationInfo =
-                mBrokerService.registerClient(mClientToken1, mClientCallback1, false);
+                registerClient(mClientToken1, mClientCallback1, false);
 
         verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
         assertThat(registrationInfo.getAvailableLayers()).isEqualTo(DEFAULT_AVAILABLE_LAYERS);
@@ -168,9 +176,20 @@
     }
 
     @Test
+    public void testRegister_DeadCallback() throws Exception {
+        doThrow(RemoteException.class).when(mClientBinder1).linkToDeath(any(), anyInt());
+        assertThrows(
+                IllegalStateException.class,
+                () -> registerClient(mClientToken1, mClientCallback1));
+
+        verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
+        verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.DISCONNECTED);
+    }
+
+    @Test
     public void testRegister_LegacyClient() {
         VmsRegistrationInfo registrationInfo =
-                mBrokerService.registerClient(mClientToken1, mClientCallback1, true);
+                registerClient(mClientToken1, mClientCallback1, true);
 
         verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
         assertThat(registrationInfo.getAvailableLayers()).isEqualTo(DEFAULT_AVAILABLE_LAYERS);
@@ -178,11 +197,22 @@
     }
 
     @Test
+    public void testRegister_LegacyClient_DeadCallback() throws Exception {
+        doThrow(RemoteException.class).when(mClientBinder1).linkToDeath(any(), anyInt());
+        assertThrows(
+                IllegalStateException.class,
+                () -> registerClient(mClientToken1, mClientCallback1, true));
+
+        verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
+        verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.DISCONNECTED);
+    }
+
+    @Test
     public void testRegister_TwoClients_OneProcess() {
         VmsRegistrationInfo registrationInfo =
-                mBrokerService.registerClient(mClientToken1, mClientCallback1, false);
+                registerClient(mClientToken1, mClientCallback1, false);
         VmsRegistrationInfo registrationInfo2 =
-                mBrokerService.registerClient(mClientToken2, mClientCallback2, false);
+                registerClient(mClientToken2, mClientCallback2, false);
 
         verify(mClientLog1, times(2))
                 .logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
@@ -192,10 +222,10 @@
     @Test
     public void testRegister_TwoClients_TwoProcesses() {
         VmsRegistrationInfo registrationInfo =
-                mBrokerService.registerClient(mClientToken1, mClientCallback1, false);
+                registerClient(mClientToken1, mClientCallback1, false);
         mCallingAppUid = TEST_APP_UID2;
         VmsRegistrationInfo registrationInfo2 =
-                mBrokerService.registerClient(mClientToken2, mClientCallback2, false);
+                registerClient(mClientToken2, mClientCallback2, false);
 
         verify(mClientLog1).logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
         verify(mClientLog2).logConnectionState(VmsClientLogger.ConnectionState.CONNECTED);
@@ -214,7 +244,7 @@
         ));
 
         VmsRegistrationInfo registrationInfo =
-                mBrokerService.registerClient(mClientToken2, mClientCallback2, false);
+                registerClient(mClientToken2, mClientCallback2, false);
 
         VmsAvailableLayers expectedLayers = new VmsAvailableLayers(1, asSet(
                 new VmsAssociatedLayer(LAYER1,
@@ -230,6 +260,15 @@
     }
 
     @Test
+    public void testUnregisterClient_UnknownClient() throws Exception {
+        registerClient(mClientToken1, mClientCallback1);
+        mBrokerService.unregisterClient(mClientToken2);
+
+        verify(mClientCallback1, never()).onLayerAvailabilityChanged(any());
+        verify(mClientCallback1, never()).onSubscriptionStateChanged(any());
+    }
+
+    @Test
     public void testRegisterProvider_UnknownClient() {
         assertThrows(
                 IllegalStateException.class,
@@ -441,7 +480,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER2, emptySet())
         ));
-        mBrokerService.unregisterClient(mClientToken2);
+        unregisterClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 asSet(LAYER1),
@@ -461,7 +500,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER1, emptySet())
         ));
-        mBrokerService.unregisterClient(mClientToken2);
+        unregisterClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(1,
                 asSet(LAYER1),
@@ -481,7 +520,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER2, emptySet())
         ));
-        disconnectClient(mClientCallback2);
+        disconnectClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 asSet(LAYER1),
@@ -501,7 +540,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER1, emptySet())
         ));
-        disconnectClient(mClientCallback2);
+        disconnectClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(1,
                 asSet(LAYER1),
@@ -756,7 +795,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER2, asSet(54321))
         ));
-        mBrokerService.unregisterClient(mClientToken2);
+        unregisterClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 emptySet(),
@@ -776,7 +815,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER1, asSet(54321))
         ));
-        mBrokerService.unregisterClient(mClientToken2);
+        unregisterClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 emptySet(),
@@ -796,7 +835,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER1, asSet(12345))
         ));
-        mBrokerService.unregisterClient(mClientToken2);
+        unregisterClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(1,
                 emptySet(),
@@ -816,7 +855,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER2, asSet(54321))
         ));
-        disconnectClient(mClientCallback2);
+        disconnectClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 emptySet(),
@@ -836,7 +875,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER1, asSet(54321))
         ));
-        disconnectClient(mClientCallback2);
+        disconnectClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 emptySet(),
@@ -856,7 +895,7 @@
         mBrokerService.setSubscriptions(mClientToken2, asList(
                 new VmsAssociatedLayer(LAYER1, asSet(12345))
         ));
-        disconnectClient(mClientCallback2);
+        disconnectClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(1,
                 emptySet(),
@@ -1033,7 +1072,7 @@
                 new VmsAssociatedLayer(LAYER2, emptySet()),
                 new VmsAssociatedLayer(LAYER1, asSet(54321))
         ));
-        mBrokerService.unregisterClient(mClientToken2);
+        unregisterClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 asSet(LAYER1),
@@ -1055,7 +1094,7 @@
                 new VmsAssociatedLayer(LAYER2, emptySet()),
                 new VmsAssociatedLayer(LAYER1, asSet(54321))
         ));
-        disconnectClient(mClientCallback2);
+        disconnectClient(mClientToken2);
 
         VmsSubscriptionState expectedSubscriptions = new VmsSubscriptionState(3,
                 asSet(LAYER1),
@@ -1222,7 +1261,7 @@
 
     @Test
     public void testSetProviderOfferings_UnknownProviderId_LegacyClient() throws Exception {
-        mBrokerService.registerClient(mClientToken1, mClientCallback1, true);
+        registerClient(mClientToken1, mClientCallback1, true);
 
         mBrokerService.setProviderOfferings(mClientToken1, 12345, asList(
                 new VmsLayerDependency(LAYER1)
@@ -1249,7 +1288,7 @@
     public void testSetProviderOfferings_OtherClientsProviderId_LegacyClient() throws Exception {
         registerClient(mClientToken1, mClientCallback1);
         int providerId = mBrokerService.registerProvider(mClientToken1, PROVIDER_INFO1);
-        mBrokerService.registerClient(mClientToken2, mClientCallback2, true);
+        registerClient(mClientToken2, mClientCallback2, true);
 
         mBrokerService.setProviderOfferings(mClientToken2, providerId, asList(
                 new VmsLayerDependency(LAYER1)
@@ -1610,7 +1649,7 @@
         mBrokerService.setProviderOfferings(mClientToken1, providerId, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        mBrokerService.unregisterClient(mClientToken1);
+        unregisterClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(1, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId)))
@@ -1636,7 +1675,7 @@
         mBrokerService.setProviderOfferings(mClientToken1, providerId2, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        mBrokerService.unregisterClient(mClientToken1);
+        unregisterClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(2, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId, providerId2)))
@@ -1661,7 +1700,7 @@
         mBrokerService.setProviderOfferings(mClientToken2, providerId2, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        mBrokerService.unregisterClient(mClientToken1);
+        unregisterClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(2, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId, providerId2)))
@@ -1688,7 +1727,7 @@
         mBrokerService.setProviderOfferings(mClientToken2, providerId, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        disconnectClient(mClientCallback1);
+        disconnectClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(1, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId)))
@@ -1712,7 +1751,7 @@
         mBrokerService.setProviderOfferings(mClientToken1, providerId, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        disconnectClient(mClientCallback1);
+        disconnectClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(1, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId)))
@@ -1738,7 +1777,7 @@
         mBrokerService.setProviderOfferings(mClientToken1, providerId2, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        disconnectClient(mClientCallback1);
+        disconnectClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(2, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId, providerId2)))
@@ -1763,7 +1802,7 @@
         mBrokerService.setProviderOfferings(mClientToken2, providerId2, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        disconnectClient(mClientCallback1);
+        disconnectClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(2, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId, providerId2)))
@@ -1790,7 +1829,7 @@
         mBrokerService.setProviderOfferings(mClientToken2, providerId, asList(
                 new VmsLayerDependency(LAYER1)
         ));
-        disconnectClient(mClientCallback1);
+        disconnectClient(mClientToken1);
 
         VmsAvailableLayers expectedLayers1 = new VmsAvailableLayers(1, asSet(
                 new VmsAssociatedLayer(LAYER1, asSet(providerId)))
@@ -2506,7 +2545,7 @@
 
     @Test
     public void testPublishPacket_UnknownOffering_LegacyClient() throws Exception {
-        mBrokerService.registerClient(mClientToken1, mClientCallback1, true);
+        registerClient(mClientToken1, mClientCallback1, true);
 
         mBrokerService.setSubscriptions(mClientToken1, asList(
                 new VmsAssociatedLayer(LAYER1, emptySet())
@@ -2840,7 +2879,7 @@
     @Test
     public void testPublishLargePacket_UnknownOffering_LegacyClient() throws Exception {
         setupLargePacket();
-        mBrokerService.registerClient(mClientToken1, mClientCallback1, true);
+        registerClient(mClientToken1, mClientCallback1, true);
 
         mBrokerService.setSubscriptions(mClientToken1, asList(
                 new VmsAssociatedLayer(LAYER1, emptySet())
@@ -3210,14 +3249,46 @@
     }
 
     private void registerClient(IBinder token, IVmsClientCallback callback) {
-        mBrokerService.registerClient(token, callback, false);
+        registerClient(token, callback, false);
     }
 
-    private static void disconnectClient(IVmsClientCallback callback) throws Exception {
-        ArgumentCaptor<IBinder.DeathRecipient> deathRecipient =
-                ArgumentCaptor.forClass(IBinder.DeathRecipient.class);
-        verify(callback.asBinder()).linkToDeath(deathRecipient.capture(), eq(0));
-        deathRecipient.getValue().binderDied();
+    private VmsRegistrationInfo registerClient(IBinder token, IVmsClientCallback callback,
+            boolean legacyClient) {
+        VmsRegistrationInfo registrationInfo =
+                mBrokerService.registerClient(token, callback, legacyClient);
+
+        IBinder callbackBinder = callback.asBinder();
+        try {
+            if (!mDeathRecipients.containsKey(token)) {
+                ArgumentCaptor<IBinder.DeathRecipient> deathRecipientCaptor =
+                        ArgumentCaptor.forClass(IBinder.DeathRecipient.class);
+                verify(callbackBinder).linkToDeath(deathRecipientCaptor.capture(), eq(0));
+                mDeathRecipients.put(token,
+                        Pair.create(callbackBinder, deathRecipientCaptor.getValue()));
+            } else {
+                verify(callbackBinder, never()).linkToDeath(any(), anyInt());
+            }
+        } catch (RemoteException e) {
+            e.rethrowAsRuntimeException();
+        }
+
+        return registrationInfo;
+    }
+
+    private void unregisterClient(IBinder token) {
+        mBrokerService.unregisterClient(token);
+
+        Pair<IBinder, IBinder.DeathRecipient> deathRecipientPair = mDeathRecipients.get(token);
+        assertThat(deathRecipientPair).isNotNull();
+        verify(deathRecipientPair.first).unlinkToDeath(same(deathRecipientPair.second), eq(0));
+    }
+
+    private void disconnectClient(IBinder token) {
+        Pair<IBinder, IBinder.DeathRecipient> deathRecipientPair = mDeathRecipients.get(token);
+        assertThat(deathRecipientPair).isNotNull();
+
+        deathRecipientPair.second.binderDied();
+        verify(deathRecipientPair.first).unlinkToDeath(same(deathRecipientPair.second), eq(0));
     }
 
     private static void verifyLayerAvailability(
@@ -3252,6 +3323,7 @@
             int providerId, VmsLayer layer, byte[] payload) throws RemoteException {
         verify(callback).onPacketReceived(providerId, layer, payload);
     }
+
     private static void verifyLargePacketReceived(
             IVmsClientCallback callback,
             int providerId, VmsLayer layer, SharedMemory packet) throws RemoteException {
diff --git a/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogManagerUnitTest.java b/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogManagerUnitTest.java
new file mode 100644
index 0000000..ce51364
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogManagerUnitTest.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (C) 2020 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.car.watchdog;
+
+import static android.car.watchdog.CarWatchdogManager.TIMEOUT_CRITICAL;
+
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertThrows;
+
+import android.automotive.watchdog.ICarWatchdogClient;
+import android.car.Car;
+import android.car.watchdog.CarWatchdogManager;
+import android.content.Context;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.Looper;
+
+import androidx.test.platform.app.InstrumentationRegistry;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.util.concurrent.Executor;
+
+@RunWith(MockitoJUnitRunner.class)
+public class CarWatchdogManagerUnitTest {
+
+    private static final int MAX_WAIT_TIME_MS = 3000;
+
+    private final Handler mMainHandler = new Handler(Looper.getMainLooper());
+    private final Context mContext =
+            InstrumentationRegistry.getInstrumentation().getTargetContext();
+    private final Executor mExecutor = mContext.getMainExecutor();
+
+    @Mock private Car mCar;
+    @Mock private IBinder mBinder;
+    @Mock private CarWatchdogService mService;
+
+    private CarWatchdogManager mCarWatchdogManager;
+
+    @Before
+    public void setUp() {
+        when(mCar.getEventHandler()).thenReturn(mMainHandler);
+        when(mBinder.queryLocalInterface(anyString())).thenReturn(mService);
+        mCarWatchdogManager = new CarWatchdogManager(mCar, mBinder);
+    }
+
+    @Test
+    public void testRegisterClient() throws Exception {
+        TestClient client = new TestClient();
+        ICarWatchdogClient clientImpl = registerClient(client);
+        mCarWatchdogManager.unregisterClient(client);
+        verify(mService).unregisterClient(clientImpl);
+
+        clientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        verify(mService, never()).tellClientAlive(clientImpl, 123456);
+    }
+
+    @Test
+    public void testUnregisterUnregisteredClient() throws Exception {
+        TestClient client = new TestClient();
+        mCarWatchdogManager.registerClient(mExecutor, client, TIMEOUT_CRITICAL);
+        mCarWatchdogManager.unregisterClient(client);
+        // The following call should not throw an exception.
+        mCarWatchdogManager.unregisterClient(client);
+    }
+
+    @Test
+    public void testRegisterMultipleClients() {
+        TestClient client1 = new TestClient();
+        TestClient client2 = new TestClient();
+        mCarWatchdogManager.registerClient(mExecutor, client1, TIMEOUT_CRITICAL);
+        assertThrows(IllegalStateException.class,
+                () -> mCarWatchdogManager.registerClient(mExecutor, client2, TIMEOUT_CRITICAL));
+    }
+
+    @Test
+    public void testHandlePongOnlyClient() throws Exception {
+        testClientResponse(new TestClient());
+    }
+
+    @Test
+    public void testHandleRedundantPongClient() throws Exception {
+        testClientResponse(new RedundantPongClient());
+    }
+
+    @Test
+    public void testHandleReturnAndPongClient() throws Exception {
+        testClientResponse(new ReturnAndPongClient());
+    }
+
+    private ICarWatchdogClient registerClient(CarWatchdogManager.CarWatchdogClientCallback client) {
+        mCarWatchdogManager.registerClient(mExecutor, client, TIMEOUT_CRITICAL);
+        ArgumentCaptor<ICarWatchdogClient> clientImplCaptor =
+                ArgumentCaptor.forClass(ICarWatchdogClient.class);
+
+        verify(mService).registerClient(clientImplCaptor.capture(), eq(TIMEOUT_CRITICAL));
+        return clientImplCaptor.getValue();
+    }
+
+    private void testClientResponse(CarWatchdogManager.CarWatchdogClientCallback client)
+            throws Exception {
+        ICarWatchdogClient clientImpl = registerClient(client);
+        clientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        verify(mService, timeout(MAX_WAIT_TIME_MS)).tellClientAlive(clientImpl, 123456);
+    }
+
+    private final class TestClient extends CarWatchdogManager.CarWatchdogClientCallback {
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            mMainHandler.post(() -> mCarWatchdogManager.tellClientAlive(this, sessionId));
+            return false;
+        }
+    }
+
+    private final class RedundantPongClient extends CarWatchdogManager.CarWatchdogClientCallback {
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            mCarWatchdogManager.tellClientAlive(this, sessionId);
+            mCarWatchdogManager.tellClientAlive(this, sessionId);
+            return false;
+        }
+    }
+
+    private final class ReturnAndPongClient extends CarWatchdogManager.CarWatchdogClientCallback {
+        @Override
+        public boolean onCheckHealthStatus(int sessionId, int timeout) {
+            mMainHandler.post(() -> mCarWatchdogManager.tellClientAlive(this, sessionId));
+            return true;
+        }
+    }
+}
diff --git a/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogServiceTest.java b/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogServiceTest.java
deleted file mode 100644
index 8bcc69b..0000000
--- a/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogServiceTest.java
+++ /dev/null
@@ -1,228 +0,0 @@
-/*
- * Copyright (C) 2020 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.car.watchdog;
-
-import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import static org.mockito.Matchers.anyString;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.when;
-
-import android.automotive.watchdog.ICarWatchdog;
-import android.automotive.watchdog.ICarWatchdogClient;
-import android.automotive.watchdog.TimeoutLength;
-import android.content.Context;
-import android.content.pm.UserInfo;
-import android.os.Binder;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.SystemClock;
-import android.os.UserManager;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.MockitoSession;
-import org.mockito.Spy;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.mockito.quality.Strictness;
-
-import java.lang.ref.WeakReference;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.concurrent.CountDownLatch;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-/**
- * <p>This class contains unit tests for the {@link CarWatchdogService}.
- */
-@RunWith(MockitoJUnitRunner.class)
-public class CarWatchdogServiceTest {
-
-    private static final String TAG = CarWatchdogServiceTest.class.getSimpleName();
-    private static final String CAR_WATCHDOG_DAEMON_INTERFACE =
-            "android.automotive.watchdog.ICarWatchdog/default";
-
-    @Mock private Context mMockContext;
-    @Mock private UserManager mUserManager;
-    @Spy private IBinder mBinder = new Binder();
-
-    private FakeCarWatchdog mFakeCarWatchdog;
-    private CarWatchdogService mCarWatchdogService;
-    private MockitoSession mMockSession;
-
-    /**
-     * Initialize all of the objects with the @Mock annotation.
-     */
-    @Before
-    public void setUpMocks() {
-        mMockSession = mockitoSession()
-                .initMocks(this)
-                .strictness(Strictness.LENIENT)
-                .spyStatic(ServiceManager.class)
-                .spyStatic(UserManager.class)
-                .startMocking();
-        mFakeCarWatchdog = new FakeCarWatchdog();
-        mCarWatchdogService = new CarWatchdogService(mMockContext);
-        expectLocalWatchdogDaemon();
-        expectNoUsers();
-    }
-
-    @After
-    public void tearDown() {
-        mMockSession.finishMocking();
-    }
-
-    /**
-     * Test that the {@link CarWatchdogService} binds to car watchdog daemon.
-     */
-    @Test
-    public void testInitializeCarWatchdService() throws Exception {
-        mFakeCarWatchdog.setMediatorCheckCount(1);
-        mCarWatchdogService.init();
-        mFakeCarWatchdog.waitForMediatorResponse();
-        assertThat(mFakeCarWatchdog.getClientCount()).isEqualTo(1);
-        assertThat(mFakeCarWatchdog.gotResponse()).isTrue();
-    }
-
-    private void expectLocalWatchdogDaemon() {
-        when(ServiceManager.getService(CAR_WATCHDOG_DAEMON_INTERFACE)).thenReturn(mBinder);
-        doReturn(mFakeCarWatchdog).when(mBinder).queryLocalInterface(anyString());
-    }
-
-    private void expectNoUsers() {
-        doReturn(mUserManager).when(mMockContext).getSystemService(Context.USER_SERVICE);
-        doReturn(new ArrayList<UserInfo>()).when(mUserManager).getUsers();
-    }
-
-    // FakeCarWatchdog mimics ICarWatchdog daemon in local process.
-    private final class FakeCarWatchdog extends ICarWatchdog.Default {
-
-        private static final int TEST_SESSION_ID = 11223344;
-        private static final int THREE_SECONDS_IN_MS = 3_000;
-
-        private final Handler mMainHandler = new Handler(Looper.getMainLooper());
-        private final List<ICarWatchdogClient> mClients = new ArrayList<>();
-        private long mLastPingTimeMs;
-        private boolean mGotResponse;
-        private int mNumberOfKilledClients;
-        private CountDownLatch mClientResponse;
-        private int mMediatorCheckCount;
-
-        public int getClientCount() {
-            return mClients.size();
-        }
-
-        public boolean gotResponse() {
-            return mGotResponse;
-        }
-
-        public int getNumberOfKilledClients() {
-            return mNumberOfKilledClients;
-        }
-
-        public void setMediatorCheckCount(int count) {
-            mClientResponse = new CountDownLatch(count);
-            mMediatorCheckCount = count;
-        }
-
-        void waitForMediatorResponse() throws TimeoutException, InterruptedException {
-            long waitTime = THREE_SECONDS_IN_MS * mMediatorCheckCount;
-            if (!mClientResponse.await(waitTime, TimeUnit.MILLISECONDS)) {
-                throw new TimeoutException("Mediator doesn't respond within timeout("
-                        + waitTime + "ms)");
-            }
-        }
-
-        @Override
-        public IBinder asBinder() {
-            return mBinder;
-        }
-
-        @Override
-        public void registerMediator(ICarWatchdogClient mediator) throws RemoteException {
-            mClients.add(mediator);
-            mMainHandler.post(() -> {
-                checkMediator();
-            });
-        }
-
-        @Override
-        public void unregisterMediator(ICarWatchdogClient mediator) throws RemoteException {
-            mClients.remove(mediator);
-        }
-
-        @Override
-        public void tellMediatorAlive(ICarWatchdogClient mediator, int[] clientsNotResponding,
-                int sessionId) throws RemoteException {
-            long currentTimeMs = SystemClock.uptimeMillis();
-            if (sessionId == TEST_SESSION_ID && mClients.contains(mediator)
-                    && currentTimeMs < mLastPingTimeMs + THREE_SECONDS_IN_MS) {
-                mGotResponse = true;
-            }
-            mNumberOfKilledClients += clientsNotResponding.length;
-            mClientResponse.countDown();
-        }
-
-        public void checkMediator() {
-            checkMediatorInternal(mMediatorCheckCount);
-        }
-
-        private void checkMediatorInternal(int count) {
-            for (ICarWatchdogClient client : mClients) {
-                try {
-                    client.checkIfAlive(TEST_SESSION_ID, TimeoutLength.TIMEOUT_CRITICAL);
-                } catch (RemoteException e) {
-                    // Ignore.
-                }
-            }
-            mLastPingTimeMs = SystemClock.uptimeMillis();
-            if (count > 1) {
-                mMainHandler.postDelayed(
-                        () -> checkMediatorInternal(count - 1), THREE_SECONDS_IN_MS);
-            }
-        }
-    }
-
-    private final class CarWatchdogClient extends ICarWatchdogClient.Stub {
-        private final WeakReference<CarWatchdogService> mService;
-        private final Handler mMainHandler = new Handler(Looper.getMainLooper());
-        private final boolean mRespond;
-
-        private CarWatchdogClient(CarWatchdogService service, boolean respond) {
-            mService = new WeakReference<>(service);
-            mRespond = respond;
-        }
-        @Override
-        public void checkIfAlive(int sessionId, int timeout) {
-            mMainHandler.post(() -> {
-                CarWatchdogService service = mService.get();
-                if (service != null && mRespond) {
-                    service.tellClientAlive(this, sessionId);
-                }
-            });
-        }
-    }
-}
diff --git a/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogServiceUnitTest.java b/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogServiceUnitTest.java
new file mode 100644
index 0000000..99b6011
--- /dev/null
+++ b/tests/carservice_unit_test/src/com/android/car/watchdog/CarWatchdogServiceUnitTest.java
@@ -0,0 +1,196 @@
+/*
+ * Copyright (C) 2020 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.car.watchdog;
+
+import static android.car.test.mocks.AndroidMockitoHelper.mockUmGetUsers;
+import static android.car.watchdog.CarWatchdogManager.TIMEOUT_CRITICAL;
+
+import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
+
+import static com.google.common.truth.Truth.assertThat;
+
+import static org.mockito.Matchers.any;
+import static org.mockito.Matchers.anyString;
+import static org.mockito.Matchers.eq;
+import static org.mockito.Mockito.timeout;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+import android.automotive.watchdog.ICarWatchdog;
+import android.automotive.watchdog.ICarWatchdogClient;
+import android.car.test.mocks.AbstractExtendedMockitoTestCase;
+import android.content.Context;
+import android.content.pm.UserInfo;
+import android.os.IBinder;
+import android.os.ServiceManager;
+import android.os.SystemClock;
+import android.os.UserManager;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Mock;
+import org.mockito.junit.MockitoJUnitRunner;
+
+import java.util.ArrayList;
+
+/**
+ * <p>This class contains unit tests for the {@link CarWatchdogService}.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class CarWatchdogServiceUnitTest extends AbstractExtendedMockitoTestCase {
+
+    private static final String CAR_WATCHDOG_DAEMON_INTERFACE =
+            "android.automotive.watchdog.ICarWatchdog/default";
+    private static final int MAX_WAIT_TIME_MS = 3000;
+    private static final int INVALID_SESSION_ID = -1;
+
+    @Mock private Context mMockContext;
+    @Mock private UserManager mUserManager;
+    @Mock private IBinder mBinder;
+    @Mock private ICarWatchdog mCarWatchdogDaemon;
+
+    private CarWatchdogService mCarWatchdogService;
+    private ICarWatchdogClient mClientImpl;
+
+    /**
+     * Initialize all of the objects with the @Mock annotation.
+     */
+    @Before
+    public void setUpMocks() throws Exception {
+        mCarWatchdogService = new CarWatchdogService(mMockContext);
+        mockWatchdogDaemon();
+        setupUsers();
+        mCarWatchdogService.init();
+        mClientImpl = registerMediator();
+    }
+
+    @Test
+    public void testMediatorHealthCheck() throws Exception {
+        mClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(eq(mClientImpl),
+                any(int[].class), eq(123456));
+    }
+
+    @Test
+    public void testRegisterClient() throws Exception {
+        TestClient client = new TestClient();
+        mCarWatchdogService.registerClient(client, TIMEOUT_CRITICAL);
+        mClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        // Checking client health is asynchronous, so wait at most 1 second.
+        int repeat = 10;
+        while (repeat > 0) {
+            int sessionId = client.getLastSessionId();
+            if (sessionId != INVALID_SESSION_ID) {
+                return;
+            }
+            SystemClock.sleep(100L);
+            repeat--;
+        }
+        assertThat(client.getLastSessionId()).isNotEqualTo(INVALID_SESSION_ID);
+    }
+
+    @Test
+    public void testUnregisterUnregisteredClient() throws Exception {
+        TestClient client = new TestClient();
+        mCarWatchdogService.registerClient(client, TIMEOUT_CRITICAL);
+        mCarWatchdogService.unregisterClient(client);
+        mClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        assertThat(client.getLastSessionId()).isEqualTo(INVALID_SESSION_ID);
+    }
+
+    @Test
+    public void testGoodClientHealthCheck() throws Exception {
+        testClientHealthCheck(new TestClient(), 0);
+    }
+
+    @Test
+    public void testBadClientHealthCheck() throws Exception {
+        testClientHealthCheck(new BadTestClient(), 1);
+    }
+
+    @Override
+    protected void onSessionBuilder(CustomMockitoSessionBuilder builder) {
+        builder.spyStatic(ServiceManager.class);
+    }
+
+    private void mockWatchdogDaemon() {
+        doReturn(mBinder).when(() -> ServiceManager.getService(CAR_WATCHDOG_DAEMON_INTERFACE));
+        when(mBinder.queryLocalInterface(anyString())).thenReturn(mCarWatchdogDaemon);
+    }
+
+    private void setupUsers() {
+        when(mMockContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
+        mockUmGetUsers(mUserManager, new ArrayList<UserInfo>());
+    }
+
+    private ICarWatchdogClient registerMediator() throws Exception {
+        ArgumentCaptor<ICarWatchdogClient> clientImplCaptor =
+                ArgumentCaptor.forClass(ICarWatchdogClient.class);
+        verify(mCarWatchdogDaemon).registerMediator(clientImplCaptor.capture());
+        return clientImplCaptor.getValue();
+    }
+
+    private void testClientHealthCheck(TestClient client, int badClientCount) throws Exception {
+        mCarWatchdogService.registerClient(client, TIMEOUT_CRITICAL);
+        mClientImpl.checkIfAlive(123456, TIMEOUT_CRITICAL);
+        ArgumentCaptor<int[]> notRespondingClients = ArgumentCaptor.forClass(int[].class);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(eq(mClientImpl),
+                notRespondingClients.capture(), eq(123456));
+        assertThat(notRespondingClients.getValue().length).isEqualTo(0);
+        mClientImpl.checkIfAlive(987654, TIMEOUT_CRITICAL);
+        verify(mCarWatchdogDaemon, timeout(MAX_WAIT_TIME_MS)).tellMediatorAlive(eq(mClientImpl),
+                notRespondingClients.capture(), eq(987654));
+        assertThat(notRespondingClients.getValue().length).isEqualTo(badClientCount);
+    }
+
+    private class TestClient extends ICarWatchdogClient.Stub {
+        protected int mLastSessionId = INVALID_SESSION_ID;
+
+        @Override
+        public void checkIfAlive(int sessionId, int timeout) {
+            mLastSessionId = sessionId;
+            mCarWatchdogService.tellClientAlive(this, sessionId);
+        }
+
+        @Override
+        public void prepareProcessTermination() {}
+
+        @Override
+        public int getInterfaceVersion() {
+            return this.VERSION;
+        }
+
+        @Override
+        public String getInterfaceHash() {
+            return this.HASH;
+        }
+
+        public int getLastSessionId() {
+            return mLastSessionId;
+        }
+    }
+
+    private final class BadTestClient extends TestClient {
+        @Override
+        public void checkIfAlive(int sessionId, int timeout) {
+            mLastSessionId = sessionId;
+            // This client doesn't respond to CarWatchdogService.
+        }
+    }
+}
diff --git a/tests/common_utils/Android.mk b/tests/common_utils/Android.mk
index 19302c6..57f40e5 100644
--- a/tests/common_utils/Android.mk
+++ b/tests/common_utils/Android.mk
@@ -23,4 +23,7 @@
 
 LOCAL_SRC_FILES := $(call all-java-files-under, src)
 
+LOCAL_STATIC_JAVA_LIBRARIES := \
+    mockito-target-extended \
+
 include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/E2ePerformanceTest.java b/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/E2ePerformanceTest.java
index 6399549..edbd6d8 100644
--- a/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/E2ePerformanceTest.java
+++ b/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/E2ePerformanceTest.java
@@ -79,9 +79,9 @@
                 CarSensorManager.SENSOR_TYPE_ODOMETER,
                 CarSensorManager.SENSOR_TYPE_CAR_SPEED
         };
-        // Expecting to receive at least 10 events within 150ms.
-        final int EVENT_INTERVAL_MS = 1; //
-        final int EXPECTED_EVENTS_PER_PROPERTY = 1000;
+        // CarPropertyManager supports highest rate is 100hz which means event interval is 10ms.
+        final int EVENT_INTERVAL_MS = 10; //
+        final int EXPECTED_EVENTS_PER_PROPERTY = 100;
         final int EXPECTED_EVENTS = EXPECTED_EVENTS_PER_PROPERTY * mgrProperties.length;
 
         CarSensorManager mgr = (CarSensorManager) mCar.getCarManager(Car.SENSOR_SERVICE);
diff --git a/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/Obd2FreezeFrameTest.java b/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/Obd2FreezeFrameTest.java
index fb09ebd..1b2d575 100644
--- a/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/Obd2FreezeFrameTest.java
+++ b/tests/vehiclehal_test/src/com/android/car/vehiclehal/test/Obd2FreezeFrameTest.java
@@ -21,6 +21,7 @@
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
 import static org.junit.Assume.assumeTrue;
 
 import android.hardware.automotive.vehicle.V2_0.IVehicle;
@@ -28,6 +29,7 @@
 import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
 import android.hardware.automotive.vehicle.V2_0.VehicleProperty;
 import android.os.RemoteException;
+import android.os.SystemClock;
 import android.util.Log;
 
 import com.android.car.vehiclehal.VehiclePropValueBuilder;
@@ -35,10 +37,13 @@
 import org.junit.Before;
 import org.junit.Test;
 
+import java.util.concurrent.TimeUnit;
+
 /** Test retrieving the OBD2_FREEZE_FRAME property from VHAL */
 public class Obd2FreezeFrameTest {
     private static final String TAG = Utils.concatTag(Obd2FreezeFrameTest.class);
     private static final int DEFAULT_WAIT_TIMEOUT_MS = 5000;
+    private static final long EPSILON = TimeUnit.MICROSECONDS.toNanos(2000);
     private IVehicle mVehicle = null;
 
     @Before
@@ -68,7 +73,9 @@
                                   assertNotNull("OBD2_FREEZE_FRAME read OK; should not be null",
                                           freezeFrame);
                                   Log.i(TAG, "dump of OBD2_FREEZE_FRAME:\n" + freezeFrame);
-                                  assertEquals(freezeFrame.timestamp, timestamp);
+                                  //Timestamp will be changed to real time.
+                                  assertTrue(SystemClock.elapsedRealtimeNanos()
+                                          - freezeFrame.timestamp < EPSILON);
                               }
                               return true;
                           });
diff --git a/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java b/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java
index a682c55..4079e28 100644
--- a/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java
+++ b/user/car-user-lib/src/android/car/userlib/CarUserManagerHelper.java
@@ -21,18 +21,14 @@
 import android.annotation.RequiresPermission;
 import android.annotation.UserIdInt;
 import android.app.ActivityManager;
-import android.app.IActivityManager;
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.graphics.Bitmap;
-import android.os.RemoteException;
-import android.os.Trace;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.provider.Settings;
 import android.sysprop.CarProperties;
 import android.util.Log;
-import android.util.TimingsTraceLog;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.UserIcons;
@@ -53,10 +49,11 @@
  * <p>This class provides method for user management, including creating, removing, adding
  * and switching users. Methods related to get users will exclude system user by default.
  *
+ * <p><b>Note: </b>this class is in the process of being removed.  Use {@link UserManager} APIs
+ * directly or {@link android.car.user.CarUserManager.CarUserManager} instead.
+ *
  * @hide
- * @deprecated In the process of being removed.  Use {@link UserManager} APIs directly instead.
  */
-@Deprecated
 public final class CarUserManagerHelper {
     private static final String TAG = "CarUserManagerHelper";
 
@@ -91,8 +88,8 @@
      * @param context Application Context
      */
     public CarUserManagerHelper(Context context) {
-        mContext = context.getApplicationContext();
-        mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+        mContext = context;
+        mUserManager = UserManager.get(mContext);
         mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);
     }
 
@@ -128,12 +125,6 @@
      * @return user id of the initial user to boot into on the device, or
      * {@link UserHandle#USER_NULL} if there is no user available.
      */
-    public int getInitialUser() {
-        return getInitialUser(/* usesOverrideUserIdProperty= */ true);
-    }
-
-    // TODO(b/151758646): get rid of the public one / add javadoc here once not used externally
-    // anymore
     @VisibleForTesting
     int getInitialUser(boolean usesOverrideUserIdProperty) {
 
@@ -226,8 +217,6 @@
         return users;
     }
 
-    // Current process user restriction accessors
-
     /**
      * Grants admin permissions to the user.
      *
@@ -255,7 +244,10 @@
      *
      * @param userName Name to give to the newly created user.
      * @return Newly created non-admin user, null if failed to create a user.
+     *
+     * @deprecated non-admin restrictions should be set by resources overlay
      */
+    @Deprecated
     @Nullable
     public UserInfo createNewNonAdminUser(String userName) {
         UserInfo user = mUserManager.createUser(userName, 0);
@@ -275,7 +267,10 @@
      *
      * @param userInfo User to set restrictions on.
      * @param enable If true, restriction is ON, If false, restriction is OFF.
+     *
+     * @deprecated non-admin restrictions should be set by resources overlay
      */
+    @Deprecated
     public void setDefaultNonAdminRestrictions(UserInfo userInfo, boolean enable) {
         for (String restriction : DEFAULT_NON_ADMIN_RESTRICTIONS) {
             mUserManager.setUserRestriction(restriction, enable, userInfo.getUserHandle());
@@ -299,9 +294,12 @@
      *
      * @param id User id to switch to.
      * @return {@code true} if user switching succeed.
+     *
+     * @deprecated should use {@link android.car.user.CarUserManager.CarUserManager} instead
      */
+    @Deprecated
     public boolean switchToUserId(int id) {
-        if (id == UserHandle.USER_SYSTEM && UserManager.isHeadlessSystemUserMode()) {
+        if (UserHelper.isHeadlessSystemUser(id)) {
             // System User doesn't associate with real person, can not be switched to.
             return false;
         }
@@ -315,59 +313,14 @@
     }
 
     /**
-     * Streamlined version of {@code switchUser()} - should only be called on boot / resume.
-     */
-    public boolean startForegroundUser(@UserIdInt int userId) {
-        if (userId == UserHandle.USER_SYSTEM && UserManager.isHeadlessSystemUserMode()) {
-            // System User doesn't associate with real person, can not be switched to.
-            return false;
-        }
-        try {
-            return ActivityManager.getService().startUserInForegroundWithListener(userId, null);
-        } catch (RemoteException e) {
-            Log.w(TAG, "failed to start user " + userId, e);
-            return false;
-        }
-    }
-
-    @VisibleForTesting
-    void unlockSystemUser() {
-        Log.i(TAG, "unlocking system user");
-        IActivityManager am = ActivityManager.getService();
-
-        TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
-        t.traceBegin("UnlockSystemUser");
-        try {
-            // This is for force changing state into RUNNING_LOCKED. Otherwise unlock does not
-            // update the state and USER_SYSTEM unlock happens twice.
-            t.traceBegin("am.startUser");
-            boolean started = am.startUserInBackground(UserHandle.USER_SYSTEM);
-            t.traceEnd();
-            if (!started) {
-                Log.w(TAG, "could not restart system user in foreground; trying unlock instead");
-                t.traceBegin("am.unlockUser");
-                boolean unlocked = am.unlockUser(UserHandle.USER_SYSTEM, /* token= */ null,
-                        /* secret= */ null, /* listener= */ null);
-                t.traceEnd();
-                if (!unlocked) {
-                    Log.w(TAG, "could not unlock system user neither");
-                    return;
-                }
-            }
-        } catch (RemoteException e) {
-            // should not happen for local call.
-            Log.wtf("RemoteException from AMS", e);
-        } finally {
-            t.traceEnd();
-        }
-    }
-
-    /**
      * Switches (logs in) to another user.
      *
      * @param userInfo User to switch to.
      * @return {@code true} if user switching succeed.
+     *
+     * @deprecated should use {@link android.car.user.CarUserManager.CarUserManager} instead
      */
+    @Deprecated
     public boolean switchToUser(UserInfo userInfo) {
         return switchToUserId(userInfo.id);
     }
diff --git a/user/car-user-lib/src/android/car/userlib/CommonConstants.java b/user/car-user-lib/src/android/car/userlib/CommonConstants.java
new file mode 100644
index 0000000..ef9a354
--- /dev/null
+++ b/user/car-user-lib/src/android/car/userlib/CommonConstants.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2020 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 android.car.userlib;
+
+/**
+ * Provides constants used by both CarService and CarServiceHelper packages.
+ */
+public final class CommonConstants {
+
+    private CommonConstants() {
+        throw new UnsupportedOperationException("contains only static constants");
+    }
+
+    /**
+     * Constants used on {@link android.os.Bundle bundles} sent by
+     * {@link com.android.car.user.CarUserService} on binder calls.
+     */
+    public static final class CarUserServiceConstants {
+
+        public static final String BUNDLE_USER_ID = "user.id";
+        public static final String BUNDLE_USER_FLAGS = "user.flags";
+        public static final String BUNDLE_USER_NAME = "user.name";
+        public static final String BUNDLE_INITIAL_INFO_ACTION = "initial_info.action";
+
+        private CarUserServiceConstants() {
+            throw new UnsupportedOperationException("contains only static constants");
+        }
+    }
+}
diff --git a/user/car-user-lib/src/android/car/userlib/HalCallback.java b/user/car-user-lib/src/android/car/userlib/HalCallback.java
index e1d14ea..55528a3 100644
--- a/user/car-user-lib/src/android/car/userlib/HalCallback.java
+++ b/user/car-user-lib/src/android/car/userlib/HalCallback.java
@@ -29,6 +29,7 @@
  */
 public interface HalCallback<R> {
 
+    int STATUS_INVALID = -1; // Used for logging purposes only
     int STATUS_OK = 1;
     int STATUS_HAL_SET_TIMEOUT = 2;
     int STATUS_HAL_RESPONSE_TIMEOUT = 3;
diff --git a/user/car-user-lib/src/android/car/userlib/InitialUserSetter.java b/user/car-user-lib/src/android/car/userlib/InitialUserSetter.java
index eaf78b7..d3e5d52 100644
--- a/user/car-user-lib/src/android/car/userlib/InitialUserSetter.java
+++ b/user/car-user-lib/src/android/car/userlib/InitialUserSetter.java
@@ -21,17 +21,26 @@
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.annotation.UserIdInt;
+import android.app.ActivityManager;
+import android.app.IActivityManager;
 import android.content.Context;
 import android.content.pm.UserInfo;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.os.RemoteException;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.os.UserManager;
 import android.util.Log;
 import android.util.Pair;
 import android.util.Slog;
+import android.util.TimingsTraceLog;
 
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.util.Preconditions;
+import com.android.internal.widget.LockPatternUtils;
+
+import java.io.PrintWriter;
+import java.util.function.Consumer;
 
 /**
  * Helper used to set the initial Android user on boot or when resuming from RAM.
@@ -47,33 +56,41 @@
     // implementation (where local is implemented by ActivityManagerInternal / UserManagerInternal)
     private final CarUserManagerHelper mHelper;
     private final UserManager mUm;
+    private final LockPatternUtils mLockPatternUtils;
 
     // TODO(b/151758646): make sure it's unit tested
     private final boolean mSupportsOverrideUserIdProperty;
 
-    private final String mOwnerName;
+    private final String mNewUserName;
     private final String mNewGuestName;
 
-    public InitialUserSetter(@NonNull Context context, boolean supportsOverrideUserIdProperty) {
-        this(context, /* newGuestName= */ null, supportsOverrideUserIdProperty);
+    private final Consumer<UserInfo> mListener;
+
+    public InitialUserSetter(@NonNull Context context, @NonNull Consumer<UserInfo> listener,
+            boolean supportsOverrideUserIdProperty) {
+        this(context, listener, /* newGuestName= */ null, supportsOverrideUserIdProperty);
     }
 
-    public InitialUserSetter(@NonNull Context context, @Nullable String newGuestName,
-            boolean supportsOverrideUserIdProperty) {
-        this(new CarUserManagerHelper(context), UserManager.get(context),
+    public InitialUserSetter(@NonNull Context context, @NonNull Consumer<UserInfo> listener,
+            @Nullable String newGuestName, boolean supportsOverrideUserIdProperty) {
+        this(new CarUserManagerHelper(context), UserManager.get(context), listener,
+                new LockPatternUtils(context),
                 context.getString(com.android.internal.R.string.owner_name), newGuestName,
                 supportsOverrideUserIdProperty);
     }
 
     @VisibleForTesting
     public InitialUserSetter(@NonNull CarUserManagerHelper helper, @NonNull UserManager um,
-            @Nullable String ownerName, @Nullable String newGuestName,
+            @NonNull Consumer<UserInfo> listener, @NonNull LockPatternUtils lockPatternUtils,
+            @Nullable String newUserName, @Nullable String newGuestName,
             boolean supportsOverrideUserIdProperty) {
         mHelper = helper;
         mUm = um;
-        mSupportsOverrideUserIdProperty = supportsOverrideUserIdProperty;
-        mOwnerName = ownerName;
+        mListener = listener;
+        mLockPatternUtils = lockPatternUtils;
+        mNewUserName = newUserName;
         mNewGuestName = newGuestName;
+        mSupportsOverrideUserIdProperty = supportsOverrideUserIdProperty;
     }
 
     /**
@@ -91,18 +108,18 @@
      *   </ol>
      * </ol>
      */
-    public void executeDefaultBehavior() {
-        executeDefaultBehavior(/* fallback= */ false);
+    public void executeDefaultBehavior(boolean replaceGuest) {
+        executeDefaultBehavior(replaceGuest, /* fallback= */ false);
     }
 
-    private void executeDefaultBehavior(boolean fallback) {
+    private void executeDefaultBehavior(boolean replaceGuest, boolean fallback) {
         if (!mHelper.hasInitialUser()) {
             if (DBG) Log.d(TAG, "executeDefaultBehavior(): no initial user, creating it");
-            createAndSwitchUser(mOwnerName, UserFlags.ADMIN, fallback);
+            createAndSwitchUser(mNewUserName, UserFlags.ADMIN, fallback);
         } else {
             if (DBG) Log.d(TAG, "executeDefaultBehavior(): switching to initial user");
             int userId = mHelper.getInitialUser(mSupportsOverrideUserIdProperty);
-            switchUser(userId, fallback);
+            switchUser(userId, replaceGuest, fallback);
         }
     }
 
@@ -112,22 +129,31 @@
         if (!fallback) {
             // Only log the error
             Log.w(TAG, reason);
+            // Must explicitly tell listener that initial user could not be determined
+            notifyListener(/*initialUser= */ null);
             return;
         }
         Log.w(TAG, "Falling back to default behavior. Reason: " + reason);
-        executeDefaultBehavior(/* fallback= */ false);
+        executeDefaultBehavior(/* replaceGuest= */ true, /* fallback= */ false);
     }
 
     /**
      * Switches to the given user, falling back to {@link #fallbackDefaultBehavior(String)} if it
      * fails.
      */
-    public void switchUser(@UserIdInt int userId) {
-        switchUser(userId, /* fallback= */ true);
+    public void switchUser(@UserIdInt int userId, boolean replaceGuest) {
+        try {
+            switchUser(userId, replaceGuest, /* fallback= */ true);
+        } catch (Exception e) {
+            fallbackDefaultBehavior(/* fallback= */ true, "Exception switching user: " + e);
+        }
     }
 
-    private void switchUser(@UserIdInt int userId, boolean fallback) {
-        if (DBG) Log.d(TAG, "switchUser(): userId= " + userId);
+    private void switchUser(@UserIdInt int userId, boolean replaceGuest, boolean fallback) {
+        if (DBG) {
+            Log.d(TAG, "switchUser(): userId=" + userId + ", replaceGuest=" + replaceGuest
+                    + ", fallback=" + fallback);
+        }
 
         UserInfo user = mUm.getUserInfo(userId);
         if (user == null) {
@@ -135,23 +161,30 @@
             return;
         }
 
-        int actualUserId = replaceGuestIfNeeded(user);
+        UserInfo actualUser = user;
 
-        if (actualUserId == UserHandle.USER_NULL) {
-            fallbackDefaultBehavior(fallback, "could not replace guest " + user.toFullString());
-            return;
+        if (user.isGuest() && replaceGuest) {
+            actualUser = replaceGuestIfNeeded(user);
+
+            if (actualUser == null) {
+                fallbackDefaultBehavior(fallback, "could not replace guest " + user.toFullString());
+                return;
+            }
         }
 
-        // If system user is the only user to unlock, it will be handled when boot is complete.
-        if (actualUserId != UserHandle.USER_SYSTEM) {
-            mHelper.unlockSystemUser();
-        }
+        int actualUserId = actualUser.id;
 
-        if (!mHelper.startForegroundUser(actualUserId)) {
-            fallbackDefaultBehavior(fallback, "am.switchUser(" + actualUserId + ") failed");
-            return;
+        unlockSystemUserIfNecessary(actualUserId);
+
+        int currentUserId = ActivityManager.getCurrentUser();
+        if (actualUserId != currentUserId) {
+            if (!startForegroundUser(actualUserId)) {
+                fallbackDefaultBehavior(fallback, "am.switchUser(" + actualUserId + ") failed");
+                return;
+            }
+            mHelper.setLastActiveUser(actualUserId);
         }
-        mHelper.setLastActiveUser(actualUserId);
+        notifyListener(actualUser);
 
         if (actualUserId != userId) {
             Slog.i(TAG, "Removing old guest " + userId);
@@ -161,19 +194,35 @@
         }
     }
 
+    private void unlockSystemUserIfNecessary(@UserIdInt int userId) {
+        // If system user is the only user to unlock, it will be handled when boot is complete.
+        if (userId != UserHandle.USER_SYSTEM) {
+            unlockSystemUser();
+        }
+    }
+
+    // TODO(b/151758646): move to CarUserManagerHelper
     /**
      * Replaces {@code user} by a new guest, if necessary.
      *
-     * <p>If {@code user} is not a guest, it doesn't do anything (and returns its id}.
+     * <p>If {@code user} is not a guest, it doesn't do anything and returns the same user.
      *
-     * <p>Otherwise, it marks the current guest for deletion, creates a new one, and returns its
-     * id (or {@link UserHandle#USER_NULL} if a new guest could not be created).
+     * <p>Otherwise, it marks the current guest for deletion, creates a new one, and returns the
+     * new guest (or {@code null} if a new guest could not be created).
      */
-    @UserIdInt
-    public int replaceGuestIfNeeded(@NonNull UserInfo user) {
+    @Nullable
+    public UserInfo replaceGuestIfNeeded(@NonNull UserInfo user) {
         Preconditions.checkArgument(user != null, "user cannot be null");
 
-        if (!user.isGuest()) return user.id;
+        if (!user.isGuest()) return user;
+
+        if (mLockPatternUtils.isSecure(user.id)) {
+            if (DBG) {
+                Log.d(TAG, "replaceGuestIfNeeded(), skipped, since user "
+                        + user.id + " has secure lock pattern");
+            }
+            return user;
+        }
 
         Log.i(TAG, "Replacing guest (" + user.toFullString() + ")");
 
@@ -198,10 +247,10 @@
         String errorMessage = result.second;
         if (errorMessage != null) {
             Log.w(TAG, "could not replace guest " + user.toFullString() + ": " + errorMessage);
-            return UserHandle.USER_NULL;
+            return null;
         }
 
-        return result.first.id;
+        return result.first;
     }
 
     /**
@@ -212,7 +261,12 @@
      * @param halFlags user flags as defined by Vehicle HAL ({@code UserFlags} enum).
      */
     public void createUser(@Nullable String name, int halFlags) {
-        createAndSwitchUser(name, halFlags, /* fallback= */ true);
+        try {
+            createAndSwitchUser(name, halFlags, /* fallback= */ true);
+        } catch (Exception e) {
+            fallbackDefaultBehavior(/* fallback= */ true, "Exception createUser user with flags "
+                    + UserHalHelper.userFlagsToString(halFlags) + ": " + e);
+        }
     }
 
     private void createAndSwitchUser(@Nullable String name, int halFlags, boolean fallback) {
@@ -223,7 +277,7 @@
             return;
         }
 
-        switchUser(result.first.id, fallback);
+        switchUser(result.first.id, /* replaceGuest= */ false, fallback);
     }
 
     /**
@@ -278,4 +332,67 @@
         if (DBG) Log.d(TAG, "user created: " + userInfo.id);
         return new Pair<>(userInfo, null);
     }
+
+    @VisibleForTesting
+    void unlockSystemUser() {
+        Log.i(TAG, "unlocking system user");
+        IActivityManager am = ActivityManager.getService();
+
+        TimingsTraceLog t = new TimingsTraceLog(TAG, Trace.TRACE_TAG_SYSTEM_SERVER);
+        t.traceBegin("UnlockSystemUser");
+        try {
+            // This is for force changing state into RUNNING_LOCKED. Otherwise unlock does not
+            // update the state and USER_SYSTEM unlock happens twice.
+            t.traceBegin("am.startUser");
+            boolean started = am.startUserInBackground(UserHandle.USER_SYSTEM);
+            t.traceEnd();
+            if (!started) {
+                Log.w(TAG, "could not restart system user in foreground; trying unlock instead");
+                t.traceBegin("am.unlockUser");
+                boolean unlocked = am.unlockUser(UserHandle.USER_SYSTEM, /* token= */ null,
+                        /* secret= */ null, /* listener= */ null);
+                t.traceEnd();
+                if (!unlocked) {
+                    Log.w(TAG, "could not unlock system user neither");
+                    return;
+                }
+            }
+        } catch (RemoteException e) {
+            // should not happen for local call.
+            Log.wtf("RemoteException from AMS", e);
+        } finally {
+            t.traceEnd();
+        }
+    }
+
+    @VisibleForTesting
+    boolean startForegroundUser(@UserIdInt int userId) {
+        if (UserHelper.isHeadlessSystemUser(userId)) {
+            // System User doesn't associate with real person, can not be switched to.
+            return false;
+        }
+        try {
+            return ActivityManager.getService().startUserInForegroundWithListener(userId, null);
+        } catch (RemoteException e) {
+            Log.w(TAG, "failed to start user " + userId, e);
+            return false;
+        }
+    }
+
+    private void notifyListener(@Nullable UserInfo initialUser) {
+        if (DBG) Log.d(TAG, "notifyListener(): " + initialUser);
+        mListener.accept(initialUser);
+    }
+
+    /**
+     * Dumps it state.
+     */
+    public void dump(@NonNull PrintWriter writer) {
+        writer.println("InitialUserSetter");
+        String indent = "  ";
+        writer.printf("%smSupportsOverrideUserIdProperty: %s\n", indent,
+                mSupportsOverrideUserIdProperty);
+        writer.printf("%smNewUserName: %s\n", indent, mNewUserName);
+        writer.printf("%smNewGuestName: %s\n", indent, mNewGuestName);
+    }
 }
diff --git a/user/car-user-lib/src/android/car/userlib/UserHalHelper.java b/user/car-user-lib/src/android/car/userlib/UserHalHelper.java
index f6976cf..109a55f 100644
--- a/user/car-user-lib/src/android/car/userlib/UserHalHelper.java
+++ b/user/car-user-lib/src/android/car/userlib/UserHalHelper.java
@@ -15,22 +15,37 @@
  */
 package android.car.userlib;
 
+import static com.android.internal.util.Preconditions.checkArgument;
+
 import android.annotation.NonNull;
 import android.car.userlib.HalCallback.HalCallbackStatus;
 import android.content.pm.UserInfo;
 import android.content.pm.UserInfo.UserInfoFlag;
 import android.hardware.automotive.vehicle.V2_0.InitialUserInfoRequestType;
 import android.hardware.automotive.vehicle.V2_0.UserFlags;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationSetValue;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationType;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationAssociationValue;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationGetRequest;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationResponse;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetAssociation;
+import android.hardware.automotive.vehicle.V2_0.UserIdentificationSetRequest;
+import android.hardware.automotive.vehicle.V2_0.UsersInfo;
+import android.hardware.automotive.vehicle.V2_0.VehiclePropValue;
+import android.os.SystemClock;
 import android.os.UserHandle;
 import android.util.DebugUtils;
 
-import com.android.internal.util.Preconditions;
+import java.util.Objects;
 
 /**
  * Provides utility methods for User HAL related functionalities.
  */
 public final class UserHalHelper {
 
+    public static final int USER_IDENTIFICATION_ASSOCIATION_PROPERTY = 299896587;
+
     /**
      * Gets user-friendly representation of the status.
      */
@@ -81,7 +96,8 @@
      * Converts Android user flags to HALs.
      */
     public static int convertFlags(@NonNull UserInfo user) {
-        Preconditions.checkArgument(user != null, "user cannot be null");
+        checkArgument(user != null, "user cannot be null");
+        checkArgument(user != null, "user cannot be null");
 
         int flags = UserFlags.NONE;
         if (user.id == UserHandle.USER_SYSTEM) {
@@ -151,6 +167,211 @@
         return DebugUtils.flagsToString(UserFlags.class, "", flags);
     }
 
+    /**
+     * Creates a {@link VehiclePropValue} with the given {@code prop}, {@code requestId},
+     * and {@code requestType}.
+     */
+    @NonNull
+    public static VehiclePropValue createPropRequest(int prop, int requestId, int requestType) {
+        VehiclePropValue propRequest = createPropRequest(prop, requestId);
+        propRequest.value.int32Values.add(requestType);
+
+        return propRequest;
+    }
+
+    /**
+     * Creates a {@link VehiclePropValue} with the given {@code prop} and {@code requestId}.
+     */
+    @NonNull
+    public static VehiclePropValue createPropRequest(int prop, int requestId) {
+        VehiclePropValue propRequest = new VehiclePropValue();
+        propRequest.prop = prop;
+        propRequest.timestamp = SystemClock.elapsedRealtime();
+        propRequest.value.int32Values.add(requestId);
+
+        return propRequest;
+    }
+
+    /**
+     * Adds users information to prop value.
+     */
+    public static void addUsersInfo(@NonNull VehiclePropValue propRequest,
+                @NonNull UsersInfo usersInfo) {
+        Objects.requireNonNull(propRequest, "VehiclePropValue cannot be null");
+        Objects.requireNonNull(usersInfo.currentUser, "Current user cannot be null");
+        checkArgument(usersInfo.numberUsers == usersInfo.existingUsers.size(),
+                "Number of existing users info does not match numberUsers");
+
+        addUserInfo(propRequest, usersInfo.currentUser);
+        propRequest.value.int32Values.add(usersInfo.numberUsers);
+        for (int i = 0; i < usersInfo.numberUsers; i++) {
+            android.hardware.automotive.vehicle.V2_0.UserInfo userInfo =
+                    usersInfo.existingUsers.get(i);
+            addUserInfo(propRequest, userInfo);
+        }
+    }
+
+    /**
+     * Adds user information to prop value.
+     */
+    public static void addUserInfo(@NonNull VehiclePropValue propRequest,
+            @NonNull android.hardware.automotive.vehicle.V2_0.UserInfo userInfo) {
+        Objects.requireNonNull(propRequest, "VehiclePropValue cannot be null");
+        Objects.requireNonNull(userInfo, "UserInfo cannot be null");
+
+        propRequest.value.int32Values.add(userInfo.userId);
+        propRequest.value.int32Values.add(userInfo.flags);
+    }
+
+    /**
+     * Checks if the given {@code value} is a valid {@link UserIdentificationAssociationType}.
+     */
+    public static boolean isValidUserIdentificationAssociationType(int type) {
+        switch(type) {
+            case UserIdentificationAssociationType.KEY_FOB:
+            case UserIdentificationAssociationType.CUSTOM_1:
+            case UserIdentificationAssociationType.CUSTOM_2:
+            case UserIdentificationAssociationType.CUSTOM_3:
+            case UserIdentificationAssociationType.CUSTOM_4:
+                return true;
+        }
+        return false;
+    }
+
+    /**
+     * Checks if the given {@code value} is a valid {@link UserIdentificationAssociationValue}.
+     */
+    public static boolean isValidUserIdentificationAssociationValue(int value) {
+        switch(value) {
+            case UserIdentificationAssociationValue.ASSOCIATED_ANOTHER_USER:
+            case UserIdentificationAssociationValue.ASSOCIATED_CURRENT_USER:
+            case UserIdentificationAssociationValue.NOT_ASSOCIATED_ANY_USER:
+            case UserIdentificationAssociationValue.UNKNOWN:
+                return true;
+        }
+        return false;
+    }
+
+    /**
+     * Checks if the given {@code value} is a valid {@link UserIdentificationAssociationSetValue}.
+     */
+    public static boolean isValidUserIdentificationAssociationSetValue(int value) {
+        switch(value) {
+            case UserIdentificationAssociationSetValue.ASSOCIATE_CURRENT_USER:
+            case UserIdentificationAssociationSetValue.DISASSOCIATE_CURRENT_USER:
+            case UserIdentificationAssociationSetValue.DISASSOCIATE_ALL_USERS:
+                return true;
+        }
+        return false;
+    }
+
+    /**
+     * Creates a {@link UserIdentificationResponse} from a generic {@link VehiclePropValue} sent by
+     * HAL.
+     */
+    @NonNull
+    public static UserIdentificationResponse toUserIdentificationResponse(
+            @NonNull VehiclePropValue prop) {
+        Objects.requireNonNull(prop, "prop cannot be null");
+        checkArgument(prop.prop == USER_IDENTIFICATION_ASSOCIATION_PROPERTY,
+                "invalid prop on %s", prop);
+        // need at least 4: request_id, number associations, type1, value1
+        checkArgument(prop.value.int32Values.size() >= 4, "not enough int32Values on %s", prop);
+
+        int requestId = prop.value.int32Values.get(0);
+        checkArgument(requestId > 0, "invalid request id (%d) on %s", requestId, prop);
+
+        int numberAssociations = prop.value.int32Values.get(1);
+        checkArgument(numberAssociations >= 1, "invalid number of items on %s", prop);
+        int numberOfNonItems = 2; // requestId and size
+        int numberItems = prop.value.int32Values.size() - numberOfNonItems;
+        checkArgument(numberItems == numberAssociations * 2, "number of items mismatch on %s",
+                prop);
+
+        UserIdentificationResponse response = new UserIdentificationResponse();
+        response.requestId = requestId;
+        response.errorMessage = prop.value.stringValue;
+
+        response.numberAssociation = numberAssociations;
+        int i = numberOfNonItems;
+        for (int a = 0; a < numberAssociations; a++) {
+            int index;
+            UserIdentificationAssociation association = new UserIdentificationAssociation();
+            index = i++;
+            association.type = prop.value.int32Values.get(index);
+            checkArgument(isValidUserIdentificationAssociationType(association.type),
+                    "invalid type at index %d on %s", index, prop);
+            index = i++;
+            association.value = prop.value.int32Values.get(index);
+            checkArgument(isValidUserIdentificationAssociationValue(association.value),
+                    "invalid value at index %d on %s", index, prop);
+            response.associations.add(association);
+        }
+
+        return response;
+    }
+
+    /**
+     * Creates a generic {@link VehiclePropValue} (that can be sent to HAL) from a
+     * {@link UserIdentificationGetRequest}.
+     */
+    @NonNull
+    public static VehiclePropValue toVehiclePropValue(
+            @NonNull UserIdentificationGetRequest request) {
+        Objects.requireNonNull(request, "request cannot be null");
+        checkArgument(request.numberAssociationTypes > 0,
+                "invalid number of association types mismatch on %s", request);
+        checkArgument(request.numberAssociationTypes == request.associationTypes.size(),
+                "number of association types mismatch on %s", request);
+        checkArgument(request.requestId > 0, "invalid requestId on %s", request);
+
+        VehiclePropValue propValue = createPropRequest(USER_IDENTIFICATION_ASSOCIATION_PROPERTY,
+                request.requestId);
+        addUserInfo(propValue, request.userInfo);
+        propValue.value.int32Values.add(request.numberAssociationTypes);
+
+        for (int i = 0; i < request.numberAssociationTypes; i++) {
+            int type = request.associationTypes.get(i);
+            checkArgument(isValidUserIdentificationAssociationType(type),
+                    "invalid type at index %d on %s", i, request);
+            propValue.value.int32Values.add(type);
+        }
+
+        return propValue;
+    }
+
+    /**
+     * Creates a generic {@link VehiclePropValue} (that can be sent to HAL) from a
+     * {@link UserIdentificationSetRequest}.
+     */
+    @NonNull
+    public static VehiclePropValue toVehiclePropValue(
+            @NonNull UserIdentificationSetRequest request) {
+        Objects.requireNonNull(request, "request cannot be null");
+        checkArgument(request.numberAssociations > 0,
+                "invalid number of associations  mismatch on %s", request);
+        checkArgument(request.numberAssociations == request.associations.size(),
+                "number of associations mismatch on %s", request);
+        checkArgument(request.requestId > 0, "invalid requestId on %s", request);
+
+        VehiclePropValue propValue = createPropRequest(USER_IDENTIFICATION_ASSOCIATION_PROPERTY,
+                request.requestId);
+        addUserInfo(propValue, request.userInfo);
+        propValue.value.int32Values.add(request.numberAssociations);
+
+        for (int i = 0; i < request.numberAssociations; i++) {
+            UserIdentificationSetAssociation association = request.associations.get(i);
+            checkArgument(isValidUserIdentificationAssociationType(association.type),
+                    "invalid type at index %d on %s", i, request);
+            propValue.value.int32Values.add(association.type);
+            checkArgument(isValidUserIdentificationAssociationSetValue(association.value),
+                    "invalid value at index %d on %s", i, request);
+            propValue.value.int32Values.add(association.value);
+        }
+
+        return propValue;
+    }
+
     private UserHalHelper() {
         throw new UnsupportedOperationException("contains only static methods");
     }
diff --git a/user/car-user-lib/src/android/car/userlib/UserHelper.java b/user/car-user-lib/src/android/car/userlib/UserHelper.java
index e515331..9535ffb 100644
--- a/user/car-user-lib/src/android/car/userlib/UserHelper.java
+++ b/user/car-user-lib/src/android/car/userlib/UserHelper.java
@@ -16,9 +16,12 @@
 package android.car.userlib;
 
 import android.annotation.Nullable;
+import android.annotation.UserIdInt;
+import android.os.UserHandle;
+import android.os.UserManager;
 
 /**
- * Provides utility methods for generic user-related code.
+ * Provides utility methods for generic user-related functionalities that don't require a manager.
  */
 public final class UserHelper {
 
@@ -33,4 +36,11 @@
     public static String safeName(@Nullable String name) {
         return name == null ? name : name.length() + "_chars";
     }
+
+    /**
+     * Checks whether the given user is both {@code SYSTEM} and headless.
+     */
+    public static boolean isHeadlessSystemUser(@UserIdInt int userId) {
+        return userId == UserHandle.USER_SYSTEM && UserManager.isHeadlessSystemUserMode();
+    }
 }
diff --git a/watchdog/aidl/Android.bp b/watchdog/aidl/Android.bp
index 7286f4d..e17c87b 100644
--- a/watchdog/aidl/Android.bp
+++ b/watchdog/aidl/Android.bp
@@ -25,4 +25,7 @@
             enabled: true,
         },
     },
+    versions: [
+        "2",
+    ],
 }
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/.hash b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/.hash
new file mode 100644
index 0000000..957c8ce
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/.hash
@@ -0,0 +1 @@
+eace40adc2f2d373348fedeb29f5ddcb329ce4ee
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/BootPhase.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/BootPhase.aidl
new file mode 100644
index 0000000..f8570de
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/BootPhase.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum BootPhase {
+  BOOT_COMPLETED = 1000,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdog.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdog.aidl
new file mode 100644
index 0000000..61d4f32
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdog.aidl
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@VintfStability
+interface ICarWatchdog {
+  void registerClient(in android.automotive.watchdog.ICarWatchdogClient client, in android.automotive.watchdog.TimeoutLength timeout);
+  void unregisterClient(in android.automotive.watchdog.ICarWatchdogClient client);
+  void registerMediator(in android.automotive.watchdog.ICarWatchdogClient mediator);
+  void unregisterMediator(in android.automotive.watchdog.ICarWatchdogClient mediator);
+  void registerMonitor(in android.automotive.watchdog.ICarWatchdogMonitor monitor);
+  void unregisterMonitor(in android.automotive.watchdog.ICarWatchdogMonitor monitor);
+  void tellClientAlive(in android.automotive.watchdog.ICarWatchdogClient client, in int sessionId);
+  void tellMediatorAlive(in android.automotive.watchdog.ICarWatchdogClient mediator, in int[] clientsNotResponding, in int sessionId);
+  void tellDumpFinished(in android.automotive.watchdog.ICarWatchdogMonitor monitor, in int pid);
+  void notifySystemStateChange(in android.automotive.watchdog.StateType type, in int arg1, in int arg2);
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdogClient.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdogClient.aidl
new file mode 100644
index 0000000..d934ad0
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdogClient.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@VintfStability
+interface ICarWatchdogClient {
+  oneway void checkIfAlive(in int sessionId, in android.automotive.watchdog.TimeoutLength timeout);
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdogMonitor.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdogMonitor.aidl
new file mode 100644
index 0000000..f13af14
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/ICarWatchdogMonitor.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@VintfStability
+interface ICarWatchdogMonitor {
+  oneway void onClientsNotResponding(in int[] pids);
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/PowerCycle.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/PowerCycle.aidl
new file mode 100644
index 0000000..2cfd03e
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/PowerCycle.aidl
@@ -0,0 +1,25 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum PowerCycle {
+  POWER_CYCLE_SHUTDOWN = 0,
+  POWER_CYCLE_SUSPEND = 1,
+  POWER_CYCLE_RESUME = 2,
+  NUM_POWER_CYLES = 3,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/StateType.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/StateType.aidl
new file mode 100644
index 0000000..52cd08e
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/StateType.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum StateType {
+  POWER_CYCLE = 0,
+  USER_STATE = 1,
+  BOOT_PHASE = 2,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/TimeoutLength.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/TimeoutLength.aidl
new file mode 100644
index 0000000..e4be851
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/TimeoutLength.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum TimeoutLength {
+  TIMEOUT_CRITICAL = 0,
+  TIMEOUT_MODERATE = 1,
+  TIMEOUT_NORMAL = 2,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/UserState.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/UserState.aidl
new file mode 100644
index 0000000..39dcc84
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/1/android/automotive/watchdog/UserState.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum UserState {
+  USER_STATE_STARTED = 0,
+  USER_STATE_STOPPED = 1,
+  NUM_USER_STATES = 2,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/.hash b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/.hash
new file mode 100644
index 0000000..f024209
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/.hash
@@ -0,0 +1 @@
+f7adf2ef96b380c7fde3919f565eb764986bdcdd
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/BootPhase.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/BootPhase.aidl
new file mode 100644
index 0000000..f8570de
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/BootPhase.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum BootPhase {
+  BOOT_COMPLETED = 1000,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdog.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdog.aidl
new file mode 100644
index 0000000..61d4f32
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdog.aidl
@@ -0,0 +1,31 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@VintfStability
+interface ICarWatchdog {
+  void registerClient(in android.automotive.watchdog.ICarWatchdogClient client, in android.automotive.watchdog.TimeoutLength timeout);
+  void unregisterClient(in android.automotive.watchdog.ICarWatchdogClient client);
+  void registerMediator(in android.automotive.watchdog.ICarWatchdogClient mediator);
+  void unregisterMediator(in android.automotive.watchdog.ICarWatchdogClient mediator);
+  void registerMonitor(in android.automotive.watchdog.ICarWatchdogMonitor monitor);
+  void unregisterMonitor(in android.automotive.watchdog.ICarWatchdogMonitor monitor);
+  void tellClientAlive(in android.automotive.watchdog.ICarWatchdogClient client, in int sessionId);
+  void tellMediatorAlive(in android.automotive.watchdog.ICarWatchdogClient mediator, in int[] clientsNotResponding, in int sessionId);
+  void tellDumpFinished(in android.automotive.watchdog.ICarWatchdogMonitor monitor, in int pid);
+  void notifySystemStateChange(in android.automotive.watchdog.StateType type, in int arg1, in int arg2);
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdogClient.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdogClient.aidl
new file mode 100644
index 0000000..9768565
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdogClient.aidl
@@ -0,0 +1,23 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@VintfStability
+interface ICarWatchdogClient {
+  oneway void checkIfAlive(in int sessionId, in android.automotive.watchdog.TimeoutLength timeout);
+  oneway void prepareProcessTermination();
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdogMonitor.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdogMonitor.aidl
new file mode 100644
index 0000000..f13af14
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/ICarWatchdogMonitor.aidl
@@ -0,0 +1,22 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@VintfStability
+interface ICarWatchdogMonitor {
+  oneway void onClientsNotResponding(in int[] pids);
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/PowerCycle.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/PowerCycle.aidl
new file mode 100644
index 0000000..2cfd03e
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/PowerCycle.aidl
@@ -0,0 +1,25 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum PowerCycle {
+  POWER_CYCLE_SHUTDOWN = 0,
+  POWER_CYCLE_SUSPEND = 1,
+  POWER_CYCLE_RESUME = 2,
+  NUM_POWER_CYLES = 3,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/StateType.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/StateType.aidl
new file mode 100644
index 0000000..52cd08e
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/StateType.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum StateType {
+  POWER_CYCLE = 0,
+  USER_STATE = 1,
+  BOOT_PHASE = 2,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/TimeoutLength.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/TimeoutLength.aidl
new file mode 100644
index 0000000..e4be851
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/TimeoutLength.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum TimeoutLength {
+  TIMEOUT_CRITICAL = 0,
+  TIMEOUT_MODERATE = 1,
+  TIMEOUT_NORMAL = 2,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/UserState.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/UserState.aidl
new file mode 100644
index 0000000..39dcc84
--- /dev/null
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/2/android/automotive/watchdog/UserState.aidl
@@ -0,0 +1,24 @@
+///////////////////////////////////////////////////////////////////////////////
+// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE.                          //
+///////////////////////////////////////////////////////////////////////////////
+
+// This file is a snapshot of an AIDL interface (or parcelable). Do not try to
+// edit this file. It looks like you are doing that because you have modified
+// an AIDL interface in a backward-incompatible way, e.g., deleting a function
+// from an interface or a field from a parcelable and it broke the build. That
+// breakage is intended.
+//
+// You must not make a backward incompatible changes to the AIDL files built
+// with the aidl_interface module type with versions property set. The module
+// type is used to build AIDL files in a way that they can be used across
+// independently updatable components of the system. If a device is shipped
+// with such a backward incompatible change, it has a high risk of breaking
+// later when a module using the interface is updated, e.g., Mainline modules.
+
+package android.automotive.watchdog;
+@Backing(type="int") @VintfStability
+enum UserState {
+  USER_STATE_STARTED = 0,
+  USER_STATE_STOPPED = 1,
+  NUM_USER_STATES = 2,
+}
diff --git a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/current/android/automotive/watchdog/ICarWatchdogClient.aidl b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/current/android/automotive/watchdog/ICarWatchdogClient.aidl
index d934ad0..9768565 100644
--- a/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/current/android/automotive/watchdog/ICarWatchdogClient.aidl
+++ b/watchdog/aidl/aidl_api/carwatchdog_aidl_interface/current/android/automotive/watchdog/ICarWatchdogClient.aidl
@@ -19,4 +19,5 @@
 @VintfStability
 interface ICarWatchdogClient {
   oneway void checkIfAlive(in int sessionId, in android.automotive.watchdog.TimeoutLength timeout);
+  oneway void prepareProcessTermination();
 }
diff --git a/watchdog/aidl/android/automotive/watchdog/ICarWatchdogClient.aidl b/watchdog/aidl/android/automotive/watchdog/ICarWatchdogClient.aidl
index 1d33957..958b620 100644
--- a/watchdog/aidl/android/automotive/watchdog/ICarWatchdogClient.aidl
+++ b/watchdog/aidl/android/automotive/watchdog/ICarWatchdogClient.aidl
@@ -31,4 +31,9 @@
    * @param timeout             Final timeout given by the server based on client request.
    */
   void checkIfAlive(in int sessionId, in TimeoutLength timeout);
+
+  /**
+   * Notify the client that it will be forcedly terminated in 1 second.
+   */
+  void prepareProcessTermination();
 }
diff --git a/watchdog/car-watchdog-lib/src/android/car/watchdoglib/CarWatchdogDaemonHelper.java b/watchdog/car-watchdog-lib/src/android/car/watchdoglib/CarWatchdogDaemonHelper.java
index 45bd8ff..4dfbe20 100644
--- a/watchdog/car-watchdog-lib/src/android/car/watchdoglib/CarWatchdogDaemonHelper.java
+++ b/watchdog/car-watchdog-lib/src/android/car/watchdoglib/CarWatchdogDaemonHelper.java
@@ -44,6 +44,9 @@
 public final class CarWatchdogDaemonHelper {
 
     private static final String TAG = CarWatchdogDaemonHelper.class.getSimpleName();
+    // Carwatchdog daemon polls for the service manager status once every 250 milliseconds.
+    // CAR_WATCHDOG_DAEMON_BIND_RETRY_INTERVAL_MS value should be at least twice the poll interval
+    // used by the daemon.
     private static final long CAR_WATCHDOG_DAEMON_BIND_RETRY_INTERVAL_MS = 500;
     private static final long CAR_WATCHDOG_DAEMON_FIND_MARGINAL_TIME_MS = 300;
     private static final int CAR_WATCHDOG_DAEMON_BIND_MAX_RETRY = 3;
@@ -154,6 +157,7 @@
      * @param client Car watchdog client to be registered.
      * @param timeout Time within which the client should respond.
      * @throws IllegalArgumentException If the client is already registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void registerClient(ICarWatchdogClient client, int timeout) throws RemoteException {
@@ -165,6 +169,7 @@
      *
      * @param client Car watchdog client to be unregistered.
      * @throws IllegalArgumentException If the client is not registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void unregisterClient(ICarWatchdogClient client) throws RemoteException {
@@ -176,6 +181,7 @@
      *
      * @param mediator Car watchdog client to be registered.
      * @throws IllegalArgumentException If the mediator is already registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void registerMediator(ICarWatchdogClient mediator) throws RemoteException {
@@ -187,6 +193,7 @@
      *
      * @param mediator Car watchdog client to be unregistered.
      * @throws IllegalArgumentException If the mediator is not registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void unregisterMediator(ICarWatchdogClient mediator)  throws RemoteException {
@@ -198,6 +205,7 @@
      *
      * @param monitor Car watchdog monitor to be registered.
      * @throws IllegalArgumentException If there is another monitor registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void registerMonitor(ICarWatchdogMonitor monitor)  throws RemoteException {
@@ -209,6 +217,7 @@
      *
      * @param monitor Car watchdog monitor to be unregistered.
      * @throws IllegalArgumentException If the monitor is not registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void unregisterMonitor(ICarWatchdogMonitor monitor) throws RemoteException {
@@ -222,6 +231,7 @@
      * @param sessionId Session ID that car watchdog daemon has given.
      * @throws IllegalArgumentException If the client is not registered,
      *                                  or session ID is not correct.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void tellClientAlive(ICarWatchdogClient client, int sessionId) throws RemoteException {
@@ -236,6 +246,7 @@
      * @param sessionId Session ID that car watchdog daemon has given.
      * @throws IllegalArgumentException If the client is not registered,
      *                                  or session ID is not correct.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void tellMediatorAlive(ICarWatchdogClient mediator, int[] clientsNotResponding,
@@ -250,6 +261,7 @@
      * @param monitor Car watchdog monitor that dumped process information.
      * @param pid ID of process that has been dumped.
      * @throws IllegalArgumentException If the monitor is not registered.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
     public void tellDumpFinished(ICarWatchdogMonitor monitor, int pid) throws RemoteException {
@@ -264,14 +276,14 @@
      * @param arg2 Second state change information for the specified state type.
      * @throws IllegalArgumentException If the args don't match the state type. Refer to the aidl
      *                                  interface for more information on the args.
+     * @throws IllegalStateException If car watchdog daemon is not connected.
      * @throws RemoteException
      */
-    public void notifySystemStateChange(int type, int arg1, int arg2)
-            throws IllegalArgumentException, RemoteException {
+    public void notifySystemStateChange(int type, int arg1, int arg2) throws RemoteException {
         invokeDaemonMethod((daemon) -> daemon.notifySystemStateChange(type, arg1, arg2));
     }
 
-    private void invokeDaemonMethod(Invokable r) throws IllegalArgumentException, RemoteException {
+    private void invokeDaemonMethod(Invokable r) throws RemoteException {
         ICarWatchdog daemon;
         synchronized (mLock) {
             if (mCarWatchdogDaemon == null) {
diff --git a/watchdog/sepolicy/private/carwatchdog.te b/watchdog/sepolicy/private/carwatchdog.te
index 2e7cc9d..28473b0 100644
--- a/watchdog/sepolicy/private/carwatchdog.te
+++ b/watchdog/sepolicy/private/carwatchdog.te
@@ -1,5 +1,6 @@
 # Car watchdog server
 typeattribute carwatchdogd coredomain;
+typeattribute carwatchdogd mlstrustedsubject;
 
 type carwatchdogd_exec, exec_type, file_type, system_file_type;
 
@@ -8,6 +9,9 @@
 binder_use(carwatchdogd)
 binder_service(carwatchdogd)
 
+# Scan through /proc/pid for all processes
+r_dir_file(carwatchdogd, domain)
+
 # Read /proc/uid_io/stats
 allow carwatchdogd proc_uid_io_stats:file r_file_perms;
 
diff --git a/watchdog/server/Android.bp b/watchdog/server/Android.bp
index 8f5c452..e50b24a 100644
--- a/watchdog/server/Android.bp
+++ b/watchdog/server/Android.bp
@@ -56,6 +56,9 @@
         "src/ProcStat.cpp",
         "src/UidIoStats.cpp",
     ],
+    whole_static_libs: [
+        "libwatchdog_properties",
+    ],
     export_include_dirs: [
         "src",
     ],
@@ -77,6 +80,7 @@
         "tests/ProcStatTest.cpp",
         "tests/UidIoStatsTest.cpp",
         "tests/WatchdogBinderMediatorTest.cpp",
+        "tests/WatchdogProcessServiceTest.cpp",
     ],
     static_libs: [
         "libgmock",
@@ -139,7 +143,7 @@
     init_rc: ["carwatchdogd.rc"],
     shared_libs: [
       "libwatchdog_binder_mediator",
-    	"libwatchdog_ioperfcollection",
+      "libwatchdog_ioperfcollection",
       "libwatchdog_process_service",
     ],
     vintf_fragments: ["carwatchdogd.xml"],
diff --git a/watchdog/server/carwatchdogd.rc b/watchdog/server/carwatchdogd.rc
index 3220b90..c2eb104 100644
--- a/watchdog/server/carwatchdogd.rc
+++ b/watchdog/server/carwatchdogd.rc
@@ -15,4 +15,33 @@
 service carwatchdogd /system/bin/carwatchdogd
     class core
     user system
-    group system
+    group system readproc
+    disabled
+
+on early-init && property:ro.build.type=userdebug
+    # Below intervals are in seconds
+    setprop ro.carwatchdog.boottime_collection_interval 1
+    setprop ro.carwatchdog.periodic_collection_interval 10
+
+on early-init && property:ro.build.type=eng
+    # Below intervals are in seconds
+    setprop ro.carwatchdog.boottime_collection_interval 1
+    setprop ro.carwatchdog.periodic_collection_interval 10
+
+on early-init && property:ro.build.type=user
+    # Below intervals are in seconds
+    setprop ro.carwatchdog.boottime_collection_interval 20
+    setprop ro.carwatchdog.periodic_collection_interval 60
+
+on early-init
+    # Number of top stats per category
+    setprop ro.carwatchdog.top_n_stats_per_category 10
+
+    # Number of top stats per sub-category
+    setprop ro.carwatchdog.top_n_stats_per_subcategory 5
+
+    # Cache size for the periodically collected records
+    setprop ro.carwatchdog.periodic_collection_buffer_size 180
+
+    # Start the service only after initializing the properties.
+    start carwatchdogd
diff --git a/watchdog/server/src/IoPerfCollection.cpp b/watchdog/server/src/IoPerfCollection.cpp
index bae5766..2799417 100644
--- a/watchdog/server/src/IoPerfCollection.cpp
+++ b/watchdog/server/src/IoPerfCollection.cpp
@@ -18,17 +18,22 @@
 
 #include "IoPerfCollection.h"
 
+#include <WatchdogProperties.sysprop.h>
 #include <android-base/file.h>
 #include <android-base/parseint.h>
 #include <android-base/stringprintf.h>
+#include <android-base/strings.h>
 #include <binder/IServiceManager.h>
 #include <cutils/android_filesystem_config.h>
 #include <inttypes.h>
 #include <log/log.h>
 #include <processgroup/sched_policy.h>
+#include <pthread.h>
 #include <pwd.h>
 
+#include <algorithm>
 #include <iomanip>
+#include <iterator>
 #include <limits>
 #include <string>
 #include <thread>
@@ -48,45 +53,122 @@
 using android::base::Error;
 using android::base::ParseUint;
 using android::base::Result;
+using android::base::Split;
 using android::base::StringAppendF;
+using android::base::StringPrintf;
 using android::base::WriteStringToFd;
 using android::content::pm::IPackageManagerNative;
 
 namespace {
 
+const int32_t kDefaultTopNStatsPerCategory = 10;
+const int32_t kDefaultTopNStatsPerSubcategory = 5;
+const std::chrono::seconds kDefaultBoottimeCollectionInterval = 1s;
+const std::chrono::seconds kDefaultPeriodicCollectionInterval = 10s;
+// Number of periodic collection perf data snapshots to cache in memory.
+const int32_t kDefaultPeriodicCollectionBufferSize = 180;
+
+// Minimum collection interval between subsequent collections.
+const std::chrono::nanoseconds kMinCollectionInterval = 1s;
+
+// Default values for the custom collection interval and max_duration.
+const std::chrono::nanoseconds kCustomCollectionInterval = 10s;
+const std::chrono::nanoseconds kCustomCollectionDuration = 30min;
+
 const std::string kDumpMajorDelimiter = std::string(100, '-') + "\n";
 
+constexpr const char* kHelpText =
+        "\nCustom I/O performance data collection dump options:\n"
+        "%s: Starts custom I/O performance data collection. Customize the collection behavior with "
+        "the following optional arguments:\n"
+        "\t%s <seconds>: Modifies the collection interval. Default behavior is to collect once "
+        "every %lld seconds.\n"
+        "\t%s <seconds>: Modifies the maximum collection duration. Default behavior is to collect "
+        "until %ld minutes before automatically stopping the custom collection and discarding "
+        "the collected data.\n"
+        "\t%s <package name>,<package, name>,...: Comma-separated value containing package names. "
+        "When provided, the results are filtered only to the provided package names. Default "
+        "behavior is to list the results for the top %d packages.\n"
+        "%s: Stops custom I/O performance data collection and generates a dump of "
+        "the collection report.\n\n"
+        "When no options are specified, the carwatchdog report contains the I/O performance "
+        "data collected during boot-time and over the last %ld minutes before the report "
+        "generation.";
+
 double percentage(uint64_t numer, uint64_t denom) {
     return denom == 0 ? 0.0 : (static_cast<double>(numer) / static_cast<double>(denom)) * 100.0;
 }
 
 struct UidProcessStats {
+    struct ProcessInfo {
+        std::string comm = "";
+        uint64_t count = 0;
+    };
     uint64_t uid = 0;
     uint32_t ioBlockedTasksCnt = 0;
     uint32_t totalTasksCnt = 0;
     uint64_t majorFaults = 0;
+    std::vector<ProcessInfo> topNIoBlockedProcesses = {};
+    std::vector<ProcessInfo> topNMajorFaultProcesses = {};
 };
 
-std::unordered_map<uint32_t, UidProcessStats> getUidProcessStats(
-        const std::vector<ProcessStats>& processStats) {
-    std::unordered_map<uint32_t, UidProcessStats> uidProcessStats;
+std::unique_ptr<std::unordered_map<uint32_t, UidProcessStats>> getUidProcessStats(
+        const std::vector<ProcessStats>& processStats, int topNStatsPerSubCategory) {
+    std::unique_ptr<std::unordered_map<uint32_t, UidProcessStats>> uidProcessStats(
+            new std::unordered_map<uint32_t, UidProcessStats>());
     for (const auto& stats : processStats) {
         if (stats.uid < 0) {
             continue;
         }
         uint32_t uid = static_cast<uint32_t>(stats.uid);
-        if (uidProcessStats.find(uid) == uidProcessStats.end()) {
-            uidProcessStats[uid] = UidProcessStats{.uid = uid};
+        if (uidProcessStats->find(uid) == uidProcessStats->end()) {
+            (*uidProcessStats)[uid] = UidProcessStats{
+                    .uid = uid,
+                    .topNIoBlockedProcesses = std::vector<
+                            UidProcessStats::ProcessInfo>(topNStatsPerSubCategory,
+                                                          UidProcessStats::ProcessInfo{}),
+                    .topNMajorFaultProcesses = std::vector<
+                            UidProcessStats::ProcessInfo>(topNStatsPerSubCategory,
+                                                          UidProcessStats::ProcessInfo{}),
+            };
         }
-        auto& curUidProcessStats = uidProcessStats[uid];
+        auto& curUidProcessStats = (*uidProcessStats)[uid];
         // Top-level process stats has the aggregated major page faults count and this should be
         // persistent across thread creation/termination. Thus use the value from this field.
         curUidProcessStats.majorFaults += stats.process.majorFaults;
         curUidProcessStats.totalTasksCnt += stats.threads.size();
         // The process state is the same as the main thread state. Thus to avoid double counting
         // ignore the process state.
+        uint32_t ioBlockedTasksCnt = 0;
         for (const auto& threadStat : stats.threads) {
-            curUidProcessStats.ioBlockedTasksCnt += threadStat.second.state == "D" ? 1 : 0;
+            ioBlockedTasksCnt += threadStat.second.state == "D" ? 1 : 0;
+        }
+        curUidProcessStats.ioBlockedTasksCnt += ioBlockedTasksCnt;
+        for (auto it = curUidProcessStats.topNIoBlockedProcesses.begin();
+             it != curUidProcessStats.topNIoBlockedProcesses.end(); ++it) {
+            if (it->count < ioBlockedTasksCnt) {
+                curUidProcessStats.topNIoBlockedProcesses
+                        .emplace(it,
+                                 UidProcessStats::ProcessInfo{
+                                         .comm = stats.process.comm,
+                                         .count = ioBlockedTasksCnt,
+                                 });
+                curUidProcessStats.topNIoBlockedProcesses.pop_back();
+                break;
+            }
+        }
+        for (auto it = curUidProcessStats.topNMajorFaultProcesses.begin();
+             it != curUidProcessStats.topNMajorFaultProcesses.end(); ++it) {
+            if (it->count < stats.process.majorFaults) {
+                curUidProcessStats.topNMajorFaultProcesses
+                        .emplace(it,
+                                 UidProcessStats::ProcessInfo{
+                                         .comm = stats.process.comm,
+                                         .count = stats.process.majorFaults,
+                                 });
+                curUidProcessStats.topNMajorFaultProcesses.pop_back();
+                break;
+            }
         }
     }
     return uidProcessStats;
@@ -161,28 +243,42 @@
     StringAppendF(&buffer,
                   "Percentage of change in major page faults since last collection: %.2f%%\n",
                   data.majorFaultsPercentChange);
-    if (data.topNMajorFaults.size() > 0) {
+    if (data.topNMajorFaultUids.size() > 0) {
         StringAppendF(&buffer, "\nTop N major page faults:\n%s\n", std::string(24, '-').c_str());
         StringAppendF(&buffer,
                       "Android User ID, Package Name, Number of major page faults, "
                       "Percentage of total major page faults\n");
+        StringAppendF(&buffer,
+                      "\tCommand, Number of major page faults, Percentage of UID's major page "
+                      "faults\n");
     }
-    for (const auto& stat : data.topNMajorFaults) {
-        StringAppendF(&buffer, "%" PRIu32 ", %s, %" PRIu64 ", %.2f%%\n", stat.userId,
-                      stat.packageName.c_str(), stat.count,
-                      percentage(stat.count, data.totalMajorFaults));
+    for (const auto& uidStats : data.topNMajorFaultUids) {
+        StringAppendF(&buffer, "%" PRIu32 ", %s, %" PRIu64 ", %.2f%%\n", uidStats.userId,
+                      uidStats.packageName.c_str(), uidStats.count,
+                      percentage(uidStats.count, data.totalMajorFaults));
+        for (const auto& procStats : uidStats.topNProcesses) {
+            StringAppendF(&buffer, "\t%s, %" PRIu64 ", %.2f%%\n", procStats.comm.c_str(),
+                          procStats.count, percentage(procStats.count, uidStats.count));
+        }
     }
     if (data.topNIoBlockedUids.size() > 0) {
         StringAppendF(&buffer, "\nTop N I/O waiting UIDs:\n%s\n", std::string(23, '-').c_str());
         StringAppendF(&buffer,
                       "Android User ID, Package Name, Number of owned tasks waiting for I/O, "
                       "Percentage of owned tasks waiting for I/O\n");
+        StringAppendF(&buffer,
+                      "\tCommand, Number of I/O waiting tasks, Percentage of UID's tasks waiting "
+                      "for I/O\n");
     }
     for (size_t i = 0; i < data.topNIoBlockedUids.size(); ++i) {
-        const auto& stat = data.topNIoBlockedUids[i];
-        StringAppendF(&buffer, "%" PRIu32 ", %s, %" PRIu64 ", %.2f%%\n", stat.userId,
-                      stat.packageName.c_str(), stat.count,
-                      percentage(stat.count, data.topNIoBlockedUidsTotalTaskCnt[i]));
+        const auto& uidStats = data.topNIoBlockedUids[i];
+        StringAppendF(&buffer, "%" PRIu32 ", %s, %" PRIu64 ", %.2f%%\n", uidStats.userId,
+                      uidStats.packageName.c_str(), uidStats.count,
+                      percentage(uidStats.count, data.topNIoBlockedUidsTotalTaskCnt[i]));
+        for (const auto& procStats : uidStats.topNProcesses) {
+            StringAppendF(&buffer, "\t%s, %" PRIu64 ", %.2f%%\n", procStats.comm.c_str(),
+                          procStats.count, percentage(procStats.count, uidStats.count));
+        }
     }
     return buffer;
 }
@@ -219,20 +315,30 @@
             return Error(INVALID_OPERATION)
                     << "Cannot start I/O performance collection more than once";
         }
-
-        // TODO(b/148489461): Once |kTopNStatsPerCategory|, |kBoottimeCollectionInterval| and
-        // |kPeriodicCollectionInterval| constants are moved to read-only persistent properties,
-        // read and store them in the collection infos.
-
+        mTopNStatsPerCategory = static_cast<int>(
+                sysprop::topNStatsPerCategory().value_or(kDefaultTopNStatsPerCategory));
+        mTopNStatsPerSubcategory = static_cast<int>(
+                sysprop::topNStatsPerSubcategory().value_or(kDefaultTopNStatsPerSubcategory));
+        std::chrono::nanoseconds boottimeCollectionInterval =
+                std::chrono::duration_cast<std::chrono::nanoseconds>(
+                        std::chrono::seconds(sysprop::boottimeCollectionInterval().value_or(
+                                kDefaultBoottimeCollectionInterval.count())));
+        std::chrono::nanoseconds periodicCollectionInterval =
+                std::chrono::duration_cast<std::chrono::nanoseconds>(
+                        std::chrono::seconds(sysprop::periodicCollectionInterval().value_or(
+                                kDefaultPeriodicCollectionInterval.count())));
+        size_t periodicCollectionBufferSize =
+                static_cast<size_t>(sysprop::periodicCollectionBufferSize().value_or(
+                        kDefaultPeriodicCollectionBufferSize));
         mBoottimeCollection = {
-                .interval = kBoottimeCollectionInterval,
+                .interval = boottimeCollectionInterval,
                 .maxCacheSize = std::numeric_limits<std::size_t>::max(),
                 .lastCollectionUptime = 0,
                 .records = {},
         };
         mPeriodicCollection = {
-                .interval = kPeriodicCollectionInterval,
-                .maxCacheSize = kPeriodicCollectionBufferSize,
+                .interval = periodicCollectionInterval,
+                .maxCacheSize = periodicCollectionBufferSize,
                 .lastCollectionUptime = 0,
                 .records = {},
         };
@@ -257,6 +363,10 @@
             ALOGW("Failed to set background scheduling priority to I/O performance data collection "
                   "thread");
         }
+        int ret = pthread_setname_np(pthread_self(), "IoPerfCollect");
+        if (ret != 0) {
+            ALOGE("Failed to set I/O perf collection thread name: %d", ret);
+        }
         bool isCollectionActive = true;
         // Loop until the collection is not active -- I/O perf collection runs on this thread in a
         // handler.
@@ -289,15 +399,18 @@
 Result<void> IoPerfCollection::onBootFinished() {
     Mutex::Autolock lock(mMutex);
     if (mCurrCollectionEvent != CollectionEvent::BOOT_TIME) {
-        return Error(INVALID_OPERATION)
-                << "Current I/O performance data collection event "
-                << toString(mCurrCollectionEvent) << " != " << toString(CollectionEvent::BOOT_TIME)
-                << " collection event";
+        // This case happens when either the I/O perf collection has prematurely terminated before
+        // boot complete notification is received or multiple boot complete notifications are
+        // received. In either case don't return error as this will lead to runtime exception and
+        // cause system to boot loop.
+        ALOGE("Current I/O performance data collection event %s != %s",
+                toString(mCurrCollectionEvent).c_str(),
+                toString(CollectionEvent::BOOT_TIME).c_str());
+        return {};
     }
+    mBoottimeCollection.lastCollectionUptime = mHandlerLooper->now();
     mHandlerLooper->removeMessages(this);
-    mCurrCollectionEvent = CollectionEvent::PERIODIC;
-    mPeriodicCollection.lastCollectionUptime = mHandlerLooper->now();
-    mHandlerLooper->sendMessage(this, CollectionEvent::PERIODIC);
+    mHandlerLooper->sendMessage(this, SwitchEvent::END_BOOTTIME_COLLECTION);
     return {};
 }
 
@@ -311,17 +424,18 @@
     }
 
     if (args[0] == String16(kStartCustomCollectionFlag)) {
-        if (args.size() > 5) {
-            return Error(INVALID_OPERATION) << "Number of arguments to start custom "
-                                            << "I/O performance data collection cannot exceed 5";
+        if (args.size() > 7) {
+            return Error(BAD_VALUE) << "Number of arguments to start custom I/O performance data "
+                                    << "collection cannot exceed 7";
         }
         std::chrono::nanoseconds interval = kCustomCollectionInterval;
         std::chrono::nanoseconds maxDuration = kCustomCollectionDuration;
+        std::unordered_set<std::string> filterPackages;
         for (size_t i = 1; i < args.size(); ++i) {
             if (args[i] == String16(kIntervalFlag)) {
                 const auto& ret = parseSecondsFlag(args, i + 1);
                 if (!ret) {
-                    return Error(FAILED_TRANSACTION)
+                    return Error(BAD_VALUE)
                             << "Failed to parse " << kIntervalFlag << ": " << ret.error();
                 }
                 interval = std::chrono::duration_cast<std::chrono::nanoseconds>(*ret);
@@ -331,21 +445,34 @@
             if (args[i] == String16(kMaxDurationFlag)) {
                 const auto& ret = parseSecondsFlag(args, i + 1);
                 if (!ret) {
-                    return Error(FAILED_TRANSACTION)
+                    return Error(BAD_VALUE)
                             << "Failed to parse " << kMaxDurationFlag << ": " << ret.error();
                 }
                 maxDuration = std::chrono::duration_cast<std::chrono::nanoseconds>(*ret);
                 ++i;
                 continue;
             }
+            if (args[i] == String16(kFilterPackagesFlag)) {
+                if (args.size() < i + 1) {
+                    return Error(BAD_VALUE)
+                            << "Must provide value for '" << kFilterPackagesFlag << "' flag";
+                }
+                std::vector<std::string> packages =
+                        Split(std::string(String8(args[i + 1]).string()), ",");
+                std::copy(packages.begin(), packages.end(),
+                          std::inserter(filterPackages, filterPackages.end()));
+                ++i;
+                continue;
+            }
             ALOGW("Unknown flag %s provided to start custom I/O performance data collection",
                   String8(args[i]).string());
-            return Error(INVALID_OPERATION) << "Unknown flag " << String8(args[i]).string()
-                                            << " provided to start custom I/O performance data "
-                                            << "collection";
+            return Error(BAD_VALUE) << "Unknown flag " << String8(args[i]).string()
+                                    << " provided to start custom I/O performance data "
+                                    << "collection";
         }
-        const auto& ret = startCustomCollection(interval, maxDuration);
+        const auto& ret = startCustomCollection(interval, maxDuration, filterPackages);
         if (!ret) {
+            WriteStringToFd(ret.error().message(), fd);
             return ret;
         }
         return {};
@@ -353,19 +480,37 @@
 
     if (args[0] == String16(kEndCustomCollectionFlag)) {
         if (args.size() != 1) {
-            ALOGW("Number of arguments to end custom I/O performance data collection cannot "
-                  "exceed 1");
+            ALOGW("Number of arguments to stop custom I/O performance data collection cannot "
+                  "exceed 1. Stopping the data collection.");
+            WriteStringToFd("Number of arguments to stop custom I/O performance data collection "
+                            "cannot exceed 1. Stopping the data collection.",
+                            fd);
         }
-        const auto& ret = endCustomCollection(fd);
-        if (!ret) {
-            return ret;
-        }
-        return {};
+        return endCustomCollection(fd);
     }
 
-    return Error(INVALID_OPERATION)
-            << "Dump arguments start neither with " << kStartCustomCollectionFlag << " nor with "
-            << kEndCustomCollectionFlag << " flags";
+    return Error(BAD_VALUE) << "I/O perf collection dump arguments start neither with "
+                            << kStartCustomCollectionFlag << " nor with "
+                            << kEndCustomCollectionFlag << " flags";
+}
+
+bool IoPerfCollection::dumpHelpText(int fd) {
+    long periodicCacheMinutes =
+            (std::chrono::duration_cast<std::chrono::seconds>(mPeriodicCollection.interval)
+                     .count() *
+             mPeriodicCollection.maxCacheSize) /
+            60;
+    return WriteStringToFd(StringPrintf(kHelpText, kStartCustomCollectionFlag, kIntervalFlag,
+                                        std::chrono::duration_cast<std::chrono::seconds>(
+                                                kCustomCollectionInterval)
+                                                .count(),
+                                        kMaxDurationFlag,
+                                        std::chrono::duration_cast<std::chrono::minutes>(
+                                                kCustomCollectionDuration)
+                                                .count(),
+                                        kFilterPackagesFlag, mTopNStatsPerCategory,
+                                        kEndCustomCollectionFlag, periodicCacheMinutes),
+                           fd);
 }
 
 Result<void> IoPerfCollection::dumpCollection(int fd) {
@@ -422,8 +567,9 @@
     return {};
 }
 
-Result<void> IoPerfCollection::startCustomCollection(std::chrono::nanoseconds interval,
-                                                     std::chrono::nanoseconds maxDuration) {
+Result<void> IoPerfCollection::startCustomCollection(
+        std::chrono::nanoseconds interval, std::chrono::nanoseconds maxDuration,
+        const std::unordered_set<std::string>& filterPackages) {
     if (interval < kMinCollectionInterval || maxDuration < kMinCollectionInterval) {
         return Error(INVALID_OPERATION)
                 << "Collection interval and maximum duration must be >= "
@@ -442,6 +588,7 @@
     mCustomCollection = {
             .interval = interval,
             .maxCacheSize = std::numeric_limits<std::size_t>::max(),
+            .filterPackages = filterPackages,
             .lastCollectionUptime = mHandlerLooper->now(),
             .records = {},
     };
@@ -486,6 +633,17 @@
         case static_cast<int>(CollectionEvent::BOOT_TIME):
             result = processCollectionEvent(CollectionEvent::BOOT_TIME, &mBoottimeCollection);
             break;
+        case static_cast<int>(SwitchEvent::END_BOOTTIME_COLLECTION):
+            result = processCollectionEvent(CollectionEvent::BOOT_TIME, &mBoottimeCollection);
+            if (result.ok()) {
+                mHandlerLooper->removeMessages(this);
+                mCurrCollectionEvent = CollectionEvent::PERIODIC;
+                mPeriodicCollection.lastCollectionUptime =
+                        mHandlerLooper->now() + mPeriodicCollection.interval.count();
+                mHandlerLooper->sendMessageAtTime(mPeriodicCollection.lastCollectionUptime, this,
+                                                  CollectionEvent::PERIODIC);
+            }
+            break;
         case static_cast<int>(CollectionEvent::PERIODIC):
             result = processCollectionEvent(CollectionEvent::PERIODIC, &mPeriodicCollection);
             break;
@@ -511,7 +669,7 @@
             result = Error() << "Unknown message: " << message.what;
     }
 
-    if (!result) {
+    if (!result.ok()) {
         Mutex::Autolock lock(mMutex);
         ALOGE("Terminating I/O performance data collection: %s", result.error().message().c_str());
         // DO NOT CALL terminate() as it tries to join the collection thread but this code is
@@ -563,11 +721,11 @@
     if (!ret) {
         return ret;
     }
-    ret = collectProcessIoPerfDataLocked(&record.processIoPerfData);
+    ret = collectProcessIoPerfDataLocked(*collectionInfo, &record.processIoPerfData);
     if (!ret) {
         return ret;
     }
-    ret = collectUidIoPerfDataLocked(&record.uidIoPerfData);
+    ret = collectUidIoPerfDataLocked(*collectionInfo, &record.uidIoPerfData);
     if (!ret) {
         return ret;
     }
@@ -578,7 +736,8 @@
     return {};
 }
 
-Result<void> IoPerfCollection::collectUidIoPerfDataLocked(UidIoPerfData* uidIoPerfData) {
+Result<void> IoPerfCollection::collectUidIoPerfDataLocked(const CollectionInfo& collectionInfo,
+                                                          UidIoPerfData* uidIoPerfData) {
     if (!mUidIoStats->enabled()) {
         // Don't return an error to avoid pre-mature termination. Instead, fetch data from other
         // collectors.
@@ -619,21 +778,23 @@
 
         for (auto it = topNReads.begin(); it != topNReads.end(); ++it) {
             const UidIoUsage* curRead = *it;
-            if (curRead->ios.sumReadBytes() > curUsage.ios.sumReadBytes()) {
-                continue;
+            if (curRead->ios.sumReadBytes() < curUsage.ios.sumReadBytes()) {
+                topNReads.emplace(it, &curUsage);
+                if (collectionInfo.filterPackages.empty()) {
+                    topNReads.pop_back();
+                }
+                break;
             }
-            topNReads.erase(topNReads.end() - 1);
-            topNReads.emplace(it, &curUsage);
-            break;
         }
         for (auto it = topNWrites.begin(); it != topNWrites.end(); ++it) {
             const UidIoUsage* curWrite = *it;
-            if (curWrite->ios.sumWriteBytes() > curUsage.ios.sumWriteBytes()) {
-                continue;
+            if (curWrite->ios.sumWriteBytes() < curUsage.ios.sumWriteBytes()) {
+                topNWrites.emplace(it, &curUsage);
+                if (collectionInfo.filterPackages.empty()) {
+                    topNWrites.pop_back();
+                }
+                break;
             }
-            topNWrites.erase(topNWrites.end() - 1);
-            topNWrites.emplace(it, &curUsage);
-            break;
         }
     }
 
@@ -646,7 +807,7 @@
     for (const auto& usage : topNReads) {
         if (usage->ios.isZero()) {
             // End of non-zero usage records. This case occurs when the number of UIDs with active
-            // I/O operations is < |kTopNStatsPerCategory|.
+            // I/O operations is < |ro.carwatchdog.top_n_stats_per_category|.
             break;
         }
         UidIoPerfData::Stats stats = {
@@ -660,13 +821,18 @@
         if (mUidToPackageNameMapping.find(usage->uid) != mUidToPackageNameMapping.end()) {
             stats.packageName = mUidToPackageNameMapping[usage->uid];
         }
+        if (!collectionInfo.filterPackages.empty() &&
+            collectionInfo.filterPackages.find(stats.packageName) ==
+                    collectionInfo.filterPackages.end()) {
+            continue;
+        }
         uidIoPerfData->topNReads.emplace_back(stats);
     }
 
     for (const auto& usage : topNWrites) {
         if (usage->ios.isZero()) {
             // End of non-zero usage records. This case occurs when the number of UIDs with active
-            // I/O operations is < |kTopNStatsPerCategory|.
+            // I/O operations is < |ro.carwatchdog.top_n_stats_per_category|.
             break;
         }
         UidIoPerfData::Stats stats = {
@@ -680,6 +846,11 @@
         if (mUidToPackageNameMapping.find(usage->uid) != mUidToPackageNameMapping.end()) {
             stats.packageName = mUidToPackageNameMapping[usage->uid];
         }
+        if (!collectionInfo.filterPackages.empty() &&
+            collectionInfo.filterPackages.find(stats.packageName) ==
+                    collectionInfo.filterPackages.end()) {
+            continue;
+        }
         uidIoPerfData->topNWrites.emplace_back(stats);
     }
     return {};
@@ -705,7 +876,7 @@
 }
 
 Result<void> IoPerfCollection::collectProcessIoPerfDataLocked(
-        ProcessIoPerfData* processIoPerfData) {
+        const CollectionInfo& collectionInfo, ProcessIoPerfData* processIoPerfData) {
     if (!mProcPidStat->enabled()) {
         // Don't return an error to avoid pre-mature termination. Instead, fetch data from other
         // collectors.
@@ -717,15 +888,14 @@
         return Error() << "Failed to collect process stats: " << processStats.error();
     }
 
-    const auto& uidProcessStats = getUidProcessStats(*processStats);
-
+    const auto& uidProcessStats = getUidProcessStats(*processStats, mTopNStatsPerSubcategory);
     std::unordered_set<uint32_t> unmappedUids;
     // Fetch only the top N I/O blocked UIDs and UIDs with most major page faults.
     UidProcessStats temp = {};
     std::vector<const UidProcessStats*> topNIoBlockedUids(mTopNStatsPerCategory, &temp);
-    std::vector<const UidProcessStats*> topNMajorFaults(mTopNStatsPerCategory, &temp);
+    std::vector<const UidProcessStats*> topNMajorFaultUids(mTopNStatsPerCategory, &temp);
     processIoPerfData->totalMajorFaults = 0;
-    for (const auto& it : uidProcessStats) {
+    for (const auto& it : *uidProcessStats) {
         const UidProcessStats& curStats = it.second;
         if (mUidToPackageNameMapping.find(curStats.uid) == mUidToPackageNameMapping.end()) {
             unmappedUids.insert(curStats.uid);
@@ -733,21 +903,23 @@
         processIoPerfData->totalMajorFaults += curStats.majorFaults;
         for (auto it = topNIoBlockedUids.begin(); it != topNIoBlockedUids.end(); ++it) {
             const UidProcessStats* topStats = *it;
-            if (topStats->ioBlockedTasksCnt > curStats.ioBlockedTasksCnt) {
-                continue;
+            if (topStats->ioBlockedTasksCnt < curStats.ioBlockedTasksCnt) {
+                topNIoBlockedUids.emplace(it, &curStats);
+                if (collectionInfo.filterPackages.empty()) {
+                    topNIoBlockedUids.pop_back();
+                }
+                break;
             }
-            topNIoBlockedUids.erase(topNIoBlockedUids.end() - 1);
-            topNIoBlockedUids.emplace(it, &curStats);
-            break;
         }
-        for (auto it = topNMajorFaults.begin(); it != topNMajorFaults.end(); ++it) {
+        for (auto it = topNMajorFaultUids.begin(); it != topNMajorFaultUids.end(); ++it) {
             const UidProcessStats* topStats = *it;
-            if (topStats->majorFaults > curStats.majorFaults) {
-                continue;
+            if (topStats->majorFaults < curStats.majorFaults) {
+                topNMajorFaultUids.emplace(it, &curStats);
+                if (collectionInfo.filterPackages.empty()) {
+                    topNMajorFaultUids.pop_back();
+                }
+                break;
             }
-            topNMajorFaults.erase(topNMajorFaults.end() - 1);
-            topNMajorFaults.emplace(it, &curStats);
-            break;
         }
     }
 
@@ -760,10 +932,10 @@
     for (const auto& it : topNIoBlockedUids) {
         if (it->ioBlockedTasksCnt == 0) {
             // End of non-zero elements. This case occurs when the number of UIDs with I/O blocked
-            // processes is < |kTopNStatsPerCategory|.
+            // processes is < |ro.carwatchdog.top_n_stats_per_category|.
             break;
         }
-        ProcessIoPerfData::Stats stats = {
+        ProcessIoPerfData::UidStats stats = {
                 .userId = multiuser_get_user_id(it->uid),
                 .packageName = std::to_string(it->uid),
                 .count = it->ioBlockedTasksCnt,
@@ -771,16 +943,28 @@
         if (mUidToPackageNameMapping.find(it->uid) != mUidToPackageNameMapping.end()) {
             stats.packageName = mUidToPackageNameMapping[it->uid];
         }
+        if (!collectionInfo.filterPackages.empty() &&
+            collectionInfo.filterPackages.find(stats.packageName) ==
+                    collectionInfo.filterPackages.end()) {
+            continue;
+        }
+        for (const auto& pIt : it->topNIoBlockedProcesses) {
+            if (pIt.count == 0) {
+                break;
+            }
+            stats.topNProcesses.emplace_back(
+                    ProcessIoPerfData::UidStats::ProcessStats{pIt.comm, pIt.count});
+        }
         processIoPerfData->topNIoBlockedUids.emplace_back(stats);
         processIoPerfData->topNIoBlockedUidsTotalTaskCnt.emplace_back(it->totalTasksCnt);
     }
-    for (const auto& it : topNMajorFaults) {
+    for (const auto& it : topNMajorFaultUids) {
         if (it->majorFaults == 0) {
             // End of non-zero elements. This case occurs when the number of UIDs with major faults
-            // is < |kTopNStatsPerCategory|.
+            // is < |ro.carwatchdog.top_n_stats_per_category|.
             break;
         }
-        ProcessIoPerfData::Stats stats = {
+        ProcessIoPerfData::UidStats stats = {
                 .userId = multiuser_get_user_id(it->uid),
                 .packageName = std::to_string(it->uid),
                 .count = it->majorFaults,
@@ -788,7 +972,19 @@
         if (mUidToPackageNameMapping.find(it->uid) != mUidToPackageNameMapping.end()) {
             stats.packageName = mUidToPackageNameMapping[it->uid];
         }
-        processIoPerfData->topNMajorFaults.emplace_back(stats);
+        if (!collectionInfo.filterPackages.empty() &&
+            collectionInfo.filterPackages.find(stats.packageName) ==
+                    collectionInfo.filterPackages.end()) {
+            continue;
+        }
+        for (const auto& pIt : it->topNMajorFaultProcesses) {
+            if (pIt.count == 0) {
+                break;
+            }
+            stats.topNProcesses.emplace_back(
+                    ProcessIoPerfData::UidStats::ProcessStats{pIt.comm, pIt.count});
+        }
+        processIoPerfData->topNMajorFaultUids.emplace_back(stats);
     }
     if (mLastMajorFaults == 0) {
         processIoPerfData->majorFaultsPercentChange = 0;
diff --git a/watchdog/server/src/IoPerfCollection.h b/watchdog/server/src/IoPerfCollection.h
index 7a242d9..4cccb05 100644
--- a/watchdog/server/src/IoPerfCollection.h
+++ b/watchdog/server/src/IoPerfCollection.h
@@ -45,25 +45,11 @@
 namespace automotive {
 namespace watchdog {
 
-// TODO(b/148489461): Replace the below constants (except kCustomCollection* and
-// kMinCollectionInterval constants) with read-only persistent properties.
-const int kTopNStatsPerCategory = 5;
-const std::chrono::nanoseconds kBoottimeCollectionInterval = 1s;
-const std::chrono::nanoseconds kPeriodicCollectionInterval = 10s;
-// Number of periodic collection perf data snapshots to cache in memory.
-const size_t kPeriodicCollectionBufferSize = 180;
-
-// Minimum collection interval between subsequent collections.
-const std::chrono::nanoseconds kMinCollectionInterval = 1s;
-
-// Default values for the custom collection interval and max_duration.
-const std::chrono::nanoseconds kCustomCollectionInterval = 10s;
-const std::chrono::nanoseconds kCustomCollectionDuration = 30min;
-
 constexpr const char* kStartCustomCollectionFlag = "--start_io";
 constexpr const char* kEndCustomCollectionFlag = "--stop_io";
 constexpr const char* kIntervalFlag = "--interval";
 constexpr const char* kMaxDurationFlag = "--max_duration";
+constexpr const char* kFilterPackagesFlag = "--filter_packages";
 
 // Performance data collected from the `/proc/uid_io/stats` file.
 struct UidIoPerfData {
@@ -92,15 +78,20 @@
 
 // Performance data collected from the `/proc/[pid]/stat` and `/proc/[pid]/task/[tid]/stat` files.
 struct ProcessIoPerfData {
-    struct Stats {
+    struct UidStats {
         userid_t userId = 0;
         std::string packageName;
         uint64_t count = 0;
+        struct ProcessStats {
+            std::string comm = "";
+            uint64_t count = 0;
+        };
+        std::vector<ProcessStats> topNProcesses = {};
     };
-    std::vector<Stats> topNIoBlockedUids = {};
+    std::vector<UidStats> topNIoBlockedUids = {};
     // Total # of tasks owned by each UID in |topNIoBlockedUids|.
     std::vector<uint64_t> topNIoBlockedUidsTotalTaskCnt = {};
-    std::vector<Stats> topNMajorFaults = {};
+    std::vector<UidStats> topNMajorFaultUids = {};
     uint64_t totalMajorFaults = 0;
     // Percentage of increase/decrease in the major page faults since last collection.
     double majorFaultsPercentChange = 0.0;
@@ -120,6 +111,8 @@
 struct CollectionInfo {
     std::chrono::nanoseconds interval = 0ns;  // Collection interval between subsequent collections.
     size_t maxCacheSize = 0;                  // Maximum cache size for the collection.
+    std::unordered_set<std::string> filterPackages;  // Filter the output only to the specified
+                                                     // packages.
     nsecs_t lastCollectionUptime = 0;         // Used to calculate the uptime for next collection.
     std::vector<IoPerfRecord> records;        // Cache of collected performance records.
 };
@@ -136,8 +129,11 @@
 };
 
 enum SwitchEvent {
+    // Ends boot-time collection by collecting the last boot-time record and switching the
+    // collection event to periodic collection.
+    END_BOOTTIME_COLLECTION = CollectionEvent::LAST_EVENT + 1,
     // Ends custom collection, discards collected data and starts periodic collection.
-    END_CUSTOM_COLLECTION = CollectionEvent::LAST_EVENT + 1,
+    END_CUSTOM_COLLECTION
 };
 
 static inline std::string toString(CollectionEvent event) {
@@ -163,7 +159,6 @@
 class IoPerfCollection : public MessageHandler {
 public:
     IoPerfCollection() :
-          mTopNStatsPerCategory(kTopNStatsPerCategory),
           mHandlerLooper(new LooperWrapper()),
           mBoottimeCollection({}),
           mPeriodicCollection({}),
@@ -195,6 +190,9 @@
     // Returns any error observed during the dump generation.
     virtual android::base::Result<void> dump(int fd, const Vector<String16>& args);
 
+    // Dumps the help text.
+    bool dumpHelpText(int fd);
+
 private:
     // Generates a dump from the boot-time and periodic collection events.
     android::base::Result<void> dumpCollection(int fd);
@@ -208,9 +206,11 @@
     // |maxDuration| is reached, the looper receives a message to end the collection, discards the
     // collected data, and starts the periodic collection. This is needed to ensure the custom
     // collection doesn't run forever when a subsequent |endCustomCollection| call is not received.
+    // When |kFilterPackagesFlag| value is provided, the results are filtered only to the specified
+    // package names.
     android::base::Result<void> startCustomCollection(
-            std::chrono::nanoseconds interval = kCustomCollectionInterval,
-            std::chrono::nanoseconds maxDuration = kCustomCollectionDuration);
+            std::chrono::nanoseconds interval, std::chrono::nanoseconds maxDuration,
+            const std::unordered_set<std::string>& filterPackages);
 
     // Ends the current custom collection, generates a dump, sends message to looper to start the
     // periodic collection, and returns immediately. Returns an error when there is no custom
@@ -227,7 +227,8 @@
     android::base::Result<void> collectLocked(CollectionInfo* collectionInfo);
 
     // Collects performance data from the `/proc/uid_io/stats` file.
-    android::base::Result<void> collectUidIoPerfDataLocked(UidIoPerfData* uidIoPerfData);
+    android::base::Result<void> collectUidIoPerfDataLocked(const CollectionInfo& collectionInfo,
+                                                           UidIoPerfData* uidIoPerfData);
 
     // Collects performance data from the `/proc/stats` file.
     android::base::Result<void> collectSystemIoPerfDataLocked(SystemIoPerfData* systemIoPerfData);
@@ -235,7 +236,7 @@
     // Collects performance data from the `/proc/[pid]/stat` and
     // `/proc/[pid]/task/[tid]/stat` files.
     android::base::Result<void> collectProcessIoPerfDataLocked(
-            ProcessIoPerfData* processIoPerfData);
+            const CollectionInfo& collectionInfo, ProcessIoPerfData* processIoPerfData);
 
     // Updates the |mUidToPackageNameMapping| for the given |uids|.
     android::base::Result<void> updateUidToPackageNameMapping(
@@ -244,8 +245,12 @@
     // Retrieves package manager from the default service manager.
     android::base::Result<void> retrievePackageManager();
 
+    // Top N per-UID stats per category.
     int mTopNStatsPerCategory;
 
+    // Top N per-process stats per subcategory.
+    int mTopNStatsPerSubcategory;
+
     // Thread on which the actual collection happens.
     std::thread mCollectionThread;
 
@@ -260,7 +265,7 @@
     CollectionInfo mBoottimeCollection GUARDED_BY(mMutex);
 
     // Info for the |CollectionEvent::PERIODIC| collection event. The cache size is limited by
-    // |kPeriodicCollectionBufferSize|.
+    // |ro.carwatchdog.periodic_collection_buffer_size|.
     CollectionInfo mPeriodicCollection GUARDED_BY(mMutex);
 
     // Info for the |CollectionEvent::CUSTOM| collection event. The info is cleared at the end of
@@ -301,6 +306,7 @@
     FRIEND_TEST(IoPerfCollectionTest, TestValidProcStatFile);
     FRIEND_TEST(IoPerfCollectionTest, TestValidProcPidContents);
     FRIEND_TEST(IoPerfCollectionTest, TestProcPidContentsLessThanTopNStatsLimit);
+    FRIEND_TEST(IoPerfCollectionTest, TestCustomCollectionFiltersPackageNames);
 };
 
 }  // namespace watchdog
diff --git a/watchdog/server/src/ServiceManager.cpp b/watchdog/server/src/ServiceManager.cpp
index dd7e944..3535232 100644
--- a/watchdog/server/src/ServiceManager.cpp
+++ b/watchdog/server/src/ServiceManager.cpp
@@ -45,10 +45,6 @@
     if (!result.ok()) {
         return result;
     }
-    result = startBinderMediator();
-    if (!result.ok()) {
-        return result;
-    }
     return {};
 }
 
diff --git a/watchdog/server/src/ServiceManager.h b/watchdog/server/src/ServiceManager.h
index df8aa15..3abc660 100644
--- a/watchdog/server/src/ServiceManager.h
+++ b/watchdog/server/src/ServiceManager.h
@@ -32,12 +32,12 @@
 class ServiceManager {
 public:
     static android::base::Result<void> startServices(const android::sp<Looper>& looper);
+    static android::base::Result<void> startBinderMediator();
     static void terminateServices();
 
 private:
     static android::base::Result<void> startProcessAnrMonitor(const android::sp<Looper>& looper);
     static android::base::Result<void> startIoPerfCollection();
-    static android::base::Result<void> startBinderMediator();
 
     static android::sp<WatchdogProcessService> sWatchdogProcessService;
     static android::sp<IoPerfCollection> sIoPerfCollection;
diff --git a/watchdog/server/src/WatchdogBinderMediator.cpp b/watchdog/server/src/WatchdogBinderMediator.cpp
index da4ea29..0a482fd 100644
--- a/watchdog/server/src/WatchdogBinderMediator.cpp
+++ b/watchdog/server/src/WatchdogBinderMediator.cpp
@@ -18,6 +18,7 @@
 
 #include "WatchdogBinderMediator.h"
 
+#include <android-base/file.h>
 #include <android-base/parseint.h>
 #include <android-base/stringprintf.h>
 #include <android/automotive/watchdog/BootPhase.h>
@@ -38,10 +39,19 @@
 using android::base::ParseUint;
 using android::base::Result;
 using android::base::StringPrintf;
+using android::base::WriteStringToFd;
 using android::binder::Status;
 
 namespace {
 
+constexpr const char* kHelpFlag = "--help";
+constexpr const char* kHelpShortFlag = "-h";
+constexpr const char* kHelpText =
+        "CarWatchdog daemon dumpsys help page:\n"
+        "Format: dumpsys android.automotive.watchdog.ICarWatchdog/default [options]\n\n"
+        "%s or %s: Displays this help text.\n"
+        "When no options are specified, carwatchdog report is generated.\n";
+
 Status checkSystemPermission() {
     if (IPCThreadState::self()->getCallingUid() != AID_SYSTEM) {
         return Status::fromExceptionCode(Status::EX_SECURITY,
@@ -94,21 +104,48 @@
         }
         return OK;
     }
+
+    if (args[0] == String16(kHelpFlag) || args[0] == String16(kHelpShortFlag)) {
+        if (!dumpHelpText(fd, "")) {
+            ALOGW("Failed to write help text to fd");
+            return FAILED_TRANSACTION;
+        }
+        return OK;
+    }
+
     if (args[0] == String16(kStartCustomCollectionFlag) ||
         args[0] == String16(kEndCustomCollectionFlag)) {
         auto ret = mIoPerfCollection->dump(fd, args);
-        std::string mode = args[0] == String16(kStartCustomCollectionFlag) ? "start" : "end";
         if (!ret.ok()) {
-            ALOGW("Failed to %s custom I/O perf collection: %s", mode.c_str(),
-                  ret.error().message().c_str());
+            std::string mode = args[0] == String16(kStartCustomCollectionFlag) ? "start" : "end";
+            std::string errorMsg = StringPrintf("Failed to %s custom I/O perf collection: %s",
+                                                mode.c_str(), ret.error().message().c_str());
+            if (ret.error().code() == BAD_VALUE) {
+                dumpHelpText(fd, errorMsg);
+            } else {
+                ALOGW("%s", errorMsg.c_str());
+            }
             return ret.error().code();
         }
         return OK;
     }
-    ALOGW("Invalid dump arguments");
+    dumpHelpText(fd, "Invalid dump arguments");
     return INVALID_OPERATION;
 }
 
+bool WatchdogBinderMediator::dumpHelpText(int fd, std::string errorMsg) {
+    if (!errorMsg.empty()) {
+        ALOGW("Error: %s", errorMsg.c_str());
+        if (!WriteStringToFd(StringPrintf("Error: %s\n\n", errorMsg.c_str()), fd)) {
+            ALOGW("Failed to write error message to fd");
+            return false;
+        }
+    }
+
+    return WriteStringToFd(StringPrintf(kHelpText, kHelpFlag, kHelpShortFlag), fd) &&
+            mIoPerfCollection->dumpHelpText(fd);
+}
+
 Status WatchdogBinderMediator::registerMediator(const sp<ICarWatchdogClient>& mediator) {
     Status status = checkSystemPermission();
     if (!status.isOk()) {
diff --git a/watchdog/server/src/WatchdogBinderMediator.h b/watchdog/server/src/WatchdogBinderMediator.h
index a3b19a2..530659b 100644
--- a/watchdog/server/src/WatchdogBinderMediator.h
+++ b/watchdog/server/src/WatchdogBinderMediator.h
@@ -83,6 +83,8 @@
     void binderDied(const android::wp<IBinder>& who) override {
         return mWatchdogProcessService->binderDied(who);
     }
+    bool dumpHelpText(int fd, std::string errorMsg);
+
     android::sp<WatchdogProcessService> mWatchdogProcessService;
     android::sp<IoPerfCollection> mIoPerfCollection;
 
diff --git a/watchdog/server/src/WatchdogProcessService.cpp b/watchdog/server/src/WatchdogProcessService.cpp
index 515e293..749ed30 100644
--- a/watchdog/server/src/WatchdogProcessService.cpp
+++ b/watchdog/server/src/WatchdogProcessService.cpp
@@ -117,12 +117,10 @@
 
 Status WatchdogProcessService::registerMonitor(const sp<ICarWatchdogMonitor>& monitor) {
     Mutex::Autolock lock(mMutex);
-    if (mMonitor != nullptr) {
-        ALOGW("Cannot register the monitor. The other monitor is already registered.");
-        return Status::fromExceptionCode(Status::EX_ILLEGAL_ARGUMENT,
-                                         "The other monitor is already registered.");
-    }
     sp<IBinder> binder = BnCarWatchdog::asBinder(monitor);
+    if (mMonitor != nullptr && binder == BnCarWatchdog::asBinder(mMonitor)) {
+        return Status::ok();
+    }
     status_t ret = binder->linkToDeath(this);
     if (ret != OK) {
         ALOGW("Cannot register the monitor. The monitor is dead.");
@@ -353,12 +351,13 @@
     sp<IBinder> monitor = BnCarWatchdog::asBinder(mMonitor);
     if (monitor == binder) {
         mMonitor = nullptr;
-        ALOGI("The monitor has died.");
+        ALOGW("The monitor has died.");
         return;
     }
     findClientAndProcessLocked(kTimeouts, binder,
                                [&](std::vector<ClientInfo>& clients,
                                    std::vector<ClientInfo>::const_iterator it) {
+                                   ALOGW("Client(pid: %d) died", it->pid);
                                    clients.erase(it);
                                });
 }
@@ -412,7 +411,7 @@
         std::string errorStr = StringPrintf("The %s has not been registered", clientName);
         const char* errorCause = errorStr.c_str();
         ALOGW("Cannot unregister the %s: %s", clientName, errorCause);
-        Status::fromExceptionCode(Status::EX_ILLEGAL_ARGUMENT, errorCause);
+        return Status::fromExceptionCode(Status::EX_ILLEGAL_ARGUMENT, errorCause);
     }
     if (DEBUG) {
         ALOGD("Car watchdog %s is unregistered", clientName);
@@ -465,27 +464,32 @@
 
 Result<void> WatchdogProcessService::dumpAndKillClientsIfNotResponding(TimeoutLength timeout) {
     std::vector<int32_t> processIds;
+    std::vector<sp<ICarWatchdogClient>> clientsToNotify;
     {
         Mutex::Autolock lock(mMutex);
         PingedClientMap& clients = mPingedClients[timeout];
         for (PingedClientMap::const_iterator it = clients.cbegin(); it != clients.cend(); it++) {
             pid_t pid = -1;
             userid_t userId = -1;
-            sp<IBinder> binder = BnCarWatchdog::asBinder(it->second.client);
+            sp<ICarWatchdogClient> client = it->second.client;
+            sp<IBinder> binder = BnCarWatchdog::asBinder(client);
             std::vector<TimeoutLength> timeouts = {timeout};
-            // Unhealthy clients are eventually removed from the list through binderDied when they
-            // are killed.
             findClientAndProcessLocked(timeouts, binder,
-                                       [&](std::vector<ClientInfo>& /*clients*/,
+                                       [&](std::vector<ClientInfo>& clients,
                                            std::vector<ClientInfo>::const_iterator it) {
                                            pid = (*it).pid;
                                            userId = (*it).userId;
+                                           clients.erase(it);
                                        });
             if (pid != -1 && mStoppedUserId.count(userId) == 0) {
+                clientsToNotify.push_back(client);
                 processIds.push_back(pid);
             }
         }
     }
+    for (auto&& client : clientsToNotify) {
+        client->prepareProcessTermination();
+    }
     return dumpAndKillAllProcesses(processIds);
 }
 
diff --git a/watchdog/server/src/main.cpp b/watchdog/server/src/main.cpp
index d60bd6e..1443b51 100644
--- a/watchdog/server/src/main.cpp
+++ b/watchdog/server/src/main.cpp
@@ -18,6 +18,8 @@
 
 #include "ServiceManager.h"
 
+#include <android-base/chrono_utils.h>
+#include <android-base/properties.h>
 #include <android-base/result.h>
 #include <binder/IPCThreadState.h>
 #include <binder/IServiceManager.h>
@@ -26,6 +28,8 @@
 #include <signal.h>
 #include <utils/Looper.h>
 
+#include <thread>
+
 using android::IPCThreadState;
 using android::Looper;
 using android::ProcessState;
@@ -35,6 +39,8 @@
 
 namespace {
 
+const size_t kMaxBinderThreadCount = 16;
+
 void sigHandler(int sig) {
     IPCThreadState::self()->stopProcess();
     ServiceManager::terminateServices();
@@ -54,27 +60,40 @@
 }  // namespace
 
 int main(int /*argc*/, char** /*argv*/) {
-    const size_t maxBinderThreadCount = 16;
     // Set up the looper
     sp<Looper> looper(Looper::prepare(/*opts=*/0));
 
-    // Set up the binder
-    sp<ProcessState> ps(ProcessState::self());
-    ps->setThreadPoolMaxThreadCount(maxBinderThreadCount);
-    ps->startThreadPool();
-    ps->giveThreadPoolName();
-    IPCThreadState::self()->disableBackgroundScheduling(true);
-
     // Start the services
-    const auto& result = ServiceManager::startServices(looper);
+    auto result = ServiceManager::startServices(looper);
     if (!result) {
-        ALOGE("%s", result.error().message().c_str());
+        ALOGE("Failed to start services: %s", result.error().message().c_str());
         ServiceManager::terminateServices();
         exit(result.error().code());
     }
 
     registerSigHandler();
 
+    // Wait for the service manager before starting binder mediator.
+    while (android::base::GetProperty("init.svc.servicemanager", "") != "running") {
+        // Poll frequent enough so the CarWatchdogDaemonHelper can connect to the daemon during
+        // system boot up.
+        std::this_thread::sleep_for(250ms);
+    }
+
+    // Set up the binder
+    sp<ProcessState> ps(ProcessState::self());
+    ps->setThreadPoolMaxThreadCount(kMaxBinderThreadCount);
+    ps->startThreadPool();
+    ps->giveThreadPoolName();
+    IPCThreadState::self()->disableBackgroundScheduling(true);
+
+    result = ServiceManager::startBinderMediator();
+    if (!result) {
+        ALOGE("Failed to start binder mediator: %s", result.error().message().c_str());
+        ServiceManager::terminateServices();
+        exit(result.error().code());
+    }
+
     // Loop forever -- the health check runs on this thread in a handler, and the binder calls
     // remain responsive in their pool of threads.
     while (true) {
diff --git a/watchdog/server/sysprop/Android.bp b/watchdog/server/sysprop/Android.bp
new file mode 100644
index 0000000..a3c507a
--- /dev/null
+++ b/watchdog/server/sysprop/Android.bp
@@ -0,0 +1,21 @@
+// Copyright (C) 2020 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.
+
+sysprop_library {
+  name: "libwatchdog_properties",
+  srcs: ["*.sysprop"],
+  property_owner: "Platform",
+  api_packages: ["android.sysprop"],
+  recovery_available: true,
+}
diff --git a/watchdog/server/sysprop/WatchdogProperties.sysprop b/watchdog/server/sysprop/WatchdogProperties.sysprop
new file mode 100644
index 0000000..740fe01
--- /dev/null
+++ b/watchdog/server/sysprop/WatchdogProperties.sysprop
@@ -0,0 +1,61 @@
+# Copyright (C) 2020 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.
+
+module: "android.automotive.watchdog.sysprop"
+owner: Platform
+
+# Interval in seconds between consecutive boot-time performance data collections.
+prop {
+    api_name: "boottimeCollectionInterval"
+    type: Integer
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.carwatchdog.boottime_collection_interval"
+}
+
+# Maximum number of periodically collected records to be cached in memory.
+prop {
+    api_name: "periodicCollectionBufferSize"
+    type: Integer
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.carwatchdog.periodic_collection_buffer_size"
+}
+
+# Interval in seconds between consecutive periodic performance data collections.
+prop {
+    api_name: "periodicCollectionInterval"
+    type: Integer
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.carwatchdog.periodic_collection_interval"
+}
+
+# Top N per-UID statistics/category collected by the performance data collector.
+prop {
+    api_name: "topNStatsPerCategory"
+    type: Integer
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.carwatchdog.top_n_stats_per_category"
+}
+
+# Top N per-process statistics/category collected by the performance data collector.
+prop {
+    api_name: "topNStatsPerSubcategory"
+    type: Integer
+    scope: Internal
+    access: Readonly
+    prop_name: "ro.carwatchdog.top_n_stats_per_subcategory"
+}
diff --git a/watchdog/server/sysprop/api/libwatchdog_properties-current.txt b/watchdog/server/sysprop/api/libwatchdog_properties-current.txt
new file mode 100644
index 0000000..ab59538
--- /dev/null
+++ b/watchdog/server/sysprop/api/libwatchdog_properties-current.txt
@@ -0,0 +1,33 @@
+props {
+  module: "android.automotive.watchdog.sysprop"
+  prop {
+    api_name: "boottimeCollectionInterval"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.boottime_collection_interval"
+  }
+  prop {
+    api_name: "periodicCollectionBufferSize"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.periodic_collection_buffer_size"
+  }
+  prop {
+    api_name: "periodicCollectionInterval"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.periodic_collection_interval"
+  }
+  prop {
+    api_name: "topNStatsPerCategory"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.top_n_stats_per_category"
+  }
+  prop {
+    api_name: "topNStatsPerSubcategory"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.top_n_stats_per_subcategory"
+  }
+}
diff --git a/watchdog/server/sysprop/api/libwatchdog_properties-latest.txt b/watchdog/server/sysprop/api/libwatchdog_properties-latest.txt
new file mode 100644
index 0000000..ab59538
--- /dev/null
+++ b/watchdog/server/sysprop/api/libwatchdog_properties-latest.txt
@@ -0,0 +1,33 @@
+props {
+  module: "android.automotive.watchdog.sysprop"
+  prop {
+    api_name: "boottimeCollectionInterval"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.boottime_collection_interval"
+  }
+  prop {
+    api_name: "periodicCollectionBufferSize"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.periodic_collection_buffer_size"
+  }
+  prop {
+    api_name: "periodicCollectionInterval"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.periodic_collection_interval"
+  }
+  prop {
+    api_name: "topNStatsPerCategory"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.top_n_stats_per_category"
+  }
+  prop {
+    api_name: "topNStatsPerSubcategory"
+    type: Integer
+    scope: Internal
+    prop_name: "ro.carwatchdog.top_n_stats_per_subcategory"
+  }
+}
diff --git a/watchdog/server/tests/IoPerfCollectionTest.cpp b/watchdog/server/tests/IoPerfCollectionTest.cpp
index 580de6e..82287bf 100644
--- a/watchdog/server/tests/IoPerfCollectionTest.cpp
+++ b/watchdog/server/tests/IoPerfCollectionTest.cpp
@@ -16,6 +16,7 @@
 
 #include "IoPerfCollection.h"
 
+#include <WatchdogProperties.sysprop.h>
 #include <android-base/file.h>
 #include <cutils/android_filesystem_config.h>
 
@@ -128,7 +129,9 @@
         }
         return isEqual;
     };
-    return std::equal(lhs.topNReads.begin(), lhs.topNReads.end(), rhs.topNReads.begin(), comp) &&
+    return lhs.topNReads.size() == rhs.topNReads.size() &&
+            std::equal(lhs.topNReads.begin(), lhs.topNReads.end(), rhs.topNReads.begin(), comp) &&
+            lhs.topNWrites.size() == rhs.topNWrites.size() &&
             std::equal(lhs.topNWrites.begin(), lhs.topNWrites.end(), rhs.topNWrites.begin(), comp);
 }
 
@@ -140,21 +143,32 @@
 
 bool isEqual(const ProcessIoPerfData& lhs, const ProcessIoPerfData& rhs) {
     if (lhs.topNIoBlockedUids.size() != rhs.topNIoBlockedUids.size() ||
-        lhs.topNMajorFaults.size() != rhs.topNMajorFaults.size() ||
+        lhs.topNMajorFaultUids.size() != rhs.topNMajorFaultUids.size() ||
         lhs.totalMajorFaults != rhs.totalMajorFaults ||
         lhs.majorFaultsPercentChange != rhs.majorFaultsPercentChange) {
         return false;
     }
-    auto comp = [&](const ProcessIoPerfData::Stats& l, const ProcessIoPerfData::Stats& r) -> bool {
-        return l.userId == r.userId && l.packageName == r.packageName && l.count == r.count;
+    auto comp = [&](const ProcessIoPerfData::UidStats& l,
+                    const ProcessIoPerfData::UidStats& r) -> bool {
+        auto comp = [&](const ProcessIoPerfData::UidStats::ProcessStats& l,
+                        const ProcessIoPerfData::UidStats::ProcessStats& r) -> bool {
+            return l.comm == r.comm && l.count == r.count;
+        };
+        return l.userId == r.userId && l.packageName == r.packageName && l.count == r.count &&
+                l.topNProcesses.size() == r.topNProcesses.size() &&
+                std::equal(l.topNProcesses.begin(), l.topNProcesses.end(), r.topNProcesses.begin(),
+                           comp);
     };
-    return std::equal(lhs.topNIoBlockedUids.begin(), lhs.topNIoBlockedUids.end(),
-                      rhs.topNIoBlockedUids.begin(), comp) &&
+    return lhs.topNIoBlockedUids.size() == lhs.topNIoBlockedUids.size() &&
+            std::equal(lhs.topNIoBlockedUids.begin(), lhs.topNIoBlockedUids.end(),
+                       rhs.topNIoBlockedUids.begin(), comp) &&
+            lhs.topNIoBlockedUidsTotalTaskCnt.size() == rhs.topNIoBlockedUidsTotalTaskCnt.size() &&
             std::equal(lhs.topNIoBlockedUidsTotalTaskCnt.begin(),
                        lhs.topNIoBlockedUidsTotalTaskCnt.end(),
                        rhs.topNIoBlockedUidsTotalTaskCnt.begin()) &&
-            std::equal(lhs.topNMajorFaults.begin(), lhs.topNMajorFaults.end(),
-                       rhs.topNMajorFaults.begin(), comp);
+            lhs.topNMajorFaultUids.size() == rhs.topNMajorFaultUids.size() &&
+            std::equal(lhs.topNMajorFaultUids.begin(), lhs.topNMajorFaultUids.end(),
+                       rhs.topNMajorFaultUids.begin(), comp);
 }
 
 bool isEqual(const IoPerfRecord& lhs, const IoPerfRecord& rhs) {
@@ -172,6 +186,28 @@
     ASSERT_TRUE(collector->mCollectionThread.joinable()) << "Collection thread not created";
     ASSERT_FALSE(collector->start())
             << "No error returned when collector was started more than once";
+    ASSERT_TRUE(sysprop::topNStatsPerCategory().has_value());
+    ASSERT_EQ(collector->mTopNStatsPerCategory, sysprop::topNStatsPerCategory().value());
+
+    ASSERT_TRUE(sysprop::topNStatsPerSubcategory().has_value());
+    ASSERT_EQ(collector->mTopNStatsPerSubcategory, sysprop::topNStatsPerSubcategory().value());
+
+    ASSERT_TRUE(sysprop::boottimeCollectionInterval().has_value());
+    ASSERT_EQ(std::chrono::duration_cast<std::chrono::seconds>(
+                      collector->mBoottimeCollection.interval)
+                      .count(),
+              sysprop::boottimeCollectionInterval().value());
+
+    ASSERT_TRUE(sysprop::topNStatsPerCategory().has_value());
+    ASSERT_EQ(std::chrono::duration_cast<std::chrono::seconds>(
+                      collector->mPeriodicCollection.interval)
+                      .count(),
+              sysprop::periodicCollectionInterval().value());
+
+    ASSERT_TRUE(sysprop::periodicCollectionBufferSize().has_value());
+    ASSERT_EQ(collector->mPeriodicCollection.maxCacheSize,
+              sysprop::periodicCollectionBufferSize().value());
+
     collector->terminate();
     ASSERT_FALSE(collector->mCollectionThread.joinable()) << "Collection thread did not terminate";
 }
@@ -233,9 +269,9 @@
                                  .totalCpuTime = 26900,
                                  .ioBlockedProcessesCnt = 5,
                                  .totalProcessesCnt = 22},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 1}},
+            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 1, {{"disk I/O", 1}}}},
                                   .topNIoBlockedUidsTotalTaskCnt = {1},
-                                  .topNMajorFaults = {{0, "mount", 5000}},
+                                  .topNMajorFaultUids = {{0, "mount", 5000, {{"disk I/O", 5000}}}},
                                   .totalMajorFaults = 5000,
                                   .majorFaultsPercentChange = 0.0},
     };
@@ -292,11 +328,12 @@
                                  .totalCpuTime = 19800,
                                  .ioBlockedProcessesCnt = 6,
                                  .totalProcessesCnt = 14},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2}},
-                                  .topNIoBlockedUidsTotalTaskCnt = {2},
-                                  .topNMajorFaults = {{0, "mount", 11000}},
-                                  .totalMajorFaults = 11000,
-                                  .majorFaultsPercentChange = ((11000.0 - 5000.0) / 5000.0) * 100},
+            .processIoPerfData =
+                    {.topNIoBlockedUids = {{0, "mount", 2, {{"disk I/O", 2}}}},
+                     .topNIoBlockedUidsTotalTaskCnt = {2},
+                     .topNMajorFaultUids = {{0, "mount", 11000, {{"disk I/O", 11000}}}},
+                     .totalMajorFaults = 11000,
+                     .majorFaultsPercentChange = ((11000.0 - 5000.0) / 5000.0) * 100},
     };
     ret = looperStub->pollCache();
     ASSERT_TRUE(ret) << ret.error().message();
@@ -304,7 +341,69 @@
             << "Subsequent boot-time collection didn't happen at " << kTestBootInterval.count()
             << " seconds interval";
 
-    ASSERT_EQ(collector->mBoottimeCollection.records.size(), 2);
+    // #3 Last boot-time collection
+    ret = collector->onBootFinished();
+    ASSERT_TRUE(ret) << ret.error().message();
+    uidIoStatsStub->push({
+            {1009, {.uid = 1009, .ios = {0, 7000, 0, 8000, 0, 50}}},
+    });
+    procStatStub->push(ProcStatInfo{
+            /*stats=*/{1400, 1900, 2900, 8000, /*ioWaitTime=*/5700, 700, 500, 0, 0, 300},
+            /*runnableCnt=*/10,
+            /*ioBlockedCnt=*/8,
+    });
+    procPidStatStub->push({{.tgid = 100,
+                            .uid = 1009,
+                            .process = {.pid = 100,
+                                        .comm = "disk I/O",
+                                        .state = "D",
+                                        .ppid = 1,
+                                        .majorFaults = 5000,
+                                        .numThreads = 1,
+                                        .startTime = 234},
+                            .threads = {{100,
+                                         {.pid = 100,
+                                          .comm = "disk I/O",
+                                          .state = "D",
+                                          .ppid = 1,
+                                          .majorFaults = 3000,
+                                          .numThreads = 1,
+                                          .startTime = 234}},
+                                        {200,
+                                         {.pid = 200,
+                                          .comm = "disk I/O",
+                                          .state = "D",
+                                          .ppid = 1,
+                                          .majorFaults = 2000,
+                                          .numThreads = 1,
+                                          .startTime = 1234}}}}});
+    IoPerfRecord bootExpectedThird = {
+            .uidIoPerfData = {.topNReads = {{.userId = 0,
+                                             .packageName = "mount",
+                                             .bytes = {0, 7000},
+                                             .fsync{0, 50}}},
+                              .topNWrites = {{.userId = 0,
+                                              .packageName = "mount",
+                                              .bytes = {0, 8000},
+                                              .fsync{0, 50}}},
+                              .total = {{0, 7000}, {0, 8000}, {0, 50}}},
+            .systemIoPerfData = {.cpuIoWaitTime = 5700,
+                                 .totalCpuTime = 21400,
+                                 .ioBlockedProcessesCnt = 8,
+                                 .totalProcessesCnt = 18},
+            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2, {{"disk I/O", 2}}}},
+                                  .topNIoBlockedUidsTotalTaskCnt = {2},
+                                  .topNMajorFaultUids = {{0, "mount", 5000, {{"disk I/O", 5000}}}},
+                                  .totalMajorFaults = 5000,
+                                  .majorFaultsPercentChange = ((5000.0 - 11000.0) / 11000.0) * 100},
+    };
+    ret = looperStub->pollCache();
+    ASSERT_TRUE(ret) << ret.error().message();
+    ASSERT_EQ(looperStub->numSecondsElapsed(), 0)
+            << "Last boot-time collection didn't happen immediately after receiving boot complete "
+            << "notification";
+
+    ASSERT_EQ(collector->mBoottimeCollection.records.size(), 3);
     ASSERT_TRUE(isEqual(collector->mBoottimeCollection.records[0], bootExpectedFirst))
             << "Boot-time collection record 1 doesn't match.\nExpected:\n"
             << toString(bootExpectedFirst) << "\nActual:\n"
@@ -313,10 +412,12 @@
             << "Boot-time collection record 2 doesn't match.\nExpected:\n"
             << toString(bootExpectedSecond) << "\nActual:\n"
             << toString(collector->mBoottimeCollection.records[1]);
+    ASSERT_TRUE(isEqual(collector->mBoottimeCollection.records[2], bootExpectedThird))
+            << "Boot-time collection record 3 doesn't match.\nExpected:\n"
+            << toString(bootExpectedSecond) << "\nActual:\n"
+            << toString(collector->mBoottimeCollection.records[2]);
 
-    // #3 Periodic collection
-    ret = collector->onBootFinished();
-    ASSERT_TRUE(ret) << ret.error().message();
+    // #4 Periodic collection
     uidIoStatsStub->push({
             {1009, {.uid = 1009, .ios = {0, 4000, 0, 6000, 0, 100}}},
     });
@@ -364,17 +465,19 @@
                                  .totalCpuTime = 4276,
                                  .ioBlockedProcessesCnt = 3,
                                  .totalProcessesCnt = 15},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 1}},
+            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 1, {{"disk I/O", 1}}}},
                                   .topNIoBlockedUidsTotalTaskCnt = {2},
-                                  .topNMajorFaults = {{0, "mount", 4100}},
+                                  .topNMajorFaultUids = {{0, "mount", 4100, {{"disk I/O", 4100}}}},
                                   .totalMajorFaults = 4100,
-                                  .majorFaultsPercentChange = ((4100.0 - 11000.0) / 11000.0) * 100},
+                                  .majorFaultsPercentChange = ((4100.0 - 5000.0) / 5000.0) * 100},
     };
     ret = looperStub->pollCache();
     ASSERT_TRUE(ret) << ret.error().message();
-    ASSERT_EQ(looperStub->numSecondsElapsed(), 0) << "Periodic collection didn't start immediately";
+    ASSERT_EQ(looperStub->numSecondsElapsed(), kTestPeriodicInterval.count())
+            << "First periodic collection didn't happen at " << kTestPeriodicInterval.count()
+            << " seconds interval";
 
-    // #4 Periodic collection
+    // #5 Periodic collection
     uidIoStatsStub->push({
             {1009, {.uid = 1009, .ios = {0, 3000, 0, 5000, 0, 800}}},
     });
@@ -422,11 +525,12 @@
                                  .totalCpuTime = 43576,
                                  .ioBlockedProcessesCnt = 4,
                                  .totalProcessesCnt = 6},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2}},
-                                  .topNIoBlockedUidsTotalTaskCnt = {2},
-                                  .topNMajorFaults = {{0, "mount", 44300}},
-                                  .totalMajorFaults = 44300,
-                                  .majorFaultsPercentChange = ((44300.0 - 4100.0) / 4100.0) * 100},
+            .processIoPerfData =
+                    {.topNIoBlockedUids = {{0, "mount", 2, {{"disk I/O", 2}}}},
+                     .topNIoBlockedUidsTotalTaskCnt = {2},
+                     .topNMajorFaultUids = {{0, "mount", 44300, {{"disk I/O", 44300}}}},
+                     .totalMajorFaults = 44300,
+                     .majorFaultsPercentChange = ((44300.0 - 4100.0) / 4100.0) * 100},
     };
     ret = looperStub->pollCache();
     ASSERT_TRUE(ret) << ret.error().message();
@@ -444,7 +548,7 @@
             << toString(periodicExpectedSecond) << "\nActual:\n"
             << toString(collector->mPeriodicCollection.records[1]);
 
-    // #4 Custom collection
+    // #6 Custom collection
     Vector<String16> args;
     args.push_back(String16(kStartCustomCollectionFlag));
     args.push_back(String16(kIntervalFlag));
@@ -501,18 +605,18 @@
                                  .totalCpuTime = 47576,
                                  .ioBlockedProcessesCnt = 13,
                                  .totalProcessesCnt = 213},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2}},
-                                  .topNIoBlockedUidsTotalTaskCnt = {2},
-                                  .topNMajorFaults = {{0, "mount", 49800}},
-                                  .totalMajorFaults = 49800,
-                                  .majorFaultsPercentChange =
-                                          ((49800.0 - 44300.0) / 44300.0) * 100},
+            .processIoPerfData =
+                    {.topNIoBlockedUids = {{0, "mount", 2, {{"disk I/O", 2}}}},
+                     .topNIoBlockedUidsTotalTaskCnt = {2},
+                     .topNMajorFaultUids = {{0, "mount", 49800, {{"disk I/O", 49800}}}},
+                     .totalMajorFaults = 49800,
+                     .majorFaultsPercentChange = ((49800.0 - 44300.0) / 44300.0) * 100},
     };
     ret = looperStub->pollCache();
     ASSERT_TRUE(ret) << ret.error().message();
     ASSERT_EQ(looperStub->numSecondsElapsed(), 0) << "Custom collection didn't start immediately";
 
-    // #5 Custom collection
+    // #7 Custom collection
     uidIoStatsStub->push({
             {1009, {.uid = 1009, .ios = {0, 14000, 0, 16000, 0, 100}}},
     });
@@ -560,12 +664,12 @@
                                  .totalCpuTime = 48376,
                                  .ioBlockedProcessesCnt = 57,
                                  .totalProcessesCnt = 157},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2}},
-                                  .topNIoBlockedUidsTotalTaskCnt = {2},
-                                  .topNMajorFaults = {{0, "mount", 50900}},
-                                  .totalMajorFaults = 50900,
-                                  .majorFaultsPercentChange =
-                                          ((50900.0 - 49800.0) / 49800.0) * 100},
+            .processIoPerfData =
+                    {.topNIoBlockedUids = {{0, "mount", 2, {{"disk I/O", 2}}}},
+                     .topNIoBlockedUidsTotalTaskCnt = {2},
+                     .topNMajorFaultUids = {{0, "mount", 50900, {{"disk I/O", 50900}}}},
+                     .totalMajorFaults = 50900,
+                     .majorFaultsPercentChange = ((50900.0 - 49800.0) / 49800.0) * 100},
     };
     ret = looperStub->pollCache();
     ASSERT_TRUE(ret) << ret.error().message();
@@ -583,7 +687,7 @@
             << toString(customExpectedSecond) << "\nActual:\n"
             << toString(collector->mCustomCollection.records[1]);
 
-    // #6 Switch to periodic collection
+    // #8 Switch to periodic collection
     args.clear();
     args.push_back(String16(kEndCustomCollectionFlag));
     TemporaryFile customDump;
@@ -643,9 +747,9 @@
                                  .totalCpuTime = 20676,
                                  .ioBlockedProcessesCnt = 1,
                                  .totalProcessesCnt = 4},
-            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2}},
+            .processIoPerfData = {.topNIoBlockedUids = {{0, "mount", 2, {{"disk I/O", 2}}}},
                                   .topNIoBlockedUidsTotalTaskCnt = {2},
-                                  .topNMajorFaults = {{0, "mount", 5701}},
+                                  .topNMajorFaultUids = {{0, "mount", 5701, {{"disk I/O", 5701}}}},
                                   .totalMajorFaults = 5701,
                                   .majorFaultsPercentChange = ((5701.0 - 50900.0) / 50900.0) * 100},
     };
@@ -665,7 +769,7 @@
             << toString(periodicExpectedThird) << "\nActual:\n"
             << toString(collector->mPeriodicCollection.records[1]);
 
-    ASSERT_EQ(collector->mBoottimeCollection.records.size(), 2)
+    ASSERT_EQ(collector->mBoottimeCollection.records.size(), 3)
             << "Boot-time records not persisted until collector termination";
 
     TemporaryFile bugreportDump;
@@ -722,6 +826,169 @@
     collector->terminate();
 }
 
+TEST(IoPerfCollectionTest, TestCustomCollectionFiltersPackageNames) {
+    sp<UidIoStatsStub> uidIoStatsStub = new UidIoStatsStub(true);
+    sp<ProcStatStub> procStatStub = new ProcStatStub(true);
+    sp<ProcPidStatStub> procPidStatStub = new ProcPidStatStub(true);
+    sp<LooperStub> looperStub = new LooperStub();
+
+    sp<IoPerfCollection> collector = new IoPerfCollection();
+    collector->mUidIoStats = uidIoStatsStub;
+    collector->mProcStat = procStatStub;
+    collector->mProcPidStat = procPidStatStub;
+    collector->mHandlerLooper = looperStub;
+    // Filter by package name should ignore this limit.
+    collector->mTopNStatsPerCategory = 1;
+
+    auto ret = collector->start();
+    ASSERT_TRUE(ret) << ret.error().message();
+
+    // Dummy boot-time collection
+    uidIoStatsStub->push({});
+    procStatStub->push(ProcStatInfo{});
+    procPidStatStub->push({});
+    ret = looperStub->pollCache();
+    ASSERT_TRUE(ret) << ret.error().message();
+
+    // Dummy Periodic collection
+    ret = collector->onBootFinished();
+    ASSERT_TRUE(ret) << ret.error().message();
+    uidIoStatsStub->push({});
+    procStatStub->push(ProcStatInfo{});
+    procPidStatStub->push({});
+    ret = looperStub->pollCache();
+    ASSERT_TRUE(ret) << ret.error().message();
+
+    // Start custom Collection
+    Vector<String16> args;
+    args.push_back(String16(kStartCustomCollectionFlag));
+    args.push_back(String16(kIntervalFlag));
+    args.push_back(String16(std::to_string(kTestCustomInterval.count()).c_str()));
+    args.push_back(String16(kMaxDurationFlag));
+    args.push_back(String16(std::to_string(kTestCustomCollectionDuration.count()).c_str()));
+    args.push_back(String16(kFilterPackagesFlag));
+    args.push_back(String16("android.car.cts,system_server"));
+
+    ret = collector->dump(-1, args);
+    ASSERT_TRUE(ret.ok()) << ret.error().message();
+
+    // Custom collection
+    collector->mUidToPackageNameMapping[1009] = "android.car.cts";
+    collector->mUidToPackageNameMapping[2001] = "system_server";
+    collector->mUidToPackageNameMapping[3456] = "random_process";
+    uidIoStatsStub->push({
+            {1009, {.uid = 1009, .ios = {0, 14000, 0, 16000, 0, 100}}},
+            {2001, {.uid = 2001, .ios = {0, 3400, 0, 6700, 0, 200}}},
+            {3456, {.uid = 3456, .ios = {0, 4200, 0, 5600, 0, 300}}},
+    });
+    procStatStub->push(ProcStatInfo{
+            /*stats=*/{2900, 7900, 4900, 8900, /*ioWaitTime=*/5900, 6966, 7980, 0, 0, 2930},
+            /*runnableCnt=*/100,
+            /*ioBlockedCnt=*/57,
+    });
+    procPidStatStub->push({{.tgid = 100,
+                            .uid = 1009,
+                            .process = {.pid = 100,
+                                        .comm = "cts_test",
+                                        .state = "D",
+                                        .ppid = 1,
+                                        .majorFaults = 50900,
+                                        .numThreads = 2,
+                                        .startTime = 234},
+                            .threads = {{100,
+                                         {.pid = 100,
+                                          .comm = "cts_test",
+                                          .state = "D",
+                                          .ppid = 1,
+                                          .majorFaults = 50900,
+                                          .numThreads = 1,
+                                          .startTime = 234}},
+                                        {200,
+                                         {.pid = 200,
+                                          .comm = "cts_test_2",
+                                          .state = "D",
+                                          .ppid = 1,
+                                          .majorFaults = 0,
+                                          .numThreads = 1,
+                                          .startTime = 290}}}},
+                           {.tgid = 1000,
+                            .uid = 2001,
+                            .process = {.pid = 1000,
+                                        .comm = "system_server",
+                                        .state = "D",
+                                        .ppid = 1,
+                                        .majorFaults = 1234,
+                                        .numThreads = 1,
+                                        .startTime = 345},
+                            .threads = {{1000,
+                                         {.pid = 1000,
+                                          .comm = "system_server",
+                                          .state = "D",
+                                          .ppid = 1,
+                                          .majorFaults = 1234,
+                                          .numThreads = 1,
+                                          .startTime = 345}}}},
+                           {.tgid = 4000,
+                            .uid = 3456,
+                            .process = {.pid = 4000,
+                                        .comm = "random_process",
+                                        .state = "D",
+                                        .ppid = 1,
+                                        .majorFaults = 3456,
+                                        .numThreads = 1,
+                                        .startTime = 890},
+                            .threads = {{4000,
+                                         {.pid = 4000,
+                                          .comm = "random_process",
+                                          .state = "D",
+                                          .ppid = 1,
+                                          .majorFaults = 50900,
+                                          .numThreads = 1,
+                                          .startTime = 890}}}}});
+    IoPerfRecord expected = {
+            .uidIoPerfData = {.topNReads = {{.userId = 0,
+                                             .packageName = "android.car.cts",
+                                             .bytes = {0, 14000},
+                                             .fsync{0, 100}},
+                                            {.userId = 0,
+                                             .packageName = "system_server",
+                                             .bytes = {0, 3400},
+                                             .fsync{0, 200}}},
+                              .topNWrites = {{.userId = 0,
+                                              .packageName = "android.car.cts",
+                                              .bytes = {0, 16000},
+                                              .fsync{0, 100}},
+                                             {.userId = 0,
+                                              .packageName = "system_server",
+                                              .bytes = {0, 6700},
+                                              .fsync{0, 200}}},
+                              .total = {{0, 21600}, {0, 28300}, {0, 600}}},
+            .systemIoPerfData = {.cpuIoWaitTime = 5900,
+                                 .totalCpuTime = 48376,
+                                 .ioBlockedProcessesCnt = 57,
+                                 .totalProcessesCnt = 157},
+            .processIoPerfData =
+                    {.topNIoBlockedUids = {{0, "android.car.cts", 2, {{"cts_test", 2}}},
+                                           {0, "system_server", 1, {{"system_server", 1}}}},
+                     .topNIoBlockedUidsTotalTaskCnt = {2, 1},
+                     .topNMajorFaultUids = {{0, "android.car.cts", 50900, {{"cts_test", 50900}}},
+                                            {0, "system_server", 1234, {{"system_server", 1234}}}},
+                     .totalMajorFaults = 55590,
+                     .majorFaultsPercentChange = 0},
+    };
+    ret = looperStub->pollCache();
+    ASSERT_TRUE(ret) << ret.error().message();
+    ASSERT_EQ(looperStub->numSecondsElapsed(), 0) << "Custom collection didn't start immediately";
+
+    ASSERT_EQ(collector->mCurrCollectionEvent, CollectionEvent::CUSTOM);
+    ASSERT_EQ(collector->mCustomCollection.records.size(), 1);
+    ASSERT_TRUE(isEqual(collector->mCustomCollection.records[0], expected))
+            << "Custom collection record doesn't match.\nExpected:\n"
+            << toString(expected) << "\nActual:\n"
+            << toString(collector->mCustomCollection.records[0]);
+    collector->terminate();
+}
+
 TEST(IoPerfCollectionTest, TestCustomCollectionTerminatesAfterMaxDuration) {
     sp<UidIoStatsStub> uidIoStatsStub = new UidIoStatsStub(true);
     sp<ProcStatStub> procStatStub = new ProcStatStub(true);
@@ -781,9 +1048,9 @@
 
     ASSERT_EQ(collector->mCurrCollectionEvent, CollectionEvent::CUSTOM);
     ASSERT_GT(collector->mCustomCollection.records.size(), 0);
-    // Next looper message was injected during startCustomCollectionLocked to end the custom
-    // collection after |kTestCustomCollectionDuration|. Thus on processing this message
-    // the custom collection should terminate.
+    // Next looper message was injected during startCustomCollection to end the custom collection
+    // after |kTestCustomCollectionDuration|. Thus on processing this message the custom collection
+    // should terminate.
     ret = looperStub->pollCache();
     ASSERT_TRUE(ret) << ret.error().message();
     ASSERT_EQ(looperStub->numSecondsElapsed(),
@@ -851,7 +1118,7 @@
     ASSERT_TRUE(collector.mUidIoStats->enabled()) << "Temporary file is inaccessible";
 
     struct UidIoPerfData actualUidIoPerfData = {};
-    auto ret = collector.collectUidIoPerfDataLocked(&actualUidIoPerfData);
+    auto ret = collector.collectUidIoPerfDataLocked(CollectionInfo{}, &actualUidIoPerfData);
     ASSERT_RESULT_OK(ret);
     EXPECT_TRUE(isEqual(expectedUidIoPerfData, actualUidIoPerfData))
         << "First snapshot doesn't match.\nExpected:\n"
@@ -901,7 +1168,7 @@
     });
     ASSERT_TRUE(WriteStringToFile(secondSnapshot, tf.path));
     actualUidIoPerfData = {};
-    ret = collector.collectUidIoPerfDataLocked(&actualUidIoPerfData);
+    ret = collector.collectUidIoPerfDataLocked(CollectionInfo{}, &actualUidIoPerfData);
     ASSERT_RESULT_OK(ret);
     EXPECT_TRUE(isEqual(expectedUidIoPerfData, actualUidIoPerfData))
         << "Second snapshot doesn't match.\nExpected:\n"
@@ -946,7 +1213,7 @@
     ASSERT_TRUE(collector.mUidIoStats->enabled()) << "Temporary file is inaccessible";
 
     struct UidIoPerfData actualUidIoPerfData = {};
-    const auto& ret = collector.collectUidIoPerfDataLocked(&actualUidIoPerfData);
+    const auto& ret = collector.collectUidIoPerfDataLocked(CollectionInfo{}, &actualUidIoPerfData);
     ASSERT_RESULT_OK(ret);
     EXPECT_TRUE(isEqual(expectedUidIoPerfData, actualUidIoPerfData))
         << "Collected data doesn't match.\nExpected:\n"
@@ -1067,6 +1334,7 @@
             .userId = 10,
             .packageName = "shared:android.uid.system",
             .count = 4,
+            .topNProcesses = {{"logd", 3}, {"system_server", 1}},
     });
     expectedProcessIoPerfData.topNIoBlockedUidsTotalTaskCnt.push_back(6);
     expectedProcessIoPerfData.topNIoBlockedUids.push_back({
@@ -1074,19 +1342,22 @@
             .userId = 0,
             .packageName = "mount",
             .count = 3,
+            .topNProcesses = {{"disk I/O", 3}},
     });
     expectedProcessIoPerfData.topNIoBlockedUidsTotalTaskCnt.push_back(3);
-    expectedProcessIoPerfData.topNMajorFaults.push_back({
+    expectedProcessIoPerfData.topNMajorFaultUids.push_back({
             // uid: 1001234
             .userId = 10,
             .packageName = "1001234",
             .count = 89765,
+            .topNProcesses = {{"tombstoned", 89765}},
     });
-    expectedProcessIoPerfData.topNMajorFaults.push_back({
+    expectedProcessIoPerfData.topNMajorFaultUids.push_back({
             // uid: 1009
             .userId = 0,
             .packageName = "mount",
             .count = 45678,
+            .topNProcesses = {{"disk I/O", 45678}},
     });
     expectedProcessIoPerfData.totalMajorFaults = 156663;
     expectedProcessIoPerfData.majorFaultsPercentChange = 0;
@@ -1099,11 +1370,12 @@
     IoPerfCollection collector;
     collector.mProcPidStat = new ProcPidStat(firstSnapshot.path);
     collector.mTopNStatsPerCategory = 2;
+    collector.mTopNStatsPerSubcategory = 2;
     ASSERT_TRUE(collector.mProcPidStat->enabled())
             << "Files under the temporary proc directory are inaccessible";
 
     struct ProcessIoPerfData actualProcessIoPerfData = {};
-    ret = collector.collectProcessIoPerfDataLocked(&actualProcessIoPerfData);
+    ret = collector.collectProcessIoPerfDataLocked(CollectionInfo{}, &actualProcessIoPerfData);
     ASSERT_TRUE(ret) << "Failed to collect first snapshot: " << ret.error();
     EXPECT_TRUE(isEqual(expectedProcessIoPerfData, actualProcessIoPerfData))
             << "First snapshot doesn't match.\nExpected:\n"
@@ -1135,19 +1407,22 @@
             .userId = 10,
             .packageName = "shared:android.uid.system",
             .count = 1,
+            .topNProcesses = {{"system_server", 1}},
     });
     expectedProcessIoPerfData.topNIoBlockedUidsTotalTaskCnt.push_back(3);
-    expectedProcessIoPerfData.topNMajorFaults.push_back({
+    expectedProcessIoPerfData.topNMajorFaultUids.push_back({
             // uid: 1001000
             .userId = 10,
             .packageName = "shared:android.uid.system",
             .count = 12000,
+            .topNProcesses = {{"system_server", 12000}},
     });
-    expectedProcessIoPerfData.topNMajorFaults.push_back({
+    expectedProcessIoPerfData.topNMajorFaultUids.push_back({
             // uid: 0
             .userId = 0,
             .packageName = "root",
             .count = 660,
+            .topNProcesses = {{"init", 660}},
     });
     expectedProcessIoPerfData.totalMajorFaults = 12660;
     expectedProcessIoPerfData.majorFaultsPercentChange = ((12660.0 - 156663.0) / 156663.0) * 100;
@@ -1160,7 +1435,7 @@
     collector.mProcPidStat->mPath = secondSnapshot.path;
 
     actualProcessIoPerfData = {};
-    ret = collector.collectProcessIoPerfDataLocked(&actualProcessIoPerfData);
+    ret = collector.collectProcessIoPerfDataLocked(CollectionInfo{}, &actualProcessIoPerfData);
     ASSERT_TRUE(ret) << "Failed to collect second snapshot: " << ret.error();
     EXPECT_TRUE(isEqual(expectedProcessIoPerfData, actualProcessIoPerfData))
             << "Second snapshot doesn't match.\nExpected:\n"
@@ -1183,11 +1458,12 @@
             {453, "453 (init) S 0 0 0 0 0 0 0 0 80 0 0 0 0 0 0 0 2 0 275\n"},
     };
     struct ProcessIoPerfData expectedProcessIoPerfData = {};
-    expectedProcessIoPerfData.topNMajorFaults.push_back({
+    expectedProcessIoPerfData.topNMajorFaultUids.push_back({
             // uid: 0
             .userId = 0,
             .packageName = "root",
             .count = 880,
+            .topNProcesses = {{"init", 880}},
     });
     expectedProcessIoPerfData.totalMajorFaults = 880;
     expectedProcessIoPerfData.majorFaultsPercentChange = 0.0;
@@ -1198,9 +1474,11 @@
     ASSERT_TRUE(ret) << "Failed to populate proc pid dir: " << ret.error();
 
     IoPerfCollection collector;
+    collector.mTopNStatsPerCategory = 5;
+    collector.mTopNStatsPerSubcategory = 3;
     collector.mProcPidStat = new ProcPidStat(prodDir.path);
     struct ProcessIoPerfData actualProcessIoPerfData = {};
-    ret = collector.collectProcessIoPerfDataLocked(&actualProcessIoPerfData);
+    ret = collector.collectProcessIoPerfDataLocked(CollectionInfo{}, &actualProcessIoPerfData);
     ASSERT_TRUE(ret) << "Failed to collect proc pid contents: " << ret.error();
     EXPECT_TRUE(isEqual(expectedProcessIoPerfData, actualProcessIoPerfData))
             << "proc pid contents don't match.\nExpected:\n"
diff --git a/watchdog/server/tests/LooperStub.cpp b/watchdog/server/tests/LooperStub.cpp
index a8fc4f9..1b7aa82 100644
--- a/watchdog/server/tests/LooperStub.cpp
+++ b/watchdog/server/tests/LooperStub.cpp
@@ -32,7 +32,7 @@
 using android::base::Result;
 
 const std::chrono::milliseconds kLooperPollTimeout = 10ms;
-const std::chrono::milliseconds kStubPollCheckTimeout = 100ms;
+const std::chrono::milliseconds kStubPollCheckTimeout = 200ms;
 
 int LooperStub::pollAll(int /*timeoutMillis*/) {
     {
diff --git a/watchdog/server/tests/WatchdogBinderMediatorTest.cpp b/watchdog/server/tests/WatchdogBinderMediatorTest.cpp
index 593f7d2..0d1cf05 100644
--- a/watchdog/server/tests/WatchdogBinderMediatorTest.cpp
+++ b/watchdog/server/tests/WatchdogBinderMediatorTest.cpp
@@ -75,13 +75,18 @@
 class MockICarWatchdogClient : public ICarWatchdogClient {
 public:
     MOCK_METHOD(Status, checkIfAlive, (int32_t sessionId, TimeoutLength timeout), (override));
+    MOCK_METHOD(Status, prepareProcessTermination, (), (override));
     MOCK_METHOD(IBinder*, onAsBinder, (), (override));
+    MOCK_METHOD(int32_t, getInterfaceVersion, (), (override));
+    MOCK_METHOD(std::string, getInterfaceHash, (), (override));
 };
 
 class MockICarWatchdogMonitor : public ICarWatchdogMonitor {
 public:
     MOCK_METHOD(Status, onClientsNotResponding, (const std::vector<int32_t>& pids), (override));
     MOCK_METHOD(IBinder*, onAsBinder, (), (override));
+    MOCK_METHOD(int32_t, getInterfaceVersion, (), (override));
+    MOCK_METHOD(std::string, getInterfaceHash, (), (override));
 };
 
 class ScopedChangeCallingUid : public RefBase {
diff --git a/watchdog/server/tests/WatchdogProcessServiceTest.cpp b/watchdog/server/tests/WatchdogProcessServiceTest.cpp
new file mode 100644
index 0000000..38598ec
--- /dev/null
+++ b/watchdog/server/tests/WatchdogProcessServiceTest.cpp
@@ -0,0 +1,212 @@
+/*
+ * Copyright 2020 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.
+ */
+
+#include "WatchdogProcessService.h"
+
+#include "gmock/gmock.h"
+
+namespace android {
+namespace automotive {
+namespace watchdog {
+
+using android::sp;
+using binder::Status;
+using ::testing::_;
+using ::testing::Return;
+
+namespace {
+
+class MockBinder : public BBinder {
+public:
+    MOCK_METHOD(status_t, linkToDeath,
+                (const sp<DeathRecipient>& recipient, void* cookie, uint32_t flags), (override));
+    MOCK_METHOD(status_t, unlinkToDeath,
+                (const wp<DeathRecipient>& recipient, void* cookie, uint32_t flags,
+                 wp<DeathRecipient>* outRecipient),
+                (override));
+};
+
+class MockCarWatchdogClient : public ICarWatchdogClientDefault {
+public:
+    MockCarWatchdogClient() { mBinder = new MockBinder(); }
+    sp<MockBinder> getBinder() const { return mBinder; }
+
+    MOCK_METHOD(IBinder*, onAsBinder, (), (override));
+
+private:
+    sp<MockBinder> mBinder;
+};
+
+class MockCarWatchdogMonitor : public ICarWatchdogMonitorDefault {
+public:
+    MockCarWatchdogMonitor() { mBinder = new MockBinder(); }
+    sp<MockBinder> getBinder() const { return mBinder; }
+
+    MOCK_METHOD(IBinder*, onAsBinder, (), (override));
+
+private:
+    sp<MockBinder> mBinder;
+};
+
+}  // namespace
+
+class WatchdogProcessServiceTest : public ::testing::Test {
+protected:
+    void SetUp() override {
+        sp<Looper> looper(Looper::prepare(/*opts=*/0));
+        mWatchdogProcessService = new WatchdogProcessService(looper);
+    }
+
+    void TearDown() override { mWatchdogProcessService = nullptr; }
+
+    sp<WatchdogProcessService> mWatchdogProcessService;
+};
+
+sp<MockCarWatchdogClient> createMockCarWatchdogClient(status_t linkToDeathResult) {
+    sp<MockCarWatchdogClient> client = new MockCarWatchdogClient;
+    sp<MockBinder> binder = client->getBinder();
+    EXPECT_CALL(*binder, linkToDeath(_, nullptr, 0)).WillRepeatedly(Return(linkToDeathResult));
+    EXPECT_CALL(*binder, unlinkToDeath(_, nullptr, 0, nullptr)).WillRepeatedly(Return(OK));
+    EXPECT_CALL(*client, onAsBinder()).WillRepeatedly(Return(binder.get()));
+    return client;
+}
+
+sp<MockCarWatchdogMonitor> createMockCarWatchdogMonitor(status_t linkToDeathResult) {
+    sp<MockCarWatchdogMonitor> monitor = new MockCarWatchdogMonitor;
+    sp<MockBinder> binder = monitor->getBinder();
+    EXPECT_CALL(*binder, linkToDeath(_, nullptr, 0)).WillRepeatedly(Return(linkToDeathResult));
+    EXPECT_CALL(*binder, unlinkToDeath(_, nullptr, 0, nullptr)).WillRepeatedly(Return(OK));
+    EXPECT_CALL(*monitor, onAsBinder()).WillRepeatedly(Return(binder.get()));
+    return monitor;
+}
+
+sp<MockCarWatchdogClient> expectNormalCarWatchdogClient() {
+    return createMockCarWatchdogClient(OK);
+}
+
+sp<MockCarWatchdogClient> expectCarWatchdogClientBinderDied() {
+    return createMockCarWatchdogClient(DEAD_OBJECT);
+}
+
+sp<MockCarWatchdogMonitor> expectNormalCarWatchdogMonitor() {
+    return createMockCarWatchdogMonitor(OK);
+}
+
+sp<MockCarWatchdogMonitor> expectCarWatchdogMonitorBinderDied() {
+    return createMockCarWatchdogMonitor(DEAD_OBJECT);
+}
+
+TEST_F(WatchdogProcessServiceTest, TestRegisterClient) {
+    sp<MockCarWatchdogClient> client = expectNormalCarWatchdogClient();
+    Status status =
+            mWatchdogProcessService->registerClient(client, TimeoutLength::TIMEOUT_CRITICAL);
+    ASSERT_TRUE(status.isOk()) << status;
+    status = mWatchdogProcessService->registerClient(client, TimeoutLength::TIMEOUT_CRITICAL);
+    ASSERT_TRUE(status.isOk()) << status;
+}
+
+TEST_F(WatchdogProcessServiceTest, TestUnregisterClient) {
+    sp<MockCarWatchdogClient> client = expectNormalCarWatchdogClient();
+    mWatchdogProcessService->registerClient(client, TimeoutLength::TIMEOUT_CRITICAL);
+    Status status = mWatchdogProcessService->unregisterClient(client);
+    ASSERT_TRUE(status.isOk()) << status;
+    ASSERT_FALSE(mWatchdogProcessService->unregisterClient(client).isOk())
+            << "Unregistering an unregistered client shoud return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestRegisterClient_BinderDied) {
+    sp<MockCarWatchdogClient> client = expectCarWatchdogClientBinderDied();
+    ASSERT_FALSE(
+            mWatchdogProcessService->registerClient(client, TimeoutLength::TIMEOUT_CRITICAL).isOk())
+            << "When linkToDeath fails, registerClient should return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestRegisterMediator) {
+    sp<ICarWatchdogClient> mediator = expectNormalCarWatchdogClient();
+    Status status = mWatchdogProcessService->registerMediator(mediator);
+    ASSERT_TRUE(status.isOk()) << status;
+    status = mWatchdogProcessService->registerMediator(mediator);
+    ASSERT_TRUE(status.isOk()) << status;
+}
+
+TEST_F(WatchdogProcessServiceTest, TestRegisterMediator_BinderDied) {
+    sp<MockCarWatchdogClient> mediator = expectCarWatchdogClientBinderDied();
+    ASSERT_FALSE(mWatchdogProcessService->registerMediator(mediator).isOk())
+            << "When linkToDeath fails, registerMediator should return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestUnregisterMediator) {
+    sp<ICarWatchdogClient> mediator = expectNormalCarWatchdogClient();
+    mWatchdogProcessService->registerMediator(mediator);
+    Status status = mWatchdogProcessService->unregisterMediator(mediator);
+    ASSERT_TRUE(status.isOk()) << status;
+    ASSERT_FALSE(mWatchdogProcessService->unregisterMediator(mediator).isOk())
+            << "Unregistering an unregistered mediator shoud return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestRegisterMonitor) {
+    sp<ICarWatchdogMonitor> monitorOne = expectNormalCarWatchdogMonitor();
+    sp<ICarWatchdogMonitor> monitorTwo = expectNormalCarWatchdogMonitor();
+    Status status = mWatchdogProcessService->registerMonitor(monitorOne);
+    ASSERT_TRUE(status.isOk()) << status;
+    status = mWatchdogProcessService->registerMonitor(monitorOne);
+    ASSERT_TRUE(status.isOk()) << status;
+    status = mWatchdogProcessService->registerMonitor(monitorTwo);
+    ASSERT_TRUE(status.isOk()) << status;
+}
+
+TEST_F(WatchdogProcessServiceTest, TestRegisterMonitor_BinderDied) {
+    sp<MockCarWatchdogMonitor> monitor = expectCarWatchdogMonitorBinderDied();
+    ASSERT_FALSE(mWatchdogProcessService->registerMonitor(monitor).isOk())
+            << "When linkToDeath fails, registerMonitor should return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestUnregisterMonitor) {
+    sp<ICarWatchdogMonitor> monitor = expectNormalCarWatchdogMonitor();
+    mWatchdogProcessService->registerMonitor(monitor);
+    Status status = mWatchdogProcessService->unregisterMonitor(monitor);
+    ASSERT_TRUE(status.isOk()) << status;
+    ASSERT_FALSE(mWatchdogProcessService->unregisterMonitor(monitor).isOk())
+            << "Unregistering an unregistered monitor should return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestTellClientAlive) {
+    sp<ICarWatchdogClient> client = expectNormalCarWatchdogClient();
+    mWatchdogProcessService->registerClient(client, TimeoutLength::TIMEOUT_CRITICAL);
+    ASSERT_FALSE(mWatchdogProcessService->tellClientAlive(client, 1234).isOk())
+            << "tellClientAlive not synced with checkIfAlive should return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestTellMediatorAlive) {
+    sp<ICarWatchdogClient> mediator = expectNormalCarWatchdogClient();
+    mWatchdogProcessService->registerMediator(mediator);
+    std::vector<int32_t> pids = {111, 222};
+    ASSERT_FALSE(mWatchdogProcessService->tellMediatorAlive(mediator, pids, 1234).isOk())
+            << "tellMediatorAlive not synced with checkIfAlive should return an error";
+}
+
+TEST_F(WatchdogProcessServiceTest, TestTellDumpFinished) {
+    sp<ICarWatchdogMonitor> monitor = expectNormalCarWatchdogMonitor();
+    ASSERT_FALSE(mWatchdogProcessService->tellDumpFinished(monitor, 1234).isOk())
+            << "Unregistered monitor cannot call tellDumpFinished";
+    mWatchdogProcessService->registerMonitor(monitor);
+    Status status = mWatchdogProcessService->tellDumpFinished(monitor, 1234);
+    ASSERT_TRUE(status.isOk()) << status;
+}
+
+}  // namespace watchdog
+}  // namespace automotive
+}  // namespace android
diff --git a/watchdog/testclient/src/WatchdogClient.cpp b/watchdog/testclient/src/WatchdogClient.cpp
index 41a2b26..4c381c6 100644
--- a/watchdog/testclient/src/WatchdogClient.cpp
+++ b/watchdog/testclient/src/WatchdogClient.cpp
@@ -59,6 +59,11 @@
     return ndk::ScopedAStatus::ok();
 }
 
+ndk::ScopedAStatus WatchdogClient::prepareProcessTermination() {
+    ALOGI("This process is being terminated by car watchdog");
+    return ndk::ScopedAStatus::ok();
+}
+
 bool WatchdogClient::initialize(const CommandParam& param) {
     ndk::SpAIBinder binder(
             AServiceManager_getService("android.automotive.watchdog.ICarWatchdog/default"));
diff --git a/watchdog/testclient/src/WatchdogClient.h b/watchdog/testclient/src/WatchdogClient.h
index 95f11ca..3174f98 100644
--- a/watchdog/testclient/src/WatchdogClient.h
+++ b/watchdog/testclient/src/WatchdogClient.h
@@ -51,6 +51,7 @@
     explicit WatchdogClient(const ::android::sp<::android::Looper>& handlerLooper);
 
     ndk::ScopedAStatus checkIfAlive(int32_t sessionId, TimeoutLength timeout) override;
+    ndk::ScopedAStatus prepareProcessTermination() override;
 
     bool initialize(const CommandParam& param);
     void finalize();