Merge "Always report keyguard-going-away even if empty" into udc-dev
diff --git a/apex/jobscheduler/framework/java/android/app/job/JobService.java b/apex/jobscheduler/framework/java/android/app/job/JobService.java
index 2ab4324..cd92f3d 100644
--- a/apex/jobscheduler/framework/java/android/app/job/JobService.java
+++ b/apex/jobscheduler/framework/java/android/app/job/JobService.java
@@ -166,7 +166,8 @@
      *               the job in the {@link #onStartJob(JobParameters)} callback.
      * @param wantsReschedule {@code true} if this job should be rescheduled according
      *     to the back-off criteria specified when it was first scheduled; {@code false}
-     *     otherwise.
+     *     otherwise. When {@code false} is returned for a periodic job,
+     *     the job will be rescheduled according to its periodic policy.
      */
     public final void jobFinished(JobParameters params, boolean wantsReschedule) {
         mEngine.jobFinished(params, wantsReschedule);
@@ -217,7 +218,7 @@
      * {@link android.app.job.JobInfo.Builder#setRequiredNetworkType(int)}, yet while your
      * job was executing the user toggled WiFi. Another example is if you had specified
      * {@link android.app.job.JobInfo.Builder#setRequiresDeviceIdle(boolean)}, and the phone left
-     * its idle maintenance window. There are many other reasons a job can be stopped early besides
+     * its idle state. There are many other reasons a job can be stopped early besides
      * constraints no longer being satisfied. {@link JobParameters#getStopReason()} will return the
      * reason this method was called. You are solely responsible for the behavior of your
      * application upon receipt of this message; your app will likely start to misbehave if you
@@ -241,7 +242,8 @@
      *               included.
      * @return {@code true} to indicate to the JobManager whether you'd like to reschedule
      * this job based on the retry criteria provided at job creation-time; or {@code false}
-     * to end the job entirely.  Regardless of the value returned, your job must stop executing.
+     * to end the job entirely (or, for a periodic job, to reschedule it according to its
+     * requested periodic criteria). Regardless of the value returned, your job must stop executing.
      */
     public abstract boolean onStopJob(JobParameters params);
 
diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
index 17dde90..8585740 100644
--- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
+++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java
@@ -2124,9 +2124,9 @@
             sb.append(" READY");
         } else {
             sb.append(" satisfied:0x").append(Integer.toHexString(satisfiedConstraints));
+            final int requiredConstraints = mRequiredConstraintsOfInterest | IMPLICIT_CONSTRAINTS;
             sb.append(" unsatisfied:0x").append(Integer.toHexString(
-                    (satisfiedConstraints & (mRequiredConstraintsOfInterest | IMPLICIT_CONSTRAINTS))
-                            ^ mRequiredConstraintsOfInterest));
+                    (satisfiedConstraints & requiredConstraints) ^ requiredConstraints));
         }
         sb.append("}");
         return sb.toString();
diff --git a/core/api/current.txt b/core/api/current.txt
index c7063db..4332d21 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -54328,7 +54328,6 @@
     method public android.view.accessibility.AccessibilityWindowInfo getWindow();
     method public int getWindowId();
     method public boolean hasRequestInitialAccessibilityFocus();
-    method public boolean hasRequestTouchPassthrough();
     method public boolean isAccessibilityDataSensitive();
     method public boolean isAccessibilityFocused();
     method public boolean isCheckable();
@@ -54412,7 +54411,6 @@
     method public void setQueryFromAppProcessEnabled(@NonNull android.view.View, boolean);
     method public void setRangeInfo(android.view.accessibility.AccessibilityNodeInfo.RangeInfo);
     method public void setRequestInitialAccessibilityFocus(boolean);
-    method public void setRequestTouchPassthrough(boolean);
     method public void setScreenReaderFocusable(boolean);
     method public void setScrollable(boolean);
     method public void setSelected(boolean);
diff --git a/core/java/android/app/IActivityManager.aidl b/core/java/android/app/IActivityManager.aidl
index 403acad..97d4562 100644
--- a/core/java/android/app/IActivityManager.aidl
+++ b/core/java/android/app/IActivityManager.aidl
@@ -108,6 +108,15 @@
     int getUidProcessState(int uid, in String callingPackage);
     @UnsupportedAppUsage
     int checkPermission(in String permission, int pid, int uid);
+
+    /** Logs start of an API call to associate with an FGS, used for FGS Type Metrics */
+    void logFgsApiBegin(int apiType, int appUid, int appPid);
+
+    /** Logs stop of an API call to associate with an FGS, used for FGS Type Metrics */
+    void logFgsApiEnd(int apiType, int appUid, int appPid);
+
+    /** Logs API state change to associate with an FGS, used for FGS Type Metrics */
+    void logFgsApiStateChanged(int apiType, int state, int appUid, int appPid);
     // =============== End of transactions used on native side as well ============================
 
     // Special low-level communication with activity manager.
@@ -870,16 +879,6 @@
     /** Returns if the service is a short-service is still "alive" and past the timeout. */
     boolean shouldServiceTimeOut(in ComponentName className, in IBinder token);
 
-    /** Logs start of an API call to associate with an FGS, used for FGS Type Metrics */
-    void logFgsApiBegin(int apiType, int appUid, int appPid);
-
-    /** Logs stop of an API call to associate with an FGS, used for FGS Type Metrics */
-    void logFgsApiEnd(int apiType, int appUid, int appPid);
-
-    /** Logs API state change to associate with an FGS, used for FGS Type Metrics */
-    void logFgsApiStateChanged(int apiType, int state, int appUid, int appPid);
-
-    @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)")
     void registerUidFrozenStateChangedCallback(in IUidFrozenStateChangedCallback callback);
     @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.PACKAGE_USAGE_STATS)")
     void unregisterUidFrozenStateChangedCallback(in IUidFrozenStateChangedCallback callback);
diff --git a/core/java/android/app/Instrumentation.java b/core/java/android/app/Instrumentation.java
index 4dc7253..c131ce5 100644
--- a/core/java/android/app/Instrumentation.java
+++ b/core/java/android/app/Instrumentation.java
@@ -28,6 +28,7 @@
 import android.content.pm.ActivityInfo;
 import android.content.res.Configuration;
 import android.hardware.input.InputManager;
+import android.hardware.input.InputManagerGlobal;
 import android.net.Uri;
 import android.os.Build;
 import android.os.Bundle;
@@ -1130,7 +1131,7 @@
         newEvent.setFlags(event.getFlags() | KeyEvent.FLAG_FROM_SYSTEM);
         setDisplayIfNeeded(newEvent);
 
-        InputManager.getInstance().injectInputEvent(newEvent,
+        InputManagerGlobal.getInstance().injectInputEvent(newEvent,
                 InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
     }
 
@@ -1229,7 +1230,7 @@
             }
 
             // Direct the injected event into windows owned by the instrumentation target.
-            InputManager.getInstance().injectInputEvent(
+            InputManagerGlobal.getInstance().injectInputEvent(
                     event, InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH, Process.myUid());
 
             if (syncAfter) {
@@ -1259,7 +1260,7 @@
         if (!event.isFromSource(InputDevice.SOURCE_CLASS_TRACKBALL)) {
             event.setSource(InputDevice.SOURCE_TRACKBALL);
         }
-        InputManager.getInstance().injectInputEvent(event,
+        InputManagerGlobal.getInstance().injectInputEvent(event,
                 InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
     }
 
diff --git a/core/java/android/content/pm/InstallSourceInfo.java b/core/java/android/content/pm/InstallSourceInfo.java
index 67123e8..006d7cd 100644
--- a/core/java/android/content/pm/InstallSourceInfo.java
+++ b/core/java/android/content/pm/InstallSourceInfo.java
@@ -95,8 +95,8 @@
      * remains unchanged. It continues to identify the actual package that performed the install
      * or update.
      * <p>
-     * Null may be returned if the app was not installed by a package (e.g. a system app or an app
-     * installed via adb) or if the initiating package has itself been uninstalled.
+     * Null may be returned if the app was not installed by a package (e.g. a system app) or if the
+     * initiating package has itself been uninstalled.
      */
     @Nullable
     public String getInitiatingPackageName() {
diff --git a/core/java/android/credentials/ui/RequestInfo.java b/core/java/android/credentials/ui/RequestInfo.java
index 49ae9e9..09d2db8 100644
--- a/core/java/android/credentials/ui/RequestInfo.java
+++ b/core/java/android/credentials/ui/RequestInfo.java
@@ -74,13 +74,30 @@
     @NonNull
     private final String mAppPackageName;
 
+    private final boolean mHasPermissionToOverrideDefault;
+
     /** Creates new {@code RequestInfo} for a create-credential flow. */
     @NonNull
     public static RequestInfo newCreateRequestInfo(
             @NonNull IBinder token, @NonNull CreateCredentialRequest createCredentialRequest,
             @NonNull String appPackageName) {
         return new RequestInfo(
-                token, TYPE_CREATE, appPackageName, createCredentialRequest, null);
+                token, TYPE_CREATE, appPackageName, createCredentialRequest, null,
+                /*hasPermissionToOverrideDefault=*/ false);
+    }
+
+    /**
+     * Creates new {@code RequestInfo} for a create-credential flow.
+     *
+     * @hide
+     */
+    @NonNull
+    public static RequestInfo newCreateRequestInfo(
+            @NonNull IBinder token, @NonNull CreateCredentialRequest createCredentialRequest,
+            @NonNull String appPackageName, boolean hasPermissionToOverrideDefault) {
+        return new RequestInfo(
+                token, TYPE_CREATE, appPackageName, createCredentialRequest, null,
+                hasPermissionToOverrideDefault);
     }
 
     /** Creates new {@code RequestInfo} for a get-credential flow. */
@@ -89,7 +106,18 @@
             @NonNull IBinder token, @NonNull GetCredentialRequest getCredentialRequest,
             @NonNull String appPackageName) {
         return new RequestInfo(
-                token, TYPE_GET, appPackageName, null, getCredentialRequest);
+                token, TYPE_GET, appPackageName, null, getCredentialRequest,
+                /*hasPermissionToOverrideDefault=*/ false);
+    }
+
+
+    /**
+     * Returns whether the calling package has the permission
+     *
+     * @hide
+     */
+    public boolean hasPermissionToOverrideDefault() {
+        return mHasPermissionToOverrideDefault;
     }
 
     /** Returns the request token matching the user request. */
@@ -132,12 +160,14 @@
     private RequestInfo(@NonNull IBinder token, @NonNull @RequestType String type,
             @NonNull String appPackageName,
             @Nullable CreateCredentialRequest createCredentialRequest,
-            @Nullable GetCredentialRequest getCredentialRequest) {
+            @Nullable GetCredentialRequest getCredentialRequest,
+            boolean hasPermissionToOverrideDefault) {
         mToken = token;
         mType = type;
         mAppPackageName = appPackageName;
         mCreateCredentialRequest = createCredentialRequest;
         mGetCredentialRequest = getCredentialRequest;
+        mHasPermissionToOverrideDefault = hasPermissionToOverrideDefault;
     }
 
     private RequestInfo(@NonNull Parcel in) {
@@ -157,6 +187,7 @@
         AnnotationValidations.validate(NonNull.class, null, mAppPackageName);
         mCreateCredentialRequest = createCredentialRequest;
         mGetCredentialRequest = getCredentialRequest;
+        mHasPermissionToOverrideDefault = in.readBoolean();
     }
 
     @Override
@@ -166,6 +197,7 @@
         dest.writeString8(mAppPackageName);
         dest.writeTypedObject(mCreateCredentialRequest, flags);
         dest.writeTypedObject(mGetCredentialRequest, flags);
+        dest.writeBoolean(mHasPermissionToOverrideDefault);
     }
 
     @Override
diff --git a/core/java/android/hardware/input/InputManager.java b/core/java/android/hardware/input/InputManager.java
index 5dc3825..8a4a0e4 100644
--- a/core/java/android/hardware/input/InputManager.java
+++ b/core/java/android/hardware/input/InputManager.java
@@ -34,12 +34,10 @@
 import android.hardware.BatteryState;
 import android.hardware.SensorManager;
 import android.hardware.lights.LightsManager;
-import android.os.Binder;
 import android.os.Build;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.InputEventInjectionSync;
-import android.os.Process;
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.os.Vibrator;
@@ -392,12 +390,7 @@
      * @hide
      */
     public boolean isInputDeviceEnabled(int id) {
-        try {
-            return mIm.isInputDeviceEnabled(id);
-        } catch (RemoteException ex) {
-            Log.w(TAG, "Could not check enabled status of input device with id = " + id);
-            throw ex.rethrowFromSystemServer();
-        }
+        return mGlobal.isInputDeviceEnabled(id);
     }
 
     /**
@@ -411,12 +404,7 @@
      * @hide
      */
     public void enableInputDevice(int id) {
-        try {
-            mIm.enableInputDevice(id);
-        } catch (RemoteException ex) {
-            Log.w(TAG, "Could not enable input device with id = " + id);
-            throw ex.rethrowFromSystemServer();
-        }
+        mGlobal.enableInputDevice(id);
     }
 
     /**
@@ -430,12 +418,7 @@
      * @hide
      */
     public void disableInputDevice(int id) {
-        try {
-            mIm.disableInputDevice(id);
-        } catch (RemoteException ex) {
-            Log.w(TAG, "Could not disable input device with id = " + id);
-            throw ex.rethrowFromSystemServer();
-        }
+        mGlobal.disableInputDevice(id);
     }
 
     /**
@@ -1007,13 +990,7 @@
      * @hide
      */
     public boolean[] deviceHasKeys(int id, int[] keyCodes) {
-        boolean[] ret = new boolean[keyCodes.length];
-        try {
-            mIm.hasKeys(id, InputDevice.SOURCE_ANY, keyCodes, ret);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
-        return ret;
+        return mGlobal.deviceHasKeys(id, keyCodes);
     }
 
     /**
@@ -1038,11 +1015,7 @@
      * @hide
      */
     public int getKeyCodeForKeyLocation(int deviceId, int locationKeyCode) {
-        try {
-            return mIm.getKeyCodeForKeyLocation(deviceId, locationKeyCode);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+        return mGlobal.getKeyCodeForKeyLocation(deviceId, locationKeyCode);
     }
 
     /**
@@ -1075,20 +1048,7 @@
      */
     @RequiresPermission(Manifest.permission.INJECT_EVENTS)
     public boolean injectInputEvent(InputEvent event, int mode, int targetUid) {
-        if (event == null) {
-            throw new IllegalArgumentException("event must not be null");
-        }
-        if (mode != InputEventInjectionSync.NONE
-                && mode != InputEventInjectionSync.WAIT_FOR_FINISHED
-                && mode != InputEventInjectionSync.WAIT_FOR_RESULT) {
-            throw new IllegalArgumentException("mode is invalid");
-        }
-
-        try {
-            return mIm.injectInputEventToTarget(event, mode, targetUid);
-        } catch (RemoteException ex) {
-            throw ex.rethrowFromSystemServer();
-        }
+        return mGlobal.injectInputEvent(event, mode, targetUid);
     }
 
     /**
@@ -1114,7 +1074,7 @@
     @RequiresPermission(Manifest.permission.INJECT_EVENTS)
     @UnsupportedAppUsage
     public boolean injectInputEvent(InputEvent event, int mode) {
-        return injectInputEvent(event, mode, Process.INVALID_UID);
+        return mGlobal.injectInputEvent(event, mode);
     }
 
     /**
@@ -1149,20 +1109,12 @@
      */
     @UnsupportedAppUsage
     public void setPointerIconType(int iconId) {
-        try {
-            mIm.setPointerIconType(iconId);
-        } catch (RemoteException ex) {
-            throw ex.rethrowFromSystemServer();
-        }
+        mGlobal.setPointerIconType(iconId);
     }
 
     /** @hide */
     public void setCustomPointerIcon(PointerIcon icon) {
-        try {
-            mIm.setCustomPointerIcon(icon);
-        } catch (RemoteException ex) {
-            throw ex.rethrowFromSystemServer();
-        }
+        mGlobal.setCustomPointerIcon(icon);
     }
 
     /**
@@ -1191,11 +1143,7 @@
      * @hide
      */
     public void requestPointerCapture(IBinder windowToken, boolean enable) {
-        try {
-            mIm.requestPointerCapture(windowToken, enable);
-        } catch (RemoteException ex) {
-            throw ex.rethrowFromSystemServer();
-        }
+        mGlobal.requestPointerCapture(windowToken, enable);
     }
 
     /**
@@ -1204,11 +1152,7 @@
      * @hide
      */
     public InputMonitor monitorGestureInput(String name, int displayId) {
-        try {
-            return mIm.monitorGestureInput(new Binder(), name, displayId);
-        } catch (RemoteException ex) {
-            throw ex.rethrowFromSystemServer();
-        }
+        return mGlobal.monitorGestureInput(name, displayId);
     }
 
     /**
@@ -1313,12 +1257,9 @@
      * @hide
      */
     @TestApi
-    public void addUniqueIdAssociation(@NonNull String inputPort, @NonNull String displayUniqueId) {
-        try {
-            mIm.addUniqueIdAssociation(inputPort, displayUniqueId);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+    public void addUniqueIdAssociation(@NonNull String inputPort,
+            @NonNull String displayUniqueId) {
+        mGlobal.addUniqueIdAssociation(inputPort, displayUniqueId);
     }
 
     /**
@@ -1331,11 +1272,7 @@
      */
     @TestApi
     public void removeUniqueIdAssociation(@NonNull String inputPort) {
-        try {
-            mIm.removeUniqueIdAssociation(inputPort);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+        mGlobal.removeUniqueIdAssociation(inputPort);
     }
 
     /**
@@ -1361,11 +1298,7 @@
     @RequiresPermission(Manifest.permission.BLUETOOTH)
     @Nullable
     public String getInputDeviceBluetoothAddress(int deviceId) {
-        try {
-            return mIm.getInputDeviceBluetoothAddress(deviceId);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+        return mGlobal.getInputDeviceBluetoothAddress(deviceId);
     }
 
     /**
@@ -1423,11 +1356,7 @@
      * @hide
      */
     public void cancelCurrentTouch() {
-        try {
-            mIm.cancelCurrentTouch();
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+        mGlobal.cancelCurrentTouch();
     }
 
     /**
@@ -1451,11 +1380,7 @@
      */
     @RequiresPermission(Manifest.permission.MONITOR_INPUT)
     public void pilferPointers(IBinder inputChannelToken) {
-        try {
-            mIm.pilferPointers(inputChannelToken);
-        } catch (RemoteException e) {
-            throw e.rethrowFromSystemServer();
-        }
+        mGlobal.pilferPointers(inputChannelToken);
     }
 
     /**
diff --git a/core/java/android/hardware/input/InputManagerGlobal.java b/core/java/android/hardware/input/InputManagerGlobal.java
index 08d81bd..6e7e90e 100644
--- a/core/java/android/hardware/input/InputManagerGlobal.java
+++ b/core/java/android/hardware/input/InputManagerGlobal.java
@@ -30,19 +30,27 @@
 import android.hardware.lights.Light;
 import android.hardware.lights.LightState;
 import android.hardware.lights.LightsRequest;
+import android.os.Binder;
 import android.os.CombinedVibration;
 import android.os.Handler;
 import android.os.IBinder;
 import android.os.IVibratorStateListener;
+import android.os.InputEventInjectionSync;
 import android.os.Looper;
 import android.os.Message;
+import android.os.Process;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.VibrationEffect;
+import android.os.Vibrator;
+import android.os.VibratorManager;
 import android.util.Log;
 import android.util.SparseArray;
 import android.view.Display;
 import android.view.InputDevice;
+import android.view.InputEvent;
+import android.view.InputMonitor;
+import android.view.PointerIcon;
 
 import com.android.internal.annotations.GuardedBy;
 import com.android.internal.os.SomeArgs;
@@ -359,6 +367,42 @@
     }
 
     /**
+     * @see InputManager#isInputDeviceEnabled(int)
+     */
+    public boolean isInputDeviceEnabled(int id) {
+        try {
+            return mIm.isInputDeviceEnabled(id);
+        } catch (RemoteException ex) {
+            Log.w(TAG, "Could not check enabled status of input device with id = " + id);
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#enableInputDevice(int)
+     */
+    public void enableInputDevice(int id) {
+        try {
+            mIm.enableInputDevice(id);
+        } catch (RemoteException ex) {
+            Log.w(TAG, "Could not enable input device with id = " + id);
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#disableInputDevice(int)
+     */
+    public void disableInputDevice(int id) {
+        try {
+            mIm.disableInputDevice(id);
+        } catch (RemoteException ex) {
+            Log.w(TAG, "Could not disable input device with id = " + id);
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
      * @see InputManager#getInputDeviceByDescriptor
      */
     InputDevice getInputDeviceByDescriptor(String descriptor) {
@@ -672,7 +716,7 @@
      * @see InputManager#getInputDeviceBatteryState(int, boolean)
      */
     @NonNull
-    BatteryState getInputDeviceBatteryState(int deviceId, boolean hasBattery) {
+    public BatteryState getInputDeviceBatteryState(int deviceId, boolean hasBattery) {
         if (!hasBattery) {
             return new LocalBatteryState();
         }
@@ -835,7 +879,7 @@
      * @see InputManager#getInputDeviceSensorManager(int)
      */
     @NonNull
-    SensorManager getInputDeviceSensorManager(int deviceId) {
+    public SensorManager getInputDeviceSensorManager(int deviceId) {
         if (mInputDeviceSensorManager == null) {
             mInputDeviceSensorManager = new InputDeviceSensorManager(this);
         }
@@ -980,6 +1024,21 @@
         }
     }
 
+    /**
+     * @see InputManager#getInputDeviceVibrator(int, int)
+     */
+    public Vibrator getInputDeviceVibrator(int deviceId, int vibratorId) {
+        return new InputDeviceVibrator(deviceId, vibratorId);
+    }
+
+    /**
+     * @see InputManager#getInputDeviceVibratorManager(int)
+     */
+    @NonNull
+    public VibratorManager getInputDeviceVibratorManager(int deviceId) {
+        return new InputDeviceVibratorManager(deviceId);
+    }
+
     /*
      * Get the list of device vibrators
      * @return The list of vibrators IDs
@@ -1057,4 +1116,158 @@
             throw ex.rethrowFromSystemServer();
         }
     }
+
+    /**
+     * @see InputManager#deviceHasKeys(int, int[])
+     */
+    public boolean[] deviceHasKeys(int id, int[] keyCodes) {
+        boolean[] ret = new boolean[keyCodes.length];
+        try {
+            mIm.hasKeys(id, InputDevice.SOURCE_ANY, keyCodes, ret);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+        return ret;
+    }
+
+    /**
+     * @see InputManager#getKeyCodeforKeyLocation(int, int)
+     */
+    public int getKeyCodeForKeyLocation(int deviceId, int locationKeyCode) {
+        try {
+            return mIm.getKeyCodeForKeyLocation(deviceId, locationKeyCode);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#injectInputEvent(InputEvent, int, int)
+     */
+
+    public boolean injectInputEvent(InputEvent event, int mode, int targetUid) {
+        if (event == null) {
+            throw new IllegalArgumentException("event must not be null");
+        }
+        if (mode != InputEventInjectionSync.NONE
+                && mode != InputEventInjectionSync.WAIT_FOR_FINISHED
+                && mode != InputEventInjectionSync.WAIT_FOR_RESULT) {
+            throw new IllegalArgumentException("mode is invalid");
+        }
+
+        try {
+            return mIm.injectInputEventToTarget(event, mode, targetUid);
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#injectInputEvent(InputEvent, int)
+     */
+    public boolean injectInputEvent(InputEvent event, int mode) {
+        return injectInputEvent(event, mode, Process.INVALID_UID);
+    }
+
+    /**
+     * @see InputManager#setPointerIconType(int)
+     */
+    public void setPointerIconType(int iconId) {
+        try {
+            mIm.setPointerIconType(iconId);
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#setCustomPointerIcon(PointerIcon)
+     */
+    public void setCustomPointerIcon(PointerIcon icon) {
+        try {
+            mIm.setCustomPointerIcon(icon);
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#requestPointerCapture(IBinder, boolean)
+     */
+    void requestPointerCapture(IBinder windowToken, boolean enable) {
+        try {
+            mIm.requestPointerCapture(windowToken, enable);
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see Inputmanager#monitorGestureInput(String, int)
+     */
+    InputMonitor monitorGestureInput(String name, int displayId) {
+        try {
+            return mIm.monitorGestureInput(new Binder(), name, displayId);
+        } catch (RemoteException ex) {
+            throw ex.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#addUniqueIdAssociation(String, String)
+     */
+    void addUniqueIdAssociation(@NonNull String inputPort, @NonNull String displayUniqueId) {
+        try {
+            mIm.addUniqueIdAssociation(inputPort, displayUniqueId);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#removeUniqueIdAssociation(String)
+     */
+    public void removeUniqueIdAssociation(@NonNull String inputPort) {
+        try {
+            mIm.removeUniqueIdAssociation(inputPort);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#getInputDeviceBluetoothAddress(int)
+     */
+    @RequiresPermission(Manifest.permission.BLUETOOTH)
+    @Nullable
+    public String getInputDeviceBluetoothAddress(int deviceId) {
+        try {
+            return mIm.getInputDeviceBluetoothAddress(deviceId);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#cancelCurrentTouch()
+     */
+    void cancelCurrentTouch() {
+        try {
+            mIm.cancelCurrentTouch();
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
+
+    /**
+     * @see InputManager#pilferPointers(IBinder)
+     */
+    @RequiresPermission(Manifest.permission.MONITOR_INPUT)
+    void pilferPointers(IBinder inputChannelToken) {
+        try {
+            mIm.pilferPointers(inputChannelToken);
+        } catch (RemoteException e) {
+            throw e.rethrowFromSystemServer();
+        }
+    }
 }
diff --git a/core/java/android/os/RemoteException.java b/core/java/android/os/RemoteException.java
index 878e141..970f419 100644
--- a/core/java/android/os/RemoteException.java
+++ b/core/java/android/os/RemoteException.java
@@ -21,6 +21,12 @@
 
 /**
  * Parent exception for all Binder remote-invocation errors
+ *
+ * Note: not all exceptions from binder services will be subclasses of this.
+ *   For instance, RuntimeException and several subclasses of it may be
+ *   thrown as well as OutOfMemoryException.
+ *
+ * One common subclass is {@link DeadObjectException}.
  */
 public class RemoteException extends AndroidException {
     public RemoteException() {
diff --git a/core/java/android/service/credentials/CredentialProviderInfoFactory.java b/core/java/android/service/credentials/CredentialProviderInfoFactory.java
index 8069414..47b75d1 100644
--- a/core/java/android/service/credentials/CredentialProviderInfoFactory.java
+++ b/core/java/android/service/credentials/CredentialProviderInfoFactory.java
@@ -163,28 +163,12 @@
 
     private static boolean isSystemProviderWithValidPermission(
             ServiceInfo serviceInfo, Context context) {
-        requireNonNull(context, "context must not be null");
-
-        final String permission = Manifest.permission.PROVIDE_DEFAULT_ENABLED_CREDENTIAL_SERVICE;
-        try {
-            ApplicationInfo appInfo =
-                    context.getPackageManager()
-                            .getApplicationInfo(
-                                    serviceInfo.packageName,
-                                    PackageManager.ApplicationInfoFlags.of(
-                                            PackageManager.MATCH_SYSTEM_ONLY));
-            if (appInfo != null
-                    && context.checkPermission(permission, /* pid= */ -1, appInfo.uid)
-                            == PackageManager.PERMISSION_GRANTED) {
-                Slog.i(TAG, "SYS permission granted for: " + serviceInfo.packageName);
-                return true;
-            } else {
-                Slog.i(TAG, "SYS permission failed for: " + serviceInfo.packageName);
-            }
-        } catch (PackageManager.NameNotFoundException e) {
-            Slog.e(TAG, "Error getting info for " + serviceInfo + ": " + e);
+        if (context == null) {
+            Slog.w(TAG, "Context is null in isSystemProviderWithValidPermission");
+            return false;
         }
-        return false;
+        return PermissionUtils.hasPermission(context, serviceInfo.packageName,
+                Manifest.permission.PROVIDE_DEFAULT_ENABLED_CREDENTIAL_SERVICE);
     }
 
     private static boolean isValidSystemProvider(
diff --git a/core/java/android/service/credentials/PermissionUtils.java b/core/java/android/service/credentials/PermissionUtils.java
new file mode 100644
index 0000000..c8bb202
--- /dev/null
+++ b/core/java/android/service/credentials/PermissionUtils.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2023 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.service.credentials;
+
+import android.content.Context;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManager;
+
+/**
+ * Utils for checking permissions, or any other permission related function
+ *
+ * @hide
+ */
+public class PermissionUtils {
+    //TODO(274838409): Move all CredentialManagerService permission checks here
+
+    /** Checks whether the given package name hold the given permission **/
+    public static boolean hasPermission(Context context, String packageName, String permission) {
+        try {
+            ApplicationInfo appInfo =
+                    context.getPackageManager()
+                            .getApplicationInfo(
+                                    packageName,
+                                    PackageManager.ApplicationInfoFlags.of(
+                                            PackageManager.MATCH_SYSTEM_ONLY));
+            if (appInfo != null
+                    && context.checkPermission(permission, /* pid= */ -1, appInfo.uid)
+                    == PackageManager.PERMISSION_GRANTED) {
+                return true;
+            }
+        } catch (PackageManager.NameNotFoundException e) {
+        }
+        return false;
+    }
+}
+
diff --git a/core/java/android/util/SafetyProtectionUtils.java b/core/java/android/util/SafetyProtectionUtils.java
index af985c5..75eaa9e 100644
--- a/core/java/android/util/SafetyProtectionUtils.java
+++ b/core/java/android/util/SafetyProtectionUtils.java
@@ -40,14 +40,20 @@
      * @hide
      */
     public static boolean shouldShowSafetyProtectionResources(Context context) {
-        return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
-                SAFETY_PROTECTION_RESOURCES_ENABLED, false)
-                && context.getResources().getBoolean(
-                        Resources.getSystem()
-                                .getIdentifier("config_safetyProtectionEnabled",
-                                        "bool", "android"))
-                && context.getDrawable(android.R.drawable.ic_safety_protection) != null
-                && context.getString(android.R.string.safety_protection_display_text) != null
-                && !context.getString(android.R.string.safety_protection_display_text).isEmpty();
+        try {
+            return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_PRIVACY,
+                            SAFETY_PROTECTION_RESOURCES_ENABLED, false)
+                    && context.getResources().getBoolean(
+                            Resources.getSystem()
+                                    .getIdentifier("config_safetyProtectionEnabled",
+                                            "bool", "android"))
+                    && context.getDrawable(android.R.drawable.ic_safety_protection) != null
+                    && !context.getString(
+                            android.R.string.safety_protection_display_text).isEmpty();
+        } catch (Resources.NotFoundException e) {
+            // We should expect the resources to not exist for non-pixel devices
+            // (except for the OEMs that opt-in)
+            return false;
+        }
     }
 }
diff --git a/core/java/android/view/InputDevice.java b/core/java/android/view/InputDevice.java
index 61864d7..e81aecb 100644
--- a/core/java/android/view/InputDevice.java
+++ b/core/java/android/view/InputDevice.java
@@ -776,7 +776,7 @@
      * Each gamepad or joystick is given a unique, positive controller number when initially
      * configured by the system. This number may change due to events such as device disconnects /
      * reconnects or user initiated reassignment. Any change in number will trigger an event that
-     * can be observed by registering an {@link InputManager.InputDeviceListener}.
+     * can be observed by registering an {@link InputManagerGlobal.InputDeviceListener}.
      * </p>
      * <p>
      * All input devices which are not gamepads or joysticks will be assigned a controller number
@@ -981,7 +981,7 @@
      * generating the keycode given by the corresponding value at the same index in the keys array.
      */
     public boolean[] hasKeys(int... keys) {
-        return InputManager.getInstance().deviceHasKeys(mId, keys);
+        return InputManagerGlobal.getInstance().deviceHasKeys(mId, keys);
     }
 
     /**
@@ -1028,7 +1028,8 @@
      * {@link InputDevice#SOURCE_KEYBOARD} or the requested mapping cannot be determined.
      */
     public int getKeyCodeForKeyLocation(int locationKeyCode) {
-        return InputManager.getInstance().getKeyCodeForKeyLocation(mId, locationKeyCode);
+        return InputManagerGlobal.getInstance()
+                .getKeyCodeForKeyLocation(mId, locationKeyCode);
     }
 
     /**
@@ -1109,9 +1110,11 @@
     @RequiresPermission(Manifest.permission.BLUETOOTH)
     @Nullable
     public String getBluetoothAddress() {
-        // We query the address via a separate InputManager API instead of pre-populating it in
-        // this class to avoid leaking it to apps that do not have sufficient permissions.
-        return InputManager.getInstance().getInputDeviceBluetoothAddress(mId);
+        // We query the address via a separate InputManagerGlobal API
+        // instead of pre-populating it in this class to avoid
+        // leaking it to apps that do not have sufficient permissions.
+        return InputManagerGlobal.getInstance()
+                .getInputDeviceBluetoothAddress(mId);
     }
 
     /**
@@ -1132,7 +1135,8 @@
         synchronized (mMotionRanges) {
             if (mVibrator == null) {
                 if (mHasVibrator) {
-                    mVibrator = InputManager.getInstance().getInputDeviceVibrator(mId,
+                    mVibrator = InputManagerGlobal.getInstance()
+                            .getInputDeviceVibrator(mId,
                             VIBRATOR_ID_ALL);
                 } else {
                     mVibrator = NullVibrator.getInstance();
@@ -1154,7 +1158,8 @@
     public VibratorManager getVibratorManager() {
         synchronized (mMotionRanges) {
             if (mVibratorManager == null) {
-                mVibratorManager = InputManager.getInstance().getInputDeviceVibratorManager(mId);
+                mVibratorManager = InputManagerGlobal.getInstance()
+                        .getInputDeviceVibratorManager(mId);
             }
         }
         return mVibratorManager;
@@ -1170,7 +1175,8 @@
      */
     @NonNull
     public BatteryState getBatteryState() {
-        return InputManager.getInstance().getInputDeviceBatteryState(mId, mHasBattery);
+        return InputManagerGlobal.getInstance()
+                .getInputDeviceBatteryState(mId, mHasBattery);
     }
 
     /**
@@ -1206,7 +1212,8 @@
     public SensorManager getSensorManager() {
         synchronized (mMotionRanges) {
             if (mSensorManager == null) {
-                mSensorManager = InputManager.getInstance().getInputDeviceSensorManager(mId);
+                mSensorManager = InputManagerGlobal.getInstance()
+                        .getInputDeviceSensorManager(mId);
             }
         }
         return mSensorManager;
@@ -1217,7 +1224,7 @@
      * @return Whether the input device is enabled.
      */
     public boolean isEnabled() {
-        return InputManager.getInstance().isInputDeviceEnabled(mId);
+        return InputManagerGlobal.getInstance().isInputDeviceEnabled(mId);
     }
 
     /**
@@ -1228,7 +1235,7 @@
     @RequiresPermission(android.Manifest.permission.DISABLE_INPUT_DEVICE)
     @TestApi
     public void enable() {
-        InputManager.getInstance().enableInputDevice(mId);
+        InputManagerGlobal.getInstance().enableInputDevice(mId);
     }
 
     /**
@@ -1239,7 +1246,7 @@
     @RequiresPermission(android.Manifest.permission.DISABLE_INPUT_DEVICE)
     @TestApi
     public void disable() {
-        InputManager.getInstance().disableInputDevice(mId);
+        InputManagerGlobal.getInstance().disableInputDevice(mId);
     }
 
     /**
@@ -1274,7 +1281,7 @@
      * @hide
      */
     public void setPointerType(int pointerType) {
-        InputManager.getInstance().setPointerIconType(pointerType);
+        InputManagerGlobal.getInstance().setPointerIconType(pointerType);
     }
 
     /**
@@ -1283,7 +1290,7 @@
      * @hide
      */
     public void setCustomPointerIcon(PointerIcon icon) {
-        InputManager.getInstance().setCustomPointerIcon(icon);
+        InputManagerGlobal.getInstance().setCustomPointerIcon(icon);
     }
 
     /**
@@ -1301,7 +1308,7 @@
      *
      * @return the supported USI version, or null if the device does not support USI
      * @see <a href="https://universalstylus.org">Universal Stylus Initiative</a>
-     * @see InputManager#getHostUsiVersion(int)
+     * @see InputManagerGlobal#getHostUsiVersion(int)
      * @hide
      */
     @Nullable
diff --git a/core/java/android/view/OWNERS b/core/java/android/view/OWNERS
index 66fd794..42ac74c 100644
--- a/core/java/android/view/OWNERS
+++ b/core/java/android/view/OWNERS
@@ -64,6 +64,9 @@
 per-file SurfaceHolder.java = file:/graphics/java/android/graphics/OWNERS
 per-file SurfaceHolder.java = file:/services/core/java/com/android/server/wm/OWNERS
 
+# Text
+per-file HandwritingInitiator.java = file:/core/java/android/text/OWNERS
+
 # View
 per-file View.java = file:/services/accessibility/OWNERS
 per-file View.java = file:/core/java/android/service/autofill/OWNERS
diff --git a/core/java/android/view/accessibility/AccessibilityNodeInfo.java b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
index b17d2b9..ddd7734 100644
--- a/core/java/android/view/accessibility/AccessibilityNodeInfo.java
+++ b/core/java/android/view/accessibility/AccessibilityNodeInfo.java
@@ -832,9 +832,7 @@
 
     private static final int BOOLEAN_PROPERTY_REQUEST_INITIAL_ACCESSIBILITY_FOCUS = 1 << 24;
 
-    private static final int BOOLEAN_PROPERTY_REQUEST_TOUCH_PASSTHROUGH = 1 << 25;
-
-    private static final int BOOLEAN_PROPERTY_ACCESSIBILITY_DATA_SENSITIVE = 1 << 26;
+    private static final int BOOLEAN_PROPERTY_ACCESSIBILITY_DATA_SENSITIVE = 1 << 25;
 
     /**
      * Bits that provide the id of a virtual descendant of a view.
@@ -2599,53 +2597,6 @@
     }
 
     /**
-     * Gets whether this node is one of the candidates that wants touch interaction within its
-     * screen bounds to bypass the touch exploration and go straight to the underlying view
-     * hierarchy.
-     *
-     * <p>
-     * {@link android.accessibilityservice.AccessibilityService} could aggregate the {@link
-     * #getBoundsInScreen()} that has request touch passthrough, and/or doing complex calculation
-     * with other views that doesn't request touch passthrough, and call {@link
-     * AccessibilityService#setTouchExplorationPassthroughRegion(int, Region)} to bypass the touch
-     * interactions to the underlying views within the region.
-     * </p>
-     *
-     * @return True if the node wants touch interaction within its screen bounds to bypass touch
-     * exploration and go straight to the underlying view hierarchy; false otherwise.
-     */
-    public boolean hasRequestTouchPassthrough() {
-        return getBooleanProperty(BOOLEAN_PROPERTY_REQUEST_TOUCH_PASSTHROUGH);
-    }
-
-    /**
-     * Sets whether this node wants touch interaction within its screen bounds to bypass touch
-     * exploration and go straight to the underlying view hierarchy.
-     * <p>
-     *   <strong>Note:</strong> This property allows the
-     *   {@link android.accessibilityservice.AccessibilityService} to calculate the
-     *   aggregated touch passthrough region. App developers need to ensure that the
-     *   {@link #getBoundsInScreen()} of
-     *   the node align with the region they want touchable, and that child nodes overlapping these
-     *   bounds may cause that region to be reduced.
-     * </p>
-     *
-     * <p>
-     *   <strong>Note:</strong> Cannot be called from an
-     *   {@link android.accessibilityservice.AccessibilityService}.
-     *   This class is made immutable before being delivered to an AccessibilityService.
-     * </p>
-     *
-     * @param touchPassthrough True if the node wants touch interaction within its screen bounds
-     *                         to bypass touch exploration and go straight to the underlying view
-     *                         hierarchy.
-     * @throws IllegalStateException If called from an AccessibilityService.
-     */
-    public void setRequestTouchPassthrough(boolean touchPassthrough) {
-        setBooleanProperty(BOOLEAN_PROPERTY_REQUEST_TOUCH_PASSTHROUGH, touchPassthrough);
-    }
-
-    /**
      * Gets if the node's accessibility data is considered sensitive.
      *
      * @return True if the node's data is considered sensitive, false otherwise.
diff --git a/core/res/res/values/config_telephony.xml b/core/res/res/values/config_telephony.xml
index c0f2157..fab7609 100644
--- a/core/res/res/values/config_telephony.xml
+++ b/core/res/res/values/config_telephony.xml
@@ -62,6 +62,11 @@
     <integer name="auto_data_switch_validation_max_retry">7</integer>
     <java-symbol type="integer" name="auto_data_switch_validation_max_retry" />
 
+    <!-- Boolean indicating whether ping test is required to pass on the target data SIM before the
+         device automatically switch to it. -->
+    <bool name="auto_data_switch_ping_test_before_switch">true</bool>
+    <java-symbol type="bool" name="auto_data_switch_ping_test_before_switch" />
+
     <!-- Boolean indicating whether the Iwlan data service supports persistence of iwlan ipsec
          tunnels across service restart. If iwlan tunnels are not persisted across restart,
          Framework will clean up dangling data connections when service restarts -->
diff --git a/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java b/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java
index 3d4918b..6d635af 100644
--- a/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java
+++ b/core/tests/coretests/src/android/view/accessibility/AccessibilityNodeInfoTest.java
@@ -58,7 +58,7 @@
 
     // The number of flags held in boolean properties. Their values should also be double-checked
     // in the methods above.
-    private static final int NUM_BOOLEAN_PROPERTIES = 27;
+    private static final int NUM_BOOLEAN_PROPERTIES = 26;
 
     @Test
     public void testStandardActions_serializationFlagIsValid() {
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index 6328b02..2c85fe4 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -160,6 +160,7 @@
     <assign-permission name="android.permission.REGISTER_MEDIA_RESOURCE_OBSERVER" uid="media" />
     <assign-permission name="android.permission.REGISTER_STATS_PULL_ATOM" uid="media" />
     <assign-permission name="android.permission.INTERACT_ACROSS_USERS" uid="media" />
+    <assign-permission name="android.permission.LOG_FOREGROUND_RESOURCE_USE" uid="media" />
 
     <assign-permission name="android.permission.INTERNET" uid="media" />
 
@@ -173,6 +174,7 @@
     <assign-permission name="android.permission.PACKAGE_USAGE_STATS" uid="audioserver" />
     <assign-permission name="android.permission.INTERACT_ACROSS_USERS_FULL" uid="audioserver" />
     <assign-permission name="android.permission.OBSERVE_SENSOR_PRIVACY" uid="audioserver" />
+    <assign-permission name="android.permission.LOG_FOREGROUND_RESOURCE_USE" uid="audioserver" />
 
     <assign-permission name="android.permission.MODIFY_AUDIO_SETTINGS" uid="cameraserver" />
     <assign-permission name="android.permission.INTERACT_ACROSS_USERS_FULL" uid="cameraserver" />
@@ -186,6 +188,7 @@
     <assign-permission name="android.permission.MANAGE_APP_OPS_MODES" uid="cameraserver" />
     <assign-permission name="android.permission.OBSERVE_SENSOR_PRIVACY" uid="cameraserver" />
     <assign-permission name="android.permission.REAL_GET_TASKS" uid="cameraserver" />
+    <assign-permission name="android.permission.LOG_FOREGROUND_RESOURCE_USE" uid="cameraserver" />
 
     <assign-permission name="android.permission.ACCESS_SURFACE_FLINGER" uid="graphics" />
 
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java
index dcc12ac..7fc8310e 100644
--- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java
+++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/TaskFragmentAnimationRunner.java
@@ -214,7 +214,8 @@
                 openingWholeScreenBounds.union(target.screenSpaceBounds);
             } else {
                 closingTargets.add(target);
-                closingWholeScreenBounds.union(target.screenSpaceBounds);
+                // Union the start bounds since this may be the ClosingChanging animation.
+                closingWholeScreenBounds.union(target.startBounds);
             }
         }
 
diff --git a/libs/WindowManager/Shell/res/color-night/taskbar_background.xml b/libs/WindowManager/Shell/res/color-night/taskbar_background.xml
index 9473cdd6..01df006 100644
--- a/libs/WindowManager/Shell/res/color-night/taskbar_background.xml
+++ b/libs/WindowManager/Shell/res/color-night/taskbar_background.xml
@@ -16,5 +16,5 @@
   -->
 <!-- Should be the same as in packages/apps/Launcher3/res/color-night-v31/taskbar_background.xml -->
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@android:color/system_neutral1_500" android:lStar="15" />
+    <item android:color="@android:color/system_neutral1_500" android:lStar="20" />
 </selector>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/color/taskbar_background.xml b/libs/WindowManager/Shell/res/color/taskbar_background.xml
index 0e165fc..876ee02 100644
--- a/libs/WindowManager/Shell/res/color/taskbar_background.xml
+++ b/libs/WindowManager/Shell/res/color/taskbar_background.xml
@@ -16,5 +16,5 @@
   -->
 <!-- Should be the same as in packages/apps/Launcher3/res/color-v31/taskbar_background.xml -->
 <selector xmlns:android="http://schemas.android.com/apk/res/android">
-    <item android:color="@android:color/system_neutral1_500" android:lStar="95" />
+    <item android:color="@android:color/system_neutral1_500" android:lStar="98" />
 </selector>
\ No newline at end of file
diff --git a/libs/WindowManager/Shell/res/values-mr/strings_tv.xml b/libs/WindowManager/Shell/res/values-mr/strings_tv.xml
index 8a89779..89654d0 100644
--- a/libs/WindowManager/Shell/res/values-mr/strings_tv.xml
+++ b/libs/WindowManager/Shell/res/values-mr/strings_tv.xml
@@ -24,7 +24,7 @@
     <string name="pip_move" msgid="158770205886688553">"हलवा"</string>
     <string name="pip_expand" msgid="1051966011679297308">"विस्तार करा"</string>
     <string name="pip_collapse" msgid="3903295106641385962">"कोलॅप्स करा"</string>
-    <string name="pip_edu_text" msgid="7930546669915337998">"नियंत्रणांसाठी "<annotation icon="home_icon">"होम"</annotation>" दोनदा दाबा"</string>
+    <string name="pip_edu_text" msgid="7930546669915337998">"नियंत्रणांसाठी "<annotation icon="home_icon">"होम"</annotation>" दोनदा प्रेस करा"</string>
     <string name="a11y_pip_menu_entered" msgid="5106343214776801614">"चित्रात-चित्र मेनू."</string>
     <string name="a11y_action_pip_move_left" msgid="6612980937817141583">"डावीकडे हलवा"</string>
     <string name="a11y_action_pip_move_right" msgid="1119409122645529936">"उजवीकडे हलवा"</string>
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
index 1df6ecd..1e3d795 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/activityembedding/ActivityEmbeddingAnimationRunner.java
@@ -224,7 +224,7 @@
                 openingWholeScreenBounds.union(change.getEndAbsBounds());
             } else {
                 closingChanges.add(change);
-                closingWholeScreenBounds.union(change.getEndAbsBounds());
+                closingWholeScreenBounds.union(change.getStartAbsBounds());
             }
         }
 
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp
index 9df6822..7af6efb 100644
--- a/libs/hwui/Properties.cpp
+++ b/libs/hwui/Properties.cpp
@@ -104,7 +104,7 @@
     debugOverdraw = false;
     std::string debugOverdrawProperty = base::GetProperty(PROPERTY_DEBUG_OVERDRAW, "");
     if (debugOverdrawProperty != "") {
-        INIT_LOGD("  Overdraw debug enabled: %s", debugOverdrawProperty);
+        INIT_LOGD("  Overdraw debug enabled: %s", debugOverdrawProperty.c_str());
         if (debugOverdrawProperty == "show") {
             debugOverdraw = true;
             overdrawColorSet = OverdrawColorSet::Default;
diff --git a/packages/CarrierDefaultApp/res/values-af/strings.xml b/packages/CarrierDefaultApp/res/values-af/strings.xml
index 64cc776..56dd89a 100644
--- a/packages/CarrierDefaultApp/res/values-af/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-af/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Diensverskafferkommunikasie"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Selfoondiensverskaffer"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobiele data is op"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Jou mobiele data is gedeaktiveer"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Byvoorbeeld, die aanmeldbladsy behoort dalk nie aan die organisasie wat gewys word nie."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Gaan in elk geval deur blaaier voort"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Prestasiehupstoot"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G-opsies van jou diensverskaffer"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Besoek %s se webwerf om opsies vir jou appervaring te sien"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Nie nou nie"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Bestuur"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Koop ’n prestasiehupstoot."</string>
diff --git a/packages/CarrierDefaultApp/res/values-am/strings.xml b/packages/CarrierDefaultApp/res/values-am/strings.xml
index 1bbc190..e626105 100644
--- a/packages/CarrierDefaultApp/res/values-am/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-am/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"የአገልግሎት አቅራቢ ግንኙነቶች"</string>
     <string name="android_system_label" msgid="2797790869522345065">"የተንቀሳቃሽ ስልክ አገልግሎት አቅራቢ"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"የተንቀሳቃሽ ስልክ ውሂብ አልቋል"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"የእርስዎ የተንቀሳቃሽ ስልክ ውሂብ ቦዝኗል"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ለምሳሌ፣ የመግቢያ ገጹ የሚታየው ድርጅት ላይሆን ይችላል።"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ለማንኛውም በአሳሽ በኩል ይቀጥሉ"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"የአፈጻጸም ጭማሪ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5ጂ አማራጮች ከአገልግሎት አቅራቢዎ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ለመተግበሪያዎ ተሞክሮ አማራጮችን ለማየት የ%s ድር ጣቢያን ይጎብኙ"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"አሁን አይደለም"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"አስተዳድር"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"የአፈጻጸም ጭማሪ ይግዙ።"</string>
diff --git a/packages/CarrierDefaultApp/res/values-as/strings.xml b/packages/CarrierDefaultApp/res/values-as/strings.xml
index 56e2da5..860b82c 100644
--- a/packages/CarrierDefaultApp/res/values-as/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-as/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"বাহকৰ যোগাযোগ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ম’বাইল সেৱা প্ৰদান কৰা কোম্পানী"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"ম’বাইল ডেটা শেষ হৈছে"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"আপোনাৰ ম’বাইল ডেটা সেৱা নিষ্ক্ৰিয় কৰা হৈছে"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"উদাহৰণস্বৰূপে, আপোনাক দেখুওৱা লগ ইনৰ পৃষ্ঠাটো প্ৰতিষ্ঠানটোৰ নিজা নহ\'বও পাৰে।"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"তথাপিও ব্ৰাউজাৰৰ জৰিয়তে অব্যাহত ৰাখক"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"কাৰ্যক্ষমতা পৰিৱৰ্ধন"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"আপোনাৰ বাহকে আগবঢ়োৱা 5G বিকল্পসমূহ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"আপোনাৰ এপৰ অভিজ্ঞতাৰ বাবে বিকল্পসমূহ চাবলৈ %sৰ ৱেবছাইটলৈ যাওক"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"এতিয়া নহয়"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"পৰিচালনা কৰক"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"এটা কাৰ্যক্ষমতা পৰিৱৰ্ধন ক্ৰয় কৰক।"</string>
diff --git a/packages/CarrierDefaultApp/res/values-az/strings.xml b/packages/CarrierDefaultApp/res/values-az/strings.xml
index 9677b62..5be5740 100644
--- a/packages/CarrierDefaultApp/res/values-az/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-az/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operator Kommunikasiyaları"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobil Operator"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobil data bitib"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Mobil data deaktiv edilib"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Məsələn, giriş səhifəsi göstərilən təşkilata aid olmaya bilər."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Hər bir halda brazuer ilə davam edin"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Performans artırması"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Operatorunuzdan 5G seçimləri"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Tətbiq təcrübəsi üzrə seçimlərə baxmaq üçün %s veb-saytına daxil olun"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"İndi yox"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"İdarə edin"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Performans artırması alın."</string>
diff --git a/packages/CarrierDefaultApp/res/values-b+sr+Latn/strings.xml b/packages/CarrierDefaultApp/res/values-b+sr+Latn/strings.xml
index fc16b14..3d2e480 100644
--- a/packages/CarrierDefaultApp/res/values-b+sr+Latn/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-b+sr+Latn/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Obaveštenja mobilnog operatera"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilni operater"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobilni podaci su potrošeni"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Mobilni podaci su deaktivirani"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Na primer, stranica za prijavljivanje možda ne pripada prikazanoj organizaciji."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Ipak nastavi preko pregledača"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Poboljšanje učinka"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G opcije mobilnog operatera"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Opcije za doživljaj aplikacije potražite na veb-sajtu mobilnog operatera %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ne sada"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Upravljaj"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kupite poboljšanje učinka."</string>
diff --git a/packages/CarrierDefaultApp/res/values-bg/strings.xml b/packages/CarrierDefaultApp/res/values-bg/strings.xml
index 966ec33..95bd04b 100644
--- a/packages/CarrierDefaultApp/res/values-bg/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-bg/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Съобщения от оператора"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Мобилен оператор"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобилните данни са изразходвани"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Мобилните ви данни са деактивирани"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Например страницата за вход може да не принадлежи на показаната организация."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Продължаване през браузър въпреки това"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Увеличаване на ефективността"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Опции за 5G от оператора ви"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"За да видите опции за практическата си работа с приложението, посетете уебсайта на %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Не сега"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Управление"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Купете пакет за увеличаване на ефективността."</string>
diff --git a/packages/CarrierDefaultApp/res/values-bn/strings.xml b/packages/CarrierDefaultApp/res/values-bn/strings.xml
index 46eeb74..516dd89 100644
--- a/packages/CarrierDefaultApp/res/values-bn/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-bn/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"পরিষেবা প্রদানকারীর সাথে যোগাযোগ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"পরিষেবা প্রদানকারী"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"মোবাইল ডেটা ফুরিয়ে গেছে"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"আপনার মোবাইল ডেটা নিষ্ক্রিয় করা হয়েছে"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"যেমন, লগ-ইন পৃষ্ঠাটি যে প্রতিষ্ঠানের পৃষ্ঠা বলে দেখানো আছে, আসলে তা নাও হতে পারে৷"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"যাই হোক, ব্রাউজারের মাধ্যমে চালিয়ে যান"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"পারফর্ম্যান্স বুস্ট"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"আপনার পরিষেবা প্রদানকারীর থেকে পাওয়া 5G বিকল্প"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"আপনার অ্যাপ সংক্রান্ত অভিজ্ঞতা উন্নত করার বিকল্পগুলি দেখতে, %s-এর ওয়েবসাইট ভিজিট করুন"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"এখন নয়"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"ম্যানেজ করুন"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"পারফর্ম্যান্স বুস্ট সংক্রান্ত ফিচার কিনুন।"</string>
diff --git a/packages/CarrierDefaultApp/res/values-bs/strings.xml b/packages/CarrierDefaultApp/res/values-bs/strings.xml
index d41ad21..61d8dc8 100644
--- a/packages/CarrierDefaultApp/res/values-bs/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-bs/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Komunikacije putem operatera"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilni operater"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobilni internet je potrošen"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Prijenos podataka na mobilnoj mreži je deaktiviran"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Naprimjer, stranica za prijavljivanje možda ne pripada prikazanoj organizaciji."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Ipak nastavi preko preglednika"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Pojačavanje performansi"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opcije 5G mreže operatera"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Posjetite web lokaciju operatera %s da vidite opcije za iskustvo u aplikaciji"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ne sada"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Upravljajte"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kupite pojačavanje performansi."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ca/strings.xml b/packages/CarrierDefaultApp/res/values-ca/strings.xml
index afde919..ec032d5 100644
--- a/packages/CarrierDefaultApp/res/values-ca/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ca/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicacions de l\'operador"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operador de telefonia mòbil"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"S\'han esgotat les dades mòbils"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"S\'han desactivat les dades mòbils"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Per exemple, la pàgina d\'inici de sessió podria no pertànyer a l\'organització que es mostra."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continua igualment mitjançant el navegador"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Optimització de rendiment"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opcions 5G del teu operador"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visita el lloc web de %s per veure les opcions relacionades amb la teva experiència a l\'aplicació"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ara no"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gestiona"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Compra una optimització de rendiment."</string>
diff --git a/packages/CarrierDefaultApp/res/values-de/strings.xml b/packages/CarrierDefaultApp/res/values-de/strings.xml
index 65e2fd5..b4cdc56 100644
--- a/packages/CarrierDefaultApp/res/values-de/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-de/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Kommunikation mit Mobilfunkanbieter"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilfunkanbieter"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobile Daten sind aufgebraucht"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Deine mobilen Daten wurden deaktiviert"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Beispiel: Die Log-in-Seite gehört eventuell nicht zur angezeigten Organisation."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Trotzdem in einem Browser fortfahren"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Leistungs-Boost"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G-Optionen von deinem Mobilfunkanbieter"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Besuche die Website von %s, um dir die Optionen für deine App anzusehen"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Nicht jetzt"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Verwalten"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Leistungs-Boost erwerben."</string>
diff --git a/packages/CarrierDefaultApp/res/values-el/strings.xml b/packages/CarrierDefaultApp/res/values-el/strings.xml
index 7a55d3a..8a6430d 100644
--- a/packages/CarrierDefaultApp/res/values-el/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-el/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Επικοινωνίες εταιρείας κινητής τηλεφωνίας"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Εταιρεία κινητής τηλεφωνίας"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Τα δεδομένα κινητής τηλεφωνίας εξαντλήθηκαν"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Τα δεδομένα κινητής τηλεφωνίας έχουν απενεργοποιηθεί"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Για παράδειγμα, η σελίδα σύνδεσης ενδέχεται να μην ανήκει στον οργανισμό που εμφανίζεται."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Συνέχεια ούτως ή άλλως μέσω του προγράμματος περιήγησης"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Ενίσχυση απόδοσης"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Επιλογές 5G από την εταιρεία κινητής τηλεφωνίας σας"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Επισκεφτείτε τον ιστότοπο %s για να δείτε επιλογές για την εμπειρία της εφαρμογής σας"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Όχι τώρα"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Διαχείριση"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Αγοράστε μια ενίσχυση απόδοσης."</string>
diff --git a/packages/CarrierDefaultApp/res/values-en-rAU/strings.xml b/packages/CarrierDefaultApp/res/values-en-rAU/strings.xml
index 9d6b013..1f20896 100644
--- a/packages/CarrierDefaultApp/res/values-en-rAU/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-en-rAU/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operator communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobile Operator"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobile data has run out"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Your mobile data has been deactivated"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"For example, the login page might not belong to the organisation shown."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continue anyway via browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Performance boost"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G options from your operator"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visit %s\'s website to see options for your app experience"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Not now"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Manage"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Purchase a performance boost."</string>
diff --git a/packages/CarrierDefaultApp/res/values-en-rCA/strings.xml b/packages/CarrierDefaultApp/res/values-en-rCA/strings.xml
index 00c0357..c084a0a 100644
--- a/packages/CarrierDefaultApp/res/values-en-rCA/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-en-rCA/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Carrier Communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobile Carrier"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobile data has run out"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Your mobile data has been deactivated"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"For example, the login page may not belong to the organization shown."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continue anyway via browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Performance boost"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G options from your carrier"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visit %s\'s website to see options for your app experience"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Not now"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Manage"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Purchase a performance boost."</string>
diff --git a/packages/CarrierDefaultApp/res/values-en-rGB/strings.xml b/packages/CarrierDefaultApp/res/values-en-rGB/strings.xml
index 9d6b013..1f20896 100644
--- a/packages/CarrierDefaultApp/res/values-en-rGB/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-en-rGB/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operator communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobile Operator"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobile data has run out"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Your mobile data has been deactivated"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"For example, the login page might not belong to the organisation shown."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continue anyway via browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Performance boost"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G options from your operator"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visit %s\'s website to see options for your app experience"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Not now"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Manage"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Purchase a performance boost."</string>
diff --git a/packages/CarrierDefaultApp/res/values-en-rIN/strings.xml b/packages/CarrierDefaultApp/res/values-en-rIN/strings.xml
index 9d6b013..1f20896 100644
--- a/packages/CarrierDefaultApp/res/values-en-rIN/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-en-rIN/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operator communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobile Operator"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobile data has run out"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Your mobile data has been deactivated"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"For example, the login page might not belong to the organisation shown."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continue anyway via browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Performance boost"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G options from your operator"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visit %s\'s website to see options for your app experience"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Not now"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Manage"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Purchase a performance boost."</string>
diff --git a/packages/CarrierDefaultApp/res/values-en-rXC/strings.xml b/packages/CarrierDefaultApp/res/values-en-rXC/strings.xml
index 7f7456d..0178925 100644
--- a/packages/CarrierDefaultApp/res/values-en-rXC/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-en-rXC/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‏‎‏‏‏‏‎‏‏‎‏‏‏‎‏‎‎‎‎‏‏‏‎‎‎‏‏‎‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‏‎‏‏‏‎Carrier Communications‎‏‎‎‏‎"</string>
     <string name="android_system_label" msgid="2797790869522345065">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎‎‏‎Mobile Carrier‎‏‎‎‏‎"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‎‎‎‏‎‏‎‎‏‏‏‎‎‎‏‏‎‎‎‏‎‏‎‎‏‎‏‎‏‏‎‏‏‏‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‎‎‎‏‎Mobile data has run out‎‏‎‎‏‎"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‎‎‏‏‎‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‎‎‏‏‎‏‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‏‎‎‎‏‎Your mobile data has been deactivated‎‏‎‎‏‎"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‏‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‎‎For example, the login page may not belong to the organization shown.‎‏‎‎‏‎"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‎‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‎‎‎‎‎‎Continue anyway via browser‎‏‎‎‏‎"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‎‏‏‎‎‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‎‎‏‎‏‎‏‎‎‎‎‎‎Performance boost‎‏‎‎‏‎"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‏‎‎‎‎‎‎‏‎‏‏‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‏‏‏‏‎‏‏‎‎‏‎‏‎5G options from your carrier‎‏‎‎‏‎"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‎‏‎‎Visit %s\'s website to see options for your app experience‎‏‎‎‏‎"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‎‎‏‎‏‏‎‏‎‏‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‏‎‎‏‎‎‏‎Not now‎‏‎‎‏‎"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎‎‏‎‏‎‎‎‏‏‎‎‏‏‎‎‎‎‎‏‎‏‎‎‎‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎Manage‎‏‎‎‏‎"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‏‎‎‎‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‎Purchase a performance boost.‎‏‎‎‏‎"</string>
diff --git a/packages/CarrierDefaultApp/res/values-es-rUS/strings.xml b/packages/CarrierDefaultApp/res/values-es-rUS/strings.xml
index 85598235..5bf0e6e 100644
--- a/packages/CarrierDefaultApp/res/values-es-rUS/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-es-rUS/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicaciones de operadores"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Compañía de telefonía móvil"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Se agotó el servicio de datos móviles"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Se desactivaron los datos móviles"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Por ejemplo, es posible que la página de acceso no pertenezca a la organización que aparece."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuar de todos modos desde el navegador"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Aumento de rendimiento"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opciones de 5G de tu operador"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visita el sitio web de %s para ver opciones de tu experiencia en la app"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ahora no"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Administrar"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Compra un aumento de rendimiento."</string>
diff --git a/packages/CarrierDefaultApp/res/values-es/strings.xml b/packages/CarrierDefaultApp/res/values-es/strings.xml
index b9fa4c0..2a41c89 100644
--- a/packages/CarrierDefaultApp/res/values-es/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-es/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicaciones del operador"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operador de telefonía móvil"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Se han agotado los datos móviles"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Se han desactivado los datos móviles"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Por ejemplo, es posible que la página de inicio de sesión no pertenezca a la organización mostrada."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuar de todos modos a través del navegador"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Mejora de rendimiento"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opciones 5G de tu operador"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visita el sitio web de %s para ver opciones relacionadas con tu experiencia en la aplicación"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ahora no"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gestionar"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Comprar una mejora de rendimiento."</string>
diff --git a/packages/CarrierDefaultApp/res/values-et/strings.xml b/packages/CarrierDefaultApp/res/values-et/strings.xml
index e51b76c..c1a33d0 100644
--- a/packages/CarrierDefaultApp/res/values-et/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-et/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Carrier Communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobiilioperaator"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobiilse andmeside limiit on täis"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Teie mobiilne andmeside on inaktiveeritud"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Näiteks ei pruugi sisselogimisleht kuuluda kuvatavale organisatsioonile."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Jätka siiski brauseris"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Jõudluse võimendus"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G valikud teie operaatorilt"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Külastage operaatori %s veebisaiti, et näha oma rakenduse kasutuskogemuse valikuid"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Mitte praegu"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Haldamine"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Ostke jõudluse võimendus."</string>
diff --git a/packages/CarrierDefaultApp/res/values-eu/strings.xml b/packages/CarrierDefaultApp/res/values-eu/strings.xml
index 3650635..86e1291 100644
--- a/packages/CarrierDefaultApp/res/values-eu/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-eu/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operadorearekiko komunikazioa"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Telefonia mugikorreko operadorea"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Agortu egin da datu-konexioa"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Desaktibatu da datu-konexioa"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Adibidez, baliteke saioa hasteko orria adierazitako erakundearena ez izatea."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Jarraitu arakatzailearen bidez, halere"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Errendimendu-hobekuntza"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Operadoreak eskaintzen dituen 5G-aren aukerak"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Joan %s operadorearen webgunera aplikazioaren erabileraren inguruko aukerak ikusteko"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Orain ez"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Kudeatu"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Erosi errendimendu-hobekuntza bat."</string>
diff --git a/packages/CarrierDefaultApp/res/values-fa/strings.xml b/packages/CarrierDefaultApp/res/values-fa/strings.xml
index 0738cbf..89c184c 100644
--- a/packages/CarrierDefaultApp/res/values-fa/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-fa/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"ارتباطات شرکت مخابراتی"</string>
     <string name="android_system_label" msgid="2797790869522345065">"شرکت مخابراتی دستگاه همراه"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"داده تلفن همراه تمام شده است"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"داده شبکه تلفن همراه شما غیرفعال شده است"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"به عنوان مثال، صفحه ورود به سیستم ممکن است متعلق به سازمان نشان داده شده نباشد."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"درهر صورت ازطریق مرورگر ادامه یابد"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"تقویت‌کننده عملکرد"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"گزینه‌های نسل پنجم شرکت مخابراتی شما"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"‏برای دیدن گزینه‌های مرتبط با تجربه برنامه، به وب‌سایت %s مراجعه کنید"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"اکنون نه"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"مدیریت"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"تقویت‌کننده عملکرد خریداری کنید."</string>
diff --git a/packages/CarrierDefaultApp/res/values-fr/strings.xml b/packages/CarrierDefaultApp/res/values-fr/strings.xml
index 1d06a1d..4bc03ffa 100644
--- a/packages/CarrierDefaultApp/res/values-fr/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-fr/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Opérateur des communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Opérateur mobile"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Les données mobiles sont épuisées"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Les données mobiles ont été désactivées pour votre compte"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Par exemple, la page de connexion peut ne pas appartenir à l\'organisation représentée."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuer quand même dans le navigateur"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Boost de performances"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Options 5G de votre opérateur"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Accédez au site Web de %s pour consulter les options pour l\'expérience de votre appli"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Pas maintenant"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gérer"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Achetez un boost de performances."</string>
diff --git a/packages/CarrierDefaultApp/res/values-gu/strings.xml b/packages/CarrierDefaultApp/res/values-gu/strings.xml
index d003a44..1d42e8f 100644
--- a/packages/CarrierDefaultApp/res/values-gu/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-gu/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"મોબાઇલ ઑપરેટર તરફથી કમ્યુનિકેશન"</string>
     <string name="android_system_label" msgid="2797790869522345065">"મોબાઇલ કૅરિઅર"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"મોબાઇલ ડેટા પૂરો થઈ ગયો છે"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"તમારો મોબાઇલ ડેટા નિષ્ક્રિય કરવામાં આવ્યો છે"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ઉદાહરણ તરીકે, લોગિન પૃષ્ઠ બતાવવામાં આવેલી સંસ્થાનું ન પણ હોય."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"તો પણ બ્રાઉઝર મારફતે ચાલુ રાખો"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"પર્ફોર્મન્સ બૂસ્ટ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"તમારા મોબાઇલ ઑપરેટર તરફથી 5G વિકલ્પો"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"તમારા ઍપ અનુભવ માટેના વિકલ્પો જોવા માટે %sની વેબસાઇટની મુલાકાત લો"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"હમણાં નહીં"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"મેનેજ કરો"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"પર્ફોર્મન્સ બૂસ્ટ ખરીદો."</string>
diff --git a/packages/CarrierDefaultApp/res/values-hi/strings.xml b/packages/CarrierDefaultApp/res/values-hi/strings.xml
index 6b3c544..a830d77 100644
--- a/packages/CarrierDefaultApp/res/values-hi/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-hi/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Carrier Communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"मोबाइल सेवा देने वाली कंपनी"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"मोबाइल डेटा खत्म हो गया है"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"आपका मोबाइल डेटा बंद कर दिया गया है"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"उदाहरण के लिए, हो सकता है कि लॉगिन पेज दिखाए गए संगठन का ना हो."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ब्राउज़र के ज़रिए किसी भी तरह जारी रखें"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"परफ़ॉर्मेंस बूस्ट"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी से मिले 5G के विकल्प"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ऐप्लिकेशन का बेहतर अनुभव पाने के लिए, %s की वेबसाइट पर जाकर विकल्प देखें"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"अभी नहीं"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"मैनेज करें"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"कोई परफ़ॉर्मेंस बूस्ट खरीदें."</string>
diff --git a/packages/CarrierDefaultApp/res/values-hr/strings.xml b/packages/CarrierDefaultApp/res/values-hr/strings.xml
index 1a58080..34bf601 100644
--- a/packages/CarrierDefaultApp/res/values-hr/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-hr/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Komunikacije operatera"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilni operater"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobilni su podaci potrošeni"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Mobilni su podaci deaktivirani"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Na primjer, stranica za prijavu možda ne pripada prikazanoj organizaciji."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Ipak nastavi putem preglednika"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Poboljšanje izvedbe"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opcije 5G mreže vašeg operatera"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Posjetite web-lokaciju %s za prikaz opcija za doživljaj aplikacije"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ne sad"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Upravljajte"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kupite poboljšanje izvedbe."</string>
diff --git a/packages/CarrierDefaultApp/res/values-hu/strings.xml b/packages/CarrierDefaultApp/res/values-hu/strings.xml
index 6ed1efe..13ac0a16 100644
--- a/packages/CarrierDefaultApp/res/values-hu/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-hu/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Szolgáltatói értesítések"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilszolgáltató"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Elérte a rendelkezésre álló mobiladat-mennyiséget"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"A rendszer deaktiválta a mobiladat-forgalmat"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Például lehetséges, hogy a bejelentkezési oldal nem a megjelenített szervezethez tartozik."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Folytatás ennek ellenére böngészőn keresztül"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Teljesítménynövelés"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G-beállítások a szolgáltatótól"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"A(z) %s webhelyén megtekintheti az alkalmazás által nyújtott élményekhez tartozó beállításokat"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Most nem"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Kezelés"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Vásároljon teljesítménynövelést."</string>
diff --git a/packages/CarrierDefaultApp/res/values-in/strings.xml b/packages/CarrierDefaultApp/res/values-in/strings.xml
index cb0f35b..f9a9732 100644
--- a/packages/CarrierDefaultApp/res/values-in/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-in/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Komunikasi Operator"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operator Seluler"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Data seluler telah habis"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Data seluler telah dinonaktifkan"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Misalnya, halaman login mungkin bukan milik organisasi yang ditampilkan."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Tetap lanjutkan melalui browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Penguat sinyal"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opsi 5G dari operator Anda"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Buka situs %s untuk melihat opsi pengalaman aplikasi Anda"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Lain kali"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Kelola"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Beli penguat sinyal."</string>
diff --git a/packages/CarrierDefaultApp/res/values-is/strings.xml b/packages/CarrierDefaultApp/res/values-is/strings.xml
index 1e5fa78..ca9d6c7 100644
--- a/packages/CarrierDefaultApp/res/values-is/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-is/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Samskipti við símafyrirtæki"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Símafyrirtæki"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Farsímagögn kláruðust"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Slökkt hefur verið á farsímagögnum"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Til dæmis getur verið að innskráningarsíðan tilheyri ekki fyrirtækinu sem birtist."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Halda samt áfram í vafra"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Afkastaaukning"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G-valkostir frá símafyrirtækinu"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Opnaðu vefsvæði %s til að sjá valkosti varðandi upplifun í forritinu"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ekki núna"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Stjórna"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kaupa afkastaaukningu."</string>
diff --git a/packages/CarrierDefaultApp/res/values-iw/strings.xml b/packages/CarrierDefaultApp/res/values-iw/strings.xml
index 3551acf..9e5a8b5 100644
--- a/packages/CarrierDefaultApp/res/values-iw/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-iw/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"מידע מהספק"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ספק שירות לנייד"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"ניצלת את מכסת הנתונים הסלולריים"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"חבילת הגלישה שלך הושבתה"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"לדוגמה, ייתכן שדף ההתחברות אינו שייך לארגון המוצג."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"המשך בכל זאת באמצעות דפדפן"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"שיפור ביצועים"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"‏אפשרויות של רשת 5G מהספק"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"‏ניתן להיכנס לאתר של %s כדי לראות אפשרויות נוספות לחוויית השימוש באפליקציה"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"לא עכשיו"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"ניהול"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"רכישת שיפור ביצועים."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ka/strings.xml b/packages/CarrierDefaultApp/res/values-ka/strings.xml
index ee281d7..4488a55 100644
--- a/packages/CarrierDefaultApp/res/values-ka/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ka/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"ოპერატორთან კომუნიკაცია"</string>
     <string name="android_system_label" msgid="2797790869522345065">"მობილური ოპერატორი"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"მობილური ინტერნეტის პაკეტი ამოიწურა"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"მობილური ინტერნეტი დეაქტივირებულია"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"მაგალითად, სისტემაში შესვლის გვერდი შეიძლება არ ეკუთვნოდეს ნაჩვენებ ორგანიზაციას."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"მაინც ბრაუზერში გაგრძელება"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"ეფექტურობის გაძლიერება"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G ვარიანტები თქვენი ოპერატორისგან"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ეწვიეთ %s-ის ვებსაიტს თქვენი აპის გამოცდილების ვარიანტების სანახავად"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ახლა არა"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"მართვა"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"ეფექტურობის გაძლიერების შეძენა."</string>
diff --git a/packages/CarrierDefaultApp/res/values-kk/strings.xml b/packages/CarrierDefaultApp/res/values-kk/strings.xml
index b5f6950..ad91c79 100644
--- a/packages/CarrierDefaultApp/res/values-kk/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-kk/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Оператор байланыстары"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Мобильдік байланыс операторы"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобильдік интернет бітті"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Мобильдік интернет өшірілді"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Мысалы, кіру беті көрсетілген ұйымға тиесілі болмауы мүмкін."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Бәрібір браузер арқылы жалғастыру"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Өнімділікті арттыру"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Оператор ұсынған 5G опциялары"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Қолданбаның жұмысына арналған опцияларды көру үшін %s веб-сайтына кіріңіз."</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Қазір емес"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Басқару"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Өнімділікті арттыру құралын сатып алыңыз."</string>
diff --git a/packages/CarrierDefaultApp/res/values-km/strings.xml b/packages/CarrierDefaultApp/res/values-km/strings.xml
index 20199a7..1852489 100644
--- a/packages/CarrierDefaultApp/res/values-km/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-km/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"ទំនាក់ទំនងរបស់ក្រុមហ៊ុន​សេវាទូរសព្ទ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ក្រុមហ៊ុនបម្រើសេវាទូរសព្ទចល័ត"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"ទិន្នន័យ​ចល័ត​បាន​អស់​ហើយ"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"ទិន្នន័យ​ចល័ត​របស់អ្នក​ត្រូវបាន​បិទដំណើរការហើយ"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ឧទាហរណ៍៖ ទំព័រចូលនេះអាចនឹងមិនមែនជាកម្មសិទ្ធិរបស់ស្ថាប័នដែលបានបង្ហាញនេះទេ។"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"យ៉ាងណាក៏ដោយនៅតែបន្តតាមរយៈកម្មវិធីរុករកតាមអ៊ីនធឺណិត"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"ការបង្កើនប្រតិបត្តិការ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"ជម្រើស 5G ពីក្រុមហ៊ុន​សេវាទូរសព្ទរបស់អ្នក"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ចូលទៅកាន់គេហទំព័ររបស់ %s ដើម្បីមើលជម្រើសសម្រាប់បទពិសោធន៍ប្រើកម្មវិធីរបស់អ្នក"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"កុំទាន់"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"គ្រប់គ្រង"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"ទិញការបង្កើនប្រតិបត្តិការ។"</string>
diff --git a/packages/CarrierDefaultApp/res/values-kn/strings.xml b/packages/CarrierDefaultApp/res/values-kn/strings.xml
index 619b92a..bc3e1cc 100644
--- a/packages/CarrierDefaultApp/res/values-kn/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-kn/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"ವಾಹಕ ಸಂವಹನಗಳು"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ಮೊಬೈಲ್ ವಾಹಕ"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"ಮೊಬೈಲ್ ಡೇಟಾ ಮುಗಿದುಹೋಗಿದೆ"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"ನಿಮ್ಮ ಮೊಬೈಲ್ ಡೇಟಾ ನಿಷ್ಕ್ರಿಯಗೊಂಡಿದೆ"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ಉದಾಹರಣೆಗೆ, ಲಾಗಿನ್ ಪುಟವು ತೋರಿಸಲಾಗಿರುವ ಸಂಸ್ಥೆಗೆ ಸಂಬಂಧಿಸಿಲ್ಲದಿರಬಹುದು."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ಪರವಾಗಿಲ್ಲ, ಬ್ರೌಸರ್ ಮೂಲಕ ಮುಂದುವರಿಸಿ"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"ಕಾರ್ಯಕ್ಷಮತೆ ಬೂಸ್ಟ್"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"ನಿಮ್ಮ ವಾಹಕದಿಂದ 5G ಆಯ್ಕೆಗಳು"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ನಿಮ್ಮ ಆ್ಯಪ್ ಅನುಭವಕ್ಕಾಗಿ ಆಯ್ಕೆಗಳನ್ನು ನೋಡಲು %s ನ ವೆಬ್‌ಸೈಟ್‌ಗೆ ಭೇಟಿ ನೀಡಿ"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ಈಗ ಬೇಡ"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"ನಿರ್ವಹಿಸಿ"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"ಕಾರ್ಯಕ್ಷಮತೆ ಬೂಸ್ಟ್ ಅನ್ನು ಖರೀದಿಸಿ."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ko/strings.xml b/packages/CarrierDefaultApp/res/values-ko/strings.xml
index 46e172d..4e82d25 100644
--- a/packages/CarrierDefaultApp/res/values-ko/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ko/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"이동통신사 커뮤니케이션"</string>
     <string name="android_system_label" msgid="2797790869522345065">"이동통신사"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"모바일 데이터가 소진되었습니다."</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"모바일 데이터가 비활성화되었습니다."</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"예를 들어 로그인 페이지가 표시된 조직에 속하지 않을 수 있습니다."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"브라우저를 통해 계속하기"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"성능 향상"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"이동통신사의 5G 옵션"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"%s 웹사이트에 방문하여 앱 환경에 관한 옵션을 확인하세요."</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"나중에"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"관리"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"성능 향상 구매"</string>
diff --git a/packages/CarrierDefaultApp/res/values-ky/strings.xml b/packages/CarrierDefaultApp/res/values-ky/strings.xml
index f2a96bc..aa6a132 100644
--- a/packages/CarrierDefaultApp/res/values-ky/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ky/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Байланыш операторунун билдирмелери"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Мобилдик байланыш оператору"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобилдик Интернетиңиздин трафиги түгөндү"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Мобилдик Интернет өчүрүлгөн"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Мисалы, аккаунтка кирүү баракчасы көрсөтүлгөн уюмга таандык эмес болушу мүмкүн."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Баары бир серепчи аркылуу улантуу"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Иштин майнаптуулугун жогорулатуу"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Байланыш операторунун 5G варианттары"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Колдонмону иштетүү параметрлерин көрүү үчүн %s сайтына өтүңүз"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Азыр эмес"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Тескөө"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Иштин майнаптуулугун жогорулатууну сатып алыңыз."</string>
diff --git a/packages/CarrierDefaultApp/res/values-lo/strings.xml b/packages/CarrierDefaultApp/res/values-lo/strings.xml
index 28af830..0624c72 100644
--- a/packages/CarrierDefaultApp/res/values-lo/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-lo/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"ການສື່ສານຈາກຜູ້ໃຫ້ບໍລິການ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ຜູ້ໃຫ້ບໍລິການມືຖື"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"ອິນເຕີເນັດມືຖືໝົດແລ້ວ"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"ປິດການນຳໃຊ້ອິນເຕີເນັດມືຖືຂອງທ່ານແລ້ວ"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ຕົວຢ່າງ, ໜ້າເຂົ້າສູ່ລະບົບອາດຈະບໍ່ແມ່ນຂອງອົງກອນທີ່ປາກົດ."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ດຳເນີນການຕໍ່ຜ່ານໂປຣແກຣມທ່ອງເວັບ"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"ເລັ່ງປະສິດທິພາບ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"ຕົວເລືອກ 5G ຈາກຜູ້ໃຫ້ບໍລິການຂອງທ່ານ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ເບິ່ງຕົວເລືອກຕ່າງໆສຳລັບປະສົບການການນຳໃຊ້ແອັບຂອງທ່ານໄດ້ຢູ່ເວັບໄຊຂອງ %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ບໍ່ຟ້າວເທື່ອ"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"ຈັດການ"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"ຊື້ການເລັ່ງປະສິດທິພາບ."</string>
diff --git a/packages/CarrierDefaultApp/res/values-lt/strings.xml b/packages/CarrierDefaultApp/res/values-lt/strings.xml
index b9be333..8780eb0 100644
--- a/packages/CarrierDefaultApp/res/values-lt/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-lt/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operatoriaus pranešimai"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobiliojo ryšio operatorius"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobiliojo ryšio duomenys baigėsi"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Mobiliojo ryšio duomenys išaktyvinti"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Pavyzdžiui, prisijungimo puslapis gali nepriklausyti rodomai organizacijai."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Vis tiek tęsti naudojant naršyklę"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Našumo pagerinimas"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Operatoriaus teikiamos 5G parinktys"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Apsilankykite „%s“ svetainėje ir peržiūrėkite programos funkcijų parinktis"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ne dabar"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Tvarkyti"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Įsigykite našumo pagerinimo paslaugą."</string>
diff --git a/packages/CarrierDefaultApp/res/values-lv/strings.xml b/packages/CarrierDefaultApp/res/values-lv/strings.xml
index d539947..a65fa58 100644
--- a/packages/CarrierDefaultApp/res/values-lv/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-lv/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Paziņojumi no mobilo sakaru operatora"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilo sakaru operators"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Sasniegts mobilo datu ierobežojums."</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Jūsu mobilie dati ir deaktivizēti"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Piemēram, pieteikšanās lapa, iespējams, nepieder norādītajai organizācijai."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Tomēr turpināt, izmantojot pārlūkprogrammu"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Veiktspējas uzlabojums"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Mobilo sakaru operatora piedāvātās 5G iespējas"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Apmeklējiet operatora %s vietni, lai skatītu pieejamās iespējas lietotnē"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Vēlāk"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Pārvaldīt"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Iegādājieties veiktspējas uzlabojumu."</string>
diff --git a/packages/CarrierDefaultApp/res/values-mk/strings.xml b/packages/CarrierDefaultApp/res/values-mk/strings.xml
index 4efecb0..4965d56 100644
--- a/packages/CarrierDefaultApp/res/values-mk/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-mk/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Комуникации со давателот на услугата"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Мобилен оператор"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобилниот интернет е искористен"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Мобилниот интернет ви е деактивиран"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"На пример, страницата за најавување може да не припаѓа на прикажаната организација."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Сепак продолжи преку прелистувач"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Засилување на изведбата"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G опции од вашиот давател на услуга"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Посетете го веб-сајтот на %s за да ги видите опциите за искуството со апликацијата"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Не сега"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Управувајте"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Купете засилување на изведбата."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ml/strings.xml b/packages/CarrierDefaultApp/res/values-ml/strings.xml
index f4c19a3..cfeacbe 100644
--- a/packages/CarrierDefaultApp/res/values-ml/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ml/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"സേവനദാതാവ് നടത്തുന്ന ആശയവിനിമയങ്ങൾ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"മൊബൈൽ കാരിയർ"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"മൊബൈൽ ഡാറ്റ തീർന്നിരിക്കുന്നു"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"നിങ്ങളുടെ മൊബൈൽ ഡാറ്റ നിർജീവമാക്കി"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ഉദാഹരണത്തിന്, കാണിച്ചിരിക്കുന്ന ഓർഗനൈസേഷന്റേതായിരിക്കില്ല ലോഗിൻ പേജ്."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"എന്തായാലും ബ്രൗസർ വഴി തുടരുക"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"പ്രകടന ബൂസ്റ്റ്"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"നിങ്ങളുടെ സേവനദാതാവിൽ നിന്നുള്ള 5G ഓപ്‌ഷനുകൾ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"നിങ്ങളുടെ ആപ്പ് അനുഭവം സംബന്ധിച്ച ഓപ്‌ഷനുകൾക്ക് %s എന്നതിന്റെ വെബ്‌സൈറ്റ് സന്ദർശിക്കുക"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ഇപ്പോൾ വേണ്ട"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"മാനേജ് ചെയ്യുക"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"പ്രകടന ബൂസ്റ്റ് വാങ്ങൂ."</string>
diff --git a/packages/CarrierDefaultApp/res/values-mn/strings.xml b/packages/CarrierDefaultApp/res/values-mn/strings.xml
index 2f33eb2..3476ff0 100644
--- a/packages/CarrierDefaultApp/res/values-mn/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-mn/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Оператор компанийн харилцаа холбоо"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Мобайл оператор компани"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобайл дата дууссан"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Таны мобайл датаг идэвхгүй болгосон"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Жишээлбэл нэвтрэх хуудас нь харагдаж буй байгууллагынх биш байж болно."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Ямар ч тохиолдолд хөтчөөр үргэлжлүүлэх"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Гүйцэтгэлийн идэвхжүүлэлт"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Таны оператор компанийн 5G сонголт"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Аппын хэрэглээнийхээ сонголтыг харахын тулд %s-н вебсайтад зочилно уу"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Одоо биш"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Удирдах"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Гүйцэтгэлийн идэвхжүүлэлтийг худалдаж аваарай."</string>
diff --git a/packages/CarrierDefaultApp/res/values-mr/strings.xml b/packages/CarrierDefaultApp/res/values-mr/strings.xml
index 9414545..4123045 100644
--- a/packages/CarrierDefaultApp/res/values-mr/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-mr/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"वाहकसह संभाषणे"</string>
     <string name="android_system_label" msgid="2797790869522345065">"मोबाइल वाहक"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"मोबाइल डेटा संपला आहे"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"तुमचा मोबाइल डेटा निष्क्रिय केला गेला"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"उदाहरणार्थ, लॉग इन पृष्‍ठ दर्शवलेल्या संस्थेच्या मालकीचे नसू शकते."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"तरीही ब्राउझरद्वारे सुरू ठेवा"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"परफॉर्मन्स बूस्ट"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"तुमच्या वाहकाकडून 5G पर्याय"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"तुमच्या अ‍ॅप अनुभवासाठी पर्याय पाहण्याकरिता %s च्या वेबसाइटला भेट द्या"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"आता नको"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"व्यवस्थापित करा"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"परफॉर्मन्स बूस्ट खरेदी करा."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ms/strings.xml b/packages/CarrierDefaultApp/res/values-ms/strings.xml
index 4fb377e..004d092 100644
--- a/packages/CarrierDefaultApp/res/values-ms/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ms/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Komunikasi Pembawa"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Pembawa Mudah Alih"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Data mudah alih telah habis"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Data mudah alih anda telah dinyahaktifkan"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Contohnya, halaman log masuk mungkin bukan milik organisasi yang ditunjukkan."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Teruskan juga melalui penyemak imbas"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Peningkatan prestasi"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Pilihan 5G daripada pembawa anda"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Lawati laman web %s untuk melihat pilihan pengalaman apl anda"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Bukan sekarang"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Urus"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Beli perangsang prestasi."</string>
diff --git a/packages/CarrierDefaultApp/res/values-my/strings.xml b/packages/CarrierDefaultApp/res/values-my/strings.xml
index 002edd8..6e1381f 100644
--- a/packages/CarrierDefaultApp/res/values-my/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-my/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"မိုဘိုင်းဖုန်းကုမ္ပဏီ ဆက်သွယ်မှုများ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"မိုဘိုင်း ဝန်ဆောင်မှုပေးသူ"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"မိုဘိုင်းဒေတာ ကုန်သွားပါပြီ"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"သင်၏ မိုဘိုင်း ဒေတာကို ပိတ်ထားပါသည်"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ဥပမာ− ဝင်ရောက်ရန် စာမျက်နှာသည် ပြသထားသည့် အဖွဲ့အစည်းနှင့် သက်ဆိုင်မှုမရှိခြင်း ဖြစ်နိုင်ပါသည်။"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"မည်သို့ပင်ဖြစ်စေ ဘရောက်ဇာမှတစ်ဆင့် ရှေ့ဆက်ရန်"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"စွမ်းဆောင်ရည် မြှင့်တင်အက်ပ်"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"သင်၏ မိုဘိုင်းဖုန်းကုမ္ပဏီထံမှ 5G ရွေးစရာများ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"သင့်အက်ပ်အသုံးပြုမှုအတွက် ရွေးစရာများကြည့်ရန် %s ၏ ဝဘ်ဆိုက်သို့ ဝင်ကြည့်ပါ"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ယခုမလုပ်ပါ"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"စီမံရန်"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"စွမ်းဆောင်ရည် မြှင့်တင်အက်ပ် ဝယ်ယူရန်။"</string>
diff --git a/packages/CarrierDefaultApp/res/values-ne/strings.xml b/packages/CarrierDefaultApp/res/values-ne/strings.xml
index 169ceff..9bf2fb1 100644
--- a/packages/CarrierDefaultApp/res/values-ne/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ne/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"सेवा प्रदायकसँग गरिएका कुराकानीहरू"</string>
     <string name="android_system_label" msgid="2797790869522345065">"मोबाइलको सेवा प्रदायक छनौट गर्नुहोस्"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"मोबाइल डेटा सकियो"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"तपाईंको मोबाइल डेटा निष्क्रिय पारिएको छ"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"उदाहरणका लागि, लग इन पृष्ठ देखाइएको संस्थाको नहुन सक्छ।"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"जे भए पनि ब्राउजर मार्फत जारी राख्नुहोस्"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"पर्फर्मेन्स बुस्ट"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"तपाईंको सेवा प्रदायकले उपलब्ध गराएका 5G सम्बन्धी विकल्पहरू"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"एप प्रयोग गर्दा अझ राम्रो सुविधा पाउन %s को वेबसाइटमा गई विकल्पहरू हेर्नुहोस्"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"अहिले होइन"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"व्यवस्थापन गर्नुहोस्"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"पर्फर्मेन्स बुस्ट किन्नुहोस्।"</string>
diff --git a/packages/CarrierDefaultApp/res/values-nl/strings.xml b/packages/CarrierDefaultApp/res/values-nl/strings.xml
index 35ecb3c..b2850c0 100644
--- a/packages/CarrierDefaultApp/res/values-nl/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-nl/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Berichten van provider"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobiele provider"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobiele data verbruikt"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Je mobiele data zijn uitgeschakeld"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Zo hoort de weergegeven inlogpagina misschien niet bij de weergegeven organisatie."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Toch doorgaan via browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Prestatieboost"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G-opties van je provider"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Ga naar de website van %s om opties voor de app-functionaliteit te zien"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Niet nu"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Beheren"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Koop een prestatieboost."</string>
diff --git a/packages/CarrierDefaultApp/res/values-or/strings.xml b/packages/CarrierDefaultApp/res/values-or/strings.xml
index dc13b65..884af9a 100644
--- a/packages/CarrierDefaultApp/res/values-or/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-or/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"କେରିଅର କମ୍ୟୁନିକେସନ୍ସ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ମୋବାଇଲ୍‌ କେରିଅର୍‍"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"ମୋବାଇଲ୍‍ ଡାଟା ଶେଷ ହୋଇଯାଇଛି"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"ଆପଣଙ୍କ ମୋବାଇଲ୍‍ ଡାଟା ନିଷ୍କ୍ରୀୟ କରାଯାଇଛି"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ଉଦାହରଣସ୍ୱରୂପ, ଲଗଇନ୍‍ ପୃଷ୍ଠା ଦେଖାଯାଇଥିବା ସଂସ୍ଥାର ହୋଇନଥାଇପାରେ।"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ବ୍ରାଉଜର୍‍ ଜରିଆରେ ଯେମିତିବି ହେଉ ଜାରି ରଖନ୍ତୁ"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"ପରଫରମାନ୍ସ ବୁଷ୍ଟ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"ଆପଣଙ୍କ କେରିଅରରୁ 5G ବିକଳ୍ପଗୁଡ଼ିକ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ଆପଣଙ୍କ ଆପ ଅନୁଭୂତି ପାଇଁ ବିକଳ୍ପ ଦେଖିବାକୁ %sର ୱେବସାଇଟକୁ ଭିଜିଟ କରନ୍ତୁ"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ବର୍ତ୍ତମାନ ନୁହେଁ"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"ପରିଚାଳନା କରନ୍ତୁ"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"ଏକ ପରଫରମାନ୍ସ ବୁଷ୍ଟ କିଣନ୍ତୁ।"</string>
diff --git a/packages/CarrierDefaultApp/res/values-pl/strings.xml b/packages/CarrierDefaultApp/res/values-pl/strings.xml
index 3ca001b..3f499a7 100644
--- a/packages/CarrierDefaultApp/res/values-pl/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-pl/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Informacje od operatora"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operator komórkowy"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Osiągnięto limit komórkowej transmisji danych"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Mobilna transmisja danych została wyłączona"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Na przykład strona logowania może nie należeć do wyświetlanej organizacji."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Kontynuuj mimo to w przeglądarce"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Zwiększenie wydajności"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opcje 5G u Twojego operatora"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Opcje dotyczące korzystania z aplikacji znajdziesz na stronie firmy %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Nie teraz"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Zarządzaj"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kup wzmocnienie wydajności"</string>
diff --git a/packages/CarrierDefaultApp/res/values-pt-rBR/strings.xml b/packages/CarrierDefaultApp/res/values-pt-rBR/strings.xml
index cb8329c..cb3bca9 100644
--- a/packages/CarrierDefaultApp/res/values-pt-rBR/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-pt-rBR/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicações da operadora"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operadora de celular"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Os dados móveis se esgotaram"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Os dados móveis foram desativados"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Por exemplo, a página de login pode não pertencer à organização mostrada."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuar mesmo assim pelo navegador"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Aumento de performance"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opções 5G da sua operadora"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visite o site de %s para conferir opções da sua experiência no app"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Agora não"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gerenciar"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Comprar um aumento de performance."</string>
diff --git a/packages/CarrierDefaultApp/res/values-pt-rPT/strings.xml b/packages/CarrierDefaultApp/res/values-pt-rPT/strings.xml
index 7e435cf..137a1c6 100644
--- a/packages/CarrierDefaultApp/res/values-pt-rPT/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-pt-rPT/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicações do operador"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operador móvel"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Dados móveis esgotados"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Os seus dados móveis foram desativados"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Por exemplo, a página de início de sessão pode não pertencer à entidade apresentada."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuar mesmo assim através do navegador"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Aumento do desempenho"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opções 5G do seu operador"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visite o Website de %s para ver opções para a experiência da sua app"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Agora não"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gerir"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Compre um aumento do desempenho."</string>
diff --git a/packages/CarrierDefaultApp/res/values-pt/strings.xml b/packages/CarrierDefaultApp/res/values-pt/strings.xml
index cb8329c..cb3bca9 100644
--- a/packages/CarrierDefaultApp/res/values-pt/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-pt/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicações da operadora"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operadora de celular"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Os dados móveis se esgotaram"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Os dados móveis foram desativados"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Por exemplo, a página de login pode não pertencer à organização mostrada."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuar mesmo assim pelo navegador"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Aumento de performance"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opções 5G da sua operadora"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Visite o site de %s para conferir opções da sua experiência no app"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Agora não"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gerenciar"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Comprar um aumento de performance."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ro/strings.xml b/packages/CarrierDefaultApp/res/values-ro/strings.xml
index 042d9ec..78b910e 100644
--- a/packages/CarrierDefaultApp/res/values-ro/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ro/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Comunicări de la operator"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operator de telefonie mobilă"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Datele mobile au expirat"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Datele mobile au fost dezactivate"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"De exemplu, este posibil ca pagina de conectare să nu aparțină organizației afișate."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Continuă oricum prin browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Boost de performanță"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opțiuni 5G de la operator"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Accesează site-ul %s ca să vezi opțiunile pentru experiența ta cu aplicațiile"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Nu acum"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Gestionează"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Achiziționează un boost de performanță."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ru/strings.xml b/packages/CarrierDefaultApp/res/values-ru/strings.xml
index 0c25796..936a6fa 100644
--- a/packages/CarrierDefaultApp/res/values-ru/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ru/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Оператор связи"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Оператор мобильной связи"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобильный трафик израсходован"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Мобильный Интернет отключен"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Например, страница входа в аккаунт может быть фиктивной."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Продолжить в браузере"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Повышение производительности"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Сеть 5G от оператора связи"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Посетите сайт оператора (%s), чтобы узнать, как улучшить производительность приложения."</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Не сейчас"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Настроить"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Повысьте производительность сети за плату."</string>
diff --git a/packages/CarrierDefaultApp/res/values-sk/strings.xml b/packages/CarrierDefaultApp/res/values-sk/strings.xml
index e14e087..77951cf 100644
--- a/packages/CarrierDefaultApp/res/values-sk/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-sk/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Komunikácie s operátorom"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Poskytovateľ mobilných služieb"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobilné dáta sa minuli"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Vaše mobilné dáta boli deaktivované"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Napríklad prihlasovacia stránka nemusí patriť uvedenej organizácii."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Pokračovať pomocou prehliadača"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Zvýšenie výkonu"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Možnosti siete 5G od vášho operátora"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Ak chcete zistiť, aké sú možnosti prostredia v aplikácii, prejdite na web %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Teraz nie"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Spravovať"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kúpte si zvýšenie výkonu."</string>
diff --git a/packages/CarrierDefaultApp/res/values-sl/strings.xml b/packages/CarrierDefaultApp/res/values-sl/strings.xml
index 21cb944..bee2217 100644
--- a/packages/CarrierDefaultApp/res/values-sl/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-sl/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Carrier Communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobilni operater"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Porabili ste vse mobilne podatke"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Prenos podatkov v mobilnih omrežjih je deaktiviran"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Stran za prijavo na primer morda ne pripada prikazani organizaciji."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Vseeno nadaljuj v brskalniku"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Ojačevalnik zmogljivosti"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Operaterjeve možnosti 5G"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Obiščite spletno mesto %s, da si ogledate možnosti izkušnje aplikacije."</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Ne zdaj"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Upravljanje"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Kupite ojačevalnik zmogljivosti."</string>
diff --git a/packages/CarrierDefaultApp/res/values-sq/strings.xml b/packages/CarrierDefaultApp/res/values-sq/strings.xml
index 9d501d9..238921a 100644
--- a/packages/CarrierDefaultApp/res/values-sq/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-sq/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Komunikimet e operatorit celular"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Operatori celular"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Të dhënat celulare kanë përfunduar"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Të dhënat celulare janë çaktivizuar"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"për shembull, faqja e identifikimit mund të mos i përkasë organizatës së shfaqur."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Vazhdo gjithsesi nëpërmjet shfletuesit"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Përforcimi i performancës"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Opsionet 5G nga operatori yt celular"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Vizito sajtin e uebit të %s për të parë opsione për përvojën tënde me aplikacionin"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Jo tani"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Menaxho"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Bli një paketë përforcimi të performancës."</string>
diff --git a/packages/CarrierDefaultApp/res/values-sr/strings.xml b/packages/CarrierDefaultApp/res/values-sr/strings.xml
index 257d53b..c99431b 100644
--- a/packages/CarrierDefaultApp/res/values-sr/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-sr/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Обавештења мобилног оператера"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Мобилни оператер"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Мобилни подаци су потрошени"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Мобилни подаци су деактивирани"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"На пример, страница за пријављивање можда не припада приказаној организацији."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Ипак настави преко прегледача"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Побољшање учинка"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G опције мобилног оператера"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Опције за доживљај апликације потражите на веб-сајту мобилног оператера %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Не сада"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Управљај"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Купите побољшање учинка."</string>
diff --git a/packages/CarrierDefaultApp/res/values-sv/strings.xml b/packages/CarrierDefaultApp/res/values-sv/strings.xml
index 1886ed9..d2e8d93 100644
--- a/packages/CarrierDefaultApp/res/values-sv/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-sv/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Carrier Communications"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobiloperatör"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Slut på mobildata"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Din mobildata har inaktiverats"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Det kan t.ex. hända att inloggningssidan inte tillhör den organisation som visas."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Fortsätt ändå via webbläsaren"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Prestandahöjning"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"5G-alternativ från operatören"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Se alternativ för appupplevelsen på webbplatsen för %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Inte nu"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Hantera"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Köp en prestandahöjning."</string>
diff --git a/packages/CarrierDefaultApp/res/values-sw/strings.xml b/packages/CarrierDefaultApp/res/values-sw/strings.xml
index fc3450f..5dc7921 100644
--- a/packages/CarrierDefaultApp/res/values-sw/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-sw/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Mawasiliano ya Mtoa Huduma"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mtoa Huduma za Simu"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Data ya mtandao wa simu imekwisha"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Data yako ya mtandao wa simu imezimwa"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Kwa mfano, ukurasa wa kuingia katika akaunti unaweza usiwe unamilikiwa na shirika lililoonyeshwa."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Endelea hata hivyo kupitia kivinjari"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Kuongeza utendaji"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Chaguo za 5G kutoka kwa mtoa huduma wako"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Tembelea tovuti ya %s ili uone chaguo za hali ya matumizi ya programu yako"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Si sasa"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Dhibiti"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Nunua programu ya kuongeza utendaji."</string>
diff --git a/packages/CarrierDefaultApp/res/values-te/strings.xml b/packages/CarrierDefaultApp/res/values-te/strings.xml
index 944ee75..5f86828 100644
--- a/packages/CarrierDefaultApp/res/values-te/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-te/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"క్యారియర్ కమ్యూనికేషన్‌లు"</string>
     <string name="android_system_label" msgid="2797790869522345065">"మొబైల్ క్యారియర్"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"మొబైల్ డేటాను పూర్తిగా ఉపయోగించారు"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"మీ మొబైల్ డేటా నిష్క్రియం చేయబడింది"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ఉదాహరణకు, లాగిన్ పేజీ చూపిన సంస్థకు చెందినది కాకపోవచ్చు."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ఏదేమైనా బ్రౌజర్ ద్వారా కొనసాగించండి"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"పనితీరు బూస్ట్"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"మీ క్యారియర్ నుండి 5G ఆప్షన్‌లు"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"మీ యాప్ అనుభవం కోసం ఆప్షన్‌లను చూడటానికి %s వెబ్‌సైట్‌కు వెళ్లండి"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ఇప్పుడు కాదు"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"మేనేజ్ చేయండి"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"పనితీరు బూస్ట్‌ను కొనుగోలు చేయండి."</string>
diff --git a/packages/CarrierDefaultApp/res/values-th/strings.xml b/packages/CarrierDefaultApp/res/values-th/strings.xml
index e13ce44..586ffd5 100644
--- a/packages/CarrierDefaultApp/res/values-th/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-th/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"การสื่อสารจากผู้ให้บริการ"</string>
     <string name="android_system_label" msgid="2797790869522345065">"ผู้ให้บริการเครือข่ายมือถือ"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"เน็ตมือถือหมดแล้ว"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"อินเทอร์เน็ตมือถือของคุณถูกปิดใช้งานแล้ว"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"ตัวอย่างเช่น หน้าเข้าสู่ระบบอาจไม่ใช่ขององค์กรที่แสดงไว้"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"ดำเนินการต่อผ่านเบราว์เซอร์"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"การเพิ่มประสิทธิภาพ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"ตัวเลือก 5G จากผู้ให้บริการ"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"ดูตัวเลือกต่างๆ สำหรับประสบการณ์การใช้งานแอปได้ที่เว็บไซต์ของ %s"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ไว้ทีหลัง"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"จัดการ"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"ซื้อการเพิ่มประสิทธิภาพ"</string>
diff --git a/packages/CarrierDefaultApp/res/values-tl/strings.xml b/packages/CarrierDefaultApp/res/values-tl/strings.xml
index bdb09ac..a311a25 100644
--- a/packages/CarrierDefaultApp/res/values-tl/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-tl/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Mga Pakikipag-ugnayan sa Carrier"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobile Carrier"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Naubos na ang mobile data"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Na-deactivate na ang iyong mobile data"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Halimbawa, maaaring hindi pag-aari ng ipinapakitang organisasyon ang page ng login."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Magpatuloy pa rin sa pamamagitan ng browser"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Pag-boost ng performance"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Mga opsyon sa 5G mula sa carrier mo"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Pumunta sa website ng %s para tingnan ang mga opsyon para sa iyong experience sa app"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Huwag muna"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Pamahalaan"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Bumili ng pang-boost ng performance."</string>
diff --git a/packages/CarrierDefaultApp/res/values-ur/strings.xml b/packages/CarrierDefaultApp/res/values-ur/strings.xml
index ef2677f..0c7cdc5 100644
--- a/packages/CarrierDefaultApp/res/values-ur/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-ur/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"کیریئر سے متعلق مواصلات"</string>
     <string name="android_system_label" msgid="2797790869522345065">"موبائل کیریئر"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"موبائل ڈیٹا ختم ہو چکا ہے"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"آپ کا موبائل ڈیٹا غیر فعال کر دیا گیا ہے"</string>
@@ -16,8 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"مثال کے طور پر ہو سکتا ہے کہ لاگ ان صفحہ دکھائی گئی تنظیم سے تعلق نہ رکھتا ہو۔"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"براؤزر کے ذریعے بہرحال جاری رکھیں"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"پرفارمینس بوسٹ"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"‏آپ کے کیریئر سے 5G کے اختیارات"</string>
+    <!-- String.format failed for translation -->
     <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
     <skip />
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"ابھی نہیں"</string>
diff --git a/packages/CarrierDefaultApp/res/values-uz/strings.xml b/packages/CarrierDefaultApp/res/values-uz/strings.xml
index dd48975..0f25e7e 100644
--- a/packages/CarrierDefaultApp/res/values-uz/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-uz/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Operator aloqasi"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Mobil aloqa operatori"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Mobil internet tugab qoldi"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Mobil internet o‘chirildi"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Masalan, tizimga kirish sahifasi ko‘rsatilgan tashkilotga tegishli bo‘lmasligi mumkin."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Brauzerda davom ettirish"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Unumdorlikni kuchaytirish"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Operatordan 5G aloqa parametrlari"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Ilovadan foydalanish usullarini koʻrish uchun %s saytini oching"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Hozir emas"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Boshqarish"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Unumdorlikni kuchaytirish xizmatini xarid qiling."</string>
diff --git a/packages/CarrierDefaultApp/res/values-vi/strings.xml b/packages/CarrierDefaultApp/res/values-vi/strings.xml
index b01f951..d99aa22 100644
--- a/packages/CarrierDefaultApp/res/values-vi/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-vi/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Nhà cung cấp dịch vụ truyền thông"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Nhà cung cấp dịch vụ di động"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Dữ liệu di động đã hết"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Dữ liệu di động của bạn đã bị hủy kích hoạt"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Ví dụ: trang đăng nhập có thể không thuộc về tổ chức được hiển thị."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Vẫn tiếp tục qua trình duyệt"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"Tăng hiệu suất"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Tuỳ chọn 5G từ nhà mạng của bạn"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Truy cập trang web của %s để xem các lựa chọn cho trải nghiệm trên ứng dụng"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Để sau"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Quản lý"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Mua gói tăng hiệu suất."</string>
diff --git a/packages/CarrierDefaultApp/res/values-zh-rCN/strings.xml b/packages/CarrierDefaultApp/res/values-zh-rCN/strings.xml
index e06cddb..b05835d 100644
--- a/packages/CarrierDefaultApp/res/values-zh-rCN/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-zh-rCN/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"运营商通信"</string>
     <string name="android_system_label" msgid="2797790869522345065">"移动运营商"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"移动数据流量已用尽"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"您的移动数据网络已停用"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"例如,登录页面可能并不属于页面上显示的单位。"</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"仍然通过浏览器继续操作"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"性能提升方案"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"您的运营商提供的 5G 选项"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"访问%s的网站可查看您的应用体验选项"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"以后再说"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"管理"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"购买一份性能提升方案。"</string>
diff --git a/packages/CarrierDefaultApp/res/values-zu/strings.xml b/packages/CarrierDefaultApp/res/values-zu/strings.xml
index dc09c9d..e624a19 100644
--- a/packages/CarrierDefaultApp/res/values-zu/strings.xml
+++ b/packages/CarrierDefaultApp/res/values-zu/strings.xml
@@ -1,8 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <!-- no translation found for app_name (2809080280462257271) -->
-    <skip />
+    <string name="app_name" msgid="2809080280462257271">"Inkampani Yezokuxhumana"</string>
     <string name="android_system_label" msgid="2797790869522345065">"Inkampini yenethiwekhi yeselula"</string>
     <string name="portal_notification_id" msgid="5155057562457079297">"Idatha yeselula iphelile"</string>
     <string name="no_data_notification_id" msgid="668400731803969521">"Idatha yakho yeselula yenziwe yangasebenzi"</string>
@@ -16,10 +15,8 @@
     <string name="ssl_error_example" msgid="6188711843183058764">"Isibonelo, ikhasi lokungena ngemvume kungenzeka lingelenhlangano ebonisiwe."</string>
     <string name="ssl_error_continue" msgid="1138548463994095584">"Qhubeka noma kunjalo ngesiphequluli"</string>
     <string name="performance_boost_notification_channel" msgid="3475440855635538592">"I-boost yokusebenza"</string>
-    <!-- no translation found for performance_boost_notification_title (3126203390685781861) -->
-    <skip />
-    <!-- no translation found for performance_boost_notification_detail (216569851036236346) -->
-    <skip />
+    <string name="performance_boost_notification_title" msgid="3126203390685781861">"Okukhethwa kukho kwe-5G okuvela kunkampani yakho yenethiwekhi"</string>
+    <string name="performance_boost_notification_detail" msgid="216569851036236346">"Vakashela iwebhusayithi ye-%s ukuze ubone okukhethwa kukho kolwazi lwakho lwe-app"</string>
     <string name="performance_boost_notification_button_not_now" msgid="6459755324243683785">"Hhayi manje"</string>
     <string name="performance_boost_notification_button_manage" msgid="4976836444046497973">"Phatha"</string>
     <string name="slice_purchase_app_label" msgid="7170191659233241166">"Thenga i-boost yokusebenza."</string>
diff --git a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt
index 5632458..c27ac94 100644
--- a/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt
+++ b/packages/CredentialManager/src/com/android/credentialmanager/getflow/GetCredentialComponents.kt
@@ -59,6 +59,8 @@
 import com.android.credentialmanager.common.ui.SnackbarActionText
 import com.android.credentialmanager.common.ui.HeadlineText
 import com.android.credentialmanager.common.ui.CredentialListSectionHeader
+import com.android.credentialmanager.common.ui.HeadlineIcon
+import com.android.credentialmanager.common.ui.LargeLabelTextOnSurfaceVariant
 import com.android.credentialmanager.common.ui.Snackbar
 import com.android.credentialmanager.common.ui.setTransparentSystemBarsColor
 import com.android.credentialmanager.common.ui.setBottomSheetSystemBarsColor
@@ -167,22 +169,42 @@
         providerDisplayInfo.sortedUserNameToCredentialEntryList
     val authenticationEntryList = providerDisplayInfo.authenticationEntryList
     SheetContainerCard {
+        // When only one provider (not counting the remote-only provider) exists, display that
+        // provider's icon + name up top.
+        if (providerInfoList.size <= 2) { // It's only possible to be the single provider case
+                                          // if we are started with no more than 2 providers.
+            val nonRemoteProviderList = providerInfoList.filter(
+                { it.credentialEntryList.isNotEmpty() || it.authenticationEntryList.isNotEmpty() }
+            )
+            if (nonRemoteProviderList.size == 1) {
+                val providerInfo = nonRemoteProviderList.firstOrNull() // First should always work
+                                                                       // but just to be safe.
+                if (providerInfo != null) {
+                    item {
+                        HeadlineIcon(
+                            bitmap = providerInfo.icon.toBitmap().asImageBitmap(),
+                            tint = Color.Unspecified,
+                        )
+                    }
+                    item { Divider(thickness = 4.dp, color = Color.Transparent) }
+                    item { LargeLabelTextOnSurfaceVariant(text = providerInfo.displayName) }
+                    item { Divider(thickness = 16.dp, color = Color.Transparent) }
+                }
+            }
+        }
+
+        val hasSingleEntry = (sortedUserNameToCredentialEntryList.size == 1 &&
+            authenticationEntryList.isEmpty()) || (sortedUserNameToCredentialEntryList.isEmpty() &&
+            authenticationEntryList.size == 1)
         item {
             HeadlineText(
                 text = stringResource(
-                    if (sortedUserNameToCredentialEntryList
-                            .size == 1 && authenticationEntryList.isEmpty()
-                    ) {
-                        if (sortedUserNameToCredentialEntryList.first()
-                                .sortedCredentialEntryList.first().credentialType
+                    if (hasSingleEntry) {
+                        if (sortedUserNameToCredentialEntryList.firstOrNull()
+                                ?.sortedCredentialEntryList?.first()?.credentialType
                             == CredentialType.PASSKEY
                         ) R.string.get_dialog_title_use_passkey_for
                         else R.string.get_dialog_title_use_sign_in_for
-                    } else if (
-                        sortedUserNameToCredentialEntryList
-                            .isEmpty() && authenticationEntryList.size == 1
-                    ) {
-                        R.string.get_dialog_title_use_sign_in_for
                     } else R.string.get_dialog_title_choose_sign_in_for,
                     requestDisplayInfo.appName
                 ),
diff --git a/packages/CtsShim/Android.bp b/packages/CtsShim/Android.bp
index 31cd760..baafe7b 100644
--- a/packages/CtsShim/Android.bp
+++ b/packages/CtsShim/Android.bp
@@ -44,6 +44,9 @@
         arm64: {
             apk: "apk/arm/CtsShimPriv.apk",
         },
+        riscv64: {
+            apk: "apk/riscv64/CtsShimPriv.apk",
+        },
         x86: {
             apk: "apk/x86/CtsShimPriv.apk",
         },
@@ -82,6 +85,9 @@
         arm64: {
             apk: "apk/arm/CtsShim.apk",
         },
+        riscv64: {
+            apk: "apk/riscv64/CtsShim.apk",
+        },
         x86: {
             apk: "apk/x86/CtsShim.apk",
         },
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_back.xml b/packages/SystemUI/res/drawable/ic_sysbar_back.xml
index ee40262..6c34655 100644
--- a/packages/SystemUI/res/drawable/ic_sysbar_back.xml
+++ b/packages/SystemUI/res/drawable/ic_sysbar_back.xml
@@ -15,13 +15,13 @@
      limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="28dp"
-    android:height="28dp"
+    android:width="20dp"
+    android:height="20dp"
     android:autoMirrored="true"
-    android:viewportWidth="28"
-    android:viewportHeight="28">
+    android:viewportWidth="20"
+    android:viewportHeight="20">
 
     <path
         android:fillColor="?attr/singleToneColor"
-        android:pathData="M6.49,14.86c-0.66-0.39-0.66-1.34,0-1.73l6.02-3.53l5.89-3.46C19.11,5.73,20,6.26,20,7.1V14v6.9 c0,0.84-0.89,1.37-1.6,0.95l-5.89-3.46L6.49,14.86z" />
+        android:pathData="M15.5417 1.66669C15.1833 1.66669 14.8417 1.76669 14.5333 1.94169L3.21667 8.74169C2.775 9.00002 2.5 9.48335 2.5 10C2.5 10.5167 2.775 11 3.21667 11.2584L14.5333 18.05C14.8417 18.2334 15.1833 18.325 15.5417 18.325C16.625 18.325 17.5 17.45 17.5 16.3667V3.62502C17.5 2.54169 16.625 1.66669 15.5417 1.66669Z" />
 </vector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_home.xml b/packages/SystemUI/res/drawable/ic_sysbar_home.xml
index da23937..8b2a58a 100644
--- a/packages/SystemUI/res/drawable/ic_sysbar_home.xml
+++ b/packages/SystemUI/res/drawable/ic_sysbar_home.xml
@@ -15,12 +15,12 @@
      limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="28dp"
-    android:height="28dp"
-    android:viewportWidth="28"
-    android:viewportHeight="28">
+    android:width="20dp"
+    android:height="20dp"
+    android:viewportWidth="20"
+    android:viewportHeight="20">
 
     <path
         android:fillColor="?attr/singleToneColor"
-        android:pathData="M 14 7 C 17.8659932488 7 21 10.1340067512 21 14 C 21 17.8659932488 17.8659932488 21 14 21 C 10.1340067512 21 7 17.8659932488 7 14 C 7 10.1340067512 10.1340067512 7 14 7 Z" />
+        android:pathData="M10.0001 18.3334C5.40008 18.3334 1.66675 14.6 1.66675 10C1.66675 5.40002 5.40008 1.66669 10.0001 1.66669C14.6001 1.66669 18.3334 5.40002 18.3334 10C18.3334 14.6 14.6001 18.3334 10.0001 18.3334Z" />
 </vector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/drawable/ic_sysbar_recent.xml b/packages/SystemUI/res/drawable/ic_sysbar_recent.xml
index 6b038d1..6ff3ec3 100644
--- a/packages/SystemUI/res/drawable/ic_sysbar_recent.xml
+++ b/packages/SystemUI/res/drawable/ic_sysbar_recent.xml
@@ -15,12 +15,12 @@
      limitations under the License.
 -->
 <vector xmlns:android="http://schemas.android.com/apk/res/android"
-    android:width="28dp"
-    android:height="28dp"
-    android:viewportWidth="28"
-    android:viewportHeight="28">
+    android:width="20dp"
+    android:height="20dp"
+    android:viewportWidth="20"
+    android:viewportHeight="20">
 
     <path
         android:fillColor="?attr/singleToneColor"
-        android:pathData="M19.9,21.5H8.1c-0.88,0-1.6-0.72-1.6-1.6V8.1c0-0.88,0.72-1.6,1.6-1.6h11.8c0.88,0,1.6,0.72,1.6,1.6v11.8 C21.5,20.78,20.78,21.5,19.9,21.5z" />
+        android:pathData="M4.47634 2.5H15.5241C16.6164 2.5 17.5002 3.38382 17.5002 4.4761V15.5239C17.5002 16.6162 16.6164 17.5 15.5241 17.5H4.47634C3.38407 17.5 2.50024 16.6162 2.50024 15.5239V4.4761C2.50024 3.38382 3.38407 2.5 4.47634 2.5Z" />
 </vector>
\ No newline at end of file
diff --git a/packages/SystemUI/res/layout/dream_overlay_container.xml b/packages/SystemUI/res/layout/dream_overlay_container.xml
index 8e83b4a..ae0a937 100644
--- a/packages/SystemUI/res/layout/dream_overlay_container.xml
+++ b/packages/SystemUI/res/layout/dream_overlay_container.xml
@@ -25,11 +25,12 @@
         android:id="@+id/dream_overlay_content"
         android:layout_width="match_parent"
         android:layout_height="0dp"
-        android:layout_marginTop="@dimen/dream_overlay_container_margin_top"
-        android:layout_marginEnd="@dimen/dream_overlay_container_margin_end"
-        android:layout_marginBottom="@dimen/dream_overlay_container_margin_bottom"
-        android:layout_marginStart="@dimen/dream_overlay_container_margin_start"
-
+        android:paddingTop="@dimen/dream_overlay_container_padding_top"
+        android:paddingEnd="@dimen/dream_overlay_container_padding_end"
+        android:paddingBottom="@dimen/dream_overlay_container_padding_bottom"
+        android:paddingStart="@dimen/dream_overlay_container_padding_start"
+        android:clipToPadding="false"
+        android:clipChildren="false"
         app:layout_constraintTop_toBottomOf="@id/dream_overlay_status_bar"
         app:layout_constraintBottom_toBottomOf="parent"
         />
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index c4f1526..a52a2b7 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -1670,11 +1670,11 @@
         .2
     </item>
 
-    <!-- The margins applied to the dream overlay container -->
-    <dimen name="dream_overlay_container_margin_start">0dp</dimen>
-    <dimen name="dream_overlay_container_margin_end">0dp</dimen>
-    <dimen name="dream_overlay_container_margin_top">0dp</dimen>
-    <dimen name="dream_overlay_container_margin_bottom">0dp</dimen>
+    <!-- The padding applied to the dream overlay container -->
+    <dimen name="dream_overlay_container_padding_start">0dp</dimen>
+    <dimen name="dream_overlay_container_padding_end">0dp</dimen>
+    <dimen name="dream_overlay_container_padding_top">0dp</dimen>
+    <dimen name="dream_overlay_container_padding_bottom">0dp</dimen>
 
     <!-- The margin applied between complications -->
     <dimen name="dream_overlay_complication_margin">0dp</dimen>
diff --git a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
index 0748bcb..c28a40a 100644
--- a/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
+++ b/packages/SystemUI/src/com/android/systemui/recents/OverviewProxyService.java
@@ -140,7 +140,8 @@
     private final Handler mHandler;
     private final Lazy<NavigationBarController> mNavBarControllerLazy;
     private final NotificationShadeWindowController mStatusBarWinController;
-    private final Runnable mConnectionRunnable = this::internalConnectToCurrentUser;
+    private final Runnable mConnectionRunnable = () ->
+            internalConnectToCurrentUser("runnable: startConnectionToCurrentUser");
     private final ComponentName mRecentsComponentName;
     private final List<OverviewProxyListener> mConnectionCallbacks = new ArrayList<>();
     private final Intent mQuickStepIntent;
@@ -406,7 +407,7 @@
                 // Failed to link to death (process may have died between binding and connecting),
                 // just unbind the service for now and retry again
                 Log.e(TAG_OPS, "Lost connection to launcher service", e);
-                disconnectFromLauncherService();
+                disconnectFromLauncherService("Lost connection to launcher service");
                 retryConnectionWithBackoff();
                 return;
             }
@@ -501,7 +502,7 @@
                 @Override
                 public void onUserChanged(int newUser, @NonNull Context userContext) {
                     mConnectionBackoffAttempts = 0;
-                    internalConnectToCurrentUser();
+                    internalConnectToCurrentUser("User changed");
                 }
             };
 
@@ -716,12 +717,12 @@
         if (mHandler.getLooper() != Looper.myLooper()) {
             mHandler.post(mConnectionRunnable);
         } else {
-            internalConnectToCurrentUser();
+            internalConnectToCurrentUser("startConnectionToCurrentUser");
         }
     }
 
-    private void internalConnectToCurrentUser() {
-        disconnectFromLauncherService();
+    private void internalConnectToCurrentUser(String reason) {
+        disconnectFromLauncherService(reason);
 
         // If user has not setup yet or already connected, do not try to connect
         if (!isEnabled()) {
@@ -783,7 +784,9 @@
         return mOverviewProxy;
     }
 
-    private void disconnectFromLauncherService() {
+    private void disconnectFromLauncherService(String disconnectReason) {
+        Log.d(TAG_OPS, "disconnectFromLauncherService bound?: " + mBound +
+                " currentProxy: " + mOverviewProxy + " disconnectReason: " + disconnectReason);
         if (mBound) {
             // Always unbind the service (ie. if called through onNullBinding or onBindingDied)
             mContext.unbindService(mOverviewServiceConnection);
@@ -1047,6 +1050,6 @@
         mContext.unregisterReceiver(mLauncherStateChangedReceiver);
         mIsEnabled = false;
         mHandler.removeCallbacks(mConnectionRunnable);
-        disconnectFromLauncherService();
+        disconnectFromLauncherService("Shutdown for test");
     }
 }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
index 827a4c1..fbcc9ff 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationPanelViewController.java
@@ -2806,7 +2806,6 @@
     public void setIsLaunchAnimationRunning(boolean running) {
         boolean wasRunning = mIsLaunchAnimationRunning;
         mIsLaunchAnimationRunning = running;
-        mCentralSurfaces.updateIsKeyguard();
         if (wasRunning != mIsLaunchAnimationRunning) {
             mShadeExpansionStateManager.notifyLaunchingActivityChanged(running);
         }
@@ -3867,10 +3866,6 @@
         return mClosing || mIsLaunchAnimationRunning;
     }
 
-    public boolean isLaunchAnimationRunning() {
-        return mIsLaunchAnimationRunning;
-    }
-
     public boolean isTracking() {
         return mTracking;
     }
diff --git a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java
index e7759df..156e4fd 100644
--- a/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/shade/NotificationShadeWindowControllerImpl.java
@@ -301,11 +301,9 @@
     }
 
     private void applyKeyguardFlags(NotificationShadeWindowState state) {
-        // Keyguard is visible if it's showing or if it's fading away (in which case we're animating
-        // it out, but the wallpaper should remain visible as a backdrop for the animation);
-        final boolean keyguardOrAodVisible = (state.keyguardShowing || state.keyguardFadingAway)
+        final boolean keyguardOrAod = state.keyguardShowing
                 || (state.dozing && mDozeParameters.getAlwaysOn());
-        if ((keyguardOrAodVisible && !state.mediaBackdropShowing && !state.lightRevealScrimOpaque)
+        if ((keyguardOrAod && !state.mediaBackdropShowing && !state.lightRevealScrimOpaque)
                 || mKeyguardViewMediator.isAnimatingBetweenKeyguardAndSurfaceBehind()) {
             // Show the wallpaper if we're on keyguard/AOD and the wallpaper is not occluded by a
             // solid backdrop. Also, show it if we are currently animating between the
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
index 4065b98..0205523 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java
@@ -110,6 +110,8 @@
     private final PipelineState mPipelineState = new PipelineState();
     private final Map<String, GroupEntry> mGroups = new ArrayMap<>();
     private Collection<NotificationEntry> mAllEntries = Collections.emptyList();
+    @Nullable
+    private Collection<NotificationEntry> mPendingEntries = null;
     private int mIterationCount = 0;
 
     private final List<NotifFilter> mNotifPreGroupFilters = new ArrayList<>();
@@ -317,11 +319,9 @@
                 @Override
                 public void onBuildList(Collection<NotificationEntry> entries, String reason) {
                     Assert.isMainThread();
-                    mPipelineState.requireIsBefore(STATE_BUILD_STARTED);
-
+                    mPendingEntries = new ArrayList<>(entries);
                     mLogger.logOnBuildList(reason);
-                    mAllEntries = entries;
-                    scheduleRebuild(/* reentrant = */ false);
+                    rebuildListIfBefore(STATE_BUILD_STARTED);
                 }
             };
 
@@ -398,6 +398,11 @@
         Trace.beginSection("ShadeListBuilder.buildList");
         mPipelineState.requireIsBefore(STATE_BUILD_STARTED);
 
+        if (mPendingEntries != null) {
+            mAllEntries = mPendingEntries;
+            mPendingEntries = null;
+        }
+
         if (!mNotifStabilityManager.isPipelineRunAllowed()) {
             mLogger.logPipelineRunSuppressed();
             Trace.endSection();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
index 2f40487..7f13bd8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/CentralSurfacesImpl.java
@@ -864,6 +864,7 @@
         mStatusBarSignalPolicy = statusBarSignalPolicy;
         mStatusBarHideIconsForBouncerManager = statusBarHideIconsForBouncerManager;
         mFeatureFlags = featureFlags;
+        mIsShortcutListSearchEnabled = featureFlags.isEnabled(Flags.SHORTCUT_LIST_SEARCH_LAYOUT);
         mKeyguardUnlockAnimationController = keyguardUnlockAnimationController;
         mMainExecutor = delayableExecutor;
         mMessageRouter = messageRouter;
@@ -872,7 +873,6 @@
         mCameraLauncherLazy = cameraLauncherLazy;
         mAlternateBouncerInteractor = alternateBouncerInteractor;
         mUserTracker = userTracker;
-        mIsShortcutListSearchEnabled = featureFlags.isEnabled(Flags.SHORTCUT_LIST_SEARCH_LAYOUT);
 
         mLockscreenShadeTransitionController = lockscreenShadeTransitionController;
         mStartingSurfaceOptional = startingSurfaceOptional;
@@ -1052,8 +1052,6 @@
                 // The light reveal scrim should always be fully revealed by the time the keyguard
                 // is done going away. Double check that this is true.
                 if (!mKeyguardStateController.isKeyguardGoingAway()) {
-                    updateIsKeyguard();
-
                     if (mLightRevealScrim.getRevealAmount() != 1f) {
                         Log.e(TAG, "Keyguard is done going away, but someone left the light reveal "
                                 + "scrim at reveal amount: " + mLightRevealScrim.getRevealAmount());
@@ -2940,10 +2938,6 @@
                 showKeyguardImpl();
             }
         } else {
-            final boolean isLaunchingOrGoingAway =
-                    mNotificationPanelViewController.isLaunchAnimationRunning()
-                            || mKeyguardStateController.isKeyguardGoingAway();
-
             // During folding a foldable device this might be called as a result of
             // 'onScreenTurnedOff' call for the inner display.
             // In this case:
@@ -2955,14 +2949,7 @@
             if (!mScreenOffAnimationController.isKeyguardHideDelayed()
                     // If we're animating occluded, there's an activity launching over the keyguard
                     // UI. Wait to hide it until after the animation concludes.
-                    && !mKeyguardViewMediator.isOccludeAnimationPlaying()
-                    // If we're occluded, but playing an animation (launch or going away animations)
-                    // the keyguard is visible behind the animation.
-                    && !(mKeyguardStateController.isOccluded() && isLaunchingOrGoingAway)) {
-                    // If we're going away and occluded, it means we are launching over the
-                    // unsecured keyguard, which will subsequently go away. Wait to hide it until
-                    // after the animation concludes to avoid the lockscreen UI changing into the
-                    // shade UI behind the launch animation.
+                    && !mKeyguardViewMediator.isOccludeAnimationPlaying()) {
                 return hideKeyguardImpl(forceStateChange);
             }
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/WifiUiAdapter.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/WifiUiAdapter.kt
index 5223760..174298a 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/WifiUiAdapter.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/WifiUiAdapter.kt
@@ -26,6 +26,7 @@
 import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
 import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
 import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel
+import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel.Companion.viewModelForLocation
 import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel
 import javax.inject.Inject
 import kotlinx.coroutines.flow.collect
@@ -60,11 +61,7 @@
         location: StatusBarLocation,
     ): LocationBasedWifiViewModel {
         val locationViewModel =
-            when (location) {
-                StatusBarLocation.HOME -> wifiViewModel.home
-                StatusBarLocation.KEYGUARD -> wifiViewModel.keyguard
-                StatusBarLocation.QS -> wifiViewModel.qs
-            }
+            viewModelForLocation(wifiViewModel, statusBarPipelineFlags, location)
 
         statusBarIconGroup.repeatWhenAttached {
             repeatOnLifecycle(Lifecycle.State.STARTED) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/HomeWifiViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/HomeWifiViewModel.kt
deleted file mode 100644
index a29c9b9..0000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/HomeWifiViewModel.kt
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel
-
-import android.graphics.Color
-import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
-import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.StateFlow
-
-/**
- * A view model for the wifi icon shown on the "home" page (aka, when the device is unlocked and not
- * showing the shade, so the user is on the home-screen, or in an app).
- */
-class HomeWifiViewModel(
-    statusBarPipelineFlags: StatusBarPipelineFlags,
-    wifiIcon: StateFlow<WifiIcon>,
-    isActivityInViewVisible: Flow<Boolean>,
-    isActivityOutViewVisible: Flow<Boolean>,
-    isActivityContainerVisible: Flow<Boolean>,
-    isAirplaneSpacerVisible: Flow<Boolean>,
-) :
-    LocationBasedWifiViewModel(
-        statusBarPipelineFlags,
-        debugTint = Color.CYAN,
-        wifiIcon,
-        isActivityInViewVisible,
-        isActivityOutViewVisible,
-        isActivityContainerVisible,
-        isAirplaneSpacerVisible,
-    )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/KeyguardWifiViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/KeyguardWifiViewModel.kt
deleted file mode 100644
index 1e190fb..0000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/KeyguardWifiViewModel.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel
-
-import android.graphics.Color
-import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
-import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.StateFlow
-
-/** A view model for the wifi icon shown on keyguard (lockscreen). */
-class KeyguardWifiViewModel(
-    statusBarPipelineFlags: StatusBarPipelineFlags,
-    wifiIcon: StateFlow<WifiIcon>,
-    isActivityInViewVisible: Flow<Boolean>,
-    isActivityOutViewVisible: Flow<Boolean>,
-    isActivityContainerVisible: Flow<Boolean>,
-    isAirplaneSpacerVisible: Flow<Boolean>,
-) :
-    LocationBasedWifiViewModel(
-        statusBarPipelineFlags,
-        debugTint = Color.MAGENTA,
-        wifiIcon,
-        isActivityInViewVisible,
-        isActivityOutViewVisible,
-        isActivityContainerVisible,
-        isAirplaneSpacerVisible,
-    )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/LocationBasedWifiViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/LocationBasedWifiViewModel.kt
index 02c3a65..b731a41 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/LocationBasedWifiViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/LocationBasedWifiViewModel.kt
@@ -17,10 +17,8 @@
 package com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel
 
 import android.graphics.Color
+import com.android.systemui.statusbar.phone.StatusBarLocation
 import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
-import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.StateFlow
 
 /**
  * A view model for a wifi icon in a specific location. This allows us to control parameters that
@@ -29,24 +27,10 @@
  * Must be subclassed for each distinct location.
  */
 abstract class LocationBasedWifiViewModel(
+    val commonImpl: WifiViewModelCommon,
     statusBarPipelineFlags: StatusBarPipelineFlags,
     debugTint: Int,
-
-    /** The wifi icon that should be displayed. */
-    val wifiIcon: StateFlow<WifiIcon>,
-
-    /** True if the activity in view should be visible. */
-    val isActivityInViewVisible: Flow<Boolean>,
-
-    /** True if the activity out view should be visible. */
-    val isActivityOutViewVisible: Flow<Boolean>,
-
-    /** True if the activity container view should be visible. */
-    val isActivityContainerVisible: Flow<Boolean>,
-
-    /** True if the airplane spacer view should be visible. */
-    val isAirplaneSpacerVisible: Flow<Boolean>,
-) {
+) : WifiViewModelCommon by commonImpl {
     val useDebugColoring: Boolean = statusBarPipelineFlags.useDebugColoring()
 
     val defaultColor: Int =
@@ -55,4 +39,48 @@
         } else {
             Color.WHITE
         }
+
+    companion object {
+        /**
+         * Returns a new instance of [LocationBasedWifiViewModel] that's specific to the given
+         * [location].
+         */
+        fun viewModelForLocation(
+            commonImpl: WifiViewModelCommon,
+            flags: StatusBarPipelineFlags,
+            location: StatusBarLocation,
+        ): LocationBasedWifiViewModel =
+            when (location) {
+                StatusBarLocation.HOME -> HomeWifiViewModel(commonImpl, flags)
+                StatusBarLocation.KEYGUARD -> KeyguardWifiViewModel(commonImpl, flags)
+                StatusBarLocation.QS -> QsWifiViewModel(commonImpl, flags)
+            }
+    }
 }
+
+/**
+ * A view model for the wifi icon shown on the "home" page (aka, when the device is unlocked and not
+ * showing the shade, so the user is on the home-screen, or in an app).
+ */
+class HomeWifiViewModel(
+    commonImpl: WifiViewModelCommon,
+    statusBarPipelineFlags: StatusBarPipelineFlags,
+) :
+    WifiViewModelCommon,
+    LocationBasedWifiViewModel(commonImpl, statusBarPipelineFlags, debugTint = Color.CYAN)
+
+/** A view model for the wifi icon shown on keyguard (lockscreen). */
+class KeyguardWifiViewModel(
+    commonImpl: WifiViewModelCommon,
+    statusBarPipelineFlags: StatusBarPipelineFlags,
+) :
+    WifiViewModelCommon,
+    LocationBasedWifiViewModel(commonImpl, statusBarPipelineFlags, debugTint = Color.MAGENTA)
+
+/** A view model for the wifi icon shown in quick settings (when the shade is pulled down). */
+class QsWifiViewModel(
+    commonImpl: WifiViewModelCommon,
+    statusBarPipelineFlags: StatusBarPipelineFlags,
+) :
+    WifiViewModelCommon,
+    LocationBasedWifiViewModel(commonImpl, statusBarPipelineFlags, debugTint = Color.GREEN)
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/QsWifiViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/QsWifiViewModel.kt
deleted file mode 100644
index 18e62b2..0000000
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/QsWifiViewModel.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Copyright (C) 2022 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel
-
-import android.graphics.Color
-import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
-import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
-import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.StateFlow
-
-/** A view model for the wifi icon shown in quick settings (when the shade is pulled down). */
-class QsWifiViewModel(
-    statusBarPipelineFlags: StatusBarPipelineFlags,
-    wifiIcon: StateFlow<WifiIcon>,
-    isActivityInViewVisible: Flow<Boolean>,
-    isActivityOutViewVisible: Flow<Boolean>,
-    isActivityContainerVisible: Flow<Boolean>,
-    isAirplaneSpacerVisible: Flow<Boolean>,
-) :
-    LocationBasedWifiViewModel(
-        statusBarPipelineFlags,
-        debugTint = Color.GREEN,
-        wifiIcon,
-        isActivityInViewVisible,
-        isActivityOutViewVisible,
-        isActivityContainerVisible,
-        isAirplaneSpacerVisible,
-    )
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
index 4b24e7a..c9a0786 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModel.kt
@@ -72,7 +72,7 @@
     @Application private val scope: CoroutineScope,
     statusBarPipelineFlags: StatusBarPipelineFlags,
     wifiConstants: WifiConstants,
-) {
+) : WifiViewModelCommon {
     /** Returns the icon to use based on the given network. */
     private fun WifiNetworkModel.icon(): WifiIcon {
         return when (this) {
@@ -106,8 +106,7 @@
         }
     }
 
-    /** The wifi icon that should be displayed. */
-    private val wifiIcon: StateFlow<WifiIcon> =
+    override val wifiIcon: StateFlow<WifiIcon> =
         combine(
                 interactor.isEnabled,
                 interactor.isDefault,
@@ -162,17 +161,17 @@
             .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = default)
     }
 
-    private val isActivityInViewVisible: Flow<Boolean> =
+    override val isActivityInViewVisible: Flow<Boolean> =
         activity
             .map { it.hasActivityIn }
             .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
 
-    private val isActivityOutViewVisible: Flow<Boolean> =
+    override val isActivityOutViewVisible: Flow<Boolean> =
         activity
             .map { it.hasActivityOut }
             .stateIn(scope, started = SharingStarted.WhileSubscribed(), initialValue = false)
 
-    private val isActivityContainerVisible: Flow<Boolean> =
+    override val isActivityContainerVisible: Flow<Boolean> =
         combine(isActivityInViewVisible, isActivityOutViewVisible) { activityIn, activityOut ->
                 activityIn || activityOut
             }
@@ -181,42 +180,9 @@
     // TODO(b/238425913): It isn't ideal for the wifi icon to need to know about whether the
     //  airplane icon is visible. Instead, we should have a parent StatusBarSystemIconsViewModel
     //  that appropriately knows about both icons and sets the padding appropriately.
-    private val isAirplaneSpacerVisible: Flow<Boolean> =
+    override val isAirplaneSpacerVisible: Flow<Boolean> =
         airplaneModeViewModel.isAirplaneModeIconVisible
 
-    /** A view model for the status bar on the home screen. */
-    val home: HomeWifiViewModel =
-        HomeWifiViewModel(
-            statusBarPipelineFlags,
-            wifiIcon,
-            isActivityInViewVisible,
-            isActivityOutViewVisible,
-            isActivityContainerVisible,
-            isAirplaneSpacerVisible,
-        )
-
-    /** A view model for the status bar on keyguard. */
-    val keyguard: KeyguardWifiViewModel =
-        KeyguardWifiViewModel(
-            statusBarPipelineFlags,
-            wifiIcon,
-            isActivityInViewVisible,
-            isActivityOutViewVisible,
-            isActivityContainerVisible,
-            isAirplaneSpacerVisible,
-        )
-
-    /** A view model for the status bar in quick settings. */
-    val qs: QsWifiViewModel =
-        QsWifiViewModel(
-            statusBarPipelineFlags,
-            wifiIcon,
-            isActivityInViewVisible,
-            isActivityOutViewVisible,
-            isActivityContainerVisible,
-            isAirplaneSpacerVisible,
-        )
-
     companion object {
         @StringRes
         @VisibleForTesting
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelCommon.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelCommon.kt
new file mode 100644
index 0000000..eccf023
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelCommon.kt
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2023 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.systemui.statusbar.pipeline.wifi.ui.viewmodel
+
+import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.StateFlow
+
+/**
+ * A common view model interface that can be used for delegation between [WifiViewModel] and
+ * [LocationBasedWifiViewModel].
+ */
+interface WifiViewModelCommon {
+    /** The wifi icon that should be displayed. */
+    val wifiIcon: StateFlow<WifiIcon>
+
+    /** True if the activity in view should be visible. */
+    val isActivityInViewVisible: Flow<Boolean>
+
+    /** True if the activity out view should be visible. */
+    val isActivityOutViewVisible: Flow<Boolean>
+
+    /** True if the activity container view should be visible. */
+    val isActivityContainerVisible: Flow<Boolean>
+
+    /** True if the airplane spacer view should be visible. */
+    val isAirplaneSpacerVisible: Flow<Boolean>
+}
diff --git a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java
index dd79297..526dc8d 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/shade/NotificationShadeWindowControllerImplTest.java
@@ -223,16 +223,6 @@
     }
 
     @Test
-    public void attach_fadingAway_wallpaperVisible() {
-        clearInvocations(mWindowManager);
-        mNotificationShadeWindowController.attach();
-        mNotificationShadeWindowController.setKeyguardFadingAway(true);
-
-        verify(mWindowManager).updateViewLayout(any(), mLayoutParameters.capture());
-        assertThat((mLayoutParameters.getValue().flags & FLAG_SHOW_WALLPAPER) != 0).isTrue();
-    }
-
-    @Test
     public void setBackgroundBlurRadius_expandedWithBlurs() {
         mNotificationShadeWindowController.setBackgroundBlurRadius(10);
         verify(mNotificationShadeWindowView).setVisibility(eq(View.VISIBLE));
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
index 1aba1fc..7db2197 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/phone/CentralSurfacesImplTest.java
@@ -1342,18 +1342,6 @@
     }
 
     @Test
-    public void keyguard_notHidden_ifGoingAwayAndOccluded() {
-        setKeyguardShowingAndOccluded(true /* showing */, false /* occluded */);
-
-        when(mKeyguardStateController.isKeyguardGoingAway()).thenReturn(true);
-        when(mKeyguardStateController.isOccluded()).thenReturn(true);
-
-        mCentralSurfaces.updateIsKeyguard(false);
-
-        verify(mStatusBarStateController, never()).setState(eq(SHADE), anyBoolean());
-    }
-
-    @Test
     public void frpLockedDevice_shadeDisabled() {
         when(mDeviceProvisionedController.isFrpActive()).thenReturn(true);
         when(mDozeServiceHost.isPulsing()).thenReturn(true);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
index 64810d2..5c19108 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiViewTest.kt
@@ -30,6 +30,7 @@
 import com.android.systemui.statusbar.StatusBarIconView.STATE_DOT
 import com.android.systemui.statusbar.StatusBarIconView.STATE_HIDDEN
 import com.android.systemui.statusbar.StatusBarIconView.STATE_ICON
+import com.android.systemui.statusbar.phone.StatusBarLocation
 import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
 import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
 import com.android.systemui.statusbar.pipeline.airplane.domain.interactor.AirplaneModeInteractor
@@ -43,6 +44,7 @@
 import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
 import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
 import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel
+import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel.Companion.viewModelForLocation
 import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.WifiViewModel
 import com.android.systemui.util.mockito.whenever
 import com.google.common.truth.Truth.assertThat
@@ -93,18 +95,23 @@
                 tableLogBuffer,
                 scope,
             )
-        viewModel =
+        val viewModelCommon =
             WifiViewModel(
-                    airplaneModeViewModel,
-                    connectivityConstants,
-                    context,
-                    tableLogBuffer,
-                    interactor,
-                    scope,
-                    statusBarPipelineFlags,
-                    wifiConstants,
-                )
-                .home
+                airplaneModeViewModel,
+                connectivityConstants,
+                context,
+                tableLogBuffer,
+                interactor,
+                scope,
+                statusBarPipelineFlags,
+                wifiConstants,
+            )
+        viewModel =
+            viewModelForLocation(
+                viewModelCommon,
+                statusBarPipelineFlags,
+                StatusBarLocation.HOME,
+            )
     }
 
     // Note: The following tests are more like integration tests, since they stand up a full
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt
index 1c71f8b..ffe990b 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelIconParameterizedTest.kt
@@ -130,7 +130,7 @@
                     wifiConstants,
                 )
 
-            val iconFlow = underTest.home.wifiIcon
+            val iconFlow = underTest.wifiIcon
             val job = iconFlow.launchIn(this)
 
             // WHEN we set a certain network
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
index 7a62cb8..802e360 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/pipeline/wifi/ui/viewmodel/WifiViewModelTest.kt
@@ -19,6 +19,7 @@
 import androidx.test.filters.SmallTest
 import com.android.systemui.SysuiTestCase
 import com.android.systemui.log.table.TableLogBuffer
+import com.android.systemui.statusbar.phone.StatusBarLocation
 import com.android.systemui.statusbar.pipeline.StatusBarPipelineFlags
 import com.android.systemui.statusbar.pipeline.airplane.data.repository.FakeAirplaneModeRepository
 import com.android.systemui.statusbar.pipeline.airplane.domain.interactor.AirplaneModeInteractor
@@ -34,6 +35,7 @@
 import com.android.systemui.statusbar.pipeline.wifi.shared.WifiConstants
 import com.android.systemui.statusbar.pipeline.wifi.shared.model.WifiNetworkModel
 import com.android.systemui.statusbar.pipeline.wifi.ui.model.WifiIcon
+import com.android.systemui.statusbar.pipeline.wifi.ui.viewmodel.LocationBasedWifiViewModel.Companion.viewModelForLocation
 import com.google.common.truth.Truth.assertThat
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
@@ -105,15 +107,20 @@
     @Test
     fun wifiIcon_allLocationViewModelsReceiveSameData() =
         runBlocking(IMMEDIATE) {
+            val home =
+                viewModelForLocation(underTest, statusBarPipelineFlags, StatusBarLocation.HOME)
+            val keyguard =
+                viewModelForLocation(underTest, statusBarPipelineFlags, StatusBarLocation.KEYGUARD)
+            val qs = viewModelForLocation(underTest, statusBarPipelineFlags, StatusBarLocation.QS)
+
             var latestHome: WifiIcon? = null
-            val jobHome = underTest.home.wifiIcon.onEach { latestHome = it }.launchIn(this)
+            val jobHome = home.wifiIcon.onEach { latestHome = it }.launchIn(this)
 
             var latestKeyguard: WifiIcon? = null
-            val jobKeyguard =
-                underTest.keyguard.wifiIcon.onEach { latestKeyguard = it }.launchIn(this)
+            val jobKeyguard = keyguard.wifiIcon.onEach { latestKeyguard = it }.launchIn(this)
 
             var latestQs: WifiIcon? = null
-            val jobQs = underTest.qs.wifiIcon.onEach { latestQs = it }.launchIn(this)
+            val jobQs = qs.wifiIcon.onEach { latestQs = it }.launchIn(this)
 
             wifiRepository.setWifiNetwork(
                 WifiNetworkModel.Active(NETWORK_ID, isValidated = true, level = 1)
@@ -138,15 +145,15 @@
 
             var activityIn: Boolean? = null
             val activityInJob =
-                underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
+                underTest.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
 
             var activityOut: Boolean? = null
             val activityOutJob =
-                underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
+                underTest.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
 
             var activityContainer: Boolean? = null
             val activityContainerJob =
-                underTest.home.isActivityContainerVisible
+                underTest.isActivityContainerVisible
                     .onEach { activityContainer = it }
                     .launchIn(this)
 
@@ -169,15 +176,15 @@
 
             var activityIn: Boolean? = null
             val activityInJob =
-                underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
+                underTest.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
 
             var activityOut: Boolean? = null
             val activityOutJob =
-                underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
+                underTest.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
 
             var activityContainer: Boolean? = null
             val activityContainerJob =
-                underTest.home.isActivityContainerVisible
+                underTest.isActivityContainerVisible
                     .onEach { activityContainer = it }
                     .launchIn(this)
 
@@ -208,15 +215,15 @@
 
             var activityIn: Boolean? = null
             val activityInJob =
-                underTest.home.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
+                underTest.isActivityInViewVisible.onEach { activityIn = it }.launchIn(this)
 
             var activityOut: Boolean? = null
             val activityOutJob =
-                underTest.home.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
+                underTest.isActivityOutViewVisible.onEach { activityOut = it }.launchIn(this)
 
             var activityContainer: Boolean? = null
             val activityContainerJob =
-                underTest.home.isActivityContainerVisible
+                underTest.isActivityContainerVisible
                     .onEach { activityContainer = it }
                     .launchIn(this)
 
@@ -242,18 +249,21 @@
             createAndSetViewModel()
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
+            val home =
+                viewModelForLocation(underTest, statusBarPipelineFlags, StatusBarLocation.HOME)
+            val keyguard =
+                viewModelForLocation(underTest, statusBarPipelineFlags, StatusBarLocation.KEYGUARD)
+            val qs = viewModelForLocation(underTest, statusBarPipelineFlags, StatusBarLocation.QS)
+
             var latestHome: Boolean? = null
-            val jobHome =
-                underTest.home.isActivityInViewVisible.onEach { latestHome = it }.launchIn(this)
+            val jobHome = home.isActivityInViewVisible.onEach { latestHome = it }.launchIn(this)
 
             var latestKeyguard: Boolean? = null
             val jobKeyguard =
-                underTest.keyguard.isActivityInViewVisible
-                    .onEach { latestKeyguard = it }
-                    .launchIn(this)
+                keyguard.isActivityInViewVisible.onEach { latestKeyguard = it }.launchIn(this)
 
             var latestQs: Boolean? = null
-            val jobQs = underTest.qs.isActivityInViewVisible.onEach { latestQs = it }.launchIn(this)
+            val jobQs = qs.isActivityInViewVisible.onEach { latestQs = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
             wifiRepository.setWifiActivity(activity)
@@ -276,7 +286,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job = underTest.home.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
             wifiRepository.setWifiActivity(activity)
@@ -295,7 +305,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job = underTest.home.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityInViewVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
             wifiRepository.setWifiActivity(activity)
@@ -314,7 +324,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job = underTest.home.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
             wifiRepository.setWifiActivity(activity)
@@ -333,7 +343,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job = underTest.home.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityOutViewVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
             wifiRepository.setWifiActivity(activity)
@@ -352,8 +362,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job =
-                underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = false)
             wifiRepository.setWifiActivity(activity)
@@ -372,8 +381,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job =
-                underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = true)
             wifiRepository.setWifiActivity(activity)
@@ -392,8 +400,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job =
-                underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = true, hasActivityOut = true)
             wifiRepository.setWifiActivity(activity)
@@ -412,8 +419,7 @@
             wifiRepository.setWifiNetwork(ACTIVE_VALID_WIFI_NETWORK)
 
             var latest: Boolean? = null
-            val job =
-                underTest.home.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isActivityContainerVisible.onEach { latest = it }.launchIn(this)
 
             val activity = DataActivityModel(hasActivityIn = false, hasActivityOut = false)
             wifiRepository.setWifiActivity(activity)
@@ -428,7 +434,7 @@
     fun airplaneSpacer_notAirplaneMode_outputsFalse() =
         runBlocking(IMMEDIATE) {
             var latest: Boolean? = null
-            val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
 
             airplaneModeRepository.setIsAirplaneMode(false)
             yield()
@@ -442,7 +448,7 @@
     fun airplaneSpacer_airplaneForceHidden_outputsFalse() =
         runBlocking(IMMEDIATE) {
             var latest: Boolean? = null
-            val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
 
             airplaneModeRepository.setIsAirplaneMode(true)
             connectivityRepository.setForceHiddenIcons(setOf(ConnectivitySlot.AIRPLANE))
@@ -457,7 +463,7 @@
     fun airplaneSpacer_airplaneIconVisible_outputsTrue() =
         runBlocking(IMMEDIATE) {
             var latest: Boolean? = null
-            val job = underTest.qs.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
+            val job = underTest.isAirplaneSpacerVisible.onEach { latest = it }.launchIn(this)
 
             airplaneModeRepository.setIsAirplaneMode(true)
             yield()
diff --git a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
index 05b6022..a8519e3 100644
--- a/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
+++ b/services/companion/java/com/android/server/companion/securechannel/SecureChannel.java
@@ -128,6 +128,9 @@
      * Start listening for incoming messages.
      */
     public void start() {
+        if (DEBUG) {
+            Slog.d(TAG, "Starting secure channel.");
+        }
         new Thread(() -> {
             try {
                 // 1. Wait for the next handshake message and process it.
@@ -151,14 +154,14 @@
                 // TODO: Handle different types errors.
 
                 Slog.e(TAG, "Secure channel encountered an error.", e);
-                stop();
+                close();
                 mCallback.onError(e);
             }
         }).start();
     }
 
     /**
-     * Stop listening to incoming messages and close the channel.
+     * Stop listening to incoming messages.
      */
     public void stop() {
         if (DEBUG) {
@@ -166,7 +169,17 @@
         }
         mStopped = true;
         mInProgress = false;
+    }
 
+    /**
+     * Stop listening to incoming messages and close the channel.
+     */
+    public void close() {
+        stop();
+
+        if (DEBUG) {
+            Slog.d(TAG, "Closing secure channel.");
+        }
         IoUtils.closeQuietly(mInput);
         IoUtils.closeQuietly(mOutput);
         KeyStoreUtils.cleanUp(mAlias);
@@ -240,60 +253,64 @@
             if (isSecured()) {
                 Slog.d(TAG, "Waiting to receive next secure message.");
             } else {
-                Slog.d(TAG, "Waiting to receive next message.");
+                Slog.d(TAG, "Waiting to receive next " + expected + " message.");
             }
         }
 
         // TODO: Handle message timeout
 
-        // Header is _not_ encrypted, but will be covered by MAC
-        final byte[] headerBytes = new byte[HEADER_LENGTH];
-        Streams.readFully(mInput, headerBytes);
-        final ByteBuffer header = ByteBuffer.wrap(headerBytes);
-        final int version = header.getInt();
-        final short type = header.getShort();
+        synchronized (mInput) {
+            // Header is _not_ encrypted, but will be covered by MAC
+            final byte[] headerBytes = new byte[HEADER_LENGTH];
+            Streams.readFully(mInput, headerBytes);
+            final ByteBuffer header = ByteBuffer.wrap(headerBytes);
+            final int version = header.getInt();
+            final short type = header.getShort();
 
-        if (version != VERSION) {
-            Streams.skipByReading(mInput, Long.MAX_VALUE);
-            throw new SecureChannelException("Secure channel version mismatch. "
-                    + "Currently on version " + VERSION + ". Skipping rest of data.");
+            if (version != VERSION) {
+                Streams.skipByReading(mInput, Long.MAX_VALUE);
+                throw new SecureChannelException("Secure channel version mismatch. "
+                        + "Currently on version " + VERSION + ". Skipping rest of data.");
+            }
+
+            if (type != expected.mValue) {
+                Streams.skipByReading(mInput, Long.MAX_VALUE);
+                throw new SecureChannelException(
+                        "Unexpected message type. Expected " + expected.name()
+                                + "; Found " + MessageType.from(type).name()
+                                + ". Skipping rest of data.");
+            }
+
+            // Length of attached data is prepended as plaintext
+            final byte[] lengthBytes = new byte[4];
+            Streams.readFully(mInput, lengthBytes);
+            final int length = ByteBuffer.wrap(lengthBytes).getInt();
+
+            // Read data based on the length
+            final byte[] data;
+            try {
+                data = new byte[length];
+            } catch (OutOfMemoryError error) {
+                throw new SecureChannelException("Payload is too large.", error);
+            }
+
+            Streams.readFully(mInput, data);
+            if (!MessageType.shouldEncrypt(expected)) {
+                return data;
+            }
+
+            return mConnectionContext.decodeMessageFromPeer(data, headerBytes);
         }
-
-        if (type != expected.mValue) {
-            Streams.skipByReading(mInput, Long.MAX_VALUE);
-            throw new SecureChannelException("Unexpected message type. Expected " + expected.name()
-                    + "; Found " + MessageType.from(type).name() + ". Skipping rest of data.");
-        }
-
-        // Length of attached data is prepended as plaintext
-        final byte[] lengthBytes = new byte[4];
-        Streams.readFully(mInput, lengthBytes);
-        final int length = ByteBuffer.wrap(lengthBytes).getInt();
-
-        // Read data based on the length
-        final byte[] data;
-        try {
-            data = new byte[length];
-        } catch (OutOfMemoryError error) {
-            throw new SecureChannelException("Payload is too large.", error);
-        }
-
-        Streams.readFully(mInput, data);
-        if (!MessageType.shouldEncrypt(expected)) {
-            return data;
-        }
-
-        return mConnectionContext.decodeMessageFromPeer(data, headerBytes);
     }
 
-    private void sendMessage(MessageType messageType, byte[] payload)
+    private void sendMessage(MessageType messageType, final byte[] payload)
             throws IOException, BadHandleException {
         synchronized (mOutput) {
-            byte[] header = ByteBuffer.allocate(HEADER_LENGTH)
+            final byte[] header = ByteBuffer.allocate(HEADER_LENGTH)
                     .putInt(VERSION)
                     .putShort(messageType.mValue)
                     .array();
-            byte[] data = MessageType.shouldEncrypt(messageType)
+            final byte[] data = MessageType.shouldEncrypt(messageType)
                     ? mConnectionContext.encodeMessageToPeer(payload, header)
                     : payload;
             mOutput.write(header);
diff --git a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java
index 5390205..092eb4e 100644
--- a/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java
+++ b/services/companion/java/com/android/server/companion/transport/CompanionTransportManager.java
@@ -46,6 +46,7 @@
 
 import java.io.IOException;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.CompletableFuture;
@@ -296,26 +297,32 @@
         Slog.i(TAG, "Remote device SDK: " + remoteSdk + ", release:" + new String(remoteRelease));
 
         Transport transport = mTempTransport;
-        mTempTransport = null;
+        mTempTransport.stop();
 
         int sdk = Build.VERSION.SDK_INT;
         String release = Build.VERSION.RELEASE;
-        if (remoteSdk == NON_ANDROID) {
+        if (Build.isDebuggable()) {
+            // Debug builds cannot pass attestation verification. Use hardcoded key instead.
+            Slog.d(TAG, "Creating an unauthenticated secure channel");
+            final byte[] testKey = "CDM".getBytes(StandardCharsets.UTF_8);
+            transport = new SecureTransport(transport.getAssociationId(), transport.getFd(),
+                    mContext, testKey, null);
+        } else if (remoteSdk == NON_ANDROID) {
             // TODO: pass in a real preSharedKey
             transport = new SecureTransport(transport.getAssociationId(), transport.getFd(),
-                    mContext, null, null);
-        } else if (sdk < SECURE_CHANNEL_AVAILABLE_SDK
-                || remoteSdk < SECURE_CHANNEL_AVAILABLE_SDK) {
-            // TODO: depending on the release version, either
-            //       1) using a RawTransport for old T versions
-            //       2) or an Ukey2 handshaked transport for UKey2 backported T versions
-        } else {
+                    mContext, new byte[0], null);
+        } else if (sdk >= SECURE_CHANNEL_AVAILABLE_SDK
+                && remoteSdk >= SECURE_CHANNEL_AVAILABLE_SDK) {
             Slog.i(TAG, "Creating a secure channel");
             transport = new SecureTransport(transport.getAssociationId(), transport.getFd(),
                     mContext);
-            addMessageListenersToTransport(transport);
-            transport.start();
+        } else {
+            // TODO: depending on the release version, either
+            //       1) using a RawTransport for old T versions
+            //       2) or an Ukey2 handshaked transport for UKey2 backported T versions
         }
+        addMessageListenersToTransport(transport);
+        transport.start();
         mTransports.put(transport.getAssociationId(), transport);
         // Doesn't need to notifyTransportsChanged here, it'll be done in attachSystemDataTransport
     }
diff --git a/services/companion/java/com/android/server/companion/transport/RawTransport.java b/services/companion/java/com/android/server/companion/transport/RawTransport.java
index 4060f6e..4158901 100644
--- a/services/companion/java/com/android/server/companion/transport/RawTransport.java
+++ b/services/companion/java/com/android/server/companion/transport/RawTransport.java
@@ -36,6 +36,9 @@
 
     @Override
     public void start() {
+        if (DEBUG) {
+            Slog.d(TAG, "Starting raw transport.");
+        }
         new Thread(() -> {
             try {
                 while (!mStopped) {
@@ -44,7 +47,7 @@
             } catch (IOException e) {
                 if (!mStopped) {
                     Slog.w(TAG, "Trouble during transport", e);
-                    stop();
+                    close();
                 }
             }
         }).start();
@@ -52,8 +55,19 @@
 
     @Override
     public void stop() {
+        if (DEBUG) {
+            Slog.d(TAG, "Stopping raw transport.");
+        }
         mStopped = true;
+    }
 
+    @Override
+    public void close() {
+        stop();
+
+        if (DEBUG) {
+            Slog.d(TAG, "Closing raw transport.");
+        }
         IoUtils.closeQuietly(mRemoteIn);
         IoUtils.closeQuietly(mRemoteOut);
     }
@@ -79,15 +93,17 @@
     }
 
     private void receiveMessage() throws IOException {
-        final byte[] headerBytes = new byte[HEADER_LENGTH];
-        Streams.readFully(mRemoteIn, headerBytes);
-        final ByteBuffer header = ByteBuffer.wrap(headerBytes);
-        final int message = header.getInt();
-        final int sequence = header.getInt();
-        final int length = header.getInt();
-        final byte[] data = new byte[length];
-        Streams.readFully(mRemoteIn, data);
+        synchronized (mRemoteIn) {
+            final byte[] headerBytes = new byte[HEADER_LENGTH];
+            Streams.readFully(mRemoteIn, headerBytes);
+            final ByteBuffer header = ByteBuffer.wrap(headerBytes);
+            final int message = header.getInt();
+            final int sequence = header.getInt();
+            final int length = header.getInt();
+            final byte[] data = new byte[length];
+            Streams.readFully(mRemoteIn, data);
 
-        handleMessage(message, sequence, data);
+            handleMessage(message, sequence, data);
+        }
     }
 }
diff --git a/services/companion/java/com/android/server/companion/transport/SecureTransport.java b/services/companion/java/com/android/server/companion/transport/SecureTransport.java
index cca0843..4054fc9 100644
--- a/services/companion/java/com/android/server/companion/transport/SecureTransport.java
+++ b/services/companion/java/com/android/server/companion/transport/SecureTransport.java
@@ -21,6 +21,7 @@
 import android.os.ParcelFileDescriptor;
 import android.util.Slog;
 
+import com.android.internal.annotations.GuardedBy;
 import com.android.server.companion.securechannel.AttestationVerifier;
 import com.android.server.companion.securechannel.SecureChannel;
 
@@ -35,6 +36,7 @@
 
     private volatile boolean mShouldProcessRequests = false;
 
+    @GuardedBy("mRequestQueue")
     private final BlockingQueue<byte[]> mRequestQueue = new ArrayBlockingQueue<>(100);
 
     SecureTransport(int associationId, ParcelFileDescriptor fd, Context context) {
@@ -60,6 +62,12 @@
     }
 
     @Override
+    public void close() {
+        mSecureChannel.close();
+        mShouldProcessRequests = false;
+    }
+
+    @Override
     public Future<byte[]> requestForResponse(int message, byte[] data) {
         // Check if channel is secured and start securing
         if (!mShouldProcessRequests) {
@@ -85,12 +93,14 @@
         }
 
         // Queue up a message to send
-        mRequestQueue.add(ByteBuffer.allocate(HEADER_LENGTH + data.length)
-                .putInt(message)
-                .putInt(sequence)
-                .putInt(data.length)
-                .put(data)
-                .array());
+        synchronized (mRequestQueue) {
+            mRequestQueue.add(ByteBuffer.allocate(HEADER_LENGTH + data.length)
+                    .putInt(message)
+                    .putInt(sequence)
+                    .putInt(data.length)
+                    .put(data)
+                    .array());
+        }
     }
 
     @Override
@@ -102,9 +112,11 @@
         new Thread(() -> {
             try {
                 while (mShouldProcessRequests) {
-                    byte[] request = mRequestQueue.poll();
-                    if (request != null) {
-                        mSecureChannel.sendSecureMessage(request);
+                    synchronized (mRequestQueue) {
+                        byte[] request = mRequestQueue.poll();
+                        if (request != null) {
+                            mSecureChannel.sendSecureMessage(request);
+                        }
                     }
                 }
             } catch (IOException e) {
diff --git a/services/companion/java/com/android/server/companion/transport/Transport.java b/services/companion/java/com/android/server/companion/transport/Transport.java
index d69ce89..d30104a 100644
--- a/services/companion/java/com/android/server/companion/transport/Transport.java
+++ b/services/companion/java/com/android/server/companion/transport/Transport.java
@@ -110,13 +110,26 @@
         return mFd;
     }
 
+    /**
+     * Start listening to messages.
+     */
     public abstract void start();
+
+    /**
+     * Soft stop listening to the incoming data without closing the streams.
+     */
     public abstract void stop();
+
+    /**
+     * Stop listening to the incoming data and close the streams.
+     */
+    public abstract void close();
+
     protected abstract void sendMessage(int message, int sequence, @NonNull byte[] data)
             throws IOException;
 
     /**
-     * Send a message
+     * Send a message.
      */
     public void sendMessage(int message, @NonNull byte[] data) throws IOException {
         sendMessage(message, mNextSequence.incrementAndGet(), data);
@@ -170,7 +183,11 @@
                 sendMessage(MESSAGE_RESPONSE_SUCCESS, sequence, data);
                 break;
             }
-            case MESSAGE_REQUEST_PLATFORM_INFO:
+            case MESSAGE_REQUEST_PLATFORM_INFO: {
+                callback(message, data);
+                // DO NOT SEND A RESPONSE!
+                break;
+            }
             case MESSAGE_REQUEST_CONTEXT_SYNC: {
                 callback(message, data);
                 sendMessage(MESSAGE_RESPONSE_SUCCESS, sequence, EmptyArray.BYTE);
diff --git a/services/core/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
index 7c84b72..d9ba845 100644
--- a/services/core/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -66,6 +66,7 @@
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.SystemClock;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.os.WakeLockStats;
 import android.os.WorkSource;
@@ -140,6 +141,7 @@
         BatteryStatsImpl.EnergyStatsRetriever,
         Watchdog.Monitor {
     static final String TAG = "BatteryStatsService";
+    static final String TRACE_TRACK_WAKEUP_REASON = "wakeup_reason";
     static final boolean DBG = false;
     private static final boolean BATTERY_USAGE_STORE_ENABLED = true;
 
@@ -2482,6 +2484,10 @@
                 while ((reason = waitWakeup()) != null) {
                     final long nowElapsed = SystemClock.elapsedRealtime();
                     final long nowUptime = SystemClock.uptimeMillis();
+
+                    Trace.instantForTrack(Trace.TRACE_TAG_POWER, TRACE_TRACK_WAKEUP_REASON,
+                            nowElapsed + " " + reason);
+
                     // Wait for the completion of pending works if there is any
                     awaitCompletion();
                     mCpuWakeupStats.noteWakeupTimeAndReason(nowElapsed, nowUptime, reason);
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java
index fc22935..965a07b 100644
--- a/services/core/java/com/android/server/appop/AppOpsService.java
+++ b/services/core/java/com/android/server/appop/AppOpsService.java
@@ -157,10 +157,10 @@
 import com.android.server.SystemServerInitThreadPool;
 import com.android.server.SystemServiceManager;
 import com.android.server.pm.PackageList;
+import com.android.server.pm.PackageManagerLocal;
 import com.android.server.pm.UserManagerInternal;
 import com.android.server.pm.pkg.AndroidPackage;
 import com.android.server.pm.pkg.PackageState;
-import com.android.server.pm.pkg.PackageStateInternal;
 import com.android.server.pm.pkg.component.ParsedAttribution;
 import com.android.server.policy.AppOpsPolicy;
 
@@ -367,6 +367,9 @@
     /** Package Manager internal. Access via {@link #getPackageManagerInternal()} */
     private @Nullable PackageManagerInternal mPackageManagerInternal;
 
+    /** Package Manager local. Access via {@link #getPackageManagerLocal()} */
+    private @Nullable PackageManagerLocal mPackageManagerLocal;
+
     /** User Manager internal. Access via {@link #getUserManagerInternal()} */
     private @Nullable UserManagerInternal mUserManagerInternal;
 
@@ -1189,42 +1192,64 @@
     /**
      * Initialize uid state objects for state contained in the checking service.
      */
-    private void initializeUidStates() {
+    @VisibleForTesting
+    void initializeUidStates() {
         UserManagerInternal umi = getUserManagerInternal();
-        int[] userIds = umi.getUserIds();
         synchronized (this) {
-            for (int i = 0; i < userIds.length; i++) {
-                int userId = userIds[i];
-                initializeUserUidStatesLocked(userId);
+            int[] userIds = umi.getUserIds();
+            try (PackageManagerLocal.UnfilteredSnapshot snapshot =
+                         getPackageManagerLocal().withUnfilteredSnapshot()) {
+                Map<String, PackageState> packageStates = snapshot.getPackageStates();
+                for (int i = 0; i < userIds.length; i++) {
+                    int userId = userIds[i];
+                    initializeUserUidStatesLocked(userId, packageStates);
+                }
             }
         }
     }
 
     private void initializeUserUidStates(int userId) {
         synchronized (this) {
-            initializeUserUidStatesLocked(userId);
+            try (PackageManagerLocal.UnfilteredSnapshot snapshot =
+                    getPackageManagerLocal().withUnfilteredSnapshot()) {
+                initializeUserUidStatesLocked(userId, snapshot.getPackageStates());
+            }
         }
     }
 
-    private void initializeUserUidStatesLocked(int userId) {
-        ArrayMap<String, ? extends PackageStateInternal> packageStates =
-                getPackageManagerInternal().getPackageStates();
-        for (int j = 0; j < packageStates.size(); j++) {
-            PackageStateInternal packageState = packageStates.valueAt(j);
-            int uid = UserHandle.getUid(userId, packageState.getAppId());
-            UidState uidState = getUidStateLocked(uid, true);
-            String packageName = packageStates.keyAt(j);
-            Ops ops = new Ops(packageName, uidState);
-            uidState.pkgOps.put(packageName, ops);
+    private void initializeUserUidStatesLocked(int userId, Map<String,
+            PackageState> packageStates) {
+        for (Map.Entry<String, PackageState> entry : packageStates.entrySet()) {
+            int appId = entry.getValue().getAppId();
+            String packageName = entry.getKey();
 
-            SparseIntArray packageModes =
-                    mAppOpsCheckingService.getNonDefaultPackageModes(packageName, userId);
-            for (int k = 0; k < packageModes.size(); k++) {
-                int code = packageModes.get(k);
+            initializePackageUidStateLocked(userId, appId, packageName);
+        }
+    }
+
+    /*
+      Be careful not to clear any existing data; only want to add objects that don't already exist.
+     */
+    private void initializePackageUidStateLocked(int userId, int appId, String packageName) {
+        int uid = UserHandle.getUid(userId, appId);
+        UidState uidState = getUidStateLocked(uid, true);
+        Ops ops = uidState.pkgOps.get(packageName);
+        if (ops == null) {
+            ops = new Ops(packageName, uidState);
+            uidState.pkgOps.put(packageName, ops);
+        }
+
+        SparseIntArray packageModes =
+                mAppOpsCheckingService.getNonDefaultPackageModes(packageName, userId);
+        for (int k = 0; k < packageModes.size(); k++) {
+            int code = packageModes.keyAt(k);
+
+            if (ops.indexOfKey(code) < 0) {
                 ops.put(code, new Op(uidState, packageName, code, uid));
             }
-            uidState.evalForegroundOps();
         }
+
+        uidState.evalForegroundOps();
     }
 
     /**
@@ -3649,6 +3674,20 @@
     }
 
     /**
+     * @return {@link PackageManagerLocal}
+     */
+    private @NonNull PackageManagerLocal getPackageManagerLocal() {
+        if (mPackageManagerLocal == null) {
+            mPackageManagerLocal = LocalManagerRegistry.getManager(PackageManagerLocal.class);
+        }
+        if (mPackageManagerLocal == null) {
+            throw new IllegalStateException("PackageManagerLocal not loaded");
+        }
+
+        return mPackageManagerLocal;
+    }
+
+    /**
      * @return {@link UserManagerInternal}
      */
     private @NonNull UserManagerInternal getUserManagerInternal() {
diff --git a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
index 91f58db..35c70fb 100755
--- a/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
+++ b/services/core/java/com/android/server/hdmi/HdmiCecLocalDevice.java
@@ -22,6 +22,7 @@
 import android.hardware.hdmi.HdmiDeviceInfo;
 import android.hardware.hdmi.IHdmiControlCallback;
 import android.hardware.input.InputManager;
+import android.hardware.input.InputManagerGlobal;
 import android.hardware.tv.cec.V1_0.Result;
 import android.hardware.tv.cec.V1_0.SendMessageResult;
 import android.media.AudioManager;
@@ -827,7 +828,7 @@
                         KeyEvent.FLAG_FROM_SYSTEM,
                         InputDevice.SOURCE_HDMI,
                         null);
-        InputManager.getInstance()
+        InputManagerGlobal.getInstance()
                 .injectInputEvent(keyEvent, InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
         keyEvent.recycle();
     }
diff --git a/services/core/java/com/android/server/input/InputShellCommand.java b/services/core/java/com/android/server/input/InputShellCommand.java
index 773dc68..5132591 100644
--- a/services/core/java/com/android/server/input/InputShellCommand.java
+++ b/services/core/java/com/android/server/input/InputShellCommand.java
@@ -42,6 +42,7 @@
 import static java.util.Collections.unmodifiableMap;
 
 import android.hardware.input.InputManager;
+import android.hardware.input.InputManagerGlobal;
 import android.os.ShellCommand;
 import android.os.SystemClock;
 import android.util.ArrayMap;
@@ -109,7 +110,7 @@
     }
 
     private void injectKeyEvent(KeyEvent event) {
-        InputManager.getInstance().injectInputEvent(event,
+        InputManagerGlobal.getInstance().injectInputEvent(event,
                 InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
     }
 
@@ -178,7 +179,7 @@
                 pointerProperties, pointerCoords, DEFAULT_META_STATE, DEFAULT_BUTTON_STATE,
                 DEFAULT_PRECISION_X, DEFAULT_PRECISION_Y, getInputDeviceId(inputSource),
                 DEFAULT_EDGE_FLAGS, inputSource, displayId, DEFAULT_FLAGS);
-        InputManager.getInstance().injectInputEvent(event,
+        InputManagerGlobal.getInstance().injectInputEvent(event,
                 InputManager.INJECT_INPUT_EVENT_MODE_WAIT_FOR_FINISH);
     }
 
@@ -530,7 +531,7 @@
     }
 
     private void injectKeyEventAsync(KeyEvent event) {
-        InputManager.getInstance().injectInputEvent(event,
+        InputManagerGlobal.getInstance().injectInputEvent(event,
                 InputManager.INJECT_INPUT_EVENT_MODE_ASYNC);
     }
 
diff --git a/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java b/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
index 991930f..ec03d9d 100644
--- a/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
+++ b/services/core/java/com/android/server/integrity/AppIntegrityManagerServiceImpl.java
@@ -65,6 +65,7 @@
 import com.android.server.integrity.engine.RuleEvaluationEngine;
 import com.android.server.integrity.model.IntegrityCheckResult;
 import com.android.server.integrity.model.RuleMetadata;
+import com.android.server.pm.PackageManagerServiceUtils;
 import com.android.server.pm.parsing.PackageParser2;
 import com.android.server.pm.pkg.parsing.ParsingPackageUtils;
 
@@ -383,7 +384,7 @@
     private String getInstallerPackageName(Intent intent) {
         String installer =
                 intent.getStringExtra(PackageManager.EXTRA_VERIFICATION_INSTALLER_PACKAGE);
-        if (installer == null) {
+        if (PackageManagerServiceUtils.isInstalledByAdb(installer)) {
             return ADB_INSTALLER;
         }
         int installerUid = intent.getIntExtra(PackageManager.EXTRA_VERIFICATION_INSTALLER_UID, -1);
diff --git a/services/core/java/com/android/server/pm/ApkChecksums.java b/services/core/java/com/android/server/pm/ApkChecksums.java
index 9e93fe0..2e1c72e 100644
--- a/services/core/java/com/android/server/pm/ApkChecksums.java
+++ b/services/core/java/com/android/server/pm/ApkChecksums.java
@@ -47,7 +47,6 @@
 import android.os.SystemClock;
 import android.os.incremental.IncrementalManager;
 import android.os.incremental.IncrementalStorage;
-import android.text.TextUtils;
 import android.util.ArrayMap;
 import android.util.ArraySet;
 import android.util.Pair;
@@ -424,7 +423,7 @@
             @Nullable Certificate[] trustedInstallers,
             Map<Integer, ApkChecksum> checksums,
             @NonNull Injector injector) {
-        if (TextUtils.isEmpty(installerPackageName)) {
+        if (PackageManagerServiceUtils.isInstalledByAdb(installerPackageName)) {
             return;
         }
         if (trustedInstallers != null && trustedInstallers.length == 0) {
diff --git a/services/core/java/com/android/server/pm/BackgroundInstallControlService.java b/services/core/java/com/android/server/pm/BackgroundInstallControlService.java
index 8d40adf..0bb05aa 100644
--- a/services/core/java/com/android/server/pm/BackgroundInstallControlService.java
+++ b/services/core/java/com/android/server/pm/BackgroundInstallControlService.java
@@ -248,7 +248,7 @@
     // ADB sets installerPackageName to null, this creates a loophole to bypass BIC which will be
     // addressed with b/265203007
     private boolean installedByAdb(String initiatingPackageName) {
-        return initiatingPackageName == null;
+        return PackageManagerServiceUtils.isInstalledByAdb(initiatingPackageName);
     }
 
     private boolean wasForegroundInstallation(String installerPackageName,
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java
index 3ac7aa7..5f424ed 100644
--- a/services/core/java/com/android/server/pm/InstallPackageHelper.java
+++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java
@@ -90,6 +90,7 @@
 import static com.android.server.pm.PackageManagerServiceUtils.compareSignatures;
 import static com.android.server.pm.PackageManagerServiceUtils.compressedFileExists;
 import static com.android.server.pm.PackageManagerServiceUtils.deriveAbiOverride;
+import static com.android.server.pm.PackageManagerServiceUtils.isInstalledByAdb;
 import static com.android.server.pm.PackageManagerServiceUtils.logCriticalInfo;
 import static com.android.server.pm.PackageManagerServiceUtils.makeDirRecursive;
 import static com.android.server.pm.SharedUidMigration.BEST_EFFORT;
@@ -333,7 +334,7 @@
         if (installSource != null) {
             // If this is part of a standard install, set the initiating package name, else rely on
             // previous device state.
-            if (installSource.mInitiatingPackageName != null) {
+            if (!isInstalledByAdb(installSource.mInitiatingPackageName)) {
                 final PackageSetting ips = mPm.mSettings.getPackageLPr(
                         installSource.mInitiatingPackageName);
                 if (ips != null) {
diff --git a/services/core/java/com/android/server/pm/PackageInstallerService.java b/services/core/java/com/android/server/pm/PackageInstallerService.java
index adc0b0b..69e92e0 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerService.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerService.java
@@ -19,6 +19,8 @@
 import static android.app.admin.DevicePolicyResources.Strings.Core.PACKAGE_DELETED_BY_DO;
 import static android.os.Process.INVALID_UID;
 
+import static com.android.server.pm.PackageManagerService.SHELL_PACKAGE_NAME;
+
 import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
 import static org.xmlpull.v1.XmlPullParser.START_TAG;
 
@@ -679,7 +681,7 @@
             params.installFlags |= PackageManager.INSTALL_FROM_ADB;
             // adb installs can override the installingPackageName, but not the
             // initiatingPackageName
-            installerPackageName = null;
+            installerPackageName = SHELL_PACKAGE_NAME;
         } else {
             if (callingUid != Process.SYSTEM_UID) {
                 // The supplied installerPackageName must always belong to the calling app.
diff --git a/services/core/java/com/android/server/pm/PackageInstallerSession.java b/services/core/java/com/android/server/pm/PackageInstallerSession.java
index 36aeca1..ea6383e 100644
--- a/services/core/java/com/android/server/pm/PackageInstallerSession.java
+++ b/services/core/java/com/android/server/pm/PackageInstallerSession.java
@@ -51,6 +51,7 @@
 import static com.android.internal.util.XmlUtils.writeUriAttribute;
 import static com.android.server.pm.PackageInstallerService.prepareStageDir;
 import static com.android.server.pm.PackageManagerService.APP_METADATA_FILE_NAME;
+import static com.android.server.pm.PackageManagerServiceUtils.isInstalledByAdb;
 
 import android.Manifest;
 import android.annotation.AnyThread;
@@ -1395,9 +1396,10 @@
             return;
         }
 
+        final String initiatingPackageName = getInstallSource().mInitiatingPackageName;
         final String installerPackageName;
-        if (!TextUtils.isEmpty(getInstallSource().mInitiatingPackageName)) {
-            installerPackageName = getInstallSource().mInitiatingPackageName;
+        if (!isInstalledByAdb(initiatingPackageName)) {
+            installerPackageName = initiatingPackageName;
         } else {
             installerPackageName = getInstallSource().mInstallerPackageName;
         }
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index a6faff8..d630ff4 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -43,6 +43,7 @@
 import static com.android.server.pm.InstructionSets.getDexCodeInstructionSet;
 import static com.android.server.pm.InstructionSets.getPreferredInstructionSet;
 import static com.android.server.pm.PackageManagerServiceUtils.compareSignatures;
+import static com.android.server.pm.PackageManagerServiceUtils.isInstalledByAdb;
 import static com.android.server.pm.PackageManagerServiceUtils.logCriticalInfo;
 
 import android.Manifest;
@@ -351,6 +352,8 @@
     static final boolean DEBUG_ABI_SELECTION = false;
     public static final boolean DEBUG_INSTANT = Build.IS_DEBUGGABLE;
 
+    static final String SHELL_PACKAGE_NAME = "com.android.shell";
+
     static final boolean HIDE_EPHEMERAL_APIS = false;
 
     static final String PRECOMPILE_LAYOUTS = "pm.precompile_layouts";
@@ -1330,10 +1333,11 @@
 
         final InstallSourceInfo installSourceInfo = snapshot.getInstallSourceInfo(packageName,
                 userId);
+        final String initiatingPackageName = installSourceInfo.getInitiatingPackageName();
         final String installerPackageName;
         if (installSourceInfo != null) {
-            if (!TextUtils.isEmpty(installSourceInfo.getInitiatingPackageName())) {
-                installerPackageName = installSourceInfo.getInitiatingPackageName();
+            if (!isInstalledByAdb(initiatingPackageName)) {
+                installerPackageName = initiatingPackageName;
             } else {
                 installerPackageName = installSourceInfo.getInstallingPackageName();
             }
diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
index 3f9a0bc..77e4688 100644
--- a/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
+++ b/services/core/java/com/android/server/pm/PackageManagerServiceUtils.java
@@ -32,6 +32,7 @@
 import static com.android.server.pm.PackageManagerService.DEBUG_PREFERRED;
 import static com.android.server.pm.PackageManagerService.RANDOM_CODEPATH_PREFIX;
 import static com.android.server.pm.PackageManagerService.RANDOM_DIR_PREFIX;
+import static com.android.server.pm.PackageManagerService.SHELL_PACKAGE_NAME;
 import static com.android.server.pm.PackageManagerService.STUB_SUFFIX;
 import static com.android.server.pm.PackageManagerService.TAG;
 
@@ -1516,4 +1517,11 @@
             }
         }
     }
+
+    /**
+     * Check if package name is com.android.shell or is null.
+     */
+    public static boolean isInstalledByAdb(String initiatingPackageName) {
+        return initiatingPackageName == null || SHELL_PACKAGE_NAME.equals(initiatingPackageName);
+    }
 }
diff --git a/services/core/java/com/android/server/power/stats/CpuWakeupStats.java b/services/core/java/com/android/server/power/stats/CpuWakeupStats.java
index b05b662..d55fbc2 100644
--- a/services/core/java/com/android/server/power/stats/CpuWakeupStats.java
+++ b/services/core/java/com/android/server/power/stats/CpuWakeupStats.java
@@ -23,6 +23,7 @@
 import android.content.Context;
 import android.os.Handler;
 import android.os.HandlerExecutor;
+import android.os.Trace;
 import android.os.UserHandle;
 import android.provider.DeviceConfig;
 import android.util.IndentingPrintWriter;
@@ -55,6 +56,7 @@
 
     private static final String SUBSYSTEM_ALARM_STRING = "Alarm";
     private static final String SUBSYSTEM_ALARM_WIFI = "Wifi";
+    private static final String TRACE_TRACK_WAKEUP_ATTRIBUTION = "wakeup_attribution";
     @VisibleForTesting
     static final long WAKEUP_REASON_HALF_WINDOW_MS = 500;
     private static final long WAKEUP_WRITE_DELAY_MS = TimeUnit.MINUTES.toMillis(2);
@@ -94,13 +96,15 @@
         return FrameworkStatsLog.KERNEL_WAKEUP_ATTRIBUTED__REASON__UNKNOWN;
     }
 
-    private synchronized void logWakeupToStatsLog(Wakeup wakeupToLog) {
+    private synchronized void logWakeupAttribution(Wakeup wakeupToLog) {
         if (ArrayUtils.isEmpty(wakeupToLog.mDevices)) {
             FrameworkStatsLog.write(FrameworkStatsLog.KERNEL_WAKEUP_ATTRIBUTED,
                     FrameworkStatsLog.KERNEL_WAKEUP_ATTRIBUTED__TYPE__TYPE_UNKNOWN,
                     FrameworkStatsLog.KERNEL_WAKEUP_ATTRIBUTED__REASON__UNKNOWN,
                     null,
                     wakeupToLog.mElapsedMillis);
+            Trace.instantForTrack(Trace.TRACE_TAG_POWER, TRACE_TRACK_WAKEUP_ATTRIBUTION,
+                    wakeupToLog.mElapsedMillis + " --");
             return;
         }
 
@@ -112,6 +116,9 @@
             Slog.wtf(TAG, "Unexpected null attribution found for " + wakeupToLog);
             return;
         }
+
+        final StringBuilder traceEventBuilder = new StringBuilder();
+
         for (int i = 0; i < wakeupAttribution.size(); i++) {
             final int subsystem = wakeupAttribution.keyAt(i);
             final SparseBooleanArray uidMap = wakeupAttribution.valueAt(i);
@@ -132,7 +139,19 @@
                     subsystemToStatsReason(subsystem),
                     uids,
                     wakeupToLog.mElapsedMillis);
+
+            if (Trace.isTagEnabled(Trace.TRACE_TAG_POWER)) {
+                if (i == 0) {
+                    traceEventBuilder.append(wakeupToLog.mElapsedMillis + " ");
+                }
+                traceEventBuilder.append((subsystemToString(subsystem)));
+                traceEventBuilder.append(":");
+                traceEventBuilder.append(Arrays.toString(uids));
+                traceEventBuilder.append(" ");
+            }
         }
+        Trace.instantForTrack(Trace.TRACE_TAG_POWER, TRACE_TRACK_WAKEUP_ATTRIBUTION,
+                traceEventBuilder.toString().trim());
     }
 
     /** Notes a wakeup reason as reported by SuspendControlService to battery stats. */
@@ -160,7 +179,7 @@
         for (int i = lastIdx; i >= 0; i--) {
             mWakeupAttribution.removeAt(i);
         }
-        mHandler.postDelayed(() -> logWakeupToStatsLog(parsedWakeup), WAKEUP_WRITE_DELAY_MS);
+        mHandler.postDelayed(() -> logWakeupAttribution(parsedWakeup), WAKEUP_WRITE_DELAY_MS);
     }
 
     /** Notes a waking activity that could have potentially woken up the CPU. */
diff --git a/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java b/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java
index 0d4a76e..fb400da 100644
--- a/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java
+++ b/services/core/java/com/android/server/tv/interactive/TvInteractiveAppManagerService.java
@@ -2887,7 +2887,7 @@
         }
 
         @Override
-        public void onRequestScheduleRecording2(String inputId, String requestId, Uri channelUri,
+        public void onRequestScheduleRecording2(String requestId, String inputId, Uri channelUri,
                 long start, long duration, int repeat, Bundle params) {
             synchronized (mLock) {
                 if (DEBUG) {
diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java
index 6bc9fa4..612fc4b 100644
--- a/services/core/java/com/android/server/wm/TaskFragment.java
+++ b/services/core/java/com/android/server/wm/TaskFragment.java
@@ -2553,13 +2553,18 @@
         return task != null && !task.isDragResizing() && super.canStartChangeTransition();
     }
 
-    /** Records the starting bounds of the closing organized TaskFragment. */
-    void setClosingChangingStartBoundsIfNeeded() {
+    /**
+     * Returns {@code true} if the starting bounds of the closing organized TaskFragment is
+     * recorded. Otherwise, return {@code false}.
+     */
+    boolean setClosingChangingStartBoundsIfNeeded() {
         if (isOrganizedTaskFragment() && mDisplayContent != null
                 && mDisplayContent.mChangingContainers.remove(this)) {
             mDisplayContent.mClosingChangingContainers.put(
                     this, new Rect(mSurfaceFreezer.mFreezeBounds));
+            return true;
         }
+        return false;
     }
 
     @Override
diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java
index d42a629..520d06d 100644
--- a/services/core/java/com/android/server/wm/WindowContainer.java
+++ b/services/core/java/com/android/server/wm/WindowContainer.java
@@ -1336,14 +1336,18 @@
         // If we are losing visibility, then a snapshot isn't necessary and we are no-longer
         // part of a change transition.
         if (!visible) {
+            boolean skipUnfreeze = false;
             if (asTaskFragment() != null) {
                 // If the organized TaskFragment is closing while resizing, we want to keep track of
                 // its starting bounds to make sure the animation starts at the correct position.
                 // This should be called before unfreeze() because we record the starting bounds
                 // in SurfaceFreezer.
-                asTaskFragment().setClosingChangingStartBoundsIfNeeded();
+                skipUnfreeze = asTaskFragment().setClosingChangingStartBoundsIfNeeded();
             }
-            mSurfaceFreezer.unfreeze(getSyncTransaction());
+
+            if (!skipUnfreeze) {
+                mSurfaceFreezer.unfreeze(getSyncTransaction());
+            }
         }
         WindowContainer parent = getParent();
         if (parent != null) {
diff --git a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java
index 06fe4f0..687c861 100644
--- a/services/credentials/java/com/android/server/credentials/CreateRequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/CreateRequestSession.java
@@ -16,6 +16,7 @@
 
 package com.android.server.credentials;
 
+import android.Manifest;
 import android.annotation.NonNull;
 import android.annotation.Nullable;
 import android.content.ComponentName;
@@ -31,6 +32,7 @@
 import android.os.CancellationSignal;
 import android.os.RemoteException;
 import android.service.credentials.CallingAppInfo;
+import android.service.credentials.PermissionUtils;
 import android.util.Log;
 
 import com.android.server.credentials.metrics.ApiName;
@@ -88,7 +90,9 @@
             mClientCallback.onPendingIntent(mCredentialManagerUi.createPendingIntent(
                     RequestInfo.newCreateRequestInfo(
                             mRequestId, mClientRequest,
-                            mClientAppInfo.getPackageName()),
+                            mClientAppInfo.getPackageName(),
+                            PermissionUtils.hasPermission(mContext, mClientAppInfo.getPackageName(),
+                                    Manifest.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS)),
                     providerDataList));
         } catch (RemoteException e) {
             mChosenProviderFinalPhaseMetric.setUiReturned(false);
diff --git a/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java b/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java
index 9165901..b746784 100644
--- a/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java
+++ b/services/credentials/java/com/android/server/credentials/PrepareGetRequestSession.java
@@ -227,7 +227,9 @@
                     try {
                         mPrepareGetCredentialCallback.onResponse(
                                 new PrepareGetCredentialResponseInternal(
-                                        false, null, false, false, getUiIntent()));
+                                        false, null,
+                                        false, false,
+                                        getUiIntent()));
                     } catch (Exception e) {
                         Log.e(TAG, "EXCEPTION while mPendingCallback.onResponse", e);
                     }
diff --git a/services/credentials/java/com/android/server/credentials/ProviderGetSession.java b/services/credentials/java/com/android/server/credentials/ProviderGetSession.java
index d17e984..fcc0904 100644
--- a/services/credentials/java/com/android/server/credentials/ProviderGetSession.java
+++ b/services/credentials/java/com/android/server/credentials/ProviderGetSession.java
@@ -95,7 +95,7 @@
         android.credentials.GetCredentialRequest filteredRequest =
                 filterOptions(providerInfo.getCapabilities(),
                         getRequestSession.mClientRequest,
-                        providerInfo.getComponentName());
+                        providerInfo);
         if (filteredRequest != null) {
             Map<String, CredentialOption> beginGetOptionToCredentialOptionMap =
                     new HashMap<>();
@@ -120,7 +120,8 @@
     }
 
     /** Creates a new provider session to be used by the request session. */
-    @Nullable public static ProviderGetSession createNewSession(
+    @Nullable
+    public static ProviderGetSession createNewSession(
             Context context,
             @UserIdInt int userId,
             CredentialProviderInfo providerInfo,
@@ -129,7 +130,7 @@
         android.credentials.GetCredentialRequest filteredRequest =
                 filterOptions(providerInfo.getCapabilities(),
                         getRequestSession.mClientRequest,
-                        providerInfo.getComponentName());
+                        providerInfo);
         if (filteredRequest != null) {
             Map<String, CredentialOption> beginGetOptionToCredentialOptionMap =
                     new HashMap<>();
@@ -178,12 +179,13 @@
     private static android.credentials.GetCredentialRequest filterOptions(
             List<String> providerCapabilities,
             android.credentials.GetCredentialRequest clientRequest,
-            ComponentName componentName
+            CredentialProviderInfo info
     ) {
         List<CredentialOption> filteredOptions = new ArrayList<>();
         for (CredentialOption option : clientRequest.getCredentialOptions()) {
             if (providerCapabilities.contains(option.getType())
-                    && isProviderAllowed(option, componentName)) {
+                    && isProviderAllowed(option, info.getComponentName())
+                    && checkSystemProviderRequirement(option, info.isSystemProvider())) {
                 Log.i(TAG, "In createProviderRequest - capability found : "
                         + option.getType());
                 filteredOptions.add(option);
@@ -212,6 +214,15 @@
         return true;
     }
 
+    private static boolean checkSystemProviderRequirement(CredentialOption option,
+            boolean isSystemProvider) {
+        if (option.isSystemProviderRequired() && !isSystemProvider) {
+            Log.d(TAG, "System provider required, but this service is not a system provider");
+            return false;
+        }
+        return true;
+    }
+
     public ProviderGetSession(Context context,
             CredentialProviderInfo info,
             ProviderInternalCallback<GetCredentialResponse> callbacks,
diff --git a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
index f86e464..44ec26e 100644
--- a/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
+++ b/services/tests/mockingservicestests/src/com/android/server/appop/AppOpsServiceTest.java
@@ -19,9 +19,11 @@
 import static android.app.AppOpsManager.MODE_ERRORED;
 import static android.app.AppOpsManager.OP_COARSE_LOCATION;
 import static android.app.AppOpsManager.OP_FLAGS_ALL;
+import static android.app.AppOpsManager.OP_FLAG_SELF;
 import static android.app.AppOpsManager.OP_READ_SMS;
 import static android.app.AppOpsManager.OP_WIFI_SCAN;
 import static android.app.AppOpsManager.OP_WRITE_SMS;
+import static android.os.UserHandle.getUserId;
 
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doNothing;
 import static com.android.dx.mockito.inline.extended.ExtendedMockito.doReturn;
@@ -33,12 +35,15 @@
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.common.truth.Truth.assertWithMessage;
 
+import static org.junit.Assert.assertNotEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.ArgumentMatchers.nullable;
 
+import android.app.AppOpsManager;
 import android.app.AppOpsManager.OpEntry;
 import android.app.AppOpsManager.PackageOps;
 import android.content.ContentResolver;
@@ -48,14 +53,19 @@
 import android.os.HandlerThread;
 import android.os.Process;
 import android.provider.Settings;
+import android.util.ArrayMap;
 
 import androidx.test.InstrumentationRegistry;
 import androidx.test.filters.SmallTest;
 import androidx.test.runner.AndroidJUnit4;
 
 import com.android.dx.mockito.inline.extended.StaticMockitoSession;
+import com.android.server.LocalManagerRegistry;
 import com.android.server.LocalServices;
+import com.android.server.pm.PackageManagerLocal;
+import com.android.server.pm.UserManagerInternal;
 import com.android.server.pm.pkg.AndroidPackage;
+import com.android.server.pm.pkg.PackageState;
 import com.android.server.pm.pkg.PackageStateInternal;
 
 import org.junit.After;
@@ -67,6 +77,7 @@
 import java.io.File;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Unit tests for AppOpsService. Covers functionality that is difficult to test using CTS tests
@@ -133,6 +144,7 @@
         mMockingSession = mockitoSession()
                 .strictness(Strictness.LENIENT)
                 .spyStatic(LocalServices.class)
+                .spyStatic(LocalManagerRegistry.class)
                 .spyStatic(Settings.Global.class)
                 .startMocking();
 
@@ -152,6 +164,23 @@
         doReturn(mockPackageManagerInternal).when(
                 () -> LocalServices.getService(PackageManagerInternal.class));
 
+        PackageManagerLocal mockPackageManagerLocal = mock(PackageManagerLocal.class);
+        PackageManagerLocal.UnfilteredSnapshot mockUnfilteredSnapshot =
+                mock(PackageManagerLocal.UnfilteredSnapshot.class);
+        PackageState mockMyPS = mock(PackageState.class);
+        ArrayMap<String, PackageState> packageStates = new ArrayMap<>();
+        packageStates.put(sMyPackageName, mockMyPS);
+        when(mockMyPS.getAppId()).thenReturn(mMyUid);
+        when(mockUnfilteredSnapshot.getPackageStates()).thenReturn(packageStates);
+        when(mockPackageManagerLocal.withUnfilteredSnapshot()).thenReturn(mockUnfilteredSnapshot);
+        doReturn(mockPackageManagerLocal).when(
+                () -> LocalManagerRegistry.getManager(PackageManagerLocal.class));
+
+        UserManagerInternal mockUserManagerInternal = mock(UserManagerInternal.class);
+        when(mockUserManagerInternal.getUserIds()).thenReturn(new int[] {getUserId(mMyUid)});
+        doReturn(mockUserManagerInternal).when(
+                () -> LocalServices.getService(UserManagerInternal.class));
+
         // Mock behavior to use specific Settings.Global.APPOP_HISTORY_PARAMETERS
         doReturn(null).when(() -> Settings.Global.getString(any(ContentResolver.class),
                 eq(Settings.Global.APPOP_HISTORY_PARAMETERS)));
@@ -337,6 +366,25 @@
         assertThat(getLoggedOps()).isNull();
     }
 
+    @Test
+    public void testUidStateInitializationDoesntClearState() throws InterruptedException {
+        mAppOpsService.setMode(OP_READ_SMS, mMyUid, sMyPackageName, MODE_ALLOWED);
+        mAppOpsService.noteOperation(OP_READ_SMS, mMyUid, sMyPackageName, null, false, null, false);
+        mAppOpsService.initializeUidStates();
+        List<PackageOps> ops = mAppOpsService.getOpsForPackage(mMyUid, sMyPackageName,
+                new int[]{OP_READ_SMS});
+        assertNotNull(ops);
+        for (int i = 0; i < ops.size(); i++) {
+            List<OpEntry> opEntries = ops.get(i).getOps();
+            for (int j = 0; j < opEntries.size(); j++) {
+                Map<String, AppOpsManager.AttributedOpEntry> attributedOpEntries = opEntries.get(
+                        j).getAttributedOpEntries();
+                assertNotEquals(-1, attributedOpEntries.get(null)
+                        .getLastAccessTime(OP_FLAG_SELF));
+            }
+        }
+    }
+
     private List<PackageOps> getLoggedOps() {
         return mAppOpsService.getOpsForPackage(mMyUid, sMyPackageName, null /* all ops */);
     }
diff --git a/services/tests/servicestests/src/com/android/server/job/BiasSchedulingTest.java b/services/tests/servicestests/src/com/android/server/job/BiasSchedulingTest.java
index 56d01b0..5e7dc33 100644
--- a/services/tests/servicestests/src/com/android/server/job/BiasSchedulingTest.java
+++ b/services/tests/servicestests/src/com/android/server/job/BiasSchedulingTest.java
@@ -21,6 +21,7 @@
 import android.app.job.JobScheduler;
 import android.content.ComponentName;
 import android.content.Context;
+import android.os.DeviceIdleManager;
 import android.test.AndroidTestCase;
 
 import com.android.server.job.MockBiasJobService.TestEnvironment;
@@ -48,6 +49,7 @@
         sJobServiceComponent = new ComponentName(getContext(), MockBiasJobService.class);
         mJobScheduler = (JobScheduler) getContext().getSystemService(Context.JOB_SCHEDULER_SERVICE);
         mJobScheduler.cancelAll();
+        getContext().getSystemService(DeviceIdleManager.class).endIdle("BiasSchedulingTest");
     }
 
     @Override
diff --git a/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java b/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java
index ccf530f..ba91647 100644
--- a/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/BackgroundInstallControlServiceTest.java
@@ -719,8 +719,60 @@
     public void testHandleUsageEvent_packageAddedThroughAdb() throws
             NoSuchFieldException, PackageManager.NameNotFoundException {
         assertNull(mBackgroundInstallControlService.getBackgroundInstalledPackages());
+        // This test is a duplicate of testHandleUsageEvent_packageAddedThroughAdb except the
+        // initiatingPackageName used to be null but is now "com.android.shell". This test ensures
+        // that the behavior is still the same for when the initiatingPackageName is null.
         InstallSourceInfo installSourceInfo = new InstallSourceInfo(
-                /* initiatingPackageName = */ null, //currently ADB installer sets field to null
+                /* initiatingPackageName = */ null,
+                /* initiatingPackageSigningInfo = */ null,
+                /* originatingPackageName = */ null,
+                /* installingPackageName = */ INSTALLER_NAME_1);
+        // b/265203007
+        when(mPackageManager.getInstallSourceInfo(anyString())).thenReturn(installSourceInfo);
+        ApplicationInfo appInfo = mock(ApplicationInfo.class);
+
+        when(mPackageManager.getApplicationInfoAsUser(
+                eq(PACKAGE_NAME_1),
+                any(),
+                anyInt())
+        ).thenReturn(appInfo);
+
+        long createTimestamp = PACKAGE_ADD_TIMESTAMP_1
+                - (System.currentTimeMillis() - SystemClock.uptimeMillis());
+        FieldSetter.setField(appInfo,
+                ApplicationInfo.class.getDeclaredField("createTimestamp"),
+                createTimestamp);
+
+        int uid = USER_ID_1 * UserHandle.PER_USER_RANGE;
+        assertEquals(USER_ID_1, UserHandle.getUserId(uid));
+
+        // The following usage events generation is the same as
+        // testHandleUsageEvent_packageAddedOutsideTimeFrame2 test. The only difference is that
+        // for ADB installs the initiatingPackageName used to be null, despite being detected
+        // as a background install. Since we do not want to treat side-loaded apps as background
+        // install getBackgroundInstalledPackages() is expected to return null
+        doReturn(PackageManager.PERMISSION_GRANTED).when(mPermissionManager).checkPermission(
+                anyString(), anyString(), anyInt());
+        generateUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED,
+                USER_ID_1, INSTALLER_NAME_1, USAGE_EVENT_TIMESTAMP_2);
+        generateUsageEvent(Event.ACTIVITY_STOPPED,
+                USER_ID_1, INSTALLER_NAME_1, USAGE_EVENT_TIMESTAMP_3);
+
+        mPackageListObserver.onPackageAdded(PACKAGE_NAME_1, uid);
+        mTestLooper.dispatchAll();
+
+        var packages = mBackgroundInstallControlService.getBackgroundInstalledPackages();
+        assertNull(packages);
+    }
+    @Test
+    public void testHandleUsageEvent_packageAddedThroughAdb2() throws
+            NoSuchFieldException, PackageManager.NameNotFoundException {
+        assertNull(mBackgroundInstallControlService.getBackgroundInstalledPackages());
+        // This test is a duplicate of testHandleUsageEvent_packageAddedThroughAdb except the
+        // initiatingPackageName used to be null but is now "com.android.shell". This test ensures
+        // that the behavior is still the same after this change.
+        InstallSourceInfo installSourceInfo = new InstallSourceInfo(
+                /* initiatingPackageName = */ "com.android.shell",
                 /* initiatingPackageSigningInfo = */ null,
                 /* originatingPackageName = */ null,
                 /* installingPackageName = */ INSTALLER_NAME_1);
@@ -745,9 +797,9 @@
 
         // The following  usage events generation is the same as
         // testHandleUsageEvent_packageAddedOutsideTimeFrame2 test. The only difference is that
-        // for ADB installs the initiatingPackageName is null, despite being detected as a
-        // background install. Since we do not want to treat side-loaded apps as background install
-        // getBackgroundInstalledPackages() is expected to return null
+        // for ADB installs the initiatingPackageName is com.android.shell, despite being detected
+        // as a background install. Since we do not want to treat side-loaded apps as background
+        // install getBackgroundInstalledPackages() is expected to return null
         doReturn(PackageManager.PERMISSION_GRANTED).when(mPermissionManager).checkPermission(
                 anyString(), anyString(), anyInt());
         generateUsageEvent(UsageEvents.Event.ACTIVITY_RESUMED,
diff --git a/telephony/java/android/telephony/ims/ImsService.java b/telephony/java/android/telephony/ims/ImsService.java
index 33c86d8..4c37f7d 100644
--- a/telephony/java/android/telephony/ims/ImsService.java
+++ b/telephony/java/android/telephony/ims/ImsService.java
@@ -398,7 +398,11 @@
                     ImsService.this.disableImsForSubscription(slotId, subId), "disableIms");
         }
 
-
+        @Override
+        public void resetIms(int slotId, int subId) {
+            executeMethodAsync(() ->
+                    ImsService.this.resetImsInternal(slotId, subId), "resetIms");
+        }
     };
 
     private final IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
@@ -634,6 +638,14 @@
         }
     }
 
+    private void resetImsInternal(int slotId, int subId) {
+        try {
+            resetIms(slotId);
+        } catch (UnsupportedOperationException e) {
+            disableImsForSubscription(slotId, subId);
+        }
+    }
+
     /**
      * When called, provide the {@link ImsFeatureConfiguration} that this {@link ImsService}
      * currently supports. This will trigger the framework to set up the {@link ImsFeature}s that
@@ -751,6 +763,19 @@
     }
 
     /**
+     * The framework has reset IMS for the slot specified. The ImsService must deregister
+     * and release all resources for IMS. After resetIms is called, either
+     * {@link #enableImsForSubscription(int, int)} or {@link #disableImsForSubscription(int, int)}
+     * will be called for the same slotId.
+     *
+     * @param slotId The slot ID that IMS will be reset for.
+     * @hide
+     */
+    public void resetIms(int slotId) {
+        throw new UnsupportedOperationException();
+    }
+
+    /**
      * When called, the framework is requesting that a new {@link MmTelFeature} is created for the
      * specified subscription.
      *
diff --git a/telephony/java/android/telephony/ims/aidl/IImsServiceController.aidl b/telephony/java/android/telephony/ims/aidl/IImsServiceController.aidl
index ae6166f..fdf43a5 100644
--- a/telephony/java/android/telephony/ims/aidl/IImsServiceController.aidl
+++ b/telephony/java/android/telephony/ims/aidl/IImsServiceController.aidl
@@ -47,4 +47,5 @@
     ISipTransport getSipTransport(int slotId);
     oneway void enableIms(int slotId, int subId);
     oneway void disableIms(int slotId, int subId);
+    oneway void resetIms(int slotId, int subId);
 }