Merge branch 'security-aosp-tm-release' into int/13/fp3

* security-aosp-tm-release:
  Update password check for WAPI

Change-Id: I148b6fe28f3f3d5fcf7b731b9f8d25e87b929753
diff --git a/OsuLogin/res/values-en-rCA/strings.xml b/OsuLogin/res/values-en-rCA/strings.xml
index fb4fb1d..e9cd9d4 100644
--- a/OsuLogin/res/values-en-rCA/strings.xml
+++ b/OsuLogin/res/values-en-rCA/strings.xml
@@ -2,6 +2,6 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="app_name" msgid="8761601515208336125">"OsuLogin"</string>
-    <string name="action_bar_label" msgid="5057300678161244769">"Online sign-up"</string>
+    <string name="action_bar_label" msgid="5057300678161244769">"Online Sign Up"</string>
     <string name="sign_up_failed" msgid="7134357507175557124">"Sign-up failed"</string>
 </resources>
diff --git a/apex/apex_manifest.json b/apex/apex_manifest.json
index 1708bbe..193e358 100644
--- a/apex/apex_manifest.json
+++ b/apex/apex_manifest.json
@@ -1,5 +1,5 @@
 {
   "name": "com.android.wifi",
-  "version": 339990000
+  "version": 330400000
 }
 
diff --git a/framework/TEST_MAPPING b/framework/TEST_MAPPING
index 1eb3a9a..40a89de 100644
--- a/framework/TEST_MAPPING
+++ b/framework/TEST_MAPPING
@@ -3,7 +3,19 @@
     {
       // run service unit tests for API changes (since API changes can break service, but not the
       // other way around)
-      "name": "FrameworksWifiTests"
+      "name": "FrameworksWifiTests",
+      // TODO(b/275744125): should remove this when we find a better way to avoid test failure.
+      "options": [
+        {
+          "exclude-filter": "com.android.server.wifi.WakeupControllerTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.WifiNetworkSelectorTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.scanner.WifiScanningServiceTest"
+        }
+      ]
     }
   ],
   "presubmit": [
@@ -16,7 +28,18 @@
       "name": "FrameworksWifiApiTests[com.google.android.wifi.apex]"
     },
     {
-      "name": "FrameworksWifiTests[com.google.android.wifi.apex]"
+      "name": "FrameworksWifiTests[com.google.android.wifi.apex]",
+      "options": [
+        {
+          "exclude-filter": "com.android.server.wifi.WakeupControllerTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.WifiNetworkSelectorTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.scanner.WifiScanningServiceTest"
+        }
+      ]
     }
   ]
 }
diff --git a/framework/java/android/net/wifi/WifiSsid.java b/framework/java/android/net/wifi/WifiSsid.java
index 31ec386..58c9cda 100644
--- a/framework/java/android/net/wifi/WifiSsid.java
+++ b/framework/java/android/net/wifi/WifiSsid.java
@@ -44,16 +44,11 @@
      * Creates a WifiSsid from the raw bytes. If the byte array is null, creates an empty WifiSsid
      * object which will return an empty byte array and empty text.
      * @param bytes the SSID
-     * @throws IllegalArgumentException if the raw byte array is longer than 32 bytes.
      */
     private WifiSsid(@Nullable byte[] bytes) {
         if (bytes == null) {
             bytes = new byte[0];
         }
-        if (bytes.length > 32) {
-            throw new IllegalArgumentException(
-                    "Max SSID length is 32 bytes, but received " + bytes.length + " bytes!");
-        }
         mBytes = bytes;
         // Duplicate the bytes to #octets for legacy apps.
         octets.write(bytes, 0, bytes.length);
@@ -62,7 +57,6 @@
     /**
      * Create a WifiSsid from the raw bytes. If the byte array is null, return an empty WifiSsid
      * object which will return an empty byte array and empty text.
-     * @throws IllegalArgumentException if the raw byte array is longer than 32 bytes.
      */
     @NonNull
     public static WifiSsid fromBytes(@Nullable byte[] bytes) {
@@ -81,7 +75,6 @@
     /**
      * Create a UTF-8 WifiSsid from unquoted plaintext. If the text is null, return an
      * empty WifiSsid object which will return an empty byte array and empty text.
-     * @throws IllegalArgumentException if the encoded UTF-8 byte array is longer than 32 bytes.
      * @hide
      */
     @NonNull
@@ -108,8 +101,7 @@
      * If the string is null, return an empty WifiSsid object which will return an empty byte array
      * and empty text.
      * @throws IllegalArgumentException if the string is unquoted but not hexadecimal,
-     *                                  if the hexadecimal string is odd-length,
-     *                                  or if the encoded byte array is longer than 32 bytes.
+     *                                  or if the hexadecimal string is odd-length.
      * @hide
      */
     @NonNull
diff --git a/framework/java/android/net/wifi/p2p/WifiP2pManager.java b/framework/java/android/net/wifi/p2p/WifiP2pManager.java
index 939495a..2031dfa 100644
--- a/framework/java/android/net/wifi/p2p/WifiP2pManager.java
+++ b/framework/java/android/net/wifi/p2p/WifiP2pManager.java
@@ -220,6 +220,13 @@
             "android.net.wifi.p2p.EXTRA_PARAM_KEY_INFORMATION_ELEMENT_LIST";
 
     /**
+     * Key for transporting a bundle of extra information.
+     * @hide
+     */
+    public static final String EXTRA_PARAM_KEY_BUNDLE =
+            "android.net.wifi.p2p.EXTRA_PARAM_KEY_BUNDLE";
+
+    /**
      * Broadcast intent action to indicate whether Wi-Fi p2p is enabled or disabled. An
      * extra {@link #EXTRA_WIFI_STATE} provides the state information as int.
      *
@@ -1524,7 +1531,7 @@
      */
     public Channel initialize(Context srcContext, Looper srcLooper, ChannelListener listener) {
         Binder binder = new Binder();
-        Bundle extras = prepareExtrasBundle(srcContext);
+        Bundle extras = prepareExtrasBundleWithAttributionSource(srcContext);
         int displayId = Display.DEFAULT_DISPLAY;
         try {
             Display display = srcContext.getDisplay();
@@ -1551,13 +1558,29 @@
                 null);
     }
 
+    private Message prepareMessage(int what, int arg1, int arg2, Bundle extras, Context context) {
+        Message msg = Message.obtain();
+        msg.what = what;
+        msg.arg1 = arg1;
+        msg.arg2 = arg2;
+        msg.obj = maybeGetAttributionSource(context);
+        msg.getData().putBundle(EXTRA_PARAM_KEY_BUNDLE, extras);
+        return msg;
+    }
+
     private Bundle prepareExtrasBundle(Channel c) {
-        Bundle b = prepareExtrasBundle(c.mContext);
+        Bundle b = new Bundle();
         b.putBinder(CALLING_BINDER, c.getBinder());
         return b;
     }
 
-    private Bundle prepareExtrasBundle(Context context) {
+    /**
+     * Note, this should only be used for Binder calls.
+     * Unparcelling an AttributionSource will throw an exception when done outside of a Binder
+     * transaction. So don't use this with AsyncChannel since it will throw exception when
+     * unparcelling.
+     */
+    private Bundle prepareExtrasBundleWithAttributionSource(Context context) {
         Bundle bundle = new Bundle();
         if (SdkLevel.isAtLeastS()) {
             bundle.putParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE,
@@ -1566,6 +1589,10 @@
         return bundle;
     }
 
+    private Object maybeGetAttributionSource(Context context) {
+        return SdkLevel.isAtLeastS() ? context.getAttributionSource() : null;
+    }
+
     private Channel initializeChannel(Context srcContext, Looper srcLooper,
             ChannelListener listener, Messenger messenger, Binder binder) {
         if (messenger == null) return null;
@@ -1577,12 +1604,9 @@
             bundle.putString(CALLING_PACKAGE, c.mContext.getOpPackageName());
             bundle.putString(CALLING_FEATURE_ID, c.mContext.getAttributionTag());
             bundle.putBinder(CALLING_BINDER, binder);
-            if (SdkLevel.isAtLeastT()) {
-                bundle.putParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE,
-                        c.mContext.getAttributionSource());
-            }
-            c.mAsyncChannel.sendMessage(UPDATE_CHANNEL_INFO, 0,
-                    c.putListener(null), bundle);
+            Message msg = prepareMessage(UPDATE_CHANNEL_INFO, 0, c.putListener(null),
+                    bundle, c.mContext);
+            c.mAsyncChannel.sendMessage(msg);
             return c;
         } else {
             c.close();
@@ -1625,8 +1649,8 @@
     public void discoverPeers(Channel channel, ActionListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(DISCOVER_PEERS, WIFI_P2P_SCAN_FULL,
-                channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(DISCOVER_PEERS, WIFI_P2P_SCAN_FULL,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -1670,8 +1694,8 @@
         }
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(DISCOVER_PEERS, WIFI_P2P_SCAN_SOCIAL,
-                channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(DISCOVER_PEERS, WIFI_P2P_SCAN_SOCIAL,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -1720,8 +1744,8 @@
         }
         Bundle extras = prepareExtrasBundle(channel);
         extras.putInt(EXTRA_PARAM_KEY_PEER_DISCOVERY_FREQ, frequencyMhz);
-        channel.mAsyncChannel.sendMessage(DISCOVER_PEERS, WIFI_P2P_SCAN_SINGLE_FREQ,
-                channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(DISCOVER_PEERS, WIFI_P2P_SCAN_SINGLE_FREQ,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -1785,7 +1809,8 @@
         checkP2pConfig(config);
         Bundle extras = prepareExtrasBundle(channel);
         extras.putParcelable(EXTRA_PARAM_KEY_CONFIG, config);
-        channel.mAsyncChannel.sendMessage(CONNECT, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(CONNECT, 0, channel.putListener(listener),
+                extras, channel.mContext));
     }
 
     /**
@@ -1839,8 +1864,9 @@
     public void createGroup(Channel channel, ActionListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(CREATE_GROUP, WifiP2pGroup.NETWORK_ID_PERSISTENT,
-                channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(CREATE_GROUP,
+                WifiP2pGroup.NETWORK_ID_PERSISTENT, channel.putListener(listener), extras,
+                channel.mContext));
     }
 
     /**
@@ -1886,8 +1912,8 @@
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
         extras.putParcelable(EXTRA_PARAM_KEY_CONFIG, config);
-        channel.mAsyncChannel.sendMessage(CREATE_GROUP, 0,
-                channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(CREATE_GROUP, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -1934,7 +1960,8 @@
     public void startListening(@NonNull Channel channel, @Nullable ActionListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(START_LISTEN, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(START_LISTEN, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -2038,8 +2065,8 @@
         checkServiceInfo(servInfo);
         Bundle extras = prepareExtrasBundle(channel);
         extras.putParcelable(EXTRA_PARAM_KEY_SERVICE_INFO, servInfo);
-        channel.mAsyncChannel.sendMessage(
-                ADD_LOCAL_SERVICE, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(ADD_LOCAL_SERVICE, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -2162,8 +2189,8 @@
     public void discoverServices(Channel channel, ActionListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(
-                DISCOVER_SERVICES, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(DISCOVER_SERVICES, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -2252,7 +2279,8 @@
     public void requestPeers(Channel channel, PeerListListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(REQUEST_PEERS, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(REQUEST_PEERS, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -2289,8 +2317,8 @@
     public void requestGroupInfo(Channel channel, GroupInfoListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(
-                REQUEST_GROUP_INFO, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(REQUEST_GROUP_INFO, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /**
@@ -2436,8 +2464,8 @@
             @Nullable PersistentGroupInfoListener listener) {
         checkChannel(channel);
         Bundle extras = prepareExtrasBundle(channel);
-        channel.mAsyncChannel.sendMessage(
-                REQUEST_PERSISTENT_GROUP_INFO, 0, channel.putListener(listener), extras);
+        channel.mAsyncChannel.sendMessage(prepareMessage(REQUEST_PERSISTENT_GROUP_INFO, 0,
+                channel.putListener(listener), extras, channel.mContext));
     }
 
     /** @hide */
@@ -2800,7 +2828,8 @@
         if (listener == null) throw new IllegalArgumentException("This listener cannot be null.");
 
         Bundle extras = prepareExtrasBundle(c);
-        c.mAsyncChannel.sendMessage(REQUEST_DEVICE_INFO, 0, c.putListener(listener), extras);
+        c.mAsyncChannel.sendMessage(prepareMessage(REQUEST_DEVICE_INFO, 0,
+                c.putListener(listener), extras, c.mContext));
     }
 
     /**
@@ -2842,7 +2871,8 @@
 
         Bundle extras = prepareExtrasBundle(c);
         extras.putParcelable(EXTRA_PARAM_KEY_PEER_ADDRESS, deviceAddress);
-        c.mAsyncChannel.sendMessage(ADD_EXTERNAL_APPROVER, 0, c.putListener(listener), extras);
+        c.mAsyncChannel.sendMessage(prepareMessage(ADD_EXTERNAL_APPROVER, 0,
+                c.putListener(listener), extras, c.mContext));
     }
 
     /**
@@ -2867,7 +2897,8 @@
 
         Bundle extras = prepareExtrasBundle(c);
         extras.putParcelable(EXTRA_PARAM_KEY_PEER_ADDRESS, deviceAddress);
-        c.mAsyncChannel.sendMessage(REMOVE_EXTERNAL_APPROVER, 0, c.putListener(listener), extras);
+        c.mAsyncChannel.sendMessage(prepareMessage(REMOVE_EXTERNAL_APPROVER, 0,
+                c.putListener(listener), extras, c.mContext));
     }
 
     /**
@@ -2893,8 +2924,8 @@
 
         Bundle extras = prepareExtrasBundle(c);
         extras.putParcelable(EXTRA_PARAM_KEY_PEER_ADDRESS, deviceAddress);
-        c.mAsyncChannel.sendMessage(SET_CONNECTION_REQUEST_RESULT,
-                result, c.putListener(listener), extras);
+        c.mAsyncChannel.sendMessage(prepareMessage(SET_CONNECTION_REQUEST_RESULT,
+                result, c.putListener(listener), extras, c.mContext));
     }
 
     /**
@@ -2926,8 +2957,8 @@
         Bundle extras = prepareExtrasBundle(c);
         extras.putParcelable(EXTRA_PARAM_KEY_PEER_ADDRESS, deviceAddress);
         extras.putString(EXTRA_PARAM_KEY_WPS_PIN, pin);
-        c.mAsyncChannel.sendMessage(SET_CONNECTION_REQUEST_RESULT,
-                result, c.putListener(listener), extras);
+        c.mAsyncChannel.sendMessage(prepareMessage(SET_CONNECTION_REQUEST_RESULT,
+                result, c.putListener(listener), extras, c.mContext));
     }
 
     /**
@@ -2986,8 +3017,8 @@
         Bundle extras = prepareExtrasBundle(c);
         extras.putParcelableArrayList(EXTRA_PARAM_KEY_INFORMATION_ELEMENT_LIST,
                 new ArrayList<>(vendorElements));
-        c.mAsyncChannel.sendMessage(SET_VENDOR_ELEMENTS, 0,
-                c.putListener(listener), extras);
+        c.mAsyncChannel.sendMessage(prepareMessage(SET_VENDOR_ELEMENTS, 0,
+                c.putListener(listener), extras, c.mContext));
     }
 
     /**
diff --git a/framework/tests/src/android/net/wifi/WifiSsidTest.java b/framework/tests/src/android/net/wifi/WifiSsidTest.java
index 54e12bf..47e5484 100644
--- a/framework/tests/src/android/net/wifi/WifiSsidTest.java
+++ b/framework/tests/src/android/net/wifi/WifiSsidTest.java
@@ -78,13 +78,6 @@
         assertThat(wifiSsidNull.getBytes()).isEmpty();
         assertThat(wifiSsidNull.getUtf8Text().toString()).isEmpty();
         assertThat(wifiSsidNull.toString()).isEmpty();
-
-        try {
-            WifiSsid.fromBytes(new byte[33]);
-            fail("Expected IllegalArgumentException for byte array length greater than 32.");
-        } catch (IllegalArgumentException e) {
-            // Success
-        }
     }
 
     /**
@@ -109,13 +102,6 @@
         assertThat(wifiSsidNull.getBytes()).isEmpty();
         assertThat(wifiSsidNull.getUtf8Text().toString()).isEmpty();
         assertThat(wifiSsidNull.toString()).isEmpty();
-
-        try {
-            WifiSsid.fromUtf8Text("This is an SSID that is much longer than 32 bytes");
-            fail("Expected IllegalArgumentException for byte array length greater than 32.");
-        } catch (IllegalArgumentException e) {
-            // Success
-        }
     }
 
     /**
@@ -154,21 +140,6 @@
         assertThat(wifiSsidNull.toString()).isEmpty();
 
         try {
-            WifiSsid.fromString("\"This is an SSID that is much longer than 32 bytes\"");
-            fail("Expected IllegalArgumentException for byte array length greater than 32.");
-        } catch (IllegalArgumentException e) {
-            // Success
-        }
-
-        try {
-            WifiSsid.fromString(
-                    "0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789AB");
-            fail("Expected IllegalArgumentException for byte array length greater than 32.");
-        } catch (IllegalArgumentException e) {
-            // Success
-        }
-
-        try {
             WifiSsid.fromString("0123456");
             fail("Expected IllegalArgumentException for odd-length hexadecimal string");
         } catch (IllegalArgumentException e) {
diff --git a/framework/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java b/framework/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java
index 5450e3d..4d80cf4 100644
--- a/framework/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java
+++ b/framework/tests/src/android/net/wifi/hotspot2/PasspointConfigurationTest.java
@@ -17,6 +17,9 @@
 package android.net.wifi.hotspot2;
 
 import static android.net.wifi.WifiConfiguration.METERED_OVERRIDE_NONE;
+import static android.net.wifi.hotspot2.PasspointConfiguration.MAX_NUMBER_OF_ENTRIES;
+import static android.net.wifi.hotspot2.PasspointConfiguration.MAX_NUMBER_OF_OI;
+import static android.net.wifi.hotspot2.PasspointConfiguration.MAX_STRING_LENGTH;
 
 import static junit.framework.Assert.assertNull;
 
@@ -36,6 +39,8 @@
 
 import com.android.modules.utils.build.SdkLevel;
 
+import com.google.common.base.Strings;
+
 import org.junit.Test;
 
 import java.nio.charset.StandardCharsets;
@@ -44,8 +49,10 @@
 import java.security.PrivateKey;
 import java.security.cert.CertificateEncodingException;
 import java.security.cert.X509Certificate;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -674,4 +681,72 @@
         assertEquals(SUBSCRIPTION_EXPIRATION_TIME_MS,
                 passpointConfiguration.getSubscriptionExpirationTimeMillis());
     }
+
+    @Test
+    public void testValidatePasspointConfig() {
+        PasspointConfiguration passpointConfiguration = new PasspointConfiguration();
+        HomeSp homeSp = new HomeSp();
+        homeSp.setFqdn(Strings.repeat("A", MAX_STRING_LENGTH));
+        homeSp.setFriendlyName(Strings.repeat("A", MAX_STRING_LENGTH));
+        List<String> homePartnersList = new ArrayList<>();
+        for (int h = 0; h < MAX_NUMBER_OF_ENTRIES; h++) {
+            homePartnersList.add(Strings.repeat("A", MAX_STRING_LENGTH));
+        }
+        homeSp.setOtherHomePartnersList(homePartnersList);
+        homeSp.setIconUrl(Strings.repeat("A", MAX_URL_BYTES));
+
+        Credential credential = new Credential();
+        credential.setRealm("example.com");
+        Credential.UserCredential userCredential = new Credential.UserCredential();
+        userCredential.setUsername("username");
+        userCredential.setPassword("password");
+        userCredential.setEapType(21);
+        userCredential.setNonEapInnerMethod("MS-CHAP");
+        credential.setUserCredential(userCredential);
+        passpointConfiguration.setCredential(credential);
+        passpointConfiguration.setHomeSp(homeSp);
+        assertTrue(passpointConfiguration.validate());
+
+        // FQDN exceed the limit
+        homeSp.setFqdn(Strings.repeat("A", MAX_STRING_LENGTH + 1));
+        passpointConfiguration.setHomeSp(homeSp);
+        assertFalse(passpointConfiguration.validate());
+        homeSp.setFqdn(Strings.repeat("A", MAX_STRING_LENGTH));
+        // Friendly name exceed the limit
+        homeSp.setFriendlyName(Strings.repeat("A", MAX_STRING_LENGTH + 1));
+        passpointConfiguration.setHomeSp(homeSp);
+        assertFalse(passpointConfiguration.validate());
+        homeSp.setFriendlyName(Strings.repeat("A", MAX_STRING_LENGTH));
+        // Icon url exceed the limit
+        homeSp.setIconUrl(Strings.repeat("A", MAX_URL_BYTES + 1));
+        passpointConfiguration.setHomeSp(homeSp);
+        assertFalse(passpointConfiguration.validate());
+        homeSp.setIconUrl(Strings.repeat("A", MAX_URL_BYTES));
+        // AAA service trusted names exceed the limit
+        String[] aaaServerTrustedNames = new String[MAX_NUMBER_OF_ENTRIES + 1];
+        passpointConfiguration.setAaaServerTrustedNames(aaaServerTrustedNames);
+        passpointConfiguration.setHomeSp(homeSp);
+        assertFalse(passpointConfiguration.validate());
+        passpointConfiguration.setAaaServerTrustedNames(null);
+        // Match all OIs exceed the limit
+        long[] ois = new long[MAX_NUMBER_OF_OI + 1];
+        homeSp.setMatchAllOis(ois);
+        assertFalse(homeSp.validate());
+        homeSp.setMatchAllOis(null);
+        // Match any OIs exceed the limit
+        homeSp.setMatchAnyOis(ois);
+        assertFalse(homeSp.validate());
+        homeSp.setMatchAnyOis(null);
+        // Roaming Consortium OIs exceed the limit
+        homeSp.setRoamingConsortiumOis(ois);
+        assertFalse(homeSp.validate());
+        homeSp.setRoamingConsortiumOis(null);
+        // ServiceFriendlyNames exceed the limit
+        HashMap<String, String> friendlyNames = new HashMap<>();
+        for (int i = 0; i < MAX_NUMBER_OF_ENTRIES + 1; i++) {
+            friendlyNames.put(String.valueOf(i), String.valueOf(i));
+        }
+        passpointConfiguration.setServiceFriendlyNames(friendlyNames);
+        assertFalse(passpointConfiguration.validate());
+    }
 }
diff --git a/framework/tests/src/android/net/wifi/hotspot2/pps/PolicyTest.java b/framework/tests/src/android/net/wifi/hotspot2/pps/PolicyTest.java
index 980b199..bd6864b 100644
--- a/framework/tests/src/android/net/wifi/hotspot2/pps/PolicyTest.java
+++ b/framework/tests/src/android/net/wifi/hotspot2/pps/PolicyTest.java
@@ -16,6 +16,8 @@
 
 package android.net.wifi.hotspot2.pps;
 
+import static android.net.wifi.hotspot2.PasspointConfiguration.MAX_NUMBER_OF_ENTRIES;
+
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
@@ -309,4 +311,32 @@
         policy.setExcludedSsidList(excludedSsidList);
         assertFalse(policy.validate());
     }
+
+    @Test
+    public void validatePolicyWithInvalidRequiredProtoPortMap() {
+        Policy policy = createPolicy();
+        Map<Integer, String> requiredProtoPortMap = new HashMap<>();
+        requiredProtoPortMap.put(-1, "23,342,123");
+        policy.setRequiredProtoPortMap(requiredProtoPortMap);
+        assertFalse(policy.validate());
+        requiredProtoPortMap.put(256, "23,342,123");
+        policy.setRequiredProtoPortMap(requiredProtoPortMap);
+        assertFalse(policy.validate());
+    }
+
+    @Test
+    public void validatePolicyWithPreferRoamingPartner() {
+        Policy policy = createPolicy();
+        List<Policy.RoamingPartner> preferredRoamingPartnerList = new ArrayList<>();
+        for (int i = 0; i < MAX_NUMBER_OF_ENTRIES + 1; i++) {
+            Policy.RoamingPartner partner = new Policy.RoamingPartner();
+            partner.setFqdn("partner1.com");
+            partner.setFqdnExactMatch(true);
+            partner.setPriority(12);
+            partner.setCountries("us,jp");
+            preferredRoamingPartnerList.add(partner);
+        }
+        policy.setPreferredRoamingPartnerList(preferredRoamingPartnerList);
+        assertFalse(policy.validate());
+    }
 }
diff --git a/service/ServiceWifiResources/res/values-af/strings.xml b/service/ServiceWifiResources/res/values-af/strings.xml
index a9431f9..9402fac 100644
--- a/service/ServiceWifiResources/res/values-af/strings.xml
+++ b/service/ServiceWifiResources/res/values-af/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Bedienernaam:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Uitreikernaam:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisasie:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikaatverstryking:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-vingerafdruk:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontak:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Handtekening:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Netwerk moet geverifieer word"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Gaan netwerkbesonderhede vir <xliff:g id="SSID">%1$s</xliff:g> na voordat jy koppel. Tik om voort te gaan."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Kon nie sertifikaat installeer nie."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Kan nie aan <xliff:g id="VALUE">%1$s</xliff:g> koppel nie"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Die bedienersertifikaatketting is ongeldig."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Kan nie hierdie netwerk verifieer nie"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Koppel in elk geval"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Moenie koppel nie"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Bly gekoppel"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Ontkoppel nou"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Die netwerk <xliff:g id="SSID">%1$s</xliff:g> kort \'n sertifikaat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Vind uit hoe om sertifikate by te voeg"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Kan nie hierdie netwerk verifieer nie"</string>
diff --git a/service/ServiceWifiResources/res/values-am/strings.xml b/service/ServiceWifiResources/res/values-am/strings.xml
index 7a2bca5..ea60fed 100644
--- a/service/ServiceWifiResources/res/values-am/strings.xml
+++ b/service/ServiceWifiResources/res/values-am/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"የአገልጋይ ስም፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"የሰጪ ስም፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ድርጅት፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"የእውቅና ማረጋገጫ አገልግሎት ማብቂያ ጊዜ፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 የጣት አሻራ፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"እውቂያ፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ፊርማ፦\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"አውታረ መረብ መረጋገጥ አለበት"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ከማገናኘትዎ በፊት የአውታረ መረብ ዝርዝሮችን ለ<xliff:g id="SSID">%1$s</xliff:g> ይገምግሙ። ለመቀጠል መታ ያድርጉ።"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"የእውቅና ማረጋገጫ መጫን አልተሳካም።"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"ከ<xliff:g id="VALUE">%1$s</xliff:g> ጋር መገናኘት አልተቻለም"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"የአገልጋይ እውቅና ማረጋገጫ ሰንሰለቱ ልክ አይደለም።"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"እሺ"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ይህን አውታረ መረብ ማረጋገጥ አልተቻለም"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ለማንኛውም ተገናኝ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"አታገናኝ"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"እንደተገናኙ አቆይ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"አሁን አቋርጥ"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"አውታረ መረቡ <xliff:g id="SSID">%1$s</xliff:g> የእውቅና ማረጋገጫ ይጎድለዋል።"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"የእውቅና ማረጋገጫዎችን እንዴት ማከል እንደሚችሉ ይወቁ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ይህን አውታረ መረብ ማረጋገጥ አልተቻለም"</string>
diff --git a/service/ServiceWifiResources/res/values-ar/strings.xml b/service/ServiceWifiResources/res/values-ar/strings.xml
index bd8cff9..e5c529e 100644
--- a/service/ServiceWifiResources/res/values-ar/strings.xml
+++ b/service/ServiceWifiResources/res/values-ar/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"اسم الخادم:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"اسم جهة الإصدار:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"المؤسسة:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"تاريخ انتهاء صلاحية الشهادة:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"‏بصمة إصبع SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"التواصل:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"التوقيع:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"يجب التحقّق من الشبكة."</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"يُرجى مراجعة تفاصيل الشبكة لـ <xliff:g id="SSID">%1$s</xliff:g> قبل التوصيل. انقر للمتابعة."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"تعذّر تثبيت الشهادة."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"يتعذّر الاتصال بشبكة \"<xliff:g id="VALUE">%1$s</xliff:g>\"."</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"سلسلة شهادات الخادم غير صالحة."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"حسنًا"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"يتعذّر التحقّق من هذه الشبكة."</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"الاتصال على أي حال"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"عدم الاتصال"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"البقاء على اتصال"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"إلغاء الاتصال الآن"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"تفتقد هذه الشبكة <xliff:g id="SSID">%1$s</xliff:g> شهادة."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"تعرّف على كيفية إضافة شهادات."</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"يتعذّر التحقّق من هذه الشبكة."</string>
diff --git a/service/ServiceWifiResources/res/values-as/strings.xml b/service/ServiceWifiResources/res/values-as/strings.xml
index 9de7a10..20e5fdf 100644
--- a/service/ServiceWifiResources/res/values-as/strings.xml
+++ b/service/ServiceWifiResources/res/values-as/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ছাৰ্ভাৰৰ নাম:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"জাৰিকৰ্তাৰ নাম:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"প্ৰতিষ্ঠান:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"প্ৰমাণপত্ৰৰ ম্যাদ উকলাৰ সময়:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ফিংগাৰপ্ৰিণ্ট:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"ইয়াৰ সৈতে যোগাযোগ কৰক:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"চহী:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"নেটৱৰ্ক সত্যাপন কৰাৰ আৱশ্যক"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"সংযোগ কৰাৰ পূৰ্বে <xliff:g id="SSID">%1$s</xliff:g>ৰ নেটৱৰ্কৰ তথ্য পৰ্যালোচনা কৰক। অব্যাহত ৰাখিবলৈ টিপক।"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"প্ৰমাণপত্ৰ ইনষ্টল কৰাত বিফল হ’ল।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g>ৰ সৈতে সংযোগ কৰিব নোৱাৰি"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"ছাৰ্ভাৰৰ প্ৰমাণপত্ৰৰ শৃংখলাটো অমান্য।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ঠিক আছে"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"এই নেটৱৰ্কটো সত্যাপন কৰিব নোৱাৰি"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"তথাপি সংযোগ কৰক"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"সংযোগ নকৰিব"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"সংযুক্ত হৈ থাকক"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"এতিয়া সংযোগ বিচ্ছিন্ন কৰক"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"নেটৱৰ্ক <xliff:g id="SSID">%1$s</xliff:g>টোত এখন প্ৰমাণপত্ৰ নাই।"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"কেনেকৈ প্ৰমাণপত্ৰ যোগ দিব সেয়া জানক"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"এই নেটৱৰ্কটো সত্যাপন কৰিব নোৱাৰি"</string>
diff --git a/service/ServiceWifiResources/res/values-az/strings.xml b/service/ServiceWifiResources/res/values-az/strings.xml
index 5a307dc..713011d 100644
--- a/service/ServiceWifiResources/res/values-az/strings.xml
+++ b/service/ServiceWifiResources/res/values-az/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Serverin adı:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Təminatçının Adı:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Təşkilat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikatın vaxtı bitir:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 Barmaq izi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"İmza:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Şəbəkə doğrulanmalıdır"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Qoşulmazdan əvvəl <xliff:g id="SSID">%1$s</xliff:g> üçün şəbəkə detallarını nəzərdən keçirin. Davam etmək üçün toxunun."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Sertifikatı quraşdırmaq alınmadı."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> şəbəkəsinə qoşulmaq mümkün deyil"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Server sertifikat zənciri etibarsızdır."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Bu şəbəkəni doğrulamaq olmur"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"İstənilən halda qoşulun"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Qoşulmayın"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Qoşulu qalın"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"İndi bağlantını kəsin"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> şəbəkəsində sertifikat yoxdur."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Sertifikat əlavə etmək qaydasını öyrənin"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Bu şəbəkəni doğrulamaq olmur"</string>
diff --git a/service/ServiceWifiResources/res/values-b+sr+Latn/strings.xml b/service/ServiceWifiResources/res/values-b+sr+Latn/strings.xml
index 35c7ec9..87e968e 100644
--- a/service/ServiceWifiResources/res/values-b+sr+Latn/strings.xml
+++ b/service/ServiceWifiResources/res/values-b+sr+Latn/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Naziv servera:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Naziv izdavaoca:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizacija:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Istek sertifikata:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 otisak prsta:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Potpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Mreža mora da se verifikuje"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Pregledajte pojedinosti mreže <xliff:g id="SSID">%1$s</xliff:g> pre povezivanja. Dodirnite da biste nastavili."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Instalacija sertifikata nije uspela."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Povezivanje na mrežu <xliff:g id="VALUE">%1$s</xliff:g> nije uspelo"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Lanac sertifikata za server je nevažeći."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Potvrdi"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ne možemo da verifikujemo ovu mrežu"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Ipak poveži"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ne povezuj"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Ne prekidaj vezu"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Prekini vezu odmah"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> mreže nema sertifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Saznajte kako da dodate sertifikate"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ne možemo da verifikujemo ovu mrežu"</string>
diff --git a/service/ServiceWifiResources/res/values-be/strings.xml b/service/ServiceWifiResources/res/values-be/strings.xml
index f7ad9e8..6c48f9e 100644
--- a/service/ServiceWifiResources/res/values-be/strings.xml
+++ b/service/ServiceWifiResources/res/values-be/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Сервер:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Эмітэнт:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Арганізацыя:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Сканчэнне дзеяння сертыфіката:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Адбіткі пальцаў SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Кантакт:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Подпіс:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Трэба спраўдзіць сетку"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Перад падключэннем праглядзіце звесткі пра сетку <xliff:g id="SSID">%1$s</xliff:g>. Націсніце, каб працягнуць."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Збой усталёўкі сертыфіката."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Не ўдалося падключыцца да сеткі \"<xliff:g id="VALUE">%1$s</xliff:g>\""</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Ланцужок сертыфікатаў сервера несапраўдны."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ОК"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Не ўдалося спраўдзіць гэту сетку"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Усё роўна падключыцца"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Не падключацца"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Не адключацца"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Адключыць"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"У сеткі <xliff:g id="SSID">%1$s</xliff:g> адсутнічае сертыфікат."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Даведацца, як дадаваць сертыфікаты"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Не ўдалося спраўдзіць гэту сетку"</string>
diff --git a/service/ServiceWifiResources/res/values-bg/strings.xml b/service/ServiceWifiResources/res/values-bg/strings.xml
index fc9e348..1fdc4d8 100644
--- a/service/ServiceWifiResources/res/values-bg/strings.xml
+++ b/service/ServiceWifiResources/res/values-bg/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Име на сървъра:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Име на издателя:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Организация:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Валидност на сертификата:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Отпечатък SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Контакт:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Подпис:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Мрежата трябва да бъде потвърдена"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Прегледайте подробностите за мрежата <xliff:g id="SSID">%1$s</xliff:g>, преди да се свържете. Докоснете, за да продължите."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Инсталирането на сертификата не бе успешно."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Не може да се установи връзка с(ъс) <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Веригата от сертификати на сървъра е невалидна."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Тази мрежа не може да се потвърди"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Свързване въпреки това"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Без свързване"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Поддържайте връзка"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Прекратяване на връзката сега"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"За мрежата <xliff:g id="SSID">%1$s</xliff:g> липсва сертификат."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Научете как да добавите сертификати"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Тази мрежа не може да се потвърди"</string>
diff --git a/service/ServiceWifiResources/res/values-bn/strings.xml b/service/ServiceWifiResources/res/values-bn/strings.xml
index fdda105..ba8eed4 100644
--- a/service/ServiceWifiResources/res/values-bn/strings.xml
+++ b/service/ServiceWifiResources/res/values-bn/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"সার্ভারের নাম:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ইস্যুকারীর নাম:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"সংস্থা:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"সার্টিফিকেটের মেয়াদ শেষ হওয়ার তারিখ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ফিঙ্গারপ্রিন্ট:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"পরিচিতি:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"স্বাক্ষর:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"নেটওয়ার্ক যাচাই করা প্রয়োজন"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"কানেক্ট করার আগে <xliff:g id="SSID">%1$s</xliff:g>-এর নেটওয়ার্ক সংক্রান্ত বিবরণ পর্যালোচনা করুন। চালিয়ে যেতে ট্যাপ করুন।"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"সার্টিফিকেট ইনস্টল করা যায়নি।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g>-এ কানেক্ট করা যাচ্ছে না"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"সার্ভার সার্টিফিকেট চেন সঠিক নয়।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ঠিক আছে"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"এই নেটওয়ার্ক যাচাই করা যায়নি"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"তবুও কানেক্ট করুন"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"কানেক্ট করবেন না"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"সবসময় কানেক্ট থাকুন"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"এখনই ডিসকানেক্ট করুন"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> নেটওয়ার্কে একটি সার্টিফিকেট নেই।"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"কীভাবে সার্টিফিকেট যোগ করতে হয় তা জানুন"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"এই নেটওয়ার্ক যাচাই করা যায়নি"</string>
diff --git a/service/ServiceWifiResources/res/values-bs/strings.xml b/service/ServiceWifiResources/res/values-bs/strings.xml
index 29c2616..df23012 100644
--- a/service/ServiceWifiResources/res/values-bs/strings.xml
+++ b/service/ServiceWifiResources/res/values-bs/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Naziv servera:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Naziv izdavača:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizacija:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Istek certifikata:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 otisak prsta:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Potpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Mrežu je potrebno potvrditi"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Prije povezivanja pregledajte detalje mreže za <xliff:g id="SSID">%1$s</xliff:g>. Dodirnite da nastavite."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Instalacija certifikata nije uspjela."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nije se moguće povezati s mrežom <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Lanac potvrda servera je nevažeći."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"UREDU"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Nije moguće potvrditi ovu mrežu"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Ipak se poveži"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nemoj se povezati"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Ostanite povezani"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Prekini vezu odmah"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Mreži <xliff:g id="SSID">%1$s</xliff:g> nedostaje certifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Saznajte kako dodati certifikate"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Nije moguće potvrditi ovu mrežu"</string>
diff --git a/service/ServiceWifiResources/res/values-ca/strings.xml b/service/ServiceWifiResources/res/values-ca/strings.xml
index 35f6cde..ff78a87 100644
--- a/service/ServiceWifiResources/res/values-ca/strings.xml
+++ b/service/ServiceWifiResources/res/values-ca/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nom del servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nom de l\'emissor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organització:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Caducitat del certificat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Empremta digital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contacte:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signatura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Cal verificar la xarxa"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Revisa els detalls de la xarxa <xliff:g id="SSID">%1$s</xliff:g> abans de connectar-te. Toca per continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Ha fallat la instal·lació del certificat."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"No es pot connectar a <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"La cadena de certificats del servidor no és vàlida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"D\'acord"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"No es pot verificar aquesta xarxa"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connecta\'t de totes maneres"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"No et connectis"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Continua connectat"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desconnecta ara"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Falta un certificat de la xarxa <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Informació sobre com pots afegir certificats"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"No es pot verificar aquesta xarxa"</string>
diff --git a/service/ServiceWifiResources/res/values-cs/strings.xml b/service/ServiceWifiResources/res/values-cs/strings.xml
index f30ded3..af9331d 100644
--- a/service/ServiceWifiResources/res/values-cs/strings.xml
+++ b/service/ServiceWifiResources/res/values-cs/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Název severu:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Název vydavatele:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizace:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Vypršení platnosti certifikátu:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Digitální otisk SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Podpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Síť je potřeba ověřit"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Před připojením k síti <xliff:g id="SSID">%1$s</xliff:g> zkontrolujte její podrobnosti. Pokračujte klepnutím."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Instalace certifikátu selhala."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"K síti <xliff:g id="VALUE">%1$s</xliff:g> se nelze připojit"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Řetězec certifikátů serveru je neplatný."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Tuto síť nelze ověřit"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Přesto připojit"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nepřipojovat"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Zachovat připojení"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Odpojit"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Síti <xliff:g id="SSID">%1$s</xliff:g> chybí certifikát."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Přečtěte si, jak přidat certifikáty"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Tuto síť nelze ověřit"</string>
diff --git a/service/ServiceWifiResources/res/values-da/strings.xml b/service/ServiceWifiResources/res/values-da/strings.xml
index 09ada61..35e8e77 100644
--- a/service/ServiceWifiResources/res/values-da/strings.xml
+++ b/service/ServiceWifiResources/res/values-da/strings.xml
@@ -132,17 +132,21 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Servernavn:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Udstedernavn:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Certifikatet udløber:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-fingeraftryk:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signatur:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Netværket skal bekræftes"</string>
+    <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Netværket skal verificeres"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Gennemgå netværksoplysningerne for <xliff:g id="SSID">%1$s</xliff:g>, inden du opretter forbindelse. Tryk for at fortsætte."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Installationen af certifikatet mislykkedes."</string>
-    <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Dette netværk kan ikke bekræftes"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Opret forbindelse alligevel"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Opret ikke forbindelse"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Der kan ikke oprettes forbindelse til <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Servercertifikatkæden er ugyldig."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
+    <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Dette netværk kan ikke verificeres"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Oprethold forbindelsen"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Afbryd forbindelsen nu"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Netværket <xliff:g id="SSID">%1$s</xliff:g> mangler et certifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Se, hvordan du tilføjer certifikater"</string>
-    <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Dette netværk kan ikke bekræftes"</string>
+    <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Dette netværk kan ikke verificeres"</string>
     <string name="wifi_ca_cert_notification_preT_message" msgid="4565553176090475724">"Netværket <xliff:g id="SSID">%1$s</xliff:g> mangler et certifikat. Tryk for at se, hvordan du tilføjer certifikater."</string>
     <string name="wifi_ca_cert_notification_preT_continue_text" msgid="1525418430746943670">"Opret forbindelse alligevel"</string>
     <string name="wifi_ca_cert_notification_preT_abort_text" msgid="8307996031461071854">"Opret ikke forbindelse"</string>
diff --git a/service/ServiceWifiResources/res/values-de/strings.xml b/service/ServiceWifiResources/res/values-de/strings.xml
index b670e2b..ef20fb9 100644
--- a/service/ServiceWifiResources/res/values-de/strings.xml
+++ b/service/ServiceWifiResources/res/values-de/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Servername:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Ausstellername:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Ablaufdatum des Zertifikats:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-Fingerabdruck:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signatur:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Das Netzwerk muss verifiziert sein"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Sieh dir die Netzwerkdetails von <xliff:g id="SSID">%1$s</xliff:g> an, bevor du dich mit dem Netzwerk verbindest. Tippe, um fortzufahren."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Installation des Zertifikats fehlgeschlagen."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Verbindung zu <xliff:g id="VALUE">%1$s</xliff:g> nicht möglich"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Die Serverzertifikatkette ist ungültig."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Ok"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Dieses Netzwerk kann nicht verifiziert werden"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Trotzdem verbinden"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nicht verbinden"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Verbindung beibehalten"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Verbindung jetzt trennen"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Für das Netzwerk <xliff:g id="SSID">%1$s</xliff:g> fehlt ein Zertifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Informationen zum Hinzufügen von Zertifikaten"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Dieses Netzwerk kann nicht verifiziert werden"</string>
diff --git a/service/ServiceWifiResources/res/values-el/strings.xml b/service/ServiceWifiResources/res/values-el/strings.xml
index 38eecd8..f1dd0ac 100644
--- a/service/ServiceWifiResources/res/values-el/strings.xml
+++ b/service/ServiceWifiResources/res/values-el/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Όνομα διακομιστή:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Όνομα εκδότη:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Οργανισμός:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Λήξη πιστοποιητικού:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Αποτύπωμα SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Επαφή:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Υπογραφή:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Απαιτείται επαλήθευση του δικτύου."</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Ελέγξτε τις λεπτομέρειες του δικτύου <xliff:g id="SSID">%1$s</xliff:g> πριν από τη σύνδεση. Πατήστε για συνέχεια."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Αποτυχία εγκατάστασης πιστοποιητικού."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Δεν είναι δυνατή η σύνδεση με <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Η αλυσίδα πιστοποιητικού διακομιστή δεν είναι έγκυρη."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Δεν είναι δυνατή η επαλήθευση αυτού του δικτύου."</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Σύνδεση ούτως ή άλλως"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Να μην γίνει σύνδεση"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Παραμείνετε συνδεδεμένοι"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Αποσύνδεση τώρα"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Λείπει ένα πιστοποιητικό από το δίκτυο <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Μάθετε πώς να προσθέτετε πιστοποιητικά"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Δεν είναι δυνατή η επαλήθευση αυτού του δικτύου."</string>
diff --git a/service/ServiceWifiResources/res/values-en-rAU/strings.xml b/service/ServiceWifiResources/res/values-en-rAU/strings.xml
index 6529546..7bb59b2 100644
--- a/service/ServiceWifiResources/res/values-en-rAU/strings.xml
+++ b/service/ServiceWifiResources/res/values-en-rAU/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Server name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Issuer name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Certificate expiry:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 fingerprint:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signature:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Network needs to be verified"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Review network details for <xliff:g id="SSID">%1$s</xliff:g> before connecting. Tap to continue."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Certificate installation failed."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Can\'t connect to <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"The server certificate chain is invalid."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Can\'t verify this network"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connect anyway"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Don\'t connect"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Stay connected"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Disconnect now"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"The network <xliff:g id="SSID">%1$s</xliff:g> is missing a certificate."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Learn how to add certificates"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Can\'t verify this network"</string>
diff --git a/service/ServiceWifiResources/res/values-en-rCA/strings.xml b/service/ServiceWifiResources/res/values-en-rCA/strings.xml
index 0454884..9aea7c6 100644
--- a/service/ServiceWifiResources/res/values-en-rCA/strings.xml
+++ b/service/ServiceWifiResources/res/values-en-rCA/strings.xml
@@ -16,7 +16,7 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifiResourcesAppLabel" product="default" msgid="3120115613525263696">"System Wi-Fi resources"</string>
+    <string name="wifiResourcesAppLabel" product="default" msgid="3120115613525263696">"System Wi-Fi Resources"</string>
     <string name="wifi_available_title" msgid="3899472737467127635">"Connect to open Wi‑Fi network"</string>
     <string name="wifi_available_title_connecting" msgid="7233590022728579868">"Connecting to Wi‑Fi network"</string>
     <string name="wifi_available_title_connected" msgid="6329493859989844201">"Connected to Wi‑Fi network"</string>
@@ -30,7 +30,7 @@
     <string name="wifi_suggestion_title" msgid="2564179935989099139">"Allow suggested Wi‑Fi networks?"</string>
     <string name="wifi_suggestion_content" msgid="6985149577828091835">"<xliff:g id="NAME">%s</xliff:g> suggested networks. Device may connect automatically."</string>
     <string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"Allow"</string>
-    <string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"No, thanks"</string>
+    <string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"No thanks"</string>
     <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Connect to <xliff:g id="CARRIERNAME">%s</xliff:g> Wi‑Fi?"</string>
     <string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"These networks receive a SIM ID that can be used to track device location"</string>
     <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_carrier" msgid="3888538126440442636">"Connect"</string>
@@ -40,14 +40,14 @@
     <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_confirmation" msgid="2168947026413431603">"Connect"</string>
     <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_confirmation" msgid="5156881939985876066">"Don\'t connect"</string>
     <string name="wifi_wakeup_onboarding_title" msgid="3868826648004934540">"Wi‑Fi will turn on automatically"</string>
-    <string name="wifi_wakeup_onboarding_subtext" msgid="5705886295837387430">"When you\'re near a high‑quality saved network"</string>
+    <string name="wifi_wakeup_onboarding_subtext" msgid="5705886295837387430">"When you\'re near a high quality saved network"</string>
     <string name="wifi_wakeup_onboarding_action_disable" msgid="6209706680391785825">"Don\'t turn back on"</string>
     <string name="wifi_wakeup_enabled_title" msgid="5043486751612595850">"Wi‑Fi turned on automatically"</string>
     <string name="wifi_wakeup_enabled_content" msgid="3911262526267025882">"You\'re near a saved network: <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_watchdog_network_disabled" msgid="5769226742956006362">"Couldn\'t connect to Wi-Fi"</string>
-    <string name="wifi_watchdog_network_disabled_detailed" msgid="1725243835135539125">" has a poor Internet connection."</string>
+    <string name="wifi_watchdog_network_disabled_detailed" msgid="1725243835135539125">" has a poor internet connection."</string>
     <string name="wifi_connect_alert_title" msgid="2368200646665663612">"Allow connection?"</string>
-    <string name="wifi_connect_alert_message" msgid="7226456300982080746">"Application %1$s would like to connect to Wi-Fi Network %2$s"</string>
+    <string name="wifi_connect_alert_message" msgid="7226456300982080746">"Application %1$s would like to connect to Wifi Network %2$s"</string>
     <string name="wifi_connect_default_application" msgid="8917703737222707062">"An application"</string>
     <string name="accept" msgid="8346431649376483879">"Accept"</string>
     <string name="decline" msgid="4172251727603762084">"Decline"</string>
@@ -65,56 +65,56 @@
     <string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"Can\'t connect to <xliff:g id="SSID">%1$s</xliff:g>"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Tap to change privacy settings and retry"</string>
     <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Change privacy setting?"</string>
-    <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"To connect, <xliff:g id="SSID">%1$s</xliff:g> needs to use your device MAC address, a unique identifier. Currently, your privacy setting for this network uses a randomised identifier. \n\nThis change may allow your device\'s location to be tracked by nearby devices."</string>
+    <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"To connect, <xliff:g id="SSID">%1$s</xliff:g> needs to use your device MAC address, a unique identifier. Currently, your privacy setting for this network uses a randomized identifier. \n\nThis change may allow your device\'s location to be tracked by nearby devices."</string>
     <string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"Change setting"</string>
     <string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"Setting updated. Try connecting again."</string>
     <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Can\'t change privacy setting"</string>
     <string name="wifi_disable_mac_randomization_dialog_network_not_found" msgid="7359256966900782004">"Network not found"</string>
-    <string name="wifi_eap_error_message_code_32756" msgid="2620877003804313434">"<xliff:g id="SSID">%1$s</xliff:g>: EAP authentication error 32756"</string>
+    <string name="wifi_eap_error_message_code_32756" msgid="2620877003804313434">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32756"</string>
     <!-- no translation found for wifi_eap_error_message_code_32756_carrier_overrides:0 (9114567205305206743) -->
     <string name="wifi_eap_error_message_code_32760" msgid="5258191595973470188">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32760"</string>
   <string-array name="wifi_eap_error_message_code_32760_carrier_overrides">
-    <item msgid="7582366019846559418">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : You can’t connect to Verizon Wi-Fi access from outside the Verizon coverage area. (Error = 32760)"</item>
+    <item msgid="7582366019846559418">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : You can’t connect to Verizon Wi-Fi Access from outside the Verizon coverage area. (Error = 32760)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32761" msgid="3962610712123291591">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32761"</string>
   <string-array name="wifi_eap_error_message_code_32761_carrier_overrides">
-    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : You are not subscribed to Verizon Wi-Fi access. Please call us on 800-922-0204. (Error = 32761)"</item>
+    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : You are not subscribed to Verizon Wi-Fi Access. Please call us at 800-922-0204. (Error = 32761)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32762" msgid="2381670648753465737">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32762"</string>
   <string-array name="wifi_eap_error_message_code_32762_carrier_overrides">
-    <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem with your Verizon Wi-Fi access account. Please call us on 800-922-0204. (Error = 32762)"</item>
+    <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem with your Verizon Wi-Fi Access account. Please call us at 800-922-0204. (Error = 32762)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32763" msgid="4467733260757049969">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32763"</string>
   <string-array name="wifi_eap_error_message_code_32763_carrier_overrides">
-    <item msgid="591026649262091217">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : You are already connected to Verizon Wi-Fi access. (Error = 32763)"</item>
+    <item msgid="591026649262091217">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : You are already connected to Verizon Wi-Fi Access. (Error = 32763)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32764" msgid="7349538467012877101">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32764"</string>
   <string-array name="wifi_eap_error_message_code_32764_carrier_overrides">
-    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi access. Please call us on 800-922-0204. (Error = 32764)"</item>
+    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi Access. Please call us at 800-922-0204. (Error = 32764)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32765" msgid="2167528358066037980">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32765"</string>
   <string-array name="wifi_eap_error_message_code_32765_carrier_overrides">
-    <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem with your Verizon Wi-Fi access account. Please call us on 800-922-0204. (Error = 32765)"</item>
+    <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem with your Verizon Wi-Fi Access account. Please call us at 800-922-0204. (Error = 32765)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32766" msgid="2335996367705677670">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32766"</string>
   <string-array name="wifi_eap_error_message_code_32766_carrier_overrides">
-    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Verizon Wi-Fi access is not available from your location. Try again later or try from a different location. (Error = 32766)"</item>
+    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Verizon Wi-Fi Access is not available from your location. Try again later or try from a different location. (Error = 32766)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32767" msgid="7094289719914089006">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 32767"</string>
   <string-array name="wifi_eap_error_message_code_32767_carrier_overrides">
-    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi access. Try again later or try from a different location."</item>
+    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi Access. Try again later or try from a different location."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16384" msgid="575394783233092922">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 16384"</string>
   <string-array name="wifi_eap_error_message_code_16384_carrier_overrides">
-    <item msgid="5042774904407799226">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi access due to error 16384."</item>
+    <item msgid="5042774904407799226">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi Access due to error 16384."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16385" msgid="8392878664662215609">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error 16385"</string>
   <string-array name="wifi_eap_error_message_code_16385_carrier_overrides">
-    <item msgid="1251122579833932025">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi access due to error 16385."</item>
+    <item msgid="1251122579833932025">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi Access due to error 16385."</item>
   </string-array>
     <string name="wifi_eap_error_message_unknown_error_code" msgid="4480884285384231323">"<xliff:g id="SSID">%1$s</xliff:g> : EAP authentication error, unknown error code"</string>
   <string-array name="wifi_eap_error_message_unknown_error_code_carrier_overrides">
-    <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi access."</item>
+    <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : There is a problem connecting you to Verizon Wi-Fi Access."</item>
   </string-array>
     <string name="wifi_softap_auto_shutdown_timeout_expired_title" msgid="4896534374569504484">"Hotspot turned off"</string>
     <string name="wifi_softap_auto_shutdown_timeout_expired_summary" msgid="7975476698140267728">"No devices connected. Tap to modify."</string>
@@ -129,17 +129,21 @@
     <string name="wifi_ca_cert_dialog_continue_text" msgid="1674156611893471003">"Yes, connect"</string>
     <string name="wifi_ca_cert_dialog_abort_text" msgid="1303170595421648059">"No, don\'t connect"</string>
     <string name="wifi_ca_cert_dialog_message_hint" msgid="5969214285536370126">"Only allow this network to connect if the information below looks correct.\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Server name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Issuer name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Server Name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Issuer Name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organization:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Certificate Expiration:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 Fingerprint:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signature:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Network needs to be verified"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Review network details for <xliff:g id="SSID">%1$s</xliff:g> before connecting. Tap to continue."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Certificate installation failed."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Can\'t connect to <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"The server certificate chain is invalid."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Can\'t verify this network"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connect anyway"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Don\'t connect"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Stay connected"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Disconnect now"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"The network <xliff:g id="SSID">%1$s</xliff:g> is missing a certificate."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Learn how to add certificates"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Can\'t verify this network"</string>
diff --git a/service/ServiceWifiResources/res/values-en-rGB/strings.xml b/service/ServiceWifiResources/res/values-en-rGB/strings.xml
index 6529546..7bb59b2 100644
--- a/service/ServiceWifiResources/res/values-en-rGB/strings.xml
+++ b/service/ServiceWifiResources/res/values-en-rGB/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Server name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Issuer name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Certificate expiry:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 fingerprint:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signature:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Network needs to be verified"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Review network details for <xliff:g id="SSID">%1$s</xliff:g> before connecting. Tap to continue."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Certificate installation failed."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Can\'t connect to <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"The server certificate chain is invalid."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Can\'t verify this network"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connect anyway"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Don\'t connect"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Stay connected"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Disconnect now"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"The network <xliff:g id="SSID">%1$s</xliff:g> is missing a certificate."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Learn how to add certificates"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Can\'t verify this network"</string>
diff --git a/service/ServiceWifiResources/res/values-en-rIN/strings.xml b/service/ServiceWifiResources/res/values-en-rIN/strings.xml
index 6529546..7bb59b2 100644
--- a/service/ServiceWifiResources/res/values-en-rIN/strings.xml
+++ b/service/ServiceWifiResources/res/values-en-rIN/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Server name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Issuer name:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Certificate expiry:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 fingerprint:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signature:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Network needs to be verified"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Review network details for <xliff:g id="SSID">%1$s</xliff:g> before connecting. Tap to continue."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Certificate installation failed."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Can\'t connect to <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"The server certificate chain is invalid."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Can\'t verify this network"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connect anyway"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Don\'t connect"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Stay connected"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Disconnect now"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"The network <xliff:g id="SSID">%1$s</xliff:g> is missing a certificate."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Learn how to add certificates"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Can\'t verify this network"</string>
diff --git a/service/ServiceWifiResources/res/values-en-rXC/strings.xml b/service/ServiceWifiResources/res/values-en-rXC/strings.xml
index f7af68e..f1f9432 100644
--- a/service/ServiceWifiResources/res/values-en-rXC/strings.xml
+++ b/service/ServiceWifiResources/res/values-en-rXC/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‏‎‏‏‏‎‏‎‎‏‏‎‎‏‎‎‏‎‏‏‎‏‏‎‏‏‎‎‎‏‏‏‎‎‎‎‎‏‎‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‎‏‎Server Name:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‏‎‏‏‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‏‏‏‏‎‎‎‎‎Issuer Name:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‎‎‎‎‏‎‏‏‏‎‏‎‎‎‏‏‎‎‎‏‏‎‏‎‎‏‏‏‏‏‏‎Organization:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎Certificate Expiration:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‏‎‏‎‎‎‎‏‎‏‎‏‎‏‏‏‎‎‎‎‏‏‏‎‎‏‎‏‎‎‏‏‎‏‏‎‎‏‏‎‎‏‎SHA-256 Fingerprint:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‏‏‏‏‎‏‎‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‎Contact:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‏‎‎‎‏‏‏‎‏‎‎‏‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‏‏‏‏‏‏‎‎‏‎‏‏‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‎Signature:‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‏‏‎‎‏‏‏‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎Network needs to be verified‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‎‏‏‎‏‎‎‎‎‏‎‎‏‏‏‎‏‏‏‏‎‏‎‎‎‎‎‎‏‎Review network details for ‎‏‎‎‏‏‎<xliff:g id="SSID">%1$s</xliff:g>‎‏‎‎‏‏‏‎ before connecting. Tap to continue.‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‏‏‏‎‎‏‎‎‎‎‎‎‏‏‎Certificate installation failed.‎‏‎‎‏‎"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‏‎‎‎‎‎‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‎‏‎‎‎‎‎‏‏‏‎‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎Can\'t connect to ‎‏‎‎‏‏‎<xliff:g id="VALUE">%1$s</xliff:g>‎‏‎‎‏‏‏‎‎‏‎‎‏‎"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‏‏‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‏‎‏‎‏‏‏‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎‏‎‎‎‎The server certificate chain is invalid.‎‏‎‎‏‎"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‎‎‏‏‎‏‏‎‎‎‎‎‎‎‏‎‏‏‎‎‏‏‎‎‏‏‎‎‎‏‎‏‏‏‏‏‎‏‎‏‎‏‎‏‏‏‎‎OK‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‎‎‏‎‏‎Can\'t verify this network‎‏‎‎‏‎"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‏‎‎‏‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‏‏‎‏‏‏‎‏‎‎‏‎‏‎‎‎‎‎‏‎‏‎‎‎‏‎‎‏‏‎‏‎‏‎‎Connect anyway‎‏‎‎‏‎"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‎‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‏‎‎‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‎‏‎‏‎Don\'t connect‎‏‎‎‏‎"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‏‎‏‎‏‏‏‏‏‏‎‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‎‏‎‏‎Stay connected‎‏‎‎‏‎"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‎‏‎‏‎‎‎‎Disconnect now‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‏‎‏‏‏‎‎‎‏‎‏‏‏‎‎‏‎‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‏‎The network ‎‏‎‎‏‏‎<xliff:g id="SSID">%1$s</xliff:g>‎‏‎‎‏‏‏‎ is missing a certificate.‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‏‏‏‏‎‎‏‎‎‎‏‎‏‎‎‎‎‏‎‏‏‎‎‏‎‏‎‎‏‎‏‎‏‏‏‎‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‎‎‎Learn how to add certificates‎‏‎‎‏‎"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‏‏‏‎‏‏‎‎‏‏‎‎‎‏‏‏‏‎‎‎‏‏‏‏‎‏‎‎‎‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‎Can\'t verify this network‎‏‎‎‏‎"</string>
diff --git a/service/ServiceWifiResources/res/values-es-rUS/strings.xml b/service/ServiceWifiResources/res/values-es-rUS/strings.xml
index 82b941c..efb3aa5 100644
--- a/service/ServiceWifiResources/res/values-es-rUS/strings.xml
+++ b/service/ServiceWifiResources/res/values-es-rUS/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nombre del servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nombre de la entidad emisora\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organización:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Vencimiento del certificado:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Huella digital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Comunicarse con:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Firma:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Es necesario verificar la red"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Antes de conectarte, revisa los detalles de la red <xliff:g id="SSID">%1$s</xliff:g>. Presiona para continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Se produjo un error cuando se instalaba el certificado."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"No se puede conectar con <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"La cadena de certificados del servidor no es válida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Aceptar"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"No se pudo verificar esta red"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Conectar de todos modos"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"No conectar"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Mantener la conexión"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desconectar ahora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"A la red <xliff:g id="SSID">%1$s</xliff:g> le falta un certificado."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Obtén más información para agregar certificados"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"No se pudo verificar esta red"</string>
diff --git a/service/ServiceWifiResources/res/values-es/strings.xml b/service/ServiceWifiResources/res/values-es/strings.xml
index 6eb7856..a0e1f00 100644
--- a/service/ServiceWifiResources/res/values-es/strings.xml
+++ b/service/ServiceWifiResources/res/values-es/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nombre del servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nombre de la entidad emisora:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organización:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Caducidad del certificado:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Huella digital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contacto:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Firma:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"La red debe verificarse"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Revisa los detalles de la red <xliff:g id="SSID">%1$s</xliff:g> antes de conectarte. Toca para continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"No se ha podido instalar el certificado."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"No se puede conectar a <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"La cadena de certificados del servidor no es válida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Aceptar"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"No se puede verificar esta red"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Conectar de todos modos"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"No conectar"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Mantener conexión"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desconectar ahora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Falta un certificado en la red <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Consulta cómo añadir certificados"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"No se puede verificar esta red"</string>
diff --git a/service/ServiceWifiResources/res/values-et/strings.xml b/service/ServiceWifiResources/res/values-et/strings.xml
index 06bbcbf..1256c96 100644
--- a/service/ServiceWifiResources/res/values-et/strings.xml
+++ b/service/ServiceWifiResources/res/values-et/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Serveri nimi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Väljaandja nimi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisatsioon:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikaadi aegumine:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 sõrmejälg:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Võta ühendust:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Allkiri:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Võrk tuleb kinnitada"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Vaadake võrgu <xliff:g id="SSID">%1$s</xliff:g> üksikasjad enne ühendamist üle. Puudutage jätkamiseks."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Sertifikaadi installimine ebaõnnestus."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Võrguga <xliff:g id="VALUE">%1$s</xliff:g> ei õnnestu ühendada"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Serveri sertifikaadiahel on sobimatu."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Seda võrku ei õnnestu kinnitada"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Ühenda siiski"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ära ühenda"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Säilita ühendus"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Katkesta kohe ühendus"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Võrgul <xliff:g id="SSID">%1$s</xliff:g> pole sertifikaati."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Vaadake, kuidas sertifikaadid lisada"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Seda võrku ei õnnestu kinnitada"</string>
diff --git a/service/ServiceWifiResources/res/values-eu/strings.xml b/service/ServiceWifiResources/res/values-eu/strings.xml
index 060a627..9b7d25d 100644
--- a/service/ServiceWifiResources/res/values-eu/strings.xml
+++ b/service/ServiceWifiResources/res/values-eu/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Zerbitzariaren izena:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Jaulkitzailearen izena:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Erakundea:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Ziurtagiriaren iraungitze-data:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 aztarna digitala:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Jarri honekin harremanetan:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Sinadura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Sarea egiaztatu egin behar da"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Konektatu aurretik, berrikusi <xliff:g id="SSID">%1$s</xliff:g> sarearen xehetasunak. Sakatu hau aurrera egiteko."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Ezin izan da instalatu ziurtagiria."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Ezin da konektatu <xliff:g id="VALUE">%1$s</xliff:g> sarera"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Zerbitzari-ziurtagiriaren kateak ez du balio."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Ados"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ezin da egiaztatu sarea"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Konektatu halere"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ez konektatu"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Egon konektatuta"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Deskonektatu"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> sareari ziurtagiri bat falta zaio."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Lortu ziurtagiriak gehitzeko argibideak"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ezin da egiaztatu sarea"</string>
diff --git a/service/ServiceWifiResources/res/values-fa/strings.xml b/service/ServiceWifiResources/res/values-fa/strings.xml
index 714efd7..7ed5e93 100644
--- a/service/ServiceWifiResources/res/values-fa/strings.xml
+++ b/service/ServiceWifiResources/res/values-fa/strings.xml
@@ -63,12 +63,12 @@
     <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="2226863827636191980">"‏این گوشی به‌طور موقت از Wi-Fi قطع خواهد شد، در حالی که به <xliff:g id="DEVICE_NAME">%1$s</xliff:g> وصل است"</string>
     <string name="dlg_ok" msgid="254496739491689405">"تأیید"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"اتصال به <xliff:g id="SSID">%1$s</xliff:g> امکان‌پذیر نیست"</string>
-    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"برای تغییر تنظیم حریم‌خصوصی ضربه بزنید و دوباره امتحان کنید"</string>
-    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"تنظیم حریم‌خصوصی تغییر کند؟"</string>
-    <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"برای اتصال، <xliff:g id="SSID">%1$s</xliff:g> باید از «نشانی واد» دستگاهتان که شناسه‌ای منحصربه‌فرد است استفاده کند. درحال‌حاضر، تنظیم حریم‌خصوصی شما برای این شبکه از شناسه تصادفی استفاده می‌کند. \n\nاین تغییر ممکن است به دستگاه‌های اطراف امکان دهد مکان دستگاهتان را ردیابی کنند."</string>
+    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"برای تغییر تنظیم حریم خصوصی ضربه بزنید و دوباره امتحان کنید"</string>
+    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"تنظیم حریم خصوصی تغییر کند؟"</string>
+    <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"برای اتصال، <xliff:g id="SSID">%1$s</xliff:g> باید از «مک آدرس» دستگاهتان که شناسه‌ای منحصربه‌فرد است استفاده کند. درحال‌حاضر، تنظیم حریم خصوصی شما برای این شبکه از شناسه تصادفی استفاده می‌کند. \n\nاین تغییر ممکن است به دستگاه‌های اطراف امکان دهد مکان دستگاهتان را ردیابی کنند."</string>
     <string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"تغییر تنظیم"</string>
     <string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"تنظیم به‌روزرسانی شد. دوباره متصل شوید."</string>
-    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"تنظیم حریم‌خصوصی تغییر نکرد"</string>
+    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"تنظیم حریم خصوصی تغییر نکرد"</string>
     <string name="wifi_disable_mac_randomization_dialog_network_not_found" msgid="7359256966900782004">"شبکه‌ای پیدا نشد"</string>
     <string name="wifi_eap_error_message_code_32756" msgid="2620877003804313434">"‏<xliff:g id="SSID">%1$s</xliff:g> : خطای اصالت‌سنجی EAP با کد خطای ۳۲۷۵۶"</string>
     <!-- no translation found for wifi_eap_error_message_code_32756_carrier_overrides:0 (9114567205305206743) -->
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"نام سرور:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"نام صادرکننده:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"سازمان:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"انقضای گواهینامه:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"‏اثر انگشت SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"تماس:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"امضا:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"شبکه باید تأیید شود"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"قبل‌از متصل شدن، جزئیات شبکه را برای <xliff:g id="SSID">%1$s</xliff:g> مرور کنید. برای ادامه، ضربه بزنید."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"گواهینامه نصب نشد."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"اتصال به <xliff:g id="VALUE">%1$s</xliff:g> ممکن نیست"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"زنجیره گواهینامه سرور نامعتبر است."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"تأیید"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"تأیید این شبکه ممکن نیست"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"درهرصورت متصل شود"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"متصل نشود"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"متصل باشد"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"اکنون قطع شود"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"شبکه <xliff:g id="SSID">%1$s</xliff:g> فاقد گواهینامه است."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"با نحوه افزودن گواهینامه‌ها آشنا شوید"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"تأیید این شبکه ممکن نیست"</string>
diff --git a/service/ServiceWifiResources/res/values-fi/strings.xml b/service/ServiceWifiResources/res/values-fi/strings.xml
index a10f79b..e751b75 100644
--- a/service/ServiceWifiResources/res/values-fi/strings.xml
+++ b/service/ServiceWifiResources/res/values-fi/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Palvelimen nimi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Myöntäjän nimi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisaatio:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Varmenne vanhenee:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-tunnistetiedosto:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakti:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Allekirjoitus:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Verkko täytyy todentaa"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Tarkista verkon (<xliff:g id="SSID">%1$s</xliff:g>) tiedot ennen yhteyden muodostamista. Jatka napauttamalla."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Varmenteen asennus epäonnistui."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Ei saada yhteyttä: <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Palvelimen varmenneketju on virheellinen."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Verkkoa ei voi todentaa"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Yhdistä silti"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Älä yhdistä"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Pysy yhteydessä"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Katkaise yhteys nyt"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Verkolta (<xliff:g id="SSID">%1$s</xliff:g>) puuttuu varmenne."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Katso, miten voit lisätä varmenteita"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Verkkoa ei voi todentaa"</string>
diff --git a/service/ServiceWifiResources/res/values-fr-rCA/strings.xml b/service/ServiceWifiResources/res/values-fr-rCA/strings.xml
index 8d01727..eef4344 100644
--- a/service/ServiceWifiResources/res/values-fr-rCA/strings.xml
+++ b/service/ServiceWifiResources/res/values-fr-rCA/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nom du serveur :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nom de l\'émetteur :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Expiration du certificat :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Empreinte digitale SHA-256 :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signature :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Le réseau doit être vérifié"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Vérifiez les détails du réseau <xliff:g id="SSID">%1$s</xliff:g> avant de vous connecter. Touchez pour continuer."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Échec de l\'installation du certificat."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Impossible de se connecter à <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"La chaîne de certificats du serveur est incorrecte."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Impossible de vérifier ce réseau"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Se connecter quand même"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ne pas se connecter"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Rester connecté"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Se déconnecter maintenant"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Le réseau <xliff:g id="SSID">%1$s</xliff:g> n\'a pas de certificat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Apprendre à ajouter des certificats"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Impossible de vérifier ce réseau"</string>
diff --git a/service/ServiceWifiResources/res/values-fr/strings.xml b/service/ServiceWifiResources/res/values-fr/strings.xml
index 6dede35..89034a5 100644
--- a/service/ServiceWifiResources/res/values-fr/strings.xml
+++ b/service/ServiceWifiResources/res/values-fr/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nom du serveur :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nom de l\'émetteur :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Expiration du certificat :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Empreinte SHA-256 :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signature :\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Le réseau doit être validé"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Consultez les détails du réseau <xliff:g id="SSID">%1$s</xliff:g> avant de le connecter. Appuyez pour continuer."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Échec de l\'installation du certificat."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Impossible de se connecter à <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"La chaîne de certificats du serveur n\'est pas valide."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Impossible de valider ce réseau"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connecter quand même"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ne pas connecter"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Rester connecté"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Se déconnecter maintenant"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Il manque un certificat pour le réseau <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Découvrir comment ajouter des certificats"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Impossible de valider ce réseau"</string>
diff --git a/service/ServiceWifiResources/res/values-gl/strings.xml b/service/ServiceWifiResources/res/values-gl/strings.xml
index 9a1f8d6..6265bdf 100644
--- a/service/ServiceWifiResources/res/values-gl/strings.xml
+++ b/service/ServiceWifiResources/res/values-gl/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nome do servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nome do emisor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organización:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Caducidade do certificado:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Impresión dixital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contacto:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Sinatura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Debe verificarse a rede"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Antes de establecer conexión, revisa os datos da rede <xliff:g id="SSID">%1$s</xliff:g>. Toca a pantalla para continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Produciuse un erro ao instalar o certificado."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Non se puido establecer conexión con <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"A cadea de certificados do servidor non é válida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Vale"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Non se puido verificar esta rede"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Conectar igualmente"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Non conectar"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Manter conexión"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desconectar agora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Á rede <xliff:g id="SSID">%1$s</xliff:g> fáltalle un certificado."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Información sobre como engadir certificados"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Non se puido verificar esta rede"</string>
diff --git a/service/ServiceWifiResources/res/values-gu/strings.xml b/service/ServiceWifiResources/res/values-gu/strings.xml
index 790bcc2..f56fef3 100644
--- a/service/ServiceWifiResources/res/values-gu/strings.xml
+++ b/service/ServiceWifiResources/res/values-gu/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"સર્વરનું નામ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"રજૂકર્તાનું નામ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"સંસ્થા:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"પ્રમાણપત્રની સમયસમાપ્તિ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ફિંગરપ્રિન્ટ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"સંપર્ક કરો:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"સહી:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"નેટવર્કની ચકાસણી થવી જરૂરી છે"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"કનેક્ટ કરતા પહેલાં <xliff:g id="SSID">%1$s</xliff:g>ના નેટવર્કની વિગતોનો રિવ્યૂ કરો. આગળ વધવા માટે ટૅપ કરો."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"પ્રમાણપત્ર ઇન્સ્ટૉલ કરવામાં નિષ્ફળ રહ્યાં."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> સાથે કનેક્ટ થઈ શકતું નથી"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"સર્વરના પ્રમાણપત્રની ચેન માન્ય નથી."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ઓકે"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"આ નેટવર્ક ચકાસી શકાતું નથી"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"કોઈપણ રીતે કનેક્ટ કરો"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"કનેક્ટ કરશો નહીં"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"જોડાયેલા રહો"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"હવે ડિસ્કનેક્ટ કરો"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> નેટવર્કમાં પ્રમાણપત્ર ખૂટે છે."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"પ્રમાણપત્રો ઉમેરવાની રીત જાણો"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"આ નેટવર્ક ચકાસી શકાતું નથી"</string>
diff --git a/service/ServiceWifiResources/res/values-hi/strings.xml b/service/ServiceWifiResources/res/values-hi/strings.xml
index 6ad225d..42b1de8 100644
--- a/service/ServiceWifiResources/res/values-hi/strings.xml
+++ b/service/ServiceWifiResources/res/values-hi/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"सर्वर का नाम:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"जारी करने वाले का नाम:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"संगठन:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"सर्टिफ़िकेट की समयसीमा पूरी होने की तारीख:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 फ़िंगरप्रिंट:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"संपर्क:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"हस्ताक्षर:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"नेटवर्क की पुष्टि करनी होगी"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"कनेक्ट करने से पहले, <xliff:g id="SSID">%1$s</xliff:g> के लिए नेटवर्क से जुड़ी जानकारी देखें. जारी रखने के लिए टैप करें."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"सर्टिफ़िकेट इंस्टॉल नहीं हो सका."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> से कनेक्ट नहीं किया जा सकता"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"सर्वर सर्टिफ़िकेट चेन अमान्य है."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ठीक है"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"इस नेटवर्क की पुष्टि नहीं की जा सकी"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"फिर भी कनेक्ट करें"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"कनेक्ट न करें"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"कनेक्ट रहें"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"अभी डिसकनेक्ट करें"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> नेटवर्क के पास सर्टिफ़िकेट मौजूद नहीं है."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"सर्टिफ़िकेट जोड़ने का तरीका जानें"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"इस नेटवर्क की पुष्टि नहीं की जा सकी"</string>
diff --git a/service/ServiceWifiResources/res/values-hr/strings.xml b/service/ServiceWifiResources/res/values-hr/strings.xml
index cde9204..387e7ca 100644
--- a/service/ServiceWifiResources/res/values-hr/strings.xml
+++ b/service/ServiceWifiResources/res/values-hr/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Naziv poslužitelja:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Naziv izdavača:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizacija:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Istek certifikata:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 otisak prsta:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Potpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Mrežu je potrebno potvrditi"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Prije povezivanja pregledajte pojedinosti za <xliff:g id="SSID">%1$s</xliff:g>. Dodirnite za nastavak."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Instalacija certifikata nije uspjela."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Povezivanje s mrežom <xliff:g id="VALUE">%1$s</xliff:g> nije uspjelo"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Lanac certifikata poslužitelja nije važeći."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"U redu"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ta se mreža ne može potvrditi"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Svejedno poveži"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nemoj povezati"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Ostanite povezani"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Prekini vezu odmah"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Mreži <xliff:g id="SSID">%1$s</xliff:g> nedostaje certifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Saznajte kako dodati certifikate"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ta se mreža ne može potvrditi"</string>
diff --git a/service/ServiceWifiResources/res/values-hu/strings.xml b/service/ServiceWifiResources/res/values-hu/strings.xml
index 35c29c4..a666619 100644
--- a/service/ServiceWifiResources/res/values-hu/strings.xml
+++ b/service/ServiceWifiResources/res/values-hu/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Szerver neve:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Kibocsátó neve:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Szervezet:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Tanúsítvány lejárati ideje:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-ujjlenyomat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kapcsolat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Aláírás:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"A hálózatot igazolni kell"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Tekintse át a hálózat (<xliff:g id="SSID">%1$s</xliff:g>) adatait a csatlakozás előtt. Koppintson a folytatáshoz."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"A tanúsítvány telepítése sikertelen."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nem lehet csatlakozni a következőhöz: <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"A szerver tanúsítványlánca érvénytelen."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ez a hálózat nem igazolható"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Csatlakozás mindenképp"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ne csatlakozzon"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Kapcsolat fenntartása"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Leválasztás most"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"A hálózati <xliff:g id="SSID">%1$s</xliff:g> egyik tanúsítványa hiányzik."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"További információ a tanúsítványok hozzáadásáról"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ez a hálózat nem igazolható"</string>
diff --git a/service/ServiceWifiResources/res/values-hy/strings.xml b/service/ServiceWifiResources/res/values-hy/strings.xml
index 6a380d5..77f34bb 100644
--- a/service/ServiceWifiResources/res/values-hy/strings.xml
+++ b/service/ServiceWifiResources/res/values-hy/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Սերվերի անվանումը՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Թողարկողի անվանումը՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Կազմակերպություն՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Հավաստագրի գործողության ժամկետը՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 մատնահետք՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Կոնտակտային անձ՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Ստորագրություն՝\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Անհրաժեշտ է ստուգել ցանցը"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Միանալուց առաջ ցանցի տվյալներում ստուգեք դրա անվանումը (<xliff:g id="SSID">%1$s</xliff:g>)։ Հպեք՝ շարունակելու համար։"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Չհաջողվեց տեղադրել հավաստագիրը։"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Չհաջողվեց միանալ <xliff:g id="VALUE">%1$s</xliff:g> ցանցին"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Սերվերի հավաստագրերի շղթան անվավեր է։"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Եղավ"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Չհաջողվեց հաստատել այս ցանցը"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Միանալ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Չմիանալ"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Մնալ միացած"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Անջատել հիմա"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Ցանցը (<xliff:g id="SSID">%1$s</xliff:g>) չունի հավաստագիր։"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Իմանալ, թե ինչպես հավաստագրեր ավելացնել"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Չհաջողվեց հաստատել այս ցանցը"</string>
diff --git a/service/ServiceWifiResources/res/values-in/strings.xml b/service/ServiceWifiResources/res/values-in/strings.xml
index d14baff..b472b18 100644
--- a/service/ServiceWifiResources/res/values-in/strings.xml
+++ b/service/ServiceWifiResources/res/values-in/strings.xml
@@ -90,7 +90,7 @@
   </string-array>
     <string name="wifi_eap_error_message_code_32764" msgid="7349538467012877101">"<xliff:g id="SSID">%1$s</xliff:g> : Error autentikasi EAP 32764"</string>
   <string-array name="wifi_eap_error_message_code_32764_carrier_overrides">
-    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi masalah saat menghubungkan ke Verizon Wi-Fi Access. Harap hubungi kami di 800-922-0204. (Error = 32764)"</item>
+    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi error saat menghubungkan ke Verizon Wi-Fi Access. Harap hubungi kami di 800-922-0204. (Error = 32764)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32765" msgid="2167528358066037980">"<xliff:g id="SSID">%1$s</xliff:g> : Error autentikasi EAP 32765"</string>
   <string-array name="wifi_eap_error_message_code_32765_carrier_overrides">
@@ -102,19 +102,19 @@
   </string-array>
     <string name="wifi_eap_error_message_code_32767" msgid="7094289719914089006">"<xliff:g id="SSID">%1$s</xliff:g> : Error autentikasi EAP 32767"</string>
   <string-array name="wifi_eap_error_message_code_32767_carrier_overrides">
-    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi masalah saat menghubungkan ke Verizon Wi-Fi Access. Coba lagi nanti atau coba dari lokasi lain."</item>
+    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi error saat menghubungkan ke Verizon Wi-Fi Access. Coba lagi nanti atau coba dari lokasi lain."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16384" msgid="575394783233092922">"<xliff:g id="SSID">%1$s</xliff:g> : Error autentikasi EAP 16384"</string>
   <string-array name="wifi_eap_error_message_code_16384_carrier_overrides">
-    <item msgid="5042774904407799226">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi masalah saat menghubungkan ke Verizon Wi-Fi Access karena error 16384."</item>
+    <item msgid="5042774904407799226">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi error saat menghubungkan ke Verizon Wi-Fi Access karena error 16384."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16385" msgid="8392878664662215609">"<xliff:g id="SSID">%1$s</xliff:g> : Error autentikasi EAP 16385"</string>
   <string-array name="wifi_eap_error_message_code_16385_carrier_overrides">
-    <item msgid="1251122579833932025">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi masalah saat menghubungkan ke Verizon Wi-Fi Access karena error 16385."</item>
+    <item msgid="1251122579833932025">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi error saat menghubungkan ke Verizon Wi-Fi Access karena error 16385."</item>
   </string-array>
     <string name="wifi_eap_error_message_unknown_error_code" msgid="4480884285384231323">"<xliff:g id="SSID">%1$s</xliff:g> : Error autentikasi EAP, kode error tidak diketahui"</string>
   <string-array name="wifi_eap_error_message_unknown_error_code_carrier_overrides">
-    <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi masalah saat menghubungkan ke Verizon Wi-Fi Access."</item>
+    <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Terjadi error saat menghubungkan ke Verizon Wi-Fi Access."</item>
   </string-array>
     <string name="wifi_softap_auto_shutdown_timeout_expired_title" msgid="4896534374569504484">"Hotspot dinonaktifkan"</string>
     <string name="wifi_softap_auto_shutdown_timeout_expired_summary" msgid="7975476698140267728">"Tidak ada perangkat yang terhubung. Ketuk untuk mengubah."</string>
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nama Server:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nama Penerbit:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisasi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Masa Berlaku Sertifikat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Sidik Jari SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontak:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Tanda Tangan:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Jaringan perlu diverifikasi"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Tinjau detail jaringan untuk <xliff:g id="SSID">%1$s</xliff:g> sebelum terhubung. Ketuk untuk melanjutkan."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Penginstalan sertifikat gagal."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Tidak dapat terhubung ke <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Rantai sertifikat server tidak valid."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Oke"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Tidak dapat memverifikasi jaringan ini"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Tetap hubungkan"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Jangan hubungkan"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Tetap terhubung"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Putuskan koneksi sekarang"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Jaringan <xliff:g id="SSID">%1$s</xliff:g> kehilangan sertifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Pelajari cara menambahkan sertifikat"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Tidak dapat memverifikasi jaringan ini"</string>
diff --git a/service/ServiceWifiResources/res/values-is/strings.xml b/service/ServiceWifiResources/res/values-is/strings.xml
index 9909f3f..e3b9480 100644
--- a/service/ServiceWifiResources/res/values-is/strings.xml
+++ b/service/ServiceWifiResources/res/values-is/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Heiti þjóns:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Heiti útgefanda:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Fyrirtæki/stofnun:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Vottorð rennur út:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 fingrafar:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Hafa samband við:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Undirskrift:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Nauðsynlegt er að staðfesta netið"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Farðu yfir netupplýsingar fyrir <xliff:g id="SSID">%1$s</xliff:g> áður en þú tengir. Ýttu til að halda áfram."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Uppsetning vottorðs mistókst."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Ekki hægt að tengjast <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Vottorðakeðja þjóns er ógild."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Í lagi"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ekki er hægt að staðfesta þetta net"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Tengjast samt"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ekki tengjast"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Haltu sambandi"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Aftengja núna"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Netið <xliff:g id="SSID">%1$s</xliff:g> vantar vottorð."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Kynntu þér hvernig vottorðum er bætt við"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ekki er hægt að staðfesta þetta net"</string>
diff --git a/service/ServiceWifiResources/res/values-it/strings.xml b/service/ServiceWifiResources/res/values-it/strings.xml
index 107cc50..9fb4ed5 100644
--- a/service/ServiceWifiResources/res/values-it/strings.xml
+++ b/service/ServiceWifiResources/res/values-it/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nome server:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nome emittente:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizzazione:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Scadenza del certificato:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Impronta SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contatto:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Firma:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"La rete deve essere verificata"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Controlla i dettagli della rete per <xliff:g id="SSID">%1$s</xliff:g> prima di connetterti. Tocca per continuare."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Installazione del certificato non riuscita."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Impossibile connettersi a <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"La catena di certificati del server non è valida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Impossibile verificare questa rete"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Connetti comunque"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Non connettere"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Mantieni la connessione"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Disconnettiti ora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Alla rete <xliff:g id="SSID">%1$s</xliff:g> manca un certificato."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Scopri come aggiungere certificati"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Impossibile verificare questa rete"</string>
diff --git a/service/ServiceWifiResources/res/values-iw/strings.xml b/service/ServiceWifiResources/res/values-iw/strings.xml
index 28763b9..43729ac 100644
--- a/service/ServiceWifiResources/res/values-iw/strings.xml
+++ b/service/ServiceWifiResources/res/values-iw/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"שם השרת:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"שם המנפיק:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ארגון:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"תוקף האישור יפוג בתאריך:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"‏טביעת אצבע SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"איש קשר:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"חתימה:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"צריך לאמת את הרשת"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"צריך לעיין בפרטי הרשת <xliff:g id="SSID">%1$s</xliff:g> לפני שמתחברים אליה. מקישים כדי להמשיך."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"הניסיון להתקנת האישור נכשל."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"לא ניתן להתחבר אל <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"שרשרת האישורים של השרת לא חוקית."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"אישור"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"לא ניתן לאמת את הרשת הזו"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"יש להתחבר בכל זאת"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"אין להתחבר"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"שמירה על החיבור"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ניתוק"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"חסר אישור לרשת <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"הוראות להוספת אישורים"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"לא ניתן לאמת את הרשת הזו"</string>
diff --git a/service/ServiceWifiResources/res/values-ja/strings.xml b/service/ServiceWifiResources/res/values-ja/strings.xml
index 28a6ccc..9a5863a 100644
--- a/service/ServiceWifiResources/res/values-ja/strings.xml
+++ b/service/ServiceWifiResources/res/values-ja/strings.xml
@@ -54,8 +54,8 @@
     <string name="ok" msgid="847575529546290102">"OK"</string>
     <string name="wifi_p2p_invitation_sent_title" msgid="6552639940428040869">"招待状を送信しました"</string>
     <string name="wifi_p2p_invitation_to_connect_title" msgid="8917157937652519251">"接続への招待"</string>
-    <string name="wifi_p2p_from_message" msgid="5921308150192756898">"From:"</string>
-    <string name="wifi_p2p_to_message" msgid="3809923305696994787">"To:"</string>
+    <string name="wifi_p2p_from_message" msgid="5921308150192756898">"送信側:"</string>
+    <string name="wifi_p2p_to_message" msgid="3809923305696994787">"受信側:"</string>
     <string name="wifi_p2p_enter_pin_message" msgid="5200220251738047620">"必要なPINを入力してください:"</string>
     <string name="wifi_p2p_show_pin_message" msgid="1000091690967930798">"PIN:"</string>
     <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="2875937871590955304">"タブレットが<xliff:g id="DEVICE_NAME">%1$s</xliff:g>に接続されている間は一時的にWi-Fi接続が切断されます"</string>
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"サーバー名:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"発行者の名前:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"組織:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"証明書の期限切れ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 フィンガープリント:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"連絡先:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"署名:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ネットワークの確認が必要です"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"接続する前に <xliff:g id="SSID">%1$s</xliff:g> のネットワークの詳細を確認してください。タップして続行します。"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"証明書をインストールできませんでした。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> に接続できません"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"サーバー証明書チェーンが無効です。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"このネットワークを確認できません"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"接続する"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"接続しない"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"接続を維持する"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"切断"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ネットワーク <xliff:g id="SSID">%1$s</xliff:g> に証明書がありません。"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"証明書を追加する方法"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"このネットワークを確認できません"</string>
diff --git a/service/ServiceWifiResources/res/values-ka/strings.xml b/service/ServiceWifiResources/res/values-ka/strings.xml
index d7d230c..df409c7 100644
--- a/service/ServiceWifiResources/res/values-ka/strings.xml
+++ b/service/ServiceWifiResources/res/values-ka/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"სერვერის სახელი:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"გამცემის სახელი:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ორგანიზაცია:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"სერტიფიკატის მოქმედების ვადა:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 თითის ანაბეჭდი:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"დაუკავშირდით:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ხელმოწერა:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"საჭიროა ქსელის დადასტურება"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"დაკავშირებამდე გადახედეთ <xliff:g id="SSID">%1$s</xliff:g> ქსელის დეტალებს. შეეხეთ გასაგრძელებლად."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"სერტიფიკატის ინსტალაცია ვერ მოხერხდა."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g>-თან დაკავშირება ვერ მოხერხდა."</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"სერვერის სერტიფიკატის ეს ჯაჭვი არასწორია."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"კარგი"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ამ ქსელის დადასტურება შეუძლებელია"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"მაინც დაკავშირება"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"არ დაუკავშირდეს"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"შეინარჩუნეთ კავშირი"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"შეწყვიტეთ კავშირი ახლავე"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ქსელის <xliff:g id="SSID">%1$s</xliff:g>-ს აკლია სერტიფიკატი."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"სერტიფიკატების დამატების წესი"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ამ ქსელის დადასტურება შეუძლებელია"</string>
diff --git a/service/ServiceWifiResources/res/values-kk/strings.xml b/service/ServiceWifiResources/res/values-kk/strings.xml
index 161521b..044d96c 100644
--- a/service/ServiceWifiResources/res/values-kk/strings.xml
+++ b/service/ServiceWifiResources/res/values-kk/strings.xml
@@ -63,12 +63,12 @@
     <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="2226863827636191980">"<xliff:g id="DEVICE_NAME">%1$s</xliff:g> құрылғысына жалғанып тұрғанда телефон уақытша Wi-Fi байланысынан ажыратылады"</string>
     <string name="dlg_ok" msgid="254496739491689405">"Жарайды"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"<xliff:g id="SSID">%1$s</xliff:g> құрылғысына қосылмайды."</string>
-    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Құпиялылық параметрін өзгерту үшін түртіп, әрекетті қайталаңыз."</string>
-    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Құпиялылық параметрі өзгертілсін бе?"</string>
-    <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"Қосылу үшін <xliff:g id="SSID">%1$s</xliff:g> құрылғыңыздың MAC мекенжайын, бірегей идентификаторын қажет етеді. Қазір желінің құпиялылық параметрі еркін идентификаторды пайдаланады. \n\nБұл өзгеріс маңайдағы құрылғыларға құрылғыңыздың орнын қадағалауға мүмкіндік береді."</string>
+    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Құпиялық параметрін өзгерту үшін түртіп, әрекетті қайталаңыз."</string>
+    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Құпиялық параметрі өзгертілсін бе?"</string>
+    <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"Қосылу үшін <xliff:g id="SSID">%1$s</xliff:g> құрылғыңыздың MAC мекенжайын, бірегей идентификаторын қажет етеді. Қазір желінің құпиялық параметрі еркін идентификаторды пайдаланады. \n\nБұл өзгеріс маңайдағы құрылғыларға құрылғыңыздың орнын қадағалауға мүмкіндік береді."</string>
     <string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"Параметрді өзгерту"</string>
     <string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"Параметр жаңартылды. Қайта қосылып көріңіз."</string>
-    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Құпиялылық параметрі өзгертілмейді."</string>
+    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Құпиялық параметрі өзгертілмейді."</string>
     <string name="wifi_disable_mac_randomization_dialog_network_not_found" msgid="7359256966900782004">"Желі табылмады"</string>
     <string name="wifi_eap_error_message_code_32756" msgid="2620877003804313434">"<xliff:g id="SSID">%1$s</xliff:g>: EAP аутентификация қатесі (32756)"</string>
     <!-- no translation found for wifi_eap_error_message_code_32756_carrier_overrides:0 (9114567205305206743) -->
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Сервер аты:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Шығарушы аты:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Ұйым:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Сертификаттың жарамдылық мерзімі: \n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 саусақ ізі: \n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Контакт:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Қолтаңба:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Желі расталуы керек"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"<xliff:g id="SSID">%1$s</xliff:g> желісіне қосылмас бұрын, оның мәліметтерін тексеріп алыңыз. Жалғастыру үшін түртіңіз."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Сертификатты орнату мүмкін емес."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> желісіне қосылмайды."</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Сервер сертификаты тізбегі жарамсыз."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Жарайды"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Бұл желіні растау мүмкін емес"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Бәрібір қосылу"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Қосылмау"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Байланыста болыңыз"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Қазір ажырату"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> желісінде сертификат жоқ."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Сертификаттарды қосып үйреніңіз"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Бұл желіні растау мүмкін емес"</string>
diff --git a/service/ServiceWifiResources/res/values-km/strings.xml b/service/ServiceWifiResources/res/values-km/strings.xml
index dbbdc98..1f0659f 100644
--- a/service/ServiceWifiResources/res/values-km/strings.xml
+++ b/service/ServiceWifiResources/res/values-km/strings.xml
@@ -124,7 +124,7 @@
     <string name="wifi_interface_priority_message" msgid="4253391172756140313">"សកម្មភាពនេះអាច​បណ្ដាលឱ្យមាន​បញ្ហាសម្រាប់ <xliff:g id="APPS">%3$s</xliff:g>។"</string>
     <string name="wifi_interface_priority_message_plural" msgid="8178086373318831859">"វាអាចបណ្ដាលឱ្យមានបញ្ហាសម្រាប់កម្មវិធីទាំងនេះ៖ <xliff:g id="APPS">%3$s</xliff:g>។"</string>
     <string name="wifi_interface_priority_approve" msgid="7877379614986261096">"អនុញ្ញាត"</string>
-    <string name="wifi_interface_priority_reject" msgid="1378461018835886777">"កុំអនុញ្ញាត"</string>
+    <string name="wifi_interface_priority_reject" msgid="1378461018835886777">"មិនអនុញ្ញាត"</string>
     <string name="wifi_ca_cert_dialog_title" msgid="3872340345882915806">"តើជឿទុកចិត្ត​បណ្តាញនេះ​បានទេ?"</string>
     <string name="wifi_ca_cert_dialog_continue_text" msgid="1674156611893471003">"បាទ/ចាស ភ្ជាប់"</string>
     <string name="wifi_ca_cert_dialog_abort_text" msgid="1303170595421648059">"ទេ កុំភ្ជាប់"</string>
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ឈ្មោះ​ម៉ាស៊ីនមេ៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ឈ្មោះស្ថាប័ន​ចេញ​វិញ្ញាបនបត្រ៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ស្ថាប័ន៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"ការ​ផុតកំណត់នៃវិញ្ញាបនបត្រ៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"ស្នាម​ម្រាមដៃ SHA​-256៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"ទំនាក់ទំនង៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ហត្ថលេខា៖\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ចាំបាច់ត្រូវ​ផ្ទៀងផ្ទាត់​បណ្ដាញ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ពិនិត្យមើល​ព័ត៌មានលម្អិត​អំពីបណ្ដាញ​ពាក់ព័ន្ធនឹង <xliff:g id="SSID">%1$s</xliff:g> មុននឹង​ភ្ជាប់។ ចុច​ដើម្បី​បន្ត។"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"ការដំឡើង​វិញ្ញាបនបត្រ​មិនបានសម្រេចទេ។"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"មិនអាចភ្ជាប់ទៅ <xliff:g id="VALUE">%1$s</xliff:g> បានទេ"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"តំណវិញ្ញាបនបត្រម៉ាស៊ីនមេមិនត្រឹមត្រូវ។"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"យល់ព្រម"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"មិនអាច​ផ្ទៀងផ្ទាត់​បណ្ដាញនេះ​បានទេ"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"មិនអីទេ ភ្ជាប់ចុះ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"កុំ​ភ្ជាប់"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"បន្ត​ភ្ជាប់"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ផ្តាច់ឥឡូវនេះ"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"បណ្ដាញ <xliff:g id="SSID">%1$s</xliff:g> មិនមាន​វិញ្ញាបនបត្រ​ទេ។"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"ស្វែងយល់​អំពីរបៀប​បញ្ចូល​វិញ្ញាបនបត្រ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"មិនអាច​ផ្ទៀងផ្ទាត់​បណ្ដាញនេះ​បានទេ"</string>
@@ -149,5 +153,5 @@
     <string name="wifi_enable_request_dialog_title" msgid="3577459145316177148">"អនុញ្ញាតឱ្យ <xliff:g id="APP_NAME">%1$s</xliff:g> បើក Wi‑Fi ឬ?"</string>
     <string name="wifi_enable_request_dialog_message" msgid="6395169178524938278">"អ្នកអាច​បិទ Wi‑Fi នៅក្នុង​ការកំណត់រហ័ស"</string>
     <string name="wifi_enable_request_dialog_positive_button" msgid="6050832555821470466">"អនុញ្ញាត"</string>
-    <string name="wifi_enable_request_dialog_negative_button" msgid="4754219902374918882">"កុំអនុញ្ញាត"</string>
+    <string name="wifi_enable_request_dialog_negative_button" msgid="4754219902374918882">"មិនអនុញ្ញាត"</string>
 </resources>
diff --git a/service/ServiceWifiResources/res/values-kn/strings.xml b/service/ServiceWifiResources/res/values-kn/strings.xml
index c2c888a..a6ca95f 100644
--- a/service/ServiceWifiResources/res/values-kn/strings.xml
+++ b/service/ServiceWifiResources/res/values-kn/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ಸರ್ವರ್ ಹೆಸರು:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ವಿತರಕರ ಹೆಸರು:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ಸಂಸ್ಥೆ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"ಪ್ರಮಾಣಪತ್ರದ ಅವಧಿ ಮುಕ್ತಾಯವಾಗುವ ದಿನಾಂಕ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ಫಿಂಗರ್‌ ಪ್ರಿಂಟ್:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"ಸಂಪರ್ಕ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ಸಹಿ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಪರಿಶೀಲಿಸುವ ಅಗತ್ಯವಿದೆ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ಕನೆಕ್ಟ್ ಮಾಡುವ ಮುನ್ನ <xliff:g id="SSID">%1$s</xliff:g> ನೆಟ್‌ವರ್ಕ್ ವಿವರಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ಮುಂದುವರಿಯಲು ಟ್ಯಾಪ್ ಮಾಡಿ."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"ಪ್ರಮಾಣಪತ್ರದ ಇನ್‌ಸ್ಟಾಲೇಶನ್ ವಿಫಲವಾಗಿದೆ."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> ಗೆ ಕನೆಕ್ಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರದ ಸರಣಿ ಅಮಾನ್ಯವಾಗಿದೆ."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ಸರಿ"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ಈ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ಹೇಗಿದ್ದರೂ ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"ಕನೆಕ್ಟ್ ಮಾಡಬೇಡಿ"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"ಕನೆಕ್ಟ್ ಆಗಿರಲಿ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ಈಗಲೇ ಡಿಸ್‌ಕನೆಕ್ಟ್ ಮಾಡಿ"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ನೆಟ್‌ವರ್ಕ್ <xliff:g id="SSID">%1$s</xliff:g> ಒಂದು ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹೊಂದಿಲ್ಲ."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"ಪ್ರಮಾಣಪತ್ರಗಳನ್ನು ಸೇರಿಸುವುದು ಹೇಗೆ ಎಂದು ತಿಳಿಯಿರಿ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ಈ ನೆಟ್‌ವರ್ಕ್ ಅನ್ನು ಪರಿಶೀಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ"</string>
diff --git a/service/ServiceWifiResources/res/values-ko/strings.xml b/service/ServiceWifiResources/res/values-ko/strings.xml
index 02928f5..a03485f 100644
--- a/service/ServiceWifiResources/res/values-ko/strings.xml
+++ b/service/ServiceWifiResources/res/values-ko/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"서버 이름:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"발급기관 이름:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"조직:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"인증서 만료:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 지문:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"연락처:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"서명:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"네트워크 인증 필요"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"연결하기 전에 <xliff:g id="SSID">%1$s</xliff:g>의 네트워크 세부정보를 확인하세요. 계속하려면 탭하세요."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"인증서를 설치할 수 없습니다."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g>에 연결할 수 없음"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"잘못된 서버 인증 체인입니다."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"확인"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"이 네트워크를 확인할 수 없음"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"무시하고 연결"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"연결 안 함"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"연결 상태 유지"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"지금 연결 해제"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> 네트워크에 인증서가 없습니다."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"인증서 추가 방법 알아보기"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"이 네트워크를 확인할 수 없음"</string>
diff --git a/service/ServiceWifiResources/res/values-ky/strings.xml b/service/ServiceWifiResources/res/values-ky/strings.xml
index 9138fca..8e31b9f 100644
--- a/service/ServiceWifiResources/res/values-ky/strings.xml
+++ b/service/ServiceWifiResources/res/values-ky/strings.xml
@@ -49,7 +49,7 @@
     <string name="wifi_connect_alert_title" msgid="2368200646665663612">"Туташууга уруксатпы?"</string>
     <string name="wifi_connect_alert_message" msgid="7226456300982080746">"%1$s колдонмосу %2$s Wifi тармагына туташкысы келет"</string>
     <string name="wifi_connect_default_application" msgid="8917703737222707062">"Колдонмо"</string>
-    <string name="accept" msgid="8346431649376483879">"Кабыл алуу"</string>
+    <string name="accept" msgid="8346431649376483879">"Ооба"</string>
     <string name="decline" msgid="4172251727603762084">"Баш тартуу"</string>
     <string name="ok" msgid="847575529546290102">"Жарайт"</string>
     <string name="wifi_p2p_invitation_sent_title" msgid="6552639940428040869">"Чакыруу жөнөтүлдү"</string>
@@ -63,12 +63,12 @@
     <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="2226863827636191980">"Телефон <xliff:g id="DEVICE_NAME">%1$s</xliff:g> менен байланышып турганда, Wi-Fi\'дан убактылуу ажыратылат"</string>
     <string name="dlg_ok" msgid="254496739491689405">"Жарайт"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"<xliff:g id="SSID">%1$s</xliff:g> менен туташпай жатат"</string>
-    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Купуялык жөндөөлөрүн өзгөртүү үчүн таптап, кайталап көрүңүз"</string>
-    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Купуялык жөндөөлөрүн өзгөртөсүзбү?"</string>
+    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Купуялык параметрлерин өзгөртүү үчүн таптап, кайталап көрүңүз"</string>
+    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Купуялык параметрлерин өзгөртөсүзбү?"</string>
     <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"Туташуу үчүн <xliff:g id="SSID">%1$s</xliff:g> MAC дарегиңизди – уникалдуу идентификаторду колдонушу керек. Учурда бул тармактын купуялык жөндөөсү башаламан иретте түзүлгөн идентификаторду колдонууда. \n\nУшуну менен түзмөгүңүздүн жайгашкан жерине жакын жердеги түзмөктөр көз сала алышат."</string>
     <string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"Жөндөөнү өзгөртүү"</string>
     <string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"Жөндөө жаңырды. Кайра туташып көрүңүз."</string>
-    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Купуялык жөндөөлөрүн өзгөртүүгө болбойт"</string>
+    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Купуялык параметрлерин өзгөртүүгө болбойт"</string>
     <string name="wifi_disable_mac_randomization_dialog_network_not_found" msgid="7359256966900782004">"Тармак табылган жок"</string>
     <string name="wifi_eap_error_message_code_32756" msgid="2620877003804313434">"<xliff:g id="SSID">%1$s</xliff:g> : EAP аутентификация катасы 32756"</string>
     <!-- no translation found for wifi_eap_error_message_code_32756_carrier_overrides:0 (9114567205305206743) -->
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Сервердин аталышы:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Чыгарган тараптын аталышы:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Уюм:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Тастыктаманын мөөнөтү качан аяктайт:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 манжа изи:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Байланыш:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Колтамга:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Тармакты текшерүү керек"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Туташуудан мурун <xliff:g id="SSID">%1$s</xliff:g> тармагынын чоо-жайын карап чыгыңыз. Улантуу үчүн басып коюңуз."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Тастыктама орнотулган жок."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> менен туташпай жатат"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Сервердин тастыктама чынжыры жараксыз."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Макул"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Бул тармак ырасталган жок"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Баары бир туташуу"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Туташпасын"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Байланышта болуу"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Азыр ажыратуу"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Тармактын <xliff:g id="SSID">%1$s</xliff:g> тастыктамасы жок."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Тастыктамаларды кошконду үйрөнүп алыңыз"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Бул тармак ырасталган жок"</string>
diff --git a/service/ServiceWifiResources/res/values-lo/strings.xml b/service/ServiceWifiResources/res/values-lo/strings.xml
index 4a2f4a1..9b6ddf3 100644
--- a/service/ServiceWifiResources/res/values-lo/strings.xml
+++ b/service/ServiceWifiResources/res/values-lo/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ຊື່ເຊີບເວີ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ຊື່ຜູ້ອອກໃບຮັບຮອງ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ອົງການ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"ການໝົດອາຍຸຂອງໃບຮັບຮອງ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"ລາຍນິ້ວມື SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"ລາຍຊື່ຜູ້ຕິດຕໍ່:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ລາຍເຊັນ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ຕ້ອງຢັ້ງຢືນເຄືອຂ່າຍກ່ອນ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ກະລຸນາກວດສອບລາຍລະອຽດເຄືອຂ່າຍສຳລັບ <xliff:g id="SSID">%1$s</xliff:g> ກ່ອນການເຊື່ອມຕໍ່. ແຕະເພື່ອສືບຕໍ່."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"ການຕິດຕັ້ງໃບຮັບຮອງບໍ່ສຳເລັດ."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"ບໍ່ສາມາດເຊື່ອມຕໍ່ຫາ <xliff:g id="VALUE">%1$s</xliff:g> ໄດ້"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"ຕ່ອງໂສ້ໃບຮັບຮອງເຊີບເວີບໍ່ຖືກຕ້ອງ."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ຕົກລົງ"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ບໍ່ສາມາດຢັ້ງຢືນເຄືອຂ່າຍນີ້ໄດ້"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ຢືນຢັນການເຊື່ອມຕໍ່"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"ຢ່າເຊື່ອມຕໍ່"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"ເຊື່ອມຕໍ່ຕະຫຼອດເວລາ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ຕັດເຊື່ອມຕໍ່ດຽວນີ້"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ເຄືອຂ່າຍ <xliff:g id="SSID">%1$s</xliff:g> ບໍ່ມີໃບຮັບຮອງ."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"ສຶກສາວິທີເພີ່ມໃບຮັບຮອງ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ບໍ່ສາມາດຢັ້ງຢືນເຄືອຂ່າຍນີ້ໄດ້"</string>
diff --git a/service/ServiceWifiResources/res/values-lt/strings.xml b/service/ServiceWifiResources/res/values-lt/strings.xml
index 533b32c..4f5d634 100644
--- a/service/ServiceWifiResources/res/values-lt/strings.xml
+++ b/service/ServiceWifiResources/res/values-lt/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Serverio pavadinimas:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Leidėjo pavadinimas:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizacija:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikato galiojimo laiko pabaiga:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 piršto atspaudas:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Susisiekti su:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Parašas:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Reikia patvirtinti tinklą"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Prieš prisijungdami peržiūrėkite išsamią <xliff:g id="SSID">%1$s</xliff:g> tinklo informaciją. Palieskite ir tęskite."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Nepavyko įdiegti sertifikato."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nepavyksta prisijungti prie „<xliff:g id="VALUE">%1$s</xliff:g>“"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Netinkama serverio sertifikato grandinė."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Gerai"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Nepavyko patvirtinti šio tinklo"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Vis tiek prisijungti"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Neprisijungti"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Palikti susietą"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Atjungti dabar"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Trūksta tinklo <xliff:g id="SSID">%1$s</xliff:g> sertifikato."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Sužinokite, kaip pridėti sertifikatus"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Nepavyko patvirtinti šio tinklo"</string>
diff --git a/service/ServiceWifiResources/res/values-lv/strings.xml b/service/ServiceWifiResources/res/values-lv/strings.xml
index ed2c654..7cb05a4 100644
--- a/service/ServiceWifiResources/res/values-lv/strings.xml
+++ b/service/ServiceWifiResources/res/values-lv/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Servera nosaukums:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Izsniedzēja vārds/nosaukums:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizācija:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikāta derīguma termiņš:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ciparnospiedums:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontaktpersona:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Paraksts:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Nepieciešama tīkla verifikācija"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Pirms savienojuma izveides pārskatiet detalizēto informāciju par tīklu <xliff:g id="SSID">%1$s</xliff:g>. Pieskarieties, lai turpinātu."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Neizdevās instalēt sertifikātu."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nevar izveidot savienojumu ar tīklu <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Servera sertifikātu ķēde ir nederīga."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Labi"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Nevar verificēt šo tīklu"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Tomēr izveidot savienojumu"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Neizveidot savienojumu"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Nepārtraukt savienojumu"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Pārtraukt savienojumu tūlīt"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Tīklam <xliff:g id="SSID">%1$s</xliff:g> trūkst sertifikāta."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Uzzināt, kā pievienot sertifikātus"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Nevar verificēt šo tīklu"</string>
diff --git a/service/ServiceWifiResources/res/values-mk/strings.xml b/service/ServiceWifiResources/res/values-mk/strings.xml
index d555968..980aae3 100644
--- a/service/ServiceWifiResources/res/values-mk/strings.xml
+++ b/service/ServiceWifiResources/res/values-mk/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Име на сервер:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Име на издавач:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Организација:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Истекување на сертификатот:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 отпечаток:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Контактирајте со:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Потпис:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Мрежава треба да се потврди"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Прегледајте ги деталите за мрежа за <xliff:g id="SSID">%1$s</xliff:g> пред поврзување. Допрете за да продолжите."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Не успеа инсталирањето сертификат."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Не може да се поврзе на „<xliff:g id="VALUE">%1$s</xliff:g>“"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Синџирот на сертификати на серверот е неважечки."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Во ред"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Не може да се потврди мрежава"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Сепак поврзи се"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Не поврзувај"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Останете поврзани"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Прекини ја врската сега"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"На мрежата <xliff:g id="SSID">%1$s</xliff:g> ѝ недостасува сертификат."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Дознајте како да додадете сертификати"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Не може да се потврди мрежава"</string>
diff --git a/service/ServiceWifiResources/res/values-ml/strings.xml b/service/ServiceWifiResources/res/values-ml/strings.xml
index 737c0e6..92e46ef 100644
--- a/service/ServiceWifiResources/res/values-ml/strings.xml
+++ b/service/ServiceWifiResources/res/values-ml/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"സെർവറിന്റെ പേര്:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ഇഷ്യൂവറിന്റെ പേര്:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"സ്ഥാപനം:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"സർട്ടിഫിക്കറ്റ് കാലഹരണപ്പെടുന്നത്:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ഫിംഗർപ്രിന്റ്:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"കോൺടാക്റ്റ്:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ഒപ്പ്:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"നെറ്റ്‌വർക്ക് പരിശോധിച്ചുറപ്പിക്കേണ്ടതുണ്ട്"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"കണക്റ്റ് ചെയ്യുന്നതിന് മുമ്പ് <xliff:g id="SSID">%1$s</xliff:g> എന്നതിന്റെ നെറ്റ്‌വർക്ക് വിശദാംശങ്ങൾ അവലോകനം ചെയ്യുക. തുടരാൻ ടാപ്പ് ചെയ്യുക."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"സർട്ടിഫിക്കറ്റ് ഇൻസ്റ്റാൾ ചെയ്യാനായില്ല."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> എന്നതിലേക്ക് കണക്‌റ്റ് ചെയ്യാനാകുന്നില്ല"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"സെർവർ സർട്ടിഫിക്കറ്റ് ചെയിൻ അസാധുവാണ്."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ശരി"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ഈ നെറ്റ്‌വർക്ക് പരിശോധിച്ചുറപ്പിക്കാനാകുന്നില്ല"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"എന്തായാലും കണക്‌റ്റ് ചെയ്യുക"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"കണക്റ്റ് ചെയ്യരുത്"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"കണക്റ്റ് ചെയ്ത നിലയിൽ തുടരൂ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ഇപ്പോൾ വിച്ഛേദിക്കുക"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> എന്ന നെറ്റ്‌വർക്കിന് ഒരു സർട്ടിഫിക്കറ്റ് ഇല്ല."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"സർട്ടിഫിക്കറ്റുകൾ ചേർക്കുന്നത് എങ്ങനെയെന്നറിയൂ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ഈ നെറ്റ്‌വർക്ക് പരിശോധിച്ചുറപ്പിക്കാനാകുന്നില്ല"</string>
diff --git a/service/ServiceWifiResources/res/values-mn/strings.xml b/service/ServiceWifiResources/res/values-mn/strings.xml
index ab0b903..9b5232f 100644
--- a/service/ServiceWifiResources/res/values-mn/strings.xml
+++ b/service/ServiceWifiResources/res/values-mn/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Серверийн нэр:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Гаргагчийн нэр:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Байгууллага:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Сертификатын дуусах хугацаа:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 хурууны хээ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">\n"<xliff:g id="VALUE">%1$s</xliff:g>\n\n-тай холбогдох"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Гарын үсэг:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Сүлжээ баталгаажсан байх хэрэгтэй"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"<xliff:g id="SSID">%1$s</xliff:g> сүлжээний дэлгэрэнгүйг холбохоос өмнө үнэлнэ үү. Үргэлжлүүлэхийн тулд товшино уу."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Сертификатын суулгац амжилтгүй боллоо."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g>-д холбогдох боломжгүй"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Серверийн гэрчилгээний цуваа буруу байна."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Энэ сүлжээг баталгаажуулах боломжгүй байна"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Ямар ч байсан холбогдох"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Бүү холбогд"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Холбогдсон хэвээр байх"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Одоо салгах"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> сүлжээнд сертификат хоосон байна."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Хэрхэн сертификатууд нэмэхийг сураарай."</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Энэ сүлжээг баталгаажуулах боломжгүй байна"</string>
diff --git a/service/ServiceWifiResources/res/values-mr/strings.xml b/service/ServiceWifiResources/res/values-mr/strings.xml
index 4d4c79b..b5e4709 100644
--- a/service/ServiceWifiResources/res/values-mr/strings.xml
+++ b/service/ServiceWifiResources/res/values-mr/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"सर्व्हरचे नाव:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"जारीकर्त्याचे नाव:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"संस्था:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"प्रमाणपत्राचे एक्स्पायरेशन:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 फिंगरप्रिंट:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"संपर्क:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"स्वाक्षरी:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"नेटवर्कची पडताळणी करणे आवश्यक आहे"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"कनेक्ट करण्यापूर्वी <xliff:g id="SSID">%1$s</xliff:g> च्या नेटवर्कशी संबंधित तपशिलांचे पुनरावलोकन करा. सुरू ठेवण्यासाठी टॅप करा."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"प्रमाणपत्र इंस्टॉल करता आले नाही."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> शी कनेक्ट करू शकत नाही"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"सर्व्हर सर्टिफिकेट चेन चुकीची आहे."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ओके"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"या नेटवर्कची पडताळणी करता आली नाही"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"तरीही कनेक्ट करा"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"कनेक्ट करू नका"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"कनेक्ट केलेले रहा"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"आता डिस्कनेक्ट करा"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> नेटवर्कचे प्रमाणपत्र उपलब्ध नाही."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"प्रमाणपत्रे कशी जोडायची ते जाणून घ्या"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"या नेटवर्कची पडताळणी करता आली नाही"</string>
diff --git a/service/ServiceWifiResources/res/values-ms/strings.xml b/service/ServiceWifiResources/res/values-ms/strings.xml
index b46abcb..9774aa0 100644
--- a/service/ServiceWifiResources/res/values-ms/strings.xml
+++ b/service/ServiceWifiResources/res/values-ms/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nama Pelayan:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nama Pengeluar:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisasi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Tamat Tempoh Sijil:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Cap Jari SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kenalan:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Tandatangan:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Rangkaian perlu disahkan"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Semak butiran rangkaian untuk <xliff:g id="SSID">%1$s</xliff:g> sebelum bersambung. Ketik untuk meneruskan."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Pemasangan sijil gagal."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Tidak dapat menyambung kepada <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Rantaian sijil pelayan tidak sah."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Tidak dapat mengesahkan rangkaian ini"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Sambungkan juga"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Jangan sambung"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Sentiasa disambungkan"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Putuskan sambungan sekarang"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> rangkaian tiada sijil."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Ketahui cara menambah sijil"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Tidak dapat mengesahkan rangkaian ini"</string>
diff --git a/service/ServiceWifiResources/res/values-my/strings.xml b/service/ServiceWifiResources/res/values-my/strings.xml
index 3dd3fa1..861bf87 100644
--- a/service/ServiceWifiResources/res/values-my/strings.xml
+++ b/service/ServiceWifiResources/res/values-my/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ဆာဗာအမည်-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ထုတ်ပေးသူ အမည်-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"အဖွဲ့အစည်း-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"အသိအမှတ်ပြုလက်မှတ် သက်တမ်းကုန်ဆုံးချိန်-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 လက်ဗွေ-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"အဆက်အသွယ်-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"လက်မှတ်-\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ကွန်ရက်ကို စိစစ်ရမည်"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"မချိတ်ဆက်မီ <xliff:g id="SSID">%1$s</xliff:g> အတွက် ကွန်ရက်အသေးစိတ်ကို ကြည့်ရှုပါ။ ဆက်လုပ်ရန် တို့ပါ"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"အသိအမှတ်ပြုလက်မှတ် ထည့်သွင်း၍မရပါ။"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> နှင့် ချိတ်ဆက်၍မရပါ"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"ဆာဗာလက်မှတ်ကွင်းဆက် မမှန်ကန်ပါ။"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ဤကွန်ရက်ကို စိစစ်၍မရပါ"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"မည်သို့ပင်ဖြစ်စေ ချိတ်ဆက်ရန်"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"မချိတ်ဆက်ပါနှင့်"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"ဆက်ချိတ်ထားရန်"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ယခု ချိတ်ဆက်မှုဖြုတ်ရန်"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ကွန်ရက် <xliff:g id="SSID">%1$s</xliff:g> တွင် အသိအမှတ်ပြုလက်မှတ် မရှိပါ။"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"အသိအမှတ်ပြုလက်မှတ်များ ထည့်သွင်းပုံ လေ့လာပါ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ဤကွန်ရက်ကို စိစစ်၍မရပါ"</string>
@@ -149,5 +153,5 @@
     <string name="wifi_enable_request_dialog_title" msgid="3577459145316177148">"<xliff:g id="APP_NAME">%1$s</xliff:g> ကို Wi‑Fi ဖွင့်ခွင့်ပြုမလား။"</string>
     <string name="wifi_enable_request_dialog_message" msgid="6395169178524938278">"‘အမြန် ဆက်တင်များ’ တွင် Wi‑Fi ပိတ်နိုင်သည်"</string>
     <string name="wifi_enable_request_dialog_positive_button" msgid="6050832555821470466">"ခွင့်ပြုရန်"</string>
-    <string name="wifi_enable_request_dialog_negative_button" msgid="4754219902374918882">"ခွင့်မပြုရန်"</string>
+    <string name="wifi_enable_request_dialog_negative_button" msgid="4754219902374918882">"ခွင့်မပြုပါ"</string>
 </resources>
diff --git a/service/ServiceWifiResources/res/values-nb/strings.xml b/service/ServiceWifiResources/res/values-nb/strings.xml
index c2e8360..51936e7 100644
--- a/service/ServiceWifiResources/res/values-nb/strings.xml
+++ b/service/ServiceWifiResources/res/values-nb/strings.xml
@@ -16,22 +16,22 @@
 
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
-    <string name="wifiResourcesAppLabel" product="default" msgid="3120115613525263696">"Systemets Wi-Fi-ressurser"</string>
+    <string name="wifiResourcesAppLabel" product="default" msgid="3120115613525263696">"Systemets Wifi-ressurser"</string>
     <string name="wifi_available_title" msgid="3899472737467127635">"Koble til et åpent Wi‑Fi-nettverk"</string>
-    <string name="wifi_available_title_connecting" msgid="7233590022728579868">"Kobler til Wi-Fi-nettverket"</string>
-    <string name="wifi_available_title_connected" msgid="6329493859989844201">"Koblet til Wi-Fi-nettverk"</string>
-    <string name="wifi_available_title_failed_to_connect" msgid="4840833680513368639">"Kunne ikke koble til Wi-Fi-nettverket"</string>
+    <string name="wifi_available_title_connecting" msgid="7233590022728579868">"Kobler til wifi-nettverket"</string>
+    <string name="wifi_available_title_connected" msgid="6329493859989844201">"Koblet til wifi-nettverk"</string>
+    <string name="wifi_available_title_failed_to_connect" msgid="4840833680513368639">"Kunne ikke koble til wifi-nettverket"</string>
     <string name="wifi_available_content_failed_to_connect" msgid="4330035988269701861">"Trykk for å se alle nettverkene"</string>
     <string name="wifi_available_action_connect" msgid="5636634933476946222">"Koble til"</string>
     <string name="wifi_available_action_all_networks" msgid="8491109932336522211">"Alle nettverk"</string>
     <string name="notification_channel_network_status" msgid="1631786866932924838">"Nettverksstatus"</string>
     <string name="notification_channel_network_alerts" msgid="1391603215241200880">"Nettverksvarsler"</string>
     <string name="notification_channel_network_available" msgid="8454366142428864948">"Nettverk er tilgjengelig"</string>
-    <string name="wifi_suggestion_title" msgid="2564179935989099139">"Vil du tillate foreslåtte Wi-Fi nettverk?"</string>
+    <string name="wifi_suggestion_title" msgid="2564179935989099139">"Vil du tillate foreslåtte Wifi nettverk?"</string>
     <string name="wifi_suggestion_content" msgid="6985149577828091835">"<xliff:g id="NAME">%s</xliff:g>-foreslåtte nettverk. Enheten kan koble til automatisk."</string>
     <string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"Tillat"</string>
     <string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"Nei takk"</string>
-    <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Vil du koble til <xliff:g id="CARRIERNAME">%s</xliff:g>-Wi-Fi?"</string>
+    <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Vil du koble til <xliff:g id="CARRIERNAME">%s</xliff:g>-Wifi?"</string>
     <string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"Disse nettverkene mottar en SIM-ID som kan brukes til å spore enhetsposisjonen"</string>
     <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_carrier" msgid="3888538126440442636">"Koble til"</string>
     <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_carrier" msgid="3225397664735676024">"Ikke koble til"</string>
@@ -44,10 +44,10 @@
     <string name="wifi_wakeup_onboarding_action_disable" msgid="6209706680391785825">"Ikke slå på igjen"</string>
     <string name="wifi_wakeup_enabled_title" msgid="5043486751612595850">"Wi‑Fi er slått på automatisk"</string>
     <string name="wifi_wakeup_enabled_content" msgid="3911262526267025882">"Du er i nærheten av et lagret nettverk: <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
-    <string name="wifi_watchdog_network_disabled" msgid="5769226742956006362">"Kan ikke koble til Wi-Fi"</string>
+    <string name="wifi_watchdog_network_disabled" msgid="5769226742956006362">"Kan ikke koble til wifi"</string>
     <string name="wifi_watchdog_network_disabled_detailed" msgid="1725243835135539125">" har en dårlig internettilkobling."</string>
     <string name="wifi_connect_alert_title" msgid="2368200646665663612">"Vil du tillat tilkoblingen?"</string>
-    <string name="wifi_connect_alert_message" msgid="7226456300982080746">"Appen %1$s vil koble til Wi-Fi-nettverket %2$s"</string>
+    <string name="wifi_connect_alert_message" msgid="7226456300982080746">"Appen %1$s vil koble til wifi-nettverket %2$s"</string>
     <string name="wifi_connect_default_application" msgid="8917703737222707062">"En app"</string>
     <string name="accept" msgid="8346431649376483879">"Godta"</string>
     <string name="decline" msgid="4172251727603762084">"Avslå"</string>
@@ -58,9 +58,9 @@
     <string name="wifi_p2p_to_message" msgid="3809923305696994787">"Til:"</string>
     <string name="wifi_p2p_enter_pin_message" msgid="5200220251738047620">"Skriv inn påkrevd PIN-kode:"</string>
     <string name="wifi_p2p_show_pin_message" msgid="1000091690967930798">"PIN:"</string>
-    <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="2875937871590955304">"Nettbrettet frakobles Wi-Fi midlertidig mens den er tilkoblet <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_p2p_frequency_conflict_message" product="tv" msgid="9133053225387001827">"Android TV-enheten din blir midlertidig koblet fra Wi-Fi mens den er koblet til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
-    <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="2226863827636191980">"Telefonen frakobles Wi-Fi midlertidig mens den er tilkoblet <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="2875937871590955304">"Nettbrettet frakobles Wifi midlertidig mens den er tilkoblet <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="tv" msgid="9133053225387001827">"Android TV-enheten din blir midlertidig koblet fra wifi mens den er koblet til <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
+    <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="2226863827636191980">"Telefonen frakobles Wifi midlertidig mens den er tilkoblet <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="dlg_ok" msgid="254496739491689405">"OK"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"Kan ikke koble til <xliff:g id="SSID">%1$s</xliff:g>"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Trykk for å endre personverninnstillingene og prøve på nytt"</string>
@@ -74,51 +74,51 @@
     <!-- no translation found for wifi_eap_error_message_code_32756_carrier_overrides:0 (9114567205305206743) -->
     <string name="wifi_eap_error_message_code_32760" msgid="5258191595973470188">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32760"</string>
   <string-array name="wifi_eap_error_message_code_32760_carrier_overrides">
-    <item msgid="7582366019846559418">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Du kan ikke koble til Verizon Wi-Fi Access fra utenfor Verizons dekningsområde. (Feil = 32760)"</item>
+    <item msgid="7582366019846559418">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Du kan ikke koble til Verizon Wifi Access fra utenfor Verizons dekningsområde. (Feil = 32760)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32761" msgid="3962610712123291591">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32761"</string>
   <string-array name="wifi_eap_error_message_code_32761_carrier_overrides">
-    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Du abonnerer ikke på Verizon Wi-Fi Access. Ring oss på 800-922-0204. (Feil = 32761)"</item>
+    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Du abonnerer ikke på Verizon Wifi Access. Ring oss på 800-922-0204. (Feil = 32761)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32762" msgid="2381670648753465737">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32762"</string>
   <string-array name="wifi_eap_error_message_code_32762_carrier_overrides">
-    <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med Verizon Wi-Fi Access-kontoen din. Ring oss på 800-922-0204. (Feil = 32762)"</item>
+    <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med Verizon Wifi Access-kontoen din. Ring oss på 800-922-0204. (Feil = 32762)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32763" msgid="4467733260757049969">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32763"</string>
   <string-array name="wifi_eap_error_message_code_32763_carrier_overrides">
-    <item msgid="591026649262091217">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Du er allerede koblet til Verizon Wi-Fi Access. (Feil = 32763)"</item>
+    <item msgid="591026649262091217">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Du er allerede koblet til Verizon Wifi Access. (Feil = 32763)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32764" msgid="7349538467012877101">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32764"</string>
   <string-array name="wifi_eap_error_message_code_32764_carrier_overrides">
-    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wi-Fi Access. Ring oss på 800-922-0204. (Feil = 32764)"</item>
+    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wifi Access. Ring oss på 800-922-0204. (Feil = 32764)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32765" msgid="2167528358066037980">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32765"</string>
   <string-array name="wifi_eap_error_message_code_32765_carrier_overrides">
-    <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med Verizon Wi-Fi Access-kontoen din. Ring oss på 800-922-0204. (Feil = 32765)"</item>
+    <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med Verizon Wifi Access-kontoen din. Ring oss på 800-922-0204. (Feil = 32765)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32766" msgid="2335996367705677670">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32766"</string>
   <string-array name="wifi_eap_error_message_code_32766_carrier_overrides">
-    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Verizon Wi-Fi Access er ikke tilgjengelig fra der du er. Prøv på nytt senere, eller prøv fra et annet sted. (Feil = 32766)"</item>
+    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Verizon Wifi Access er ikke tilgjengelig fra der du er. Prøv på nytt senere, eller prøv fra et annet sted. (Feil = 32766)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32767" msgid="7094289719914089006">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 32767"</string>
   <string-array name="wifi_eap_error_message_code_32767_carrier_overrides">
-    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wi-Fi Access. Prøv på nytt senere, eller prøv fra et annet sted."</item>
+    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wifi Access. Prøv på nytt senere, eller prøv fra et annet sted."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16384" msgid="575394783233092922">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 16384"</string>
   <string-array name="wifi_eap_error_message_code_16384_carrier_overrides">
-    <item msgid="5042774904407799226">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wi-Fi Access på grunn av feil 16384."</item>
+    <item msgid="5042774904407799226">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wifi Access på grunn av feil 16384."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16385" msgid="8392878664662215609">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil 16385"</string>
   <string-array name="wifi_eap_error_message_code_16385_carrier_overrides">
-    <item msgid="1251122579833932025">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wi-Fi Access på grunn av feil 16385."</item>
+    <item msgid="1251122579833932025">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wifi Access på grunn av feil 16385."</item>
   </string-array>
     <string name="wifi_eap_error_message_unknown_error_code" msgid="4480884285384231323">"<xliff:g id="SSID">%1$s</xliff:g> : EAP-autentiseringsfeil, ukjent feilkode"</string>
   <string-array name="wifi_eap_error_message_unknown_error_code_carrier_overrides">
-    <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wi-Fi Access."</item>
+    <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : Det har oppstått et problem med å koble deg til Verizon Wifi Access."</item>
   </string-array>
-    <string name="wifi_softap_auto_shutdown_timeout_expired_title" msgid="4896534374569504484">"Wi-Fi-sonen er slått av"</string>
+    <string name="wifi_softap_auto_shutdown_timeout_expired_title" msgid="4896534374569504484">"Wifi-sonen er slått av"</string>
     <string name="wifi_softap_auto_shutdown_timeout_expired_summary" msgid="7975476698140267728">"Ingen enheter er koblet til. Trykk for å endre."</string>
-    <string name="wifi_sim_required_title" msgid="2262227800991155459">"Wi-Fi er frakoblet"</string>
+    <string name="wifi_sim_required_title" msgid="2262227800991155459">"Wifi er frakoblet"</string>
     <string name="wifi_sim_required_message" msgid="284812212346125745">"For å koble til <xliff:g id="SSID">%1$s</xliff:g>, sett inn et <xliff:g id="CARRIER_NAME">%2$s</xliff:g>-SIM-kort"</string>
     <string name="wifi_interface_priority_title" msgid="5117627874976875544">"<xliff:g id="APP">%1$s</xliff:g> vil bruke en nettverksressurs"</string>
     <string name="wifi_interface_priority_message" msgid="4253391172756140313">"Dette kan forårsake problemer for <xliff:g id="APPS">%3$s</xliff:g>."</string>
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Tjenernavn:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Utstedernavn:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisasjon:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikatutløp:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-fingeravtrykk:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signatur:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Nettverket må bekreftes"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Gjennomgå nettverksdetaljene for <xliff:g id="SSID">%1$s</xliff:g> før du kobler til. Trykk for å fortsette."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Installeringen av sertifikatet mislyktes."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Kan ikke koble til <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Tjenerens sertifikatkjede er ugyldig."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Kan ikke bekrefte dette nettverket"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Koble til likevel"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ikke koble til"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Behold tilkoblingen"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Koble fra nå"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Nettverket <xliff:g id="SSID">%1$s</xliff:g> mangler et sertifikat."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Finn ut hvordan du legger til sertifikater"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Kan ikke bekrefte dette nettverket"</string>
diff --git a/service/ServiceWifiResources/res/values-ne/strings.xml b/service/ServiceWifiResources/res/values-ne/strings.xml
index 6427df7..0f18d76 100644
--- a/service/ServiceWifiResources/res/values-ne/strings.xml
+++ b/service/ServiceWifiResources/res/values-ne/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"सर्भरको नाम:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"जारीकर्ताको नाम:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"संस्थाको नाम:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"सर्टिफिकेटको म्याद सकिने मिति:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 फिंगरप्रिन्ट:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"निम्नमा सम्पर्क गर्नुहोस्:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"हस्ताक्षर:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"नेटवर्कको पुष्टि गरिनु पर्ने हुन्छ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"<xliff:g id="SSID">%1$s</xliff:g> मा कनेक्ट गर्नुअघि यसका नेटवर्कसम्बन्धी विवरण जाँच्नुहोस्। जारी राख्न ट्याप गर्नुहोस्।"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"प्रमाणपत्र इन्सटल गर्न सकिएन।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> मा कनेक्ट गर्न सकिएन"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"सर्भरको प्रमाणपत्रको चेन अवैध छ।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ठिक छ"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"यो नेटवर्क पुष्टि गर्न सकिएन"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"जे भए पनि कनेक्ट गर्नुहोस्"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"कनेक्ट नगर्नुहोस्"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"कनेक्ट गरिराख्नुहोस्"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"अहिले नै डिस्कनेक्ट गर्नुहोस्"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"नेटवर्क <xliff:g id="SSID">%1$s</xliff:g> मा कुनै एउटा प्रमाणपत्र छुटेको छ।"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"प्रमाणपत्र हाल्ने तरिका जान्नुहोस्"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"यो नेटवर्क पुष्टि गर्न सकिएन"</string>
diff --git a/service/ServiceWifiResources/res/values-nl/strings.xml b/service/ServiceWifiResources/res/values-nl/strings.xml
index 65d6836..d0784b7 100644
--- a/service/ServiceWifiResources/res/values-nl/strings.xml
+++ b/service/ServiceWifiResources/res/values-nl/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Servernaam:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Naam uitgever:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisatie:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Vervaldatum certificaat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-vingerafdruk:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Handtekening:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Netwerk moet worden geverifieerd"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Check de netwerkgegevens voor <xliff:g id="SSID">%1$s</xliff:g> voordat je verbinding maakt. Tik om door te gaan."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Installatie van certificaat mislukt."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Kan niet verbinden met <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"De servercertificaatketen is ongeldig."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Kan dit netwerk niet verifiëren"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Toch verbinding maken"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Geen verbinding maken"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Verbonden blijven"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Verbinding nu verbreken"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Er ontbreekt een certificaat voor het netwerk <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Leren hoe je certificaten toevoegt"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Kan dit netwerk niet verifiëren"</string>
diff --git a/service/ServiceWifiResources/res/values-or/strings.xml b/service/ServiceWifiResources/res/values-or/strings.xml
index ea3c970..d9aa824 100644
--- a/service/ServiceWifiResources/res/values-or/strings.xml
+++ b/service/ServiceWifiResources/res/values-or/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ସର୍ଭର ନାମ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ପ୍ରଦାନକାରୀର ନାମ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ସଂସ୍ଥା:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"ଯୋଗାଯୋଗ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ଦସ୍ତଖତ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"ସାର୍ଟିଫିକେଟର ମିଆଦ ଶେଷ ହେଉଛି:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ଟିପଚିହ୍ନ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"କଣ୍ଟାକ୍ଟ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ନେଟୱାର୍କକୁ ଯାଞ୍ଚ କରିବା ଆବଶ୍ୟକ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ସଂଯୋଗ କରିବା ପୂର୍ବରୁ <xliff:g id="SSID">%1$s</xliff:g> ପାଇଁ ଥିବା ନେଟୱାର୍କ ବିବରଣୀର ସମୀକ୍ଷା କରନ୍ତୁ। ଜାରି ରଖିବାକୁ ଟାପ କରନ୍ତୁ।"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"ସାର୍ଟିଫିକେଟ ଇନଷ୍ଟଲ କରିବା ବିଫଳ ହୋଇଛି।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> ସହ କନେକ୍ଟ କରାଯାଇପାରିବ ନାହିଁ"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"ସର୍ଭର ସାର୍ଟିଫିକେଟ ଚେନ ଅବୈଧ ଅଟେ।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ଠିକ୍ ଅଛି"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ଏହି ନେଟୱାର୍କକୁ ଯାଞ୍ଚ କରାଯାଇପାରିବ ନାହିଁ"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ଯେ କୌଣସି ମତେ ସଂଯୋଗ କରନ୍ତୁ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"ସଂଯୋଗ କରନ୍ତୁ ନାହିଁ"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"କନେକ୍ଟ ରୁହନ୍ତୁ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ବର୍ତ୍ତମାନ ଡିସକନେକ୍ଟ କରନ୍ତୁ"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> ନେଟୱାର୍କରେ ଏକ ସାର୍ଟିଫିକେଟ ଉପଲବ୍ଧ ନାହିଁ।"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"ସାର୍ଟିଫିକେଟଗୁଡ଼ିକ କିପରି ଯୋଗ କରିବେ ତାହା ଜାଣନ୍ତୁ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ଏହି ନେଟୱାର୍କକୁ ଯାଞ୍ଚ କରାଯାଇପାରିବ ନାହିଁ"</string>
diff --git a/service/ServiceWifiResources/res/values-pa/strings.xml b/service/ServiceWifiResources/res/values-pa/strings.xml
index 59320cb..a8bb5f6 100644
--- a/service/ServiceWifiResources/res/values-pa/strings.xml
+++ b/service/ServiceWifiResources/res/values-pa/strings.xml
@@ -78,7 +78,7 @@
   </string-array>
     <string name="wifi_eap_error_message_code_32761" msgid="3962610712123291591">"<xliff:g id="SSID">%1$s</xliff:g> : EAP ਪ੍ਰਮਾਣੀਕਰਨ ਗੜਬੜ 32761"</string>
   <string-array name="wifi_eap_error_message_code_32761_carrier_overrides">
-    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : ਤੁਸੀਂ Verizon Wi-Fi Access ਲਈ ਗਾਹਕੀ ਨਹੀਂ ਲਈ ਹੋਈ। ਕਿਰਪਾ ਕਰਕੇ ਸਾਨੂੰ 800-922-0204 \'ਤੇ ਕਾਲ ਕਰੋ। (ਗੜਬੜ = 32761)"</item>
+    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g> : ਤੁਸੀਂ Verizon Wi-Fi Access ਲਈ ਸਬਸਕ੍ਰਾਈਬ ਨਹੀਂ ਕੀਤਾ। ਕਿਰਪਾ ਕਰਕੇ ਸਾਨੂੰ 800-922-0204 \'ਤੇ ਕਾਲ ਕਰੋ। (ਗੜਬੜ = 32761)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32762" msgid="2381670648753465737">"<xliff:g id="SSID">%1$s</xliff:g> : EAP ਪ੍ਰਮਾਣੀਕਰਨ ਗੜਬੜ 32762"</string>
   <string-array name="wifi_eap_error_message_code_32762_carrier_overrides">
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ਸਰਵਰ ਦਾ ਨਾਮ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ਜਾਰੀਕਰਤਾ ਦਾ ਨਾਮ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"ਸੰਸਥਾ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੀ ਮਿਆਦ ਸਮਾਪਤੀ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ਫਿੰਗਰਪ੍ਰਿੰਟ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"ਸੰਪਰਕ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ਦਸਤਖਤ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ਨੈੱਟਵਰਕ ਦੀ ਪੁਸ਼ਟੀ ਕਰਨ ਦੀ ਲੋੜ ਹੈ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ਕਨੈਕਟ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ <xliff:g id="SSID">%1$s</xliff:g> ਲਈ ਨੈੱਟਵਰਕ ਵੇਰਵਿਆਂ ਦੀ ਸਮੀਖਿਆ ਕਰੋ। ਜਾਰੀ ਰੱਖਣ ਲਈ ਟੈਪ ਕਰੋ।"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨੂੰ ਸਥਾਪਤ ਕਰਨਾ ਅਸਫਲ ਰਿਹਾ।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> ਨਾਲ ਕਨੈਕਟ ਨਹੀਂ ਕੀਤਾ ਜਾ ਸਕਦਾ"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"ਸਰਵਰ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਲੜੀ ਅਵੈਧ ਹੈ।"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ਠੀਕ ਹੈ"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ਇਸ ਨੈੱਟਵਰਕ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ਫਿਰ ਵੀ ਕਨੈਕਟ ਕਰੋ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"ਕਨੈਕਟ ਨਾ ਕਰੋ"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"ਕਨੈਕਟ ਰਹੋ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ਹੁਣੇ ਡਿਸਕਨੈਕਟ ਕਰੋ"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ਨੈੱਟਵਰਕ <xliff:g id="SSID">%1$s</xliff:g> ਕੋਲ ਕੋਈ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਮੌਜੂਦ ਨਹੀਂ ਹੈ।"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਤਰੀਕਾ ਜਾਣੋ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ਇਸ ਨੈੱਟਵਰਕ ਦੀ ਪੁਸ਼ਟੀ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ"</string>
diff --git a/service/ServiceWifiResources/res/values-pl/strings.xml b/service/ServiceWifiResources/res/values-pl/strings.xml
index c2cdf00..92a3cee 100644
--- a/service/ServiceWifiResources/res/values-pl/strings.xml
+++ b/service/ServiceWifiResources/res/values-pl/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nazwa serwera:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nazwa wydawcy:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizacja:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Data ważności certyfikatu:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Odcisk cyfrowy SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Podpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Sieć wymaga weryfikacji"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Przed połączeniem sprawdź szczegóły sieci <xliff:g id="SSID">%1$s</xliff:g>. Kliknij, aby kontynuować."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Nie udało się zainstalować certyfikatu."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nie można połączyć się z siecią <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Łańcuch certyfikatów serwera jest nieprawidłowy."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Nie można zweryfikować tej sieci"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Połącz mimo to"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nie łącz"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Nie odłączaj"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Odłącz teraz"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"W przypadku sieci <xliff:g id="SSID">%1$s</xliff:g> brakuje certyfikatu."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Jak dodawać certyfikaty"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Nie można zweryfikować tej sieci"</string>
diff --git a/service/ServiceWifiResources/res/values-pt-rBR/strings.xml b/service/ServiceWifiResources/res/values-pt-rBR/strings.xml
index 818eb38..54fed70 100644
--- a/service/ServiceWifiResources/res/values-pt-rBR/strings.xml
+++ b/service/ServiceWifiResources/res/values-pt-rBR/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nome do servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nome do emissor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organização:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Validade do certificado:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Impressão digital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contato:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Assinatura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"A rede precisa ser verificada"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Revise os detalhes da rede <xliff:g id="SSID">%1$s</xliff:g> antes de se conectar. Toque para continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Erro ao instalar o certificado."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Não foi possível se conectar à rede <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"A cadeia de certificados do servidor é inválida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Falha ao verificar esta rede"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Conectar mesmo assim"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Não conectar"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Manter conexão"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desconectar agora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Falta um certificado na rede <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Aprenda a adicionar certificados"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Falha ao verificar esta rede"</string>
diff --git a/service/ServiceWifiResources/res/values-pt-rPT/strings.xml b/service/ServiceWifiResources/res/values-pt-rPT/strings.xml
index 6fb0c2b..c0f5363 100644
--- a/service/ServiceWifiResources/res/values-pt-rPT/strings.xml
+++ b/service/ServiceWifiResources/res/values-pt-rPT/strings.xml
@@ -98,11 +98,11 @@
   </string-array>
     <string name="wifi_eap_error_message_code_32766" msgid="2335996367705677670">"<xliff:g id="SSID">%1$s</xliff:g>: erro de autenticação EAP 32766"</string>
   <string-array name="wifi_eap_error_message_code_32766_carrier_overrides">
-    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: o ponto de acesso Wi-Fi da Verizon não está disponível a partir da sua localização. Tente novamente mais tarde ou experimente a partir de uma localização diferente. (Erro = 32766)"</item>
+    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: o ponto de acesso Wi-Fi da Verizon não está disponível a partir da sua localização. Tente mais tarde ou experimente a partir de uma localização diferente. (Erro = 32766)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32767" msgid="7094289719914089006">"<xliff:g id="SSID">%1$s</xliff:g>: erro de autenticação EAP 32767"</string>
   <string-array name="wifi_eap_error_message_code_32767_carrier_overrides">
-    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: ocorreu um problema ao ligar ao ponto de acesso Wi-Fi da Verizon. Tente novamente mais tarde ou experimente a partir de uma localização diferente."</item>
+    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: ocorreu um problema ao ligar ao ponto de acesso Wi-Fi da Verizon. Tente mais tarde ou experimente a partir de uma localização diferente."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16384" msgid="575394783233092922">"<xliff:g id="SSID">%1$s</xliff:g>: erro de autenticação EAP 16384"</string>
   <string-array name="wifi_eap_error_message_code_16384_carrier_overrides">
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nome do servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nome do emissor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organização:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Data de validade do certificado:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Impressão digital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contacto:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Assinatura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"A rede tem de ser validada"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Verifique os detalhes da rede de <xliff:g id="SSID">%1$s</xliff:g> antes de ligar. Toque para continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"A instalação do certificado falhou."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Não é possível ligar a <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"A cadeia de certificados do servidor é inválida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Não é possível validar esta rede"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Ligar mesmo assim"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Não ligar"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Mantenha-se a par de tudo"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desligar agora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"A rede <xliff:g id="SSID">%1$s</xliff:g> tem um certificado em falta."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Saiba como adicionar certificados"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Não é possível validar esta rede"</string>
diff --git a/service/ServiceWifiResources/res/values-pt/strings.xml b/service/ServiceWifiResources/res/values-pt/strings.xml
index 818eb38..54fed70 100644
--- a/service/ServiceWifiResources/res/values-pt/strings.xml
+++ b/service/ServiceWifiResources/res/values-pt/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Nome do servidor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Nome do emissor:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organização:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Validade do certificado:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Impressão digital SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Contato:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Assinatura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"A rede precisa ser verificada"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Revise os detalhes da rede <xliff:g id="SSID">%1$s</xliff:g> antes de se conectar. Toque para continuar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Erro ao instalar o certificado."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Não foi possível se conectar à rede <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"A cadeia de certificados do servidor é inválida."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Falha ao verificar esta rede"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Conectar mesmo assim"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Não conectar"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Manter conexão"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Desconectar agora"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Falta um certificado na rede <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Aprenda a adicionar certificados"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Falha ao verificar esta rede"</string>
diff --git a/service/ServiceWifiResources/res/values-ro/strings.xml b/service/ServiceWifiResources/res/values-ro/strings.xml
index 39dea2c..fd6dd02 100644
--- a/service/ServiceWifiResources/res/values-ro/strings.xml
+++ b/service/ServiceWifiResources/res/values-ro/strings.xml
@@ -17,92 +17,92 @@
 <resources xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
     <string name="wifiResourcesAppLabel" product="default" msgid="3120115613525263696">"Resurse Wi-Fi pentru sistem"</string>
-    <string name="wifi_available_title" msgid="3899472737467127635">"Conectați-vă la o rețea Wi‑Fi deschisă"</string>
+    <string name="wifi_available_title" msgid="3899472737467127635">"Conectează-te la o rețea Wi‑Fi deschisă"</string>
     <string name="wifi_available_title_connecting" msgid="7233590022728579868">"Se conectează la rețeaua Wi-Fi"</string>
     <string name="wifi_available_title_connected" msgid="6329493859989844201">"S-a realizat conexiunea la rețeaua Wi-Fi"</string>
     <string name="wifi_available_title_failed_to_connect" msgid="4840833680513368639">"Nu s-a putut stabili conexiunea la rețeaua Wi-Fi"</string>
-    <string name="wifi_available_content_failed_to_connect" msgid="4330035988269701861">"Atingeți pentru a vedea toate rețelele"</string>
-    <string name="wifi_available_action_connect" msgid="5636634933476946222">"Conectați-vă"</string>
+    <string name="wifi_available_content_failed_to_connect" msgid="4330035988269701861">"Atinge pentru a vedea toate rețelele"</string>
+    <string name="wifi_available_action_connect" msgid="5636634933476946222">"Conectează-te"</string>
     <string name="wifi_available_action_all_networks" msgid="8491109932336522211">"Toate rețelele"</string>
     <string name="notification_channel_network_status" msgid="1631786866932924838">"Starea rețelei"</string>
     <string name="notification_channel_network_alerts" msgid="1391603215241200880">"Alerte privind rețeaua"</string>
     <string name="notification_channel_network_available" msgid="8454366142428864948">"Rețea disponibilă"</string>
-    <string name="wifi_suggestion_title" msgid="2564179935989099139">"Permiteți rețelele Wi-Fi sugerate?"</string>
+    <string name="wifi_suggestion_title" msgid="2564179935989099139">"Permiți rețelele Wi-Fi sugerate?"</string>
     <string name="wifi_suggestion_content" msgid="6985149577828091835">"<xliff:g id="NAME">%s</xliff:g> a sugerat rețele. Dispozitivul se poate conecta automat."</string>
-    <string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"Permiteți"</string>
+    <string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"Permite"</string>
     <string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"Nu, mulțumesc"</string>
-    <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Vă conectați la rețeaua Wi-Fi <xliff:g id="CARRIERNAME">%s</xliff:g>?"</string>
+    <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"Te conectezi la rețeaua Wi-Fi <xliff:g id="CARRIERNAME">%s</xliff:g>?"</string>
     <string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"Aceste rețele primesc un cod SIM care se poate folosi pentru a urmări locația dispozitivului"</string>
-    <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_carrier" msgid="3888538126440442636">"Conectați"</string>
-    <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_carrier" msgid="3225397664735676024">"Nu conectați"</string>
-    <string name="wifi_suggestion_imsi_privacy_exemption_confirmation_title" msgid="4407415300707014525">"Confirmați conexiunea?"</string>
-    <string name="wifi_suggestion_imsi_privacy_exemption_confirmation_content" msgid="9211241189147807136">"Dacă vă conectați, rețelele Wi-Fi <xliff:g id="CARRIERNAME">%s</xliff:g> pot să acceseze sau să trimită un ID unic asociat profilului dvs. SIM. Astfel, locația dispozitivului poate fi urmărită."</string>
-    <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_confirmation" msgid="2168947026413431603">"Conectați"</string>
-    <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_confirmation" msgid="5156881939985876066">"Nu conectați"</string>
+    <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_carrier" msgid="3888538126440442636">"Conectează"</string>
+    <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_carrier" msgid="3225397664735676024">"Nu conecta"</string>
+    <string name="wifi_suggestion_imsi_privacy_exemption_confirmation_title" msgid="4407415300707014525">"Confirmi conexiunea?"</string>
+    <string name="wifi_suggestion_imsi_privacy_exemption_confirmation_content" msgid="9211241189147807136">"Dacă te conectezi, rețelele Wi-Fi <xliff:g id="CARRIERNAME">%s</xliff:g> pot să acceseze sau să trimită un ID unic asociat profilului tău SIM. Astfel, locația dispozitivului poate fi urmărită."</string>
+    <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_confirmation" msgid="2168947026413431603">"Conectează"</string>
+    <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_confirmation" msgid="5156881939985876066">"Nu conecta"</string>
     <string name="wifi_wakeup_onboarding_title" msgid="3868826648004934540">"Wi‑Fi se va activa automat"</string>
-    <string name="wifi_wakeup_onboarding_subtext" msgid="5705886295837387430">"Când vă aflați lângă o rețea salvată, de înaltă calitate"</string>
-    <string name="wifi_wakeup_onboarding_action_disable" msgid="6209706680391785825">"Nu reactivați"</string>
+    <string name="wifi_wakeup_onboarding_subtext" msgid="5705886295837387430">"Când te afli lângă o rețea salvată, de înaltă calitate"</string>
+    <string name="wifi_wakeup_onboarding_action_disable" msgid="6209706680391785825">"Nu reactiva"</string>
     <string name="wifi_wakeup_enabled_title" msgid="5043486751612595850">"Wi-Fi s-a activat automat"</string>
-    <string name="wifi_wakeup_enabled_content" msgid="3911262526267025882">"Vă aflați lângă o rețea salvată: <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
+    <string name="wifi_wakeup_enabled_content" msgid="3911262526267025882">"Te afli lângă o rețea salvată: <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
     <string name="wifi_watchdog_network_disabled" msgid="5769226742956006362">"Nu se poate conecta la Wi-Fi"</string>
     <string name="wifi_watchdog_network_disabled_detailed" msgid="1725243835135539125">" are o conexiune la internet slabă."</string>
-    <string name="wifi_connect_alert_title" msgid="2368200646665663612">"Permiteți conectarea?"</string>
+    <string name="wifi_connect_alert_title" msgid="2368200646665663612">"Permiți conectarea?"</string>
     <string name="wifi_connect_alert_message" msgid="7226456300982080746">"Aplicația %1$s dorește să se conecteze la rețeaua Wi-Fi %2$s"</string>
     <string name="wifi_connect_default_application" msgid="8917703737222707062">"O aplicație"</string>
-    <string name="accept" msgid="8346431649376483879">"Acceptați"</string>
-    <string name="decline" msgid="4172251727603762084">"Refuzați"</string>
+    <string name="accept" msgid="8346431649376483879">"Accept"</string>
+    <string name="decline" msgid="4172251727603762084">"Refuz"</string>
     <string name="ok" msgid="847575529546290102">"OK"</string>
     <string name="wifi_p2p_invitation_sent_title" msgid="6552639940428040869">"Invitația a fost trimisă."</string>
     <string name="wifi_p2p_invitation_to_connect_title" msgid="8917157937652519251">"Invitație pentru conectare"</string>
     <string name="wifi_p2p_from_message" msgid="5921308150192756898">"De la:"</string>
     <string name="wifi_p2p_to_message" msgid="3809923305696994787">"Către:"</string>
-    <string name="wifi_p2p_enter_pin_message" msgid="5200220251738047620">"Introduceți codul PIN necesar:"</string>
+    <string name="wifi_p2p_enter_pin_message" msgid="5200220251738047620">"Introdu codul PIN necesar:"</string>
     <string name="wifi_p2p_show_pin_message" msgid="1000091690967930798">"Cod PIN:"</string>
     <string name="wifi_p2p_frequency_conflict_message" product="tablet" msgid="2875937871590955304">"Tableta se va deconecta temporar de la rețeaua Wi-Fi cât timp este conectată la <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_p2p_frequency_conflict_message" product="tv" msgid="9133053225387001827">"Dispozitivul Android TV se va deconecta temporar de la rețeaua Wi-Fi cât timp este conectat la <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="wifi_p2p_frequency_conflict_message" product="default" msgid="2226863827636191980">"Telefonul se va deconecta temporar de la rețeaua Wi-Fi cât timp este conectat la <xliff:g id="DEVICE_NAME">%1$s</xliff:g>"</string>
     <string name="dlg_ok" msgid="254496739491689405">"OK"</string>
     <string name="wifi_cannot_connect_with_randomized_mac_title" msgid="2344570489693915253">"Nu se poate conecta la <xliff:g id="SSID">%1$s</xliff:g>"</string>
-    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Atingeți pentru a modifica setările de confidențialitate și a încerca din nou"</string>
-    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Modificați setările de confidențialitate?"</string>
+    <string name="wifi_cannot_connect_with_randomized_mac_message" msgid="4834133226521813352">"Atinge pentru a modifica setările de confidențialitate și a încerca din nou"</string>
+    <string name="wifi_disable_mac_randomization_dialog_title" msgid="2054540994993681606">"Modifici setările de confidențialitate?"</string>
     <string name="wifi_disable_mac_randomization_dialog_message" msgid="8874064864332248988">"Pentru a se conecta, <xliff:g id="SSID">%1$s</xliff:g> trebuie să folosească adresa MAC a dispozitivului, un identificator unic. Momentan, setarea de confidențialitate pentru această rețea folosește un identificator aleatoriu. \n\nAceastă modificare poate permite ca locația dispozitivului să fie urmărită de dispozitivele din apropiere."</string>
-    <string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"Modificați setarea"</string>
-    <string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"Setarea a fost actualizată. Încercați să vă conectați din nou."</string>
-    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Nu puteți modifica setarea de confidențialitate"</string>
+    <string name="wifi_disable_mac_randomization_dialog_confirm_text" msgid="6954419863076751626">"Modifică setarea"</string>
+    <string name="wifi_disable_mac_randomization_dialog_success" msgid="5849155828154391387">"Setarea a fost actualizată. Încearcă să te conectezi din nou."</string>
+    <string name="wifi_disable_mac_randomization_dialog_failure" msgid="2894643619143813096">"Nu poți modifica setarea de confidențialitate"</string>
     <string name="wifi_disable_mac_randomization_dialog_network_not_found" msgid="7359256966900782004">"Rețeaua nu a fost găsită"</string>
     <string name="wifi_eap_error_message_code_32756" msgid="2620877003804313434">"<xliff:g id="SSID">%1$s</xliff:g>: eroare de autentificare EAP 32756"</string>
     <!-- no translation found for wifi_eap_error_message_code_32756_carrier_overrides:0 (9114567205305206743) -->
     <string name="wifi_eap_error_message_code_32760" msgid="5258191595973470188">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32760"</string>
   <string-array name="wifi_eap_error_message_code_32760_carrier_overrides">
-    <item msgid="7582366019846559418">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: nu vă puteți conecta la Verizon Wi-Fi Access în afara ariei de acoperire Verizon. (Eroare = 32760)"</item>
+    <item msgid="7582366019846559418">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: nu te poți conecta la Verizon Wi-Fi Access în afara ariei de acoperire Verizon. (Eroare = 32760)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32761" msgid="3962610712123291591">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32761"</string>
   <string-array name="wifi_eap_error_message_code_32761_carrier_overrides">
-    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: nu v-ați abonat la Verizon Wi-Fi Access. Apelați-ne la 800-922-0204. (Eroare = 32761)"</item>
+    <item msgid="5173744897521799785">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: nu te-ai abonat la Verizon Wi-Fi Access. Sună-ne la 800-922-0204. (Eroare = 32761)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32762" msgid="2381670648753465737">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32762"</string>
   <string-array name="wifi_eap_error_message_code_32762_carrier_overrides">
-    <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de contul dvs. Verizon Wi-Fi Access. Apelați-ne la 800-922-0204. (Eroare = 32762)"</item>
+    <item msgid="2911560823350042826">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de contul Verizon Wi-Fi Access. Sună-ne la 800-922-0204. (Eroare = 32762)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32763" msgid="4467733260757049969">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32763"</string>
   <string-array name="wifi_eap_error_message_code_32763_carrier_overrides">
-    <item msgid="591026649262091217">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: v-ați conectat deja la Verizon Wi-Fi Access. (Eroare = 32763)"</item>
+    <item msgid="591026649262091217">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: te-ai conectat deja la Verizon Wi-Fi Access. (Eroare = 32763)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32764" msgid="7349538467012877101">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32764"</string>
   <string-array name="wifi_eap_error_message_code_32764_carrier_overrides">
-    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de conectarea la Verizon Wi-Fi Access. Apelați-ne la 800-922-0204. (Eroare = 32764)"</item>
+    <item msgid="3909719534712787947">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de conectarea la Verizon Wi-Fi Access. Sună-ne la 800-922-0204. (Eroare = 32764)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32765" msgid="2167528358066037980">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32765"</string>
   <string-array name="wifi_eap_error_message_code_32765_carrier_overrides">
-    <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de contul dvs. Verizon Wi-Fi Access. Apelați-ne la 800-922-0204. (Eroare = 32765)"</item>
+    <item msgid="7454136618636618962">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de contul Verizon Wi-Fi Access. Sună-ne la 800-922-0204. (Eroare = 32765)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32766" msgid="2335996367705677670">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32766"</string>
   <string-array name="wifi_eap_error_message_code_32766_carrier_overrides">
-    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: Verizon Wi-Fi Access nu este disponibil în locația dvs. Încercați din nou mai târziu sau încercați dintr-o altă locație. (Eroare = 32766)"</item>
+    <item msgid="5876210184761573755">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: Verizon Wi-Fi Access nu e disponibil în locația ta. Încearcă din nou mai târziu sau încearcă dintr-o altă locație. (Eroare = 32766)"</item>
   </string-array>
     <string name="wifi_eap_error_message_code_32767" msgid="7094289719914089006">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 32767"</string>
   <string-array name="wifi_eap_error_message_code_32767_carrier_overrides">
-    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de conectarea la Verizon Wi-Fi Access. Încercați din nou mai târziu sau încercați dintr-o altă locație."</item>
+    <item msgid="873264900678243330">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de conectarea la Verizon Wi-Fi Access. Încearcă din nou mai târziu sau încearcă dintr-o altă locație."</item>
   </string-array>
     <string name="wifi_eap_error_message_code_16384" msgid="575394783233092922">"<xliff:g id="SSID">%1$s</xliff:g> : eroare de autentificare EAP 16384"</string>
   <string-array name="wifi_eap_error_message_code_16384_carrier_overrides">
@@ -117,14 +117,14 @@
     <item msgid="6141795443609380009">"<xliff:g id="CARRIER_ID_PREFIX">:::1839:::</xliff:g><xliff:g id="SSID">%1$s</xliff:g>: există o problemă legată de conectarea la Verizon Wi-Fi Access."</item>
   </string-array>
     <string name="wifi_softap_auto_shutdown_timeout_expired_title" msgid="4896534374569504484">"Hotspotul a fost dezactivat"</string>
-    <string name="wifi_softap_auto_shutdown_timeout_expired_summary" msgid="7975476698140267728">"Niciun dispozitiv conectat. Atingeți pentru a modifica."</string>
+    <string name="wifi_softap_auto_shutdown_timeout_expired_summary" msgid="7975476698140267728">"Niciun dispozitiv conectat. Atinge pentru a modifica."</string>
     <string name="wifi_sim_required_title" msgid="2262227800991155459">"Rețea Wi-Fi deconectată"</string>
-    <string name="wifi_sim_required_message" msgid="284812212346125745">"Pentru a vă conecta la <xliff:g id="SSID">%1$s</xliff:g>, introduceți un SIM <xliff:g id="CARRIER_NAME">%2$s</xliff:g>"</string>
+    <string name="wifi_sim_required_message" msgid="284812212346125745">"Pentru a te conecta la <xliff:g id="SSID">%1$s</xliff:g>, introdu un SIM <xliff:g id="CARRIER_NAME">%2$s</xliff:g>"</string>
     <string name="wifi_interface_priority_title" msgid="5117627874976875544">"<xliff:g id="APP">%1$s</xliff:g> dorește să folosească o resursă pentru rețele"</string>
     <string name="wifi_interface_priority_message" msgid="4253391172756140313">"Acțiunea poate cauza probleme pentru <xliff:g id="APPS">%3$s</xliff:g>."</string>
     <string name="wifi_interface_priority_message_plural" msgid="8178086373318831859">"Acțiunea poate cauza probleme pentru următoarele aplicații: <xliff:g id="APPS">%3$s</xliff:g>."</string>
-    <string name="wifi_interface_priority_approve" msgid="7877379614986261096">"Permiteți"</string>
-    <string name="wifi_interface_priority_reject" msgid="1378461018835886777">"Nu permiteți"</string>
+    <string name="wifi_interface_priority_approve" msgid="7877379614986261096">"Permite"</string>
+    <string name="wifi_interface_priority_reject" msgid="1378461018835886777">"Nu permite"</string>
     <string name="wifi_ca_cert_dialog_title" msgid="3872340345882915806">"Această rețea este de încredere?"</string>
     <string name="wifi_ca_cert_dialog_continue_text" msgid="1674156611893471003">"Da, conectează"</string>
     <string name="wifi_ca_cert_dialog_abort_text" msgid="1303170595421648059">"Nu, nu conecta"</string>
@@ -132,22 +132,26 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Numele serverului:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Numele emitentului:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizație:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Expirarea certificatului:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Amprenta SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Persoana de contact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Semnătura:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Rețeaua trebuie să fie verificată"</string>
-    <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Examinați detaliile rețelei pentru <xliff:g id="SSID">%1$s</xliff:g> înainte de conectare. Atingeți pentru a continua."</string>
+    <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Verifică detaliile rețelei pentru <xliff:g id="SSID">%1$s</xliff:g> înainte de conectare. Atinge pentru a continua."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Certificatul nu a fost instalat."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nu se poate conecta la <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Lanțul de certificate al serverului este nevalid."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Rețeaua nu poate fi verificată"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Conectează oricum"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nu conecta"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Rămâi conectat(ă)"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Deconectează acum"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Lipsește un certificat pentru rețeaua <xliff:g id="SSID">%1$s</xliff:g>."</string>
-    <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Aflați cum să adăugați certificate"</string>
+    <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Află cum să adaugi certificate"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Rețeaua nu poate fi verificată"</string>
-    <string name="wifi_ca_cert_notification_preT_message" msgid="4565553176090475724">"Lipsește un certificat pentru rețeaua <xliff:g id="SSID">%1$s</xliff:g>. Atingeți pentru a afla cum să adăugați certificate."</string>
+    <string name="wifi_ca_cert_notification_preT_message" msgid="4565553176090475724">"Lipsește un certificat pentru rețeaua <xliff:g id="SSID">%1$s</xliff:g>. Atinge pentru a afla cum să adaugi certificate."</string>
     <string name="wifi_ca_cert_notification_preT_continue_text" msgid="1525418430746943670">"Conectează oricum"</string>
     <string name="wifi_ca_cert_notification_preT_abort_text" msgid="8307996031461071854">"Nu conecta"</string>
-    <string name="wifi_enable_request_dialog_title" msgid="3577459145316177148">"Permiteți ca <xliff:g id="APP_NAME">%1$s</xliff:g> să activeze conexiunea Wi‑Fi?"</string>
-    <string name="wifi_enable_request_dialog_message" msgid="6395169178524938278">"Puteți să dezactivați conexiunea Wi‑Fi din Setările rapide"</string>
-    <string name="wifi_enable_request_dialog_positive_button" msgid="6050832555821470466">"Permiteți"</string>
-    <string name="wifi_enable_request_dialog_negative_button" msgid="4754219902374918882">"Nu permiteți"</string>
+    <string name="wifi_enable_request_dialog_title" msgid="3577459145316177148">"Permiți ca <xliff:g id="APP_NAME">%1$s</xliff:g> să activeze conexiunea Wi‑Fi?"</string>
+    <string name="wifi_enable_request_dialog_message" msgid="6395169178524938278">"Poți dezactiva conexiunea Wi‑Fi din Setările rapide"</string>
+    <string name="wifi_enable_request_dialog_positive_button" msgid="6050832555821470466">"Permite"</string>
+    <string name="wifi_enable_request_dialog_negative_button" msgid="4754219902374918882">"Nu permite"</string>
 </resources>
diff --git a/service/ServiceWifiResources/res/values-ru/strings.xml b/service/ServiceWifiResources/res/values-ru/strings.xml
index b433845..e5104dd 100644
--- a/service/ServiceWifiResources/res/values-ru/strings.xml
+++ b/service/ServiceWifiResources/res/values-ru/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Имя сервера:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Имя издателя:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Организация:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Срок действия сертификата:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Отпечаток SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Контактная информация:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Подпись:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Нужно проверить сеть"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Прежде чем подключаться, изучите сведения о сети <xliff:g id="SSID">%1$s</xliff:g>. Нажмите, чтобы продолжить."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Ошибка при установке сертификата."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Не удается подключиться к сети \"<xliff:g id="VALUE">%1$s</xliff:g>\""</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Недопустимая цепочка сертификатов сервера."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Не удается проверить эту сеть."</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Все равно подключиться"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Не подключаться"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Не отключать"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Отключить"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"У сети <xliff:g id="SSID">%1$s</xliff:g> нет сертификата."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Как добавлять сертификаты"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Не удается проверить эту сеть."</string>
diff --git a/service/ServiceWifiResources/res/values-si/strings.xml b/service/ServiceWifiResources/res/values-si/strings.xml
index 703658d..7404dcb 100644
--- a/service/ServiceWifiResources/res/values-si/strings.xml
+++ b/service/ServiceWifiResources/res/values-si/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"සේවාදායක නම:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"නිකුත් කරන්‍නාගේ නම:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"සංවිධානය:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"සහතිකය කල් ඉකුත් වීම:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 ඇඟිලි සලකුණ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"සම්බන්ධ කර ගන්න:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"අත්සන:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ජාලය සත්‍යාපනය කිරීම අවශ්‍ය වේ"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"සම්බන්ධ වීමට පෙර <xliff:g id="SSID">%1$s</xliff:g> සඳහා ජාල විස්තර සමාලෝචනය කරන්න. ඉදිරියට යාමට තට්ටු කරන්න."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"සහතික ස්ථාපනය කිරීම අසාර්ථක විය."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> වෙත සම්බන්ධ විය නොහැක"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"සේවාදායක සහතික දාමය අවලංගුයි."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"හරි"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"මෙම ජාලය සත්‍යාපනය කළ නොහැකිය"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"කෙසේ වෙතත් සම්බන්ධ කරන්න"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"සම්බන්ධ නොකරන්න"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"සම්බන්ධ වී සිටින්න"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"දැන් විසන්ධි කරන්න"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"ජාල <xliff:g id="SSID">%1$s</xliff:g>හි සහතිකයක් අස්ථානගතයි."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"සහතික එක් කරන ආකාරය දැන ගන්න"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"මෙම ජාලය සත්‍යාපනය කළ නොහැකිය"</string>
diff --git a/service/ServiceWifiResources/res/values-sk/strings.xml b/service/ServiceWifiResources/res/values-sk/strings.xml
index 1cc4421..3e8aeb6 100644
--- a/service/ServiceWifiResources/res/values-sk/strings.xml
+++ b/service/ServiceWifiResources/res/values-sk/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Názov servera:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Názov vydavateľa:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizácia:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Vypršanie certifikátu:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Digitálny odtlačok SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontaktovať:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Podpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Sieť je potrebné overiť"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Pred pripojením skontrolujte podrobnosti siete (<xliff:g id="SSID">%1$s</xliff:g>). Pokračujte klepnutím."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Certifikát sa nepodarilo nainštalovať"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"K sieti <xliff:g id="VALUE">%1$s</xliff:g> sa nedá pripojiť"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Reťazec certifikátu servera je neplatný."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Táto sieť sa nedá overiť"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Pripojiť"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Nepripojiť"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Zachovajte si pripojenie"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Odpojiť"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> siete nemá certifikát."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Prečítajte si, ako pridať certifikáty"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Táto sieť sa nedá overiť"</string>
diff --git a/service/ServiceWifiResources/res/values-sl/strings.xml b/service/ServiceWifiResources/res/values-sl/strings.xml
index a0ead33..ae8e913 100644
--- a/service/ServiceWifiResources/res/values-sl/strings.xml
+++ b/service/ServiceWifiResources/res/values-sl/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Ime strežnika:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Ime izdajatelja:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizacija:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Potek veljavnosti potrdila:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Prstni odtis SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Stik:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Podpis:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Omrežje je treba preveriti"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Pred vzpostavljanjem povezave preglejte podatke o omrežju <xliff:g id="SSID">%1$s</xliff:g>. Dotaknite se, če želite nadaljevati."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Namestitev potrdila ni uspela."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Povezava z omrežjem <xliff:g id="VALUE">%1$s</xliff:g> ni mogoča."</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Veriga potrdil strežnika ni veljavna."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"V redu"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Tega omrežja ni mogoče preveriti."</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Vseeno poveži"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ne poveži"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Ohrani povezavo"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Prekini povezavo"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Za omrežje <xliff:g id="SSID">%1$s</xliff:g> manjka potrdilo."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Preberite, kako dodate potrdila."</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Tega omrežja ni mogoče preveriti."</string>
diff --git a/service/ServiceWifiResources/res/values-sq/strings.xml b/service/ServiceWifiResources/res/values-sq/strings.xml
index 1abb7cf..c944000 100644
--- a/service/ServiceWifiResources/res/values-sq/strings.xml
+++ b/service/ServiceWifiResources/res/values-sq/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Emri i serverit:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Emri i lëshuesit:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organizata:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Skadimi i certifikatës:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Gjurma e gishtit SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakti:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Nënshkrimi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Rrjeti duhet të verifikohet"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Shqyrto detajet e rrjetit për <xliff:g id="SSID">%1$s</xliff:g> përpara se të lidhesh. Trokit për të vazhduar."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Instalimi i certifikatës dështoi."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Nuk mund të lidhet me <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Zinxhiri i certifikatave të serverit nuk është i vlefshëm."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Në rregull"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ky rrjet nuk mund të verifikohet"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Lidhu gjithsesi"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Mos u lidh"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Qëndro i lidhur"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Shkëputu tani"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Rrjetit <xliff:g id="SSID">%1$s</xliff:g> i mungon një certifikatë."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Mëso se si të shtosh certifikata"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ky rrjet nuk mund të verifikohet"</string>
diff --git a/service/ServiceWifiResources/res/values-sr/strings.xml b/service/ServiceWifiResources/res/values-sr/strings.xml
index 397e041..f935189 100644
--- a/service/ServiceWifiResources/res/values-sr/strings.xml
+++ b/service/ServiceWifiResources/res/values-sr/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Назив сервера:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Назив издаваоца:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Организација:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Истек сертификата:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 отисак прста:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Контакт:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Потпис:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Мрежа мора да се верификује"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Прегледајте појединости мреже <xliff:g id="SSID">%1$s</xliff:g> пре повезивања. Додирните да бисте наставили."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Инсталација сертификата није успела."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Повезивање на мрежу <xliff:g id="VALUE">%1$s</xliff:g> није успело"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Ланац сертификата за сервер је неважећи."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Потврди"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Не можемо да верификујемо ову мрежу"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Ипак повежи"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Не повезуј"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Не прекидај везу"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Прекини везу одмах"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> мреже нема сертификат."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Сазнајте како да додате сертификате"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Не можемо да верификујемо ову мрежу"</string>
diff --git a/service/ServiceWifiResources/res/values-sv/strings.xml b/service/ServiceWifiResources/res/values-sv/strings.xml
index 2ff0315..4b3f732 100644
--- a/service/ServiceWifiResources/res/values-sv/strings.xml
+++ b/service/ServiceWifiResources/res/values-sv/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Servernamn:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Utgivarens namn:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisation:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Utgångsdatum för certifikat:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256-fingeravtryck:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontakt:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Signatur:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Nätverket måste verifieras"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Granska nätverksinformationen för <xliff:g id="SSID">%1$s</xliff:g> innan du ansluter. Tryck för att fortsätta."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Installationen av certifikatet misslyckades."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Det gick inte att ansluta till <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Certifikatkedjan för servern är ogiltig."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Det gick inte att verifiera nätverket"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Anslut ändå"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Anslut inte"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Håll dig ansluten"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Koppla från nu"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Det saknas ett certifikat för nätverket <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Läs mer om hur du lägger till certifikat"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Det gick inte att verifiera nätverket"</string>
diff --git a/service/ServiceWifiResources/res/values-sw/strings.xml b/service/ServiceWifiResources/res/values-sw/strings.xml
index cab9c87..65c81af 100644
--- a/service/ServiceWifiResources/res/values-sw/strings.xml
+++ b/service/ServiceWifiResources/res/values-sw/strings.xml
@@ -40,7 +40,7 @@
     <string name="wifi_suggestion_action_allow_imsi_privacy_exemption_confirmation" msgid="2168947026413431603">"Unganisha"</string>
     <string name="wifi_suggestion_action_disallow_imsi_privacy_exemption_confirmation" msgid="5156881939985876066">"Usiunganishe"</string>
     <string name="wifi_wakeup_onboarding_title" msgid="3868826648004934540">"Wi‑Fi itawashwa kiotomatiki"</string>
-    <string name="wifi_wakeup_onboarding_subtext" msgid="5705886295837387430">"Unapokuwa karibu na mtandao uliohifadhiwa wenye ubora wa juu"</string>
+    <string name="wifi_wakeup_onboarding_subtext" msgid="5705886295837387430">"Ukiwa karibu na mtandao uliohifadhiwa wenye ubora wa juu"</string>
     <string name="wifi_wakeup_onboarding_action_disable" msgid="6209706680391785825">"Usiwashe tena"</string>
     <string name="wifi_wakeup_enabled_title" msgid="5043486751612595850">"Wi‑Fi imewashwa kiotomatiki"</string>
     <string name="wifi_wakeup_enabled_content" msgid="3911262526267025882">"Uko karibu na mtandao uliohifadhiwa: <xliff:g id="NETWORK_SSID">%1$s</xliff:g>"</string>
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Jina la Seva:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Jina la Mtoaji:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Shirika:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Muda wa mwisho wa Cheti:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Alama ya kidole ya SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Anwani:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Sahihi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Unahitaji kuthibitisha mtandao"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Kagua maelezo ya mtandao ya <xliff:g id="SSID">%1$s</xliff:g> kabla ya kuunganisha. Gusa ili uendelee."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Imeshindwa kusakinisha cheti."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Imeshindwa kuunganisha kwenye <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Mfumo wa cheti cha seva si sahihi."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Sawa"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Imeshindwa kuthibitisha mtandao huu"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Unganisha hata hivyo"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Usiunganishe"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Iendelee kuunganishwa"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Ondoa sasa"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Mtandao wa <xliff:g id="SSID">%1$s</xliff:g> hauna cheti."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Pata maelezo kuhusu jinsi ya kuweka vyeti"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Imeshindwa kuthibitisha mtandao huu"</string>
diff --git a/service/ServiceWifiResources/res/values-ta/strings.xml b/service/ServiceWifiResources/res/values-ta/strings.xml
index bdd4f13..25f371b 100644
--- a/service/ServiceWifiResources/res/values-ta/strings.xml
+++ b/service/ServiceWifiResources/res/values-ta/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"சேவையகத்தின் பெயர்:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"வழங்குநர் பெயர்:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"நிறுவனம்:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"சான்றிதழ் காலாவதியாகும் தேதி:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 கைரேகை:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"தொடர்பு:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"கையொப்பம்:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"நெட்வொர்க் சரிபார்க்கப்பட வேண்டும்"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"இணைப்பதற்கு முன்பு <xliff:g id="SSID">%1$s</xliff:g> இன் நெட்வொர்க் விவரங்களைப் பாருங்கள். தொடர தட்டவும்."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"சான்றிதழை நிறுவ முடியவில்லை."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> உடன் இணைக்க முடியவில்லை"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"சேவையகச் சான்றிதழ் தொடர் தவறாக உள்ளது."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"சரி"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"இந்த நெட்வொர்க்கைச் சரிபார்க்க முடியவில்லை"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"பரவாயில்லை, இணை"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"இணைக்க வேண்டாம்"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"இணைந்திரு"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"இப்போது துண்டி"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"நெட்வொர்க் <xliff:g id="SSID">%1$s</xliff:g> இல் சான்றிதழ் இல்லை."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"சான்றிதழ்களைச் சேர்ப்பது எப்படியென அறிக"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"இந்த நெட்வொர்க்கைச் சரிபார்க்க முடியவில்லை"</string>
diff --git a/service/ServiceWifiResources/res/values-te/strings.xml b/service/ServiceWifiResources/res/values-te/strings.xml
index 68e05b1..8a204e8 100644
--- a/service/ServiceWifiResources/res/values-te/strings.xml
+++ b/service/ServiceWifiResources/res/values-te/strings.xml
@@ -29,7 +29,7 @@
     <string name="notification_channel_network_available" msgid="8454366142428864948">"నెట్‌వర్క్ అందుబాటులో ఉంది"</string>
     <string name="wifi_suggestion_title" msgid="2564179935989099139">"సూచించిన Wi‑Fi నెట్‌వర్క్‌లను అనుమతించాలా?"</string>
     <string name="wifi_suggestion_content" msgid="6985149577828091835">"<xliff:g id="NAME">%s</xliff:g> సూచించిన నెట్‌వర్క్‌లు. పరికరం ఆటోమేటిక్‌గా కనెక్ట్ అవచ్చు."</string>
-    <string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"అనుమతించు"</string>
+    <string name="wifi_suggestion_action_allow_app" msgid="7757859972144671588">"అనుమతించండి"</string>
     <string name="wifi_suggestion_action_disallow_app" msgid="4565857699629860726">"వద్దు"</string>
     <string name="wifi_suggestion_imsi_privacy_title" msgid="8969261812845304079">"<xliff:g id="CARRIERNAME">%s</xliff:g> Wi-Fiకి కనెక్ట్ చేయాలా?"</string>
     <string name="wifi_suggestion_imsi_privacy_content" msgid="4266931269306079184">"పరికర లొకేషన్‌ను ట్రాక్ చేయడానికి ఉపయోగపడే SIM IDని ఈ నెట్‌వర్క్‌లు అందుకుంటాయి"</string>
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"సర్వర్ పేరు:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"జారీ చేసేవారి పేరు:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"సంస్థ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"సర్టిఫికెట్ గడువు ముగింపు తేదీ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 వేలిముద్ర:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"కాంటాక్ట్:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"సంతకం:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"నెట్‌వర్క్‌ను వెరిఫై చేయాల్సిన అవసరం ఉంది"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"కనెక్ట్ చేయడానికి ముందు <xliff:g id="SSID">%1$s</xliff:g>‌కి సంబంధించిన నెట్‌వర్క్ వివరాలను రివ్యూ చేయండి. కొనసాగడానికి ట్యాప్ చేయండి."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"సర్టిఫికెట్‌ను ఇన్‌స్టాల్ చేయడం విఫలమైంది."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g>కు కనెక్ట్ చేయడం సాధ్యపడదు"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"సర్వర్ సర్టిఫికెట్ చెయిన్ చెల్లదు."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"సరే"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ఈ నెట్‌వర్క్‌ను వెరిఫై చేయడం సాధ్యం కాదు"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ఏదేమైనా కనెక్ట్ చేయండి"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"కనెక్ట్ చేయవద్దు"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"కనెక్ట్ అయ్యి ఉండండి"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ఇప్పుడే డిస్‌కనెక్ట్ చేయండి"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"నెట్‌వర్క్ <xliff:g id="SSID">%1$s</xliff:g>‌లో సర్టిఫికెట్ లేదు."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"సర్టిఫికెట్‌లను ఎలా జోడించాలో తెలుసుకోండి"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ఈ నెట్‌వర్క్‌ను వెరిఫై చేయడం సాధ్యం కాదు"</string>
diff --git a/service/ServiceWifiResources/res/values-th/strings.xml b/service/ServiceWifiResources/res/values-th/strings.xml
index f043b67..0470906 100644
--- a/service/ServiceWifiResources/res/values-th/strings.xml
+++ b/service/ServiceWifiResources/res/values-th/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"ชื่อเซิร์ฟเวอร์:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"ชื่อผู้ออกใบรับรอง:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"องค์กร:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"วันหมดอายุของใบรับรอง:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"ลายนิ้วมือ SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"รายชื่อติดต่อ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"ลายเซ็น:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"ต้องยืนยันเครือข่าย"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"ตรวจสอบรายละเอียดเครือข่ายสำหรับ <xliff:g id="SSID">%1$s</xliff:g> ก่อนเชื่อมต่อ แตะเพื่อดำเนินการต่อ"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"ติดตั้งใบรับรองไม่สำเร็จ"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"เชื่อมต่อกับ <xliff:g id="VALUE">%1$s</xliff:g> ไม่ได้"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"กลุ่มใบรับรองเซิร์ฟเวอร์ไม่ถูกต้อง"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ตกลง"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"ยืนยันเครือข่ายนี้ไม่ได้"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"ยังต้องการเชื่อมต่อ"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"ไม่เชื่อมต่อ"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"เชื่อมต่อเสมอ"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ยกเลิกการเชื่อมต่อเลย"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"เครือข่าย <xliff:g id="SSID">%1$s</xliff:g> ไม่มีใบรับรอง"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"ดูวิธีเพิ่มใบรับรอง"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"ยืนยันเครือข่ายนี้ไม่ได้"</string>
diff --git a/service/ServiceWifiResources/res/values-tl/strings.xml b/service/ServiceWifiResources/res/values-tl/strings.xml
index 89bb36d..809512b 100644
--- a/service/ServiceWifiResources/res/values-tl/strings.xml
+++ b/service/ServiceWifiResources/res/values-tl/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Pangalan ng Server:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Pangalan ng Nagbigay:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Organisasyon:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Pag-expire ng Certificate:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 Fingerprint:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Makipag-ugnayan sa:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Lagda:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Kailangang ma-verify ng network"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Suriin ang mga detalye ng network para sa <xliff:g id="SSID">%1$s</xliff:g> bago kumonekta. I-tap para magpatuloy."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Hindi na-install ang certificate."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Hindi makakonekta sa <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Invalid ang chain ng certificate ng server."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Hindi ma-verify ang network na ito"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Kumonekta pa rin"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Huwag kumonekta"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Manatiling nakakonekta"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Idiskonekta na"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Kulang ng certificate ang network na <xliff:g id="SSID">%1$s</xliff:g>."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Alamin kung paano magdagdag ng mga certificate"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Hindi ma-verify ang network na ito"</string>
diff --git a/service/ServiceWifiResources/res/values-tr/strings.xml b/service/ServiceWifiResources/res/values-tr/strings.xml
index 54bbaa3..d6e706d 100644
--- a/service/ServiceWifiResources/res/values-tr/strings.xml
+++ b/service/ServiceWifiResources/res/values-tr/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Sunucu Adı:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Sertifika Verenin Adı:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Kuruluş:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifika Son Geçerlilik Tarihi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 Parmak İzi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"İletişim:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"İmza:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Ağın doğrulanması gerekiyor"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Bağlanmadan önce <xliff:g id="SSID">%1$s</xliff:g> ağ ayrıntılarını inceleyin. Devam etmek için dokunun."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Sertifika yükleme işlemi başarısız."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> ağına bağlanılamıyor"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Sunucu sertifikası zinciri geçersiz."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"Tamam"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Bu ağ doğrulanamıyor"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Yine de bağlan"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Bağlanma"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Bağlı kal"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Bağlantıyı şimdi kes"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"<xliff:g id="SSID">%1$s</xliff:g> ağında bir sertifika eksik."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Nasıl sertifika ekleyeceğinizi öğrenin"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Bu ağ doğrulanamıyor"</string>
diff --git a/service/ServiceWifiResources/res/values-uk/strings.xml b/service/ServiceWifiResources/res/values-uk/strings.xml
index 3bef499..a2ec09b 100644
--- a/service/ServiceWifiResources/res/values-uk/strings.xml
+++ b/service/ServiceWifiResources/res/values-uk/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Назва сервера:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Назва видавця:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Організація:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Сертифікат діє до:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Відбиток SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Контактна особа:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Підпис:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Потрібно підтвердити мережу"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Перш ніж підключатися, перевірте відомості про мережу <xliff:g id="SSID">%1$s</xliff:g>. Натисніть, щоб продовжити."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Не вдалося встановити сертифікат."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Не вдалося підключитися до мережі \"<xliff:g id="VALUE">%1$s</xliff:g>\""</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Ланцюжок сертифікатів сервера недійсний."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Не вдається підтвердити цю мережу"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Усе одно підключитися"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Не підключатися"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Не відключатися"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Відключитися зараз"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Для мережі з таким іменем (<xliff:g id="SSID">%1$s</xliff:g>) немає сертифіката."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Як додавати сертифікати"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Не вдається підтвердити цю мережу"</string>
diff --git a/service/ServiceWifiResources/res/values-ur/strings.xml b/service/ServiceWifiResources/res/values-ur/strings.xml
index b9ca64e..0fefec1 100644
--- a/service/ServiceWifiResources/res/values-ur/strings.xml
+++ b/service/ServiceWifiResources/res/values-ur/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"سرور کا نام:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"جاری کنندہ کا نام:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"تنظیم:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"سرٹیفکیٹ کی میعاد کا اختتام:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"‏SHA-256 فنگر پرنٹ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"رابطہ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"دستخط:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"نیٹ ورک کی تصدیق کی ضرورت ہے"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"منسلک ہونے سے قبل <xliff:g id="SSID">%1$s</xliff:g> کے لیے نیٹ ورک کی تفصیلات کا جائزہ لیں۔ جاری رکھنے کیلئے تھپتھپائیں۔"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"سرٹیفکیٹ انسٹالیشن ناکام ہو گیا۔"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> سے منسلک نہیں کر سکتے"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"سرور سرٹیفکیٹ چین غلط ہے۔"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"ٹھیک ہے"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"اس نیٹ ورک کی توثیق نہیں کر سکتے"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"بہرحال منسلک کریں"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"منسلک نہ کریں"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"منسلک رہیں"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"ابھی غیر منسلک کریں"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"نیٹ ورک <xliff:g id="SSID">%1$s</xliff:g> ایک سرٹیفکیٹ غائب ہے۔"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"سرٹیفکیٹس شامل کرنے کا طریقہ جانیں"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"اس نیٹ ورک کی توثیق نہیں کر سکتے"</string>
diff --git a/service/ServiceWifiResources/res/values-uz/strings.xml b/service/ServiceWifiResources/res/values-uz/strings.xml
index d66d0d6..c4a985b 100644
--- a/service/ServiceWifiResources/res/values-uz/strings.xml
+++ b/service/ServiceWifiResources/res/values-uz/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Server nomi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Emitent nomi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Tashkilot:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Sertifikat muddati:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 barmoq izi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Kontact:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Imzo:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Tarmoqni tekshirish zarur"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Ulanishdan oldin tarmoq (<xliff:g id="SSID">%1$s</xliff:g>) axborotini tekshiring. Davom etish uchun bosing."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Sertifikat oʻrnatilmadi."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"<xliff:g id="VALUE">%1$s</xliff:g> bilan aloqa oʻrnatilmadi"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Server sertifikatlari zanjiri yaroqsiz."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Bu tarmoq tasdiqlanmadi"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Baribir ulansin"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ulanmasin"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Uzilmasin"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Uzish"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Tarmoq (<xliff:g id="SSID">%1$s</xliff:g>) sertifikati mavjud emas."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Sertifikat kiritish haqida batafsil"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Bu tarmoq tasdiqlanmadi"</string>
diff --git a/service/ServiceWifiResources/res/values-vi/strings.xml b/service/ServiceWifiResources/res/values-vi/strings.xml
index 827fd90..da4da62 100644
--- a/service/ServiceWifiResources/res/values-vi/strings.xml
+++ b/service/ServiceWifiResources/res/values-vi/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Tên máy chủ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Tên công ty phát hành:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Tổ chức:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Thời hạn của chứng chỉ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Vân tay số SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Liên hệ:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Chữ ký:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Cần xác minh mạng"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Hãy xem lại thông tin mạng của <xliff:g id="SSID">%1$s</xliff:g> trước khi kết nối. Nhấn để tiếp tục."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Không cài đặt được chứng chỉ."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Không thể kết nối với <xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Chuỗi chứng chỉ máy chủ không hợp lệ."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"OK"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Không xác minh được mạng này"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Vẫn kết nối"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Không kết nối"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Duy trì kết nối"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Ngắt kết nối ngay"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Mạng <xliff:g id="SSID">%1$s</xliff:g> bị thiếu chứng chỉ."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Tìm hiểu cách thêm chứng chỉ"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Không xác minh được mạng này"</string>
diff --git a/service/ServiceWifiResources/res/values-zh-rCN/strings.xml b/service/ServiceWifiResources/res/values-zh-rCN/strings.xml
index a860bb3..896aa4e 100644
--- a/service/ServiceWifiResources/res/values-zh-rCN/strings.xml
+++ b/service/ServiceWifiResources/res/values-zh-rCN/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"服务器名称:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"核发机构名称:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"组织:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"证书失效:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 指纹:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"联系人:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"签名:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"必须验证网络"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"请在连接前先检查 <xliff:g id="SSID">%1$s</xliff:g> 的网络详细信息。点按即可继续。"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"证书安装失败。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"无法连接到<xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"该服务器证书链无效。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"确定"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"无法验证此网络"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"仍然连接"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"不连接"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"保持连接状态"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"立即断开连接"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"网络 <xliff:g id="SSID">%1$s</xliff:g> 缺少证书。"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"了解如何添加证书"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"无法验证此网络"</string>
diff --git a/service/ServiceWifiResources/res/values-zh-rHK/strings.xml b/service/ServiceWifiResources/res/values-zh-rHK/strings.xml
index 02691ca..eecce3e 100644
--- a/service/ServiceWifiResources/res/values-zh-rHK/strings.xml
+++ b/service/ServiceWifiResources/res/values-zh-rHK/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"伺服器名稱:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"發卡機構名稱:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"機構:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"憑證期限:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 指紋:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"聯絡人:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"簽名:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"需要驗證網絡"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"連線前請檢查 <xliff:g id="SSID">%1$s</xliff:g> 網絡詳情。輕按即可繼續。"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"無法安裝憑證。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"無法連線至「<xliff:g id="VALUE">%1$s</xliff:g>」"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"伺服器憑證鏈結無效。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"確定"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"無法驗證此網絡"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"仍要連線"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"不要連線"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"保持連線"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"立即中斷連線"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"網絡 <xliff:g id="SSID">%1$s</xliff:g> 缺少憑證。"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"瞭解如何新增憑證"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"無法驗證此網絡"</string>
diff --git a/service/ServiceWifiResources/res/values-zh-rTW/strings.xml b/service/ServiceWifiResources/res/values-zh-rTW/strings.xml
index 474b321..b37aff9 100644
--- a/service/ServiceWifiResources/res/values-zh-rTW/strings.xml
+++ b/service/ServiceWifiResources/res/values-zh-rTW/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"伺服器名稱:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"核發者名稱:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"機構:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"憑證期限:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"SHA-256 指紋:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"聯絡人:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"簽名:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"必須驗證網路"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"連線之前,請先確認 <xliff:g id="SSID">%1$s</xliff:g> 的網路資訊是否正確。輕觸這裡即可繼續。"</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"憑證安裝失敗。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"無法連線至「<xliff:g id="VALUE">%1$s</xliff:g>」"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"伺服器憑證鏈結無效。"</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"確定"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"無法驗證這個網路"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"仍要連線"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"不要連線"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"保持連線"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"立即中斷連線"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"網路 <xliff:g id="SSID">%1$s</xliff:g> 缺少憑證。"</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"瞭解如何新增憑證"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"無法驗證這個網路"</string>
diff --git a/service/ServiceWifiResources/res/values-zu/strings.xml b/service/ServiceWifiResources/res/values-zu/strings.xml
index 000e2c1..8114c38 100644
--- a/service/ServiceWifiResources/res/values-zu/strings.xml
+++ b/service/ServiceWifiResources/res/values-zu/strings.xml
@@ -132,14 +132,18 @@
     <string name="wifi_ca_cert_dialog_message_server_name_text" msgid="3707809865604348289">"Igama Leseva:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_issuer_name_text" msgid="1147216922475192304">"Igama Lokhiphayo:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_organization_text" msgid="4936354600863239487">"Inhlangano:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_expiration_text" msgid="1612917217606436217">"Ukuphelelwa Yisikhathi Kwesitifiketi:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
+    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="8455163626514894233">"Isigxivizo Somunwe se-SHA-256:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_dialog_message_contact_text" msgid="5799083318641183815">"Oxhumana naye:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
-    <string name="wifi_ca_cert_dialog_message_signature_name_text" msgid="704614002854299776">"Isiginesha:\n<xliff:g id="VALUE">%1$s</xliff:g>\n\n"</string>
     <string name="wifi_ca_cert_notification_title" msgid="537569884930429796">"Inethiwekhi idinga ukuqinisekiswa"</string>
     <string name="wifi_ca_cert_notification_message" msgid="6413248690626616961">"Buyekeza imininingwane yenethiwekhi ye-<xliff:g id="SSID">%1$s</xliff:g> ngaphambi kokuxhuma. Thepha ukuze uqhubeke."</string>
     <string name="wifi_ca_cert_failed_to_install_ca_cert" msgid="4864192219789736195">"Ukufaka isitifiketi kwehlulekile."</string>
+    <string name="wifi_tofu_invalid_cert_chain_title" msgid="332710627417595752">"Ayikwazi ukuxhumeka ku-<xliff:g id="VALUE">%1$s</xliff:g>"</string>
+    <string name="wifi_tofu_invalid_cert_chain_message" msgid="7047987920029432392">"Uchungechunge lwesitifiketi seseva aluvumelekile."</string>
+    <string name="wifi_tofu_invalid_cert_chain_ok_text" msgid="9098567577510279854">"KULUNGILE"</string>
     <string name="wifi_ca_cert_dialog_preT_title" msgid="6916320484037009061">"Ayikwazi ukuqinisekisa le nethiwekhi"</string>
-    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="3181614240421159530">"Xhuma noma kunjalo"</string>
-    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1195575129023960325">"Ungaxhumi"</string>
+    <string name="wifi_ca_cert_dialog_preT_continue_text" msgid="9118713368838029797">"Hlala uxhunyiwe"</string>
+    <string name="wifi_ca_cert_dialog_preT_abort_text" msgid="1331309662999405224">"Nqamula manje"</string>
     <string name="wifi_ca_cert_dialog_preT_message_hint" msgid="5682518783200852031">"Inethiwekhi ye-<xliff:g id="SSID">%1$s</xliff:g> ayinaso isitifiketi."</string>
     <string name="wifi_ca_cert_dialog_preT_message_link" msgid="6325483132538546884">"Funda indlela yokwengeza izitifiketi"</string>
     <string name="wifi_ca_cert_notification_preT_title" msgid="7255129934648316663">"Ayikwazi ukuqinisekisa le nethiwekhi"</string>
diff --git a/service/ServiceWifiResources/res/values/config.xml b/service/ServiceWifiResources/res/values/config.xml
index 54cc899..4866755 100644
--- a/service/ServiceWifiResources/res/values/config.xml
+++ b/service/ServiceWifiResources/res/values/config.xml
@@ -778,6 +778,10 @@
          A value of -1 indicates no limit. If a max number is specified, then under-used configs will
          be deleted to make room for new configs.-->
     <integer translatable="false" name="config_wifiMaxNumWifiConfigurations">-1</integer>
+    <!-- Integer threshold for max number of WifiConfigurations that can be added by all apps (excluding
+         DO, PO, and system apps). A value of -1 indicates no limit. If a max number is specified,
+         then existing app-added configs will be deleted to make room for new app-added configs.-->
+    <integer translatable="false" name="config_wifiMaxNumWifiConfigurationsAddedByAllApps">200</integer>
 
     <!-- Whether to allow Settings or SUW to create insecure Enterprise networks where server
          certificate is not validated, by not specifying a Root CA certificate and/or server domain
diff --git a/service/ServiceWifiResources/res/values/overlayable.xml b/service/ServiceWifiResources/res/values/overlayable.xml
index 4ddba7f..160b711 100644
--- a/service/ServiceWifiResources/res/values/overlayable.xml
+++ b/service/ServiceWifiResources/res/values/overlayable.xml
@@ -218,6 +218,7 @@
           <item type="string" name="config_wifiP2pDeviceNamePrefix"/>
           <item type="integer" name="config_wifiP2pDeviceNamePostfixNumDigits" />
           <item type="integer" name="config_wifiMaxNumWifiConfigurations" />
+          <item type="integer" name="config_wifiMaxNumWifiConfigurationsAddedByAllApps" />
           <item type="bool" name="config_wifiAllowInsecureEnterpriseConfigurationsForSettingsAndSUW" />
           <item type="integer" name="config_wifiConnectivityLocalLogMaxLinesLowRam" />
           <item type="integer" name="config_wifiConnectivityLocalLogMaxLinesHighRam" />
diff --git a/service/TEST_MAPPING b/service/TEST_MAPPING
index 3d27184..c7251f0 100644
--- a/service/TEST_MAPPING
+++ b/service/TEST_MAPPING
@@ -1,7 +1,18 @@
 {
   "presubmit-large": [
     {
-      "name": "FrameworksWifiTests"
+      "name": "FrameworksWifiTests",
+      "options": [
+        {
+          "exclude-filter": "com.android.server.wifi.WakeupControllerTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.WifiNetworkSelectorTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.scanner.WifiScanningServiceTest"
+        }
+      ]
     }
   ],
   "presubmit": [
@@ -16,7 +27,18 @@
   ],
   "mainline-presubmit": [
     {
-      "name": "FrameworksWifiTests[com.google.android.wifi.apex]"
+      "name": "FrameworksWifiTests[com.google.android.wifi.apex]",
+      "options": [
+        {
+          "exclude-filter": "com.android.server.wifi.WakeupControllerTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.WifiNetworkSelectorTest"
+        },
+        {
+          "exclude-filter": "com.android.server.wifi.scanner.WifiScanningServiceTest"
+        }
+      ]
     }
   ]
 }
diff --git a/service/java/com/android/server/wifi/ActiveModeWarden.java b/service/java/com/android/server/wifi/ActiveModeWarden.java
index 2e8fb31..cc6550b 100644
--- a/service/java/com/android/server/wifi/ActiveModeWarden.java
+++ b/service/java/com/android/server/wifi/ActiveModeWarden.java
@@ -857,7 +857,9 @@
      */
     private boolean hasPrimaryOrScanOnlyModeManager() {
         return getClientModeManagerInRole(ROLE_CLIENT_PRIMARY) != null
-                || getClientModeManagerInRole(ROLE_CLIENT_SCAN_ONLY) != null;
+                || getClientModeManagerInRole(ROLE_CLIENT_SCAN_ONLY) != null
+                || getClientModeManagerTransitioningIntoRole(ROLE_CLIENT_PRIMARY) != null
+                || getClientModeManagerTransitioningIntoRole(ROLE_CLIENT_SCAN_ONLY) != null;
     }
 
     /**
@@ -986,6 +988,14 @@
         return null;
     }
 
+    @Nullable
+    private ConcreteClientModeManager getClientModeManagerTransitioningIntoRole(ClientRole role) {
+        for (ConcreteClientModeManager manager : mClientModeManagers) {
+            if (manager.getTargetRole() == role) return manager;
+        }
+        return null;
+    }
+
     /** Get all client mode managers in the specified roles. */
     @NonNull
     public List<ConcreteClientModeManager> getClientModeManagersInRoles(ClientRole... roles) {
diff --git a/service/java/com/android/server/wifi/ConcreteClientModeManager.java b/service/java/com/android/server/wifi/ConcreteClientModeManager.java
index 7f2f13c..893fe57 100644
--- a/service/java/com/android/server/wifi/ConcreteClientModeManager.java
+++ b/service/java/com/android/server/wifi/ConcreteClientModeManager.java
@@ -499,6 +499,13 @@
         return mRole;
     }
 
+    /**
+     * Get the role this ClientModeManager is expected to become.
+     */
+    @Nullable public ClientRole getTargetRole() {
+        return mTargetRoleChangeInfo == null ? null : mTargetRoleChangeInfo.role;
+    }
+
     @Override
     @Nullable public ClientRole getPreviousRole() {
         return mPreviousRole;
diff --git a/service/java/com/android/server/wifi/InsecureEapNetworkHandler.java b/service/java/com/android/server/wifi/InsecureEapNetworkHandler.java
index 9116a0a..fa3bee7 100644
--- a/service/java/com/android/server/wifi/InsecureEapNetworkHandler.java
+++ b/service/java/com/android/server/wifi/InsecureEapNetworkHandler.java
@@ -173,6 +173,8 @@
      * initial connection to the server.
      *
      * @param config the running wifi configuration.
+     * @return true if user needs to be notified about an insecure network but TOFU is not supported
+     * by the device, or false otherwise.
      */
     public void prepareConnection(@NonNull WifiConfiguration config) {
         if (null == config) return;
diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java
index aa93293..dca3e6b 100644
--- a/service/java/com/android/server/wifi/WifiConfigManager.java
+++ b/service/java/com/android/server/wifi/WifiConfigManager.java
@@ -1522,7 +1522,7 @@
                     new NetworkUpdateResult(WifiConfiguration.INVALID_NETWORK_ID),
                     existingInternalConfig);
         }
-        if (removeExcessNetworks()) {
+        if (removeExcessNetworks(uid, packageName)) {
             if (mConfiguredNetworks.getForAllUsers(newInternalConfig.networkId) == null) {
                 Log.e(TAG, "Cannot add network because number of configured networks is maxed.");
                 return new Pair<>(
@@ -1649,10 +1649,20 @@
         saveToStore(false);
     }
 
+    private boolean isDeviceOwnerProfileOwnerOrSystem(int uid, String packageName) {
+        return mWifiPermissionsUtil.isDeviceOwner(uid, packageName)
+                || mWifiPermissionsUtil.isProfileOwner(uid, packageName)
+                || mWifiPermissionsUtil.isSystem(packageName, uid);
+    }
+
     /**
      * Removes excess networks in case the number of saved networks exceeds the max limit
      * specified in config_wifiMaxNumWifiConfigurations.
      *
+     * If called by a non DO/PO/system app, and a limit on app-added networks is specified in
+     * config_wifiMaxNumWifiConfigurationsForAppAddedNetworks, only removes excess
+     * app-added networks.
+     *
      * Configs are removed in ascending order of
      *     1. Non-carrier networks before carrier networks
      *     2. Non-connected networks before connected networks.
@@ -1661,26 +1671,50 @@
      *     5. Open and OWE networks before networks with other security types.
      *     6. Number of associations
      *
+     * @param uid    UID of the app requesting the network addition/modification.
+     * @param packageName Package name of the app requesting the network addition/modification.
      * @return {@code true} if networks were removed, {@code false} otherwise.
      */
-    private boolean removeExcessNetworks() {
-        final int maxNumConfigs = mContext.getResources().getInteger(
+    private boolean removeExcessNetworks(int uid, String packageName) {
+        final int maxNumTotalConfigs = mContext.getResources().getInteger(
                 R.integer.config_wifiMaxNumWifiConfigurations);
-        if (maxNumConfigs < 0) {
-            // Max number of saved networks not specified.
+        final int maxNumAppAddedConfigs = mContext.getResources().getInteger(
+                R.integer.config_wifiMaxNumWifiConfigurationsAddedByAllApps);
+
+        boolean callerIsApp = !isDeviceOwnerProfileOwnerOrSystem(uid, packageName);
+        if (maxNumTotalConfigs < 0 && (!callerIsApp || maxNumAppAddedConfigs < 0)) {
+            // Max number of saved networks not specified or does not need to be checked.
             return false;
         }
 
-        List<WifiConfiguration> savedNetworks = getSavedNetworks(Process.WIFI_UID);
-        final int numExcessNetworks = savedNetworks.size() - maxNumConfigs;
+        int numExcessNetworks = -1;
+        List<WifiConfiguration> networkList = getSavedNetworks(Process.WIFI_UID);
+        if (maxNumTotalConfigs >= 0) {
+            numExcessNetworks = networkList.size() - maxNumTotalConfigs;
+        }
+
+        if (callerIsApp && maxNumAppAddedConfigs >= 0) {
+            List<WifiConfiguration> appAddedNetworks = networkList
+                    .stream()
+                    .filter(n -> !isDeviceOwnerProfileOwnerOrSystem(n.creatorUid, n.creatorName))
+                    .collect(Collectors.toList());
+            int numExcessAppAddedNetworks = appAddedNetworks.size() - maxNumAppAddedConfigs;
+            if (numExcessAppAddedNetworks > 0) {
+                // Only enforce the limit on app-added networks if it has been exceeded.
+                // Otherwise, default to checking the limit on the total number of networks.
+                numExcessNetworks = numExcessAppAddedNetworks;
+                networkList = appAddedNetworks;
+            }
+        }
+
         if (numExcessNetworks <= 0) {
             return false;
         }
 
-        List<WifiConfiguration> configsToDelete = savedNetworks
+        List<WifiConfiguration> configsToDelete = networkList
                 .stream()
                 .sorted(Comparator.comparing((WifiConfiguration config) -> config.carrierId
-                        == TelephonyManager.UNKNOWN_CARRIER_ID)
+                        != TelephonyManager.UNKNOWN_CARRIER_ID)
                         .thenComparing((WifiConfiguration config) -> config.status
                                 == WifiConfiguration.Status.CURRENT)
                         .thenComparing((WifiConfiguration config) -> config.getDeletionPriority())
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java
index 5d88be4..810f130 100644
--- a/service/java/com/android/server/wifi/WifiNetworkFactory.java
+++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java
@@ -745,6 +745,11 @@
                 releaseRequestAsUnfulfillableByAnyFactory(networkRequest);
                 return false;
             }
+            if (mWifiPermissionsUtil.isGuestUser()) {
+                Log.e(TAG, "network specifier from guest user, reject");
+                releaseRequestAsUnfulfillableByAnyFactory(networkRequest);
+                return false;
+            }
             if (Objects.equals(mActiveSpecificNetworkRequest, networkRequest)
                     || Objects.equals(mConnectedSpecificNetworkRequest, networkRequest)) {
                 Log.e(TAG, "acceptRequest: Already processing the request " + networkRequest);
@@ -822,6 +827,11 @@
                 releaseRequestAsUnfulfillableByAnyFactory(networkRequest);
                 return;
             }
+            if (mWifiPermissionsUtil.isGuestUser()) {
+                Log.e(TAG, "network specifier from guest user, reject");
+                releaseRequestAsUnfulfillableByAnyFactory(networkRequest);
+                return;
+            }
             // Wifi-off abort early.
             if (!mActiveModeWarden.hasPrimaryClientModeManager()) {
                 Log.e(TAG, "Request with wifi network specifier when wifi is off."
diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
index b559e97..7a40f68 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
@@ -189,8 +189,13 @@
         }
 
         @Override
-        public void onSecurityParamsUpdate(WifiConfiguration configuration,
-                List<SecurityParams> securityParams) {
+        public void onSecurityParamsUpdate(@NonNull WifiConfiguration configuration,
+                @NonNull List<SecurityParams> securityParams) {
+            if (configuration == null || securityParams == null || securityParams.isEmpty()) {
+                Log.e(TAG, "onSecurityParamsUpdate: must have valid config and "
+                        + "securityParams");
+                return;
+            }
             onSecurityParamsUpdateForSuggestion(configuration, securityParams);
         }
     }
@@ -2782,7 +2787,8 @@
             List<SecurityParams> securityParams) {
         Set<ExtendedWifiNetworkSuggestion> matchingExtendedWifiNetworkSuggestions =
                         getNetworkSuggestionsForWifiConfiguration(config, config.BSSID);
-        if (matchingExtendedWifiNetworkSuggestions.isEmpty()) {
+        if (matchingExtendedWifiNetworkSuggestions == null
+                || matchingExtendedWifiNetworkSuggestions.isEmpty()) {
             if (mVerboseLoggingEnabled) {
                 Log.w(TAG, "onSecurityParamsUpdateForSuggestion: no network matches: " + config);
             }
diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java
index 30ea248..b044508 100644
--- a/service/java/com/android/server/wifi/WifiServiceImpl.java
+++ b/service/java/com/android/server/wifi/WifiServiceImpl.java
@@ -1105,7 +1105,8 @@
                 || mWifiPermissionsUtil.isAdmin(uid, packageName)
                 || mWifiPermissionsUtil.isSystem(packageName, uid)
                 // TODO(b/140540984): Remove this bypass.
-                || mWifiPermissionsUtil.checkSystemAlertWindowPermission(uid, packageName);
+                || (mWifiPermissionsUtil.checkSystemAlertWindowPermission(uid, packageName)
+                && !isGuestUser());
     }
 
     private boolean isGuestUser() {
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareClientState.java b/service/java/com/android/server/wifi/aware/WifiAwareClientState.java
index 9ba17de..51d4900 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareClientState.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareClientState.java
@@ -26,7 +26,6 @@
 import android.net.wifi.aware.ConfigRequest;
 import android.net.wifi.aware.IWifiAwareEventCallback;
 import android.net.wifi.util.HexEncoding;
-import android.os.Bundle;
 import android.os.RemoteException;
 import android.util.Log;
 import android.util.SparseArray;
@@ -66,7 +65,7 @@
     private final @Nullable String mCallingFeatureId;
     private final boolean mNotifyIdentityChange;
     private final WifiPermissionsUtil mWifiPermissionsUtil;
-    private final Bundle mExtra;
+    private final Object mAttributionSource;
 
     private final AppOpsManager mAppOps;
     private final long mCreationTime;
@@ -78,7 +77,7 @@
             String callingPackage, @Nullable String callingFeatureId,
             IWifiAwareEventCallback callback, ConfigRequest configRequest,
             boolean notifyIdentityChange, long creationTime,
-            WifiPermissionsUtil wifiPermissionsUtil, Bundle extra) {
+            WifiPermissionsUtil wifiPermissionsUtil, Object attributionSource) {
         mContext = context;
         mClientId = clientId;
         mUid = uid;
@@ -92,7 +91,7 @@
         mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE);
         mCreationTime = creationTime;
         mWifiPermissionsUtil = wifiPermissionsUtil;
-        mExtra = extra;
+        mAttributionSource = attributionSource;
     }
 
     /**
@@ -147,8 +146,8 @@
         return mSessions;
     }
 
-    public Bundle getExtra() {
-        return mExtra;
+    public Object getAttributionSource() {
+        return mAttributionSource;
     }
     /**
      * Searches the discovery sessions of this client and returns the one
diff --git a/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java b/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java
index 791c18d..f0b7f17 100644
--- a/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java
+++ b/service/java/com/android/server/wifi/aware/WifiAwareStateManager.java
@@ -21,6 +21,7 @@
 
 import android.annotation.NonNull;
 import android.annotation.Nullable;
+import android.content.AttributionSource;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -226,7 +227,6 @@
     private static final String MESSAGE_BUNDLE_KEY_NDP_IDS = "ndp_ids";
     private static final String MESSAGE_BUNDLE_KEY_APP_INFO = "app_info";
     private static final String MESSAGE_BUNDLE_KEY_ACCEPT_STATE = "accept_state";
-    private static final String MESSAGE_BUNDLE_KEY_ATTRIBUTION_SOURCE = "attribution_source";
 
     private WifiAwareNativeApi mWifiAwareNativeApi;
     private WifiAwareNativeManager mWifiAwareNativeManager;
@@ -820,7 +820,9 @@
         Message msg = mSm.obtainMessage(MESSAGE_TYPE_COMMAND);
         msg.arg1 = COMMAND_TYPE_CONNECT;
         msg.arg2 = clientId;
-        msg.obj = callback;
+        Pair<IWifiAwareEventCallback, Object> callbackAndAttributionSource = new Pair<>(
+                callback, extra.getParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE));
+        msg.obj = callbackAndAttributionSource;
         msg.getData().putParcelable(MESSAGE_BUNDLE_KEY_CONFIG, configRequest);
         msg.getData().putInt(MESSAGE_BUNDLE_KEY_UID, uid);
         msg.getData().putInt(MESSAGE_BUNDLE_KEY_PID, pid);
@@ -828,7 +830,6 @@
         msg.getData().putString(MESSAGE_BUNDLE_KEY_CALLING_FEATURE_ID, callingFeatureId);
         msg.getData().putBoolean(MESSAGE_BUNDLE_KEY_NOTIFY_IDENTITY_CHANGE,
                 notifyOnIdentityChanged);
-        msg.getData().putBundle(MESSAGE_BUNDLE_KEY_ATTRIBUTION_SOURCE, extra);
         mSm.sendMessage(msg);
     }
 
@@ -1844,7 +1845,9 @@
                     }
 
                     int clientId = msg.arg2;
-                    IWifiAwareEventCallback callback = (IWifiAwareEventCallback) msg.obj;
+                    Pair<IWifiAwareEventCallback, Object> callbackAndAttributionSource =
+                            (Pair<IWifiAwareEventCallback, Object>) msg.obj;
+                    IWifiAwareEventCallback callback = callbackAndAttributionSource.first;
                     ConfigRequest configRequest = (ConfigRequest) msg.getData()
                             .getParcelable(MESSAGE_BUNDLE_KEY_CONFIG);
                     int uid = msg.getData().getInt(MESSAGE_BUNDLE_KEY_UID);
@@ -1878,8 +1881,7 @@
                             == InterfaceConflictManager.ICM_EXECUTE_COMMAND) {
                         waitForResponse = connectLocal(mCurrentTransactionId, clientId, uid, pid,
                                 callingPackage, callingFeatureId, callback, configRequest,
-                                notifyIdentityChange,
-                                msg.getData().getBundle(MESSAGE_BUNDLE_KEY_ATTRIBUTION_SOURCE));
+                                notifyIdentityChange, callbackAndAttributionSource.second);
                     } else { // InterfaceConflictManager.ICM_SKIP_COMMAND_WAIT_FOR_USER
                         waitForResponse = false;
                     }
@@ -2501,7 +2503,7 @@
     private boolean connectLocal(short transactionId, int clientId, int uid, int pid,
             String callingPackage, @Nullable String callingFeatureId,
             IWifiAwareEventCallback callback, ConfigRequest configRequest,
-            boolean notifyIdentityChange, Bundle extra) {
+            boolean notifyIdentityChange, Object attributionSource) {
         if (VDBG) {
             Log.v(TAG, "connectLocal(): transactionId=" + transactionId + ", clientId=" + clientId
                     + ", uid=" + uid + ", pid=" + pid + ", callingPackage=" + callingPackage
@@ -2553,7 +2555,7 @@
             }
             WifiAwareClientState client = new WifiAwareClientState(mContext, clientId, uid, pid,
                     callingPackage, callingFeatureId, callback, configRequest, notifyIdentityChange,
-                    SystemClock.elapsedRealtime(), mWifiPermissionsUtil, extra);
+                    SystemClock.elapsedRealtime(), mWifiPermissionsUtil, attributionSource);
             client.enableVerboseLogging(mDbg);
             client.onInterfaceAddressChange(mCurrentDiscoveryInterfaceMac);
             mClients.append(clientId, client);
@@ -2959,7 +2961,9 @@
             Bundle data = completedCommand.getData();
 
             int clientId = completedCommand.arg2;
-            IWifiAwareEventCallback callback = (IWifiAwareEventCallback) completedCommand.obj;
+            Pair<IWifiAwareEventCallback, Object> callbackAndAttributionSource =
+                    (Pair<IWifiAwareEventCallback, Object>) completedCommand.obj;
+            IWifiAwareEventCallback callback = callbackAndAttributionSource.first;
             ConfigRequest configRequest = (ConfigRequest) data
                     .getParcelable(MESSAGE_BUNDLE_KEY_CONFIG);
             int uid = data.getInt(MESSAGE_BUNDLE_KEY_UID);
@@ -2972,7 +2976,7 @@
             WifiAwareClientState client = new WifiAwareClientState(mContext, clientId, uid, pid,
                     callingPackage, callingFeatureId, callback, configRequest, notifyIdentityChange,
                     SystemClock.elapsedRealtime(), mWifiPermissionsUtil,
-                    data.getBundle(MESSAGE_BUNDLE_KEY_ATTRIBUTION_SOURCE));
+                    callbackAndAttributionSource.second);
             client.enableVerboseLogging(mDbg);
             mClients.put(clientId, client);
             mAwareMetrics.recordAttachSession(uid, notifyIdentityChange, mClients);
@@ -3018,8 +3022,9 @@
         }
 
         if (failedCommand.arg1 == COMMAND_TYPE_CONNECT) {
-            IWifiAwareEventCallback callback = (IWifiAwareEventCallback) failedCommand.obj;
-
+            Pair<IWifiAwareEventCallback, Object> callbackAndAttributionSource =
+                    (Pair<IWifiAwareEventCallback, Object>) failedCommand.obj;
+            IWifiAwareEventCallback callback = callbackAndAttributionSource.first;
             try {
                 callback.onConnectFail(reason);
                 mAwareMetrics.recordAttachStatus(reason);
@@ -3754,12 +3759,17 @@
     private void handleLocationModeDisabled() {
         for (int i = 0; i < mClients.size(); i++) {
             WifiAwareClientState clientState = mClients.valueAt(i);
-            try {
-                // As location mode is disabled, only app disavowal the location can pass the check.
-                mWifiPermissionsUtil.enforceNearbyDevicesPermission(clientState.getExtra()
-                        .getParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE), true,
-                        "Wifi Aware location mode change.");
-            } catch (SecurityException e) {
+            if (SdkLevel.isAtLeastT()) {
+                try {
+                    // As location mode is disabled, only app disavowal the location can pass the
+                    // check.
+                    mWifiPermissionsUtil.enforceNearbyDevicesPermission(
+                            (AttributionSource) clientState.getAttributionSource(), true,
+                            "Wifi Aware location mode change.");
+                } catch (SecurityException e) {
+                    disconnect(clientState.getClientId());
+                }
+            } else {
                 disconnect(clientState.getClientId());
             }
         }
diff --git a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
index c417758..e3e4c30 100644
--- a/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
+++ b/service/java/com/android/server/wifi/p2p/WifiP2pServiceImpl.java
@@ -1694,7 +1694,9 @@
                         replyToMessage(message, WifiP2pManager.RESPONSE_PEERS,
                                 getPeers(getCallingPkgName(message.sendingUid, message.replyTo),
                                         getCallingFeatureId(message.sendingUid, message.replyTo),
-                                        message.sendingUid, (Bundle) message.obj));
+                                        message.sendingUid, message.getData().getBundle(
+                                                WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE),
+                                        message.obj));
                         break;
                     case WifiP2pManager.REQUEST_CONNECTION_INFO:
                         replyToMessage(message, WifiP2pManager.RESPONSE_CONNECTION_INFO,
@@ -1707,7 +1709,8 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         boolean hasPermission = false;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
@@ -1716,7 +1719,7 @@
                                     uid, false);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "REQUEST_GROUP_INFO");
+                                    extras, "REQUEST_GROUP_INFO", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.RESPONSE_GROUP_INFO, null);
@@ -1743,10 +1746,11 @@
                                     new WifiP2pGroupList());
                             break;
                         }
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         if (!isPlatformOrTargetSdkLessThanT(packageName, message.sendingUid)
                                 && !checkNearbyDevicesPermission(message.sendingUid, packageName,
-                                        extras, "REQUEST_PERSISTENT_GROUP_INFO")) {
+                                        extras, "REQUEST_PERSISTENT_GROUP_INFO", message.obj)) {
                             loge("Permission violation - no NEARBY_WIFI_DEVICES permission, uid = "
                                     + message.sendingUid);
                             replyToMessage(message, WifiP2pManager.RESPONSE_PERSISTENT_GROUP_INFO,
@@ -1885,10 +1889,11 @@
                         }
                         break;
                     case WifiP2pManager.UPDATE_CHANNEL_INFO: {
-                        if (!(message.obj instanceof Bundle)) {
+                        Bundle bundle = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
+                        if (!(bundle instanceof Bundle)) {
                             break;
                         }
-                        Bundle bundle = (Bundle) message.obj;
                         String pkgName = bundle.getString(WifiP2pManager.CALLING_PACKAGE);
                         String featureId = bundle.getString(WifiP2pManager.CALLING_FEATURE_ID);
                         IBinder binder = bundle.getBinder(WifiP2pManager.CALLING_BINDER);
@@ -1904,8 +1909,7 @@
                             clientInfo.mPackageName = pkgName;
                             clientInfo.mFeatureId = featureId;
                             if (SdkLevel.isAtLeastS()) {
-                                AttributionSource source = (AttributionSource) bundle.getParcelable(
-                                        WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE);
+                                AttributionSource source = (AttributionSource) message.obj;
                                 if (null != source) {
                                     mClientAttributionSource.put(binder, source);
                                 }
@@ -1921,7 +1925,8 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         boolean hasPermission = false;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
@@ -1930,7 +1935,7 @@
                                     uid, false);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "REQUEST_DEVICE_INFO");
+                                    extras, "REQUEST_DEVICE_INFO", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.RESPONSE_DEVICE_INFO, null);
@@ -1949,7 +1954,8 @@
                         replyToMessage(message, WifiP2pManager.REMOVE_CLIENT_SUCCEEDED);
                         break;
                     case WifiP2pManager.ADD_EXTERNAL_APPROVER: {
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData().getBundle(
+                                WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         MacAddress devAddr = extras.getParcelable(
                                 WifiP2pManager.EXTRA_PARAM_KEY_PEER_ADDRESS);
                         IBinder binder = extras.getBinder(WifiP2pManager.CALLING_BINDER);
@@ -1977,7 +1983,8 @@
                         break;
                     }
                     case WifiP2pManager.REMOVE_EXTERNAL_APPROVER: {
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData().getBundle(
+                                WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         MacAddress devAddr = extras.getParcelable(
                                 WifiP2pManager.EXTRA_PARAM_KEY_PEER_ADDRESS);
                         IBinder binder = extras.getBinder(WifiP2pManager.CALLING_BINDER);
@@ -2013,11 +2020,13 @@
                             replyToMessage(message, WifiP2pManager.SET_VENDOR_ELEMENTS_FAILED);
                             break;
                         }
-                        if (!checkNearbyDevicesPermission(message, "SET_VENDOR_ELEMENTS")) {
+                        if (!SdkLevel.isAtLeastS()
+                                || !checkNearbyDevicesPermission(message, "SET_VENDOR_ELEMENTS")) {
                             replyToMessage(message, WifiP2pManager.SET_VENDOR_ELEMENTS_FAILED);
                             break;
                         }
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         ArrayList<ScanResult.InformationElement> ies =
                                 extras.getParcelableArrayList(
                                         WifiP2pManager.EXTRA_PARAM_KEY_INFORMATION_ELEMENT_LIST);
@@ -2404,7 +2413,8 @@
                         }
                         int scanType = message.arg1;
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         int freq = extras.getInt(
                                     WifiP2pManager.EXTRA_PARAM_KEY_PEER_DISCOVERY_FREQ,
                                     WifiP2pManager.WIFI_P2P_SCAN_FREQ_UNSPECIFIED);
@@ -2421,7 +2431,7 @@
                                     uid, true);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "DISCOVER_PEERS");
+                                    extras, "DISCOVER_PEERS", message.obj);
                         }
 
                         if (!hasPermission) {
@@ -2468,7 +2478,8 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         boolean hasPermission = false;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
@@ -2477,7 +2488,7 @@
                                     uid, true);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "DISCOVER_SERVICES");
+                                    extras, "DISCOVER_SERVICES", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.DISCOVER_SERVICES_FAILED,
@@ -2535,8 +2546,9 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
-                        boolean hasPermission = false;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
+                        boolean hasPermission;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
                                     packageName,
@@ -2544,7 +2556,7 @@
                                     uid, false);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "ADD_LOCAL_SERVICE");
+                                    extras, "ADD_LOCAL_SERVICE", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.ADD_LOCAL_SERVICE_FAILED);
@@ -2633,8 +2645,9 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
-                        boolean hasPermission = false;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
+                        boolean hasPermission;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
                                     packageName,
@@ -2642,7 +2655,7 @@
                                     uid, true);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "START_LISTEN");
+                                    extras, "START_LISTEN", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.START_LISTEN_FAILED);
@@ -2755,7 +2768,8 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         boolean hasPermission = false;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
@@ -2764,7 +2778,7 @@
                                     uid, false);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "CONNECT");
+                                    extras, "CONNECT", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.CONNECT_FAILED);
@@ -2936,8 +2950,9 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
-                        boolean hasPermission = false;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
+                        boolean hasPermission;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
                                     packageName,
@@ -2945,7 +2960,7 @@
                                     uid, false);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "CREATE_GROUP");
+                                    extras, "CREATE_GROUP", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.CREATE_GROUP_FAILED,
@@ -3027,8 +3042,9 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
-                        boolean hasPermission = false;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
+                        boolean hasPermission;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
                                     packageName,
@@ -3036,7 +3052,7 @@
                                     uid, true);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "START_LISTEN");
+                                    extras, "START_LISTEN", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.START_LISTEN_FAILED);
@@ -4001,7 +4017,8 @@
                             break;
                         }
                         int uid = message.sendingUid;
-                        Bundle extras = (Bundle) message.obj;
+                        Bundle extras = message.getData()
+                                .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                         boolean hasPermission = false;
                         if (isPlatformOrTargetSdkLessThanT(packageName, uid)) {
                             hasPermission = mWifiPermissionsUtil.checkCanAccessWifiDirect(
@@ -4010,7 +4027,7 @@
                                     uid, false);
                         } else {
                             hasPermission = checkNearbyDevicesPermission(uid, packageName,
-                                    extras, "CONNECT");
+                                    extras, "CONNECT", message.obj);
                         }
                         if (!hasPermission) {
                             replyToMessage(message, WifiP2pManager.CONNECT_FAILED);
@@ -4385,16 +4402,15 @@
                 return false;
             }
             int uid = message.sendingUid;
-            Bundle extras = (Bundle) message.obj;
-            return checkNearbyDevicesPermission(uid, packageName, extras, cmd);
+            Bundle extras = message.getData()
+                    .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
+            return checkNearbyDevicesPermission(uid, packageName, extras, cmd, message.obj);
         }
 
         private boolean checkNearbyDevicesPermission(int uid, String packageName, Bundle extras,
-                String message) {
-            if (extras == null) {
-                return false;
-            }
-            if (extras.getBoolean(WifiP2pManager.EXTRA_PARAM_KEY_INTERNAL_MESSAGE)) {
+                String message, Object attributionSource) {
+            if (extras != null
+                    && extras.getBoolean(WifiP2pManager.EXTRA_PARAM_KEY_INTERNAL_MESSAGE)) {
                 // bypass permission check for internal call.
                 return true;
             }
@@ -4405,9 +4421,8 @@
                 return false;
             }
             return mWifiPermissionsUtil.checkNearbyDevicesPermission(
-                    extras.getParcelable(
-                            WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE),
-                    true, TAG + " " + message);
+                    SdkLevel.isAtLeastS() ? (AttributionSource) attributionSource : null, true,
+                    TAG + " " + message);
         }
 
         private boolean isPackageExisted(String pkgName) {
@@ -5424,7 +5439,11 @@
             mServiceDiscReqId = null;
             Bundle extras = new Bundle();
             extras.putBoolean(WifiP2pManager.EXTRA_PARAM_KEY_INTERNAL_MESSAGE, true);
-            sendMessage(WifiP2pManager.DISCOVER_PEERS, extras);
+
+            Message msg = Message.obtain();
+            msg.what = WifiP2pManager.DISCOVER_PEERS;
+            msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
+            sendMessage(msg);
 
             sendDisconnectWifiRequest(false);
         }
@@ -5813,7 +5832,7 @@
          * @return WifiP2pDeviceList the peer list
          */
         private WifiP2pDeviceList getPeers(String pkgName, @Nullable String featureId, int uid,
-                Bundle extras) {
+                Bundle extras, Object attributionSource) {
             // getPeers() is guaranteed to be invoked after Wifi Service is up
             // This ensures getInstance() will return a non-null object now
             boolean hasPermission = false;
@@ -5822,7 +5841,7 @@
                         pkgName, featureId, uid, true);
             } else {
                 hasPermission = checkNearbyDevicesPermission(uid, pkgName,
-                        extras, "getPeers");
+                        extras, "getPeers", attributionSource);
             }
             if (hasPermission) {
                 return new WifiP2pDeviceList(mPeers);
@@ -6056,7 +6075,8 @@
 
         private boolean checkExternalApproverCaller(Message message,
                 IBinder binder, MacAddress devAddr, String cmd) {
-            Bundle extras = (Bundle) message.obj;
+            Bundle extras = message.getData()
+                    .getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
             if (!mWifiPermissionsUtil.checkManageWifiNetworkSelectionPermission(
                     message.sendingUid)) {
                 loge("Permission violation - no MANAGE_WIFI_NETWORK_SELECTION,"
@@ -6113,7 +6133,7 @@
         }
 
         private boolean handleSetConnectionResultCommon(@NonNull Message message) {
-            Bundle extras = (Bundle) message.obj;
+            Bundle extras = message.getData().getBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
             MacAddress devAddr = extras.getParcelable(
                     WifiP2pManager.EXTRA_PARAM_KEY_PEER_ADDRESS);
             IBinder binder = extras.getBinder(WifiP2pManager.CALLING_BINDER);
@@ -6170,7 +6190,8 @@
                         && WpsInfo.KEYPAD == mSavedPeerConfig.wps.setup) {
                     sendMessage(PEER_CONNECTION_USER_CONFIRM);
                 } else {
-                    Bundle extras = (Bundle) message.obj;
+                    Bundle extras = message.getData().getBundle(
+                            WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE);
                     String pin = extras.getString(
                             WifiP2pManager.EXTRA_PARAM_KEY_WPS_PIN);
                     if (!TextUtils.isEmpty(pin)) {
diff --git a/service/java/com/android/server/wifi/rtt/RttServiceImpl.java b/service/java/com/android/server/wifi/rtt/RttServiceImpl.java
index 7cd1ea9..5842889 100644
--- a/service/java/com/android/server/wifi/rtt/RttServiceImpl.java
+++ b/service/java/com/android/server/wifi/rtt/RttServiceImpl.java
@@ -22,6 +22,7 @@
 
 import android.annotation.NonNull;
 import android.app.ActivityManager;
+import android.content.AttributionSource;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -434,17 +435,21 @@
         // check if only Aware APs are ranged.
         boolean onlyAwareApRanged = request.mRttPeers.stream().allMatch(
                 config -> config.responderType == ResponderConfig.RESPONDER_AWARE);
+        final Object attributionSource;
         if (onlyAwareApRanged && SdkLevel.isAtLeastT()) {
             // Special case: if only aware APs are ranged, then allow this request if the caller
             // has nearby permission.
-            if (!mWifiPermissionsUtil.checkNearbyDevicesPermission(extras.getParcelable(
-                            WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE), true,
+            attributionSource = extras.getParcelable(
+                    WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE);
+            if (!mWifiPermissionsUtil.checkNearbyDevicesPermission(
+                    (AttributionSource) attributionSource, true,
                     "wifi aware ranging")) {
                 // No nearby permission. Still check for location permission.
                 mWifiPermissionsUtil.enforceFineLocationPermission(
                         callingPackage, callingFeatureId, uid);
             }
         } else {
+            attributionSource = null;
             mWifiPermissionsUtil.enforceFineLocationPermission(
                     callingPackage, callingFeatureId, uid);
         }
@@ -490,7 +495,7 @@
             }
             mRttServiceSynchronized.queueRangingRequest(uid, sourceToUse, binder, dr,
                     callingPackage, callingFeatureId, request, callback,
-                    isCalledFromPrivilegedContext, extras);
+                    isCalledFromPrivilegedContext, attributionSource);
         });
     }
 
@@ -699,7 +704,7 @@
         private void queueRangingRequest(int uid, WorkSource workSource, IBinder binder,
                 IBinder.DeathRecipient dr, String callingPackage, String callingFeatureId,
                 RangingRequest request, IRttCallback callback,
-                boolean isCalledFromPrivilegedContext, Bundle extras) {
+                boolean isCalledFromPrivilegedContext, Object attributionSource) {
             mRttMetrics.recordRequest(workSource, request);
 
             if (isRequestorSpamming(workSource)) {
@@ -726,7 +731,7 @@
             newRequest.request = request;
             newRequest.callback = callback;
             newRequest.isCalledFromPrivilegedContext = isCalledFromPrivilegedContext;
-            newRequest.extras = extras;
+            newRequest.attributionSource = attributionSource;
             mRttRequestQueue.add(newRequest);
 
             if (VDBG) {
@@ -1099,8 +1104,7 @@
                 // Special case: if only aware APs are ranged, then allow this request if the caller
                 // has nearby permission.
                 permissionGranted = mWifiPermissionsUtil.checkNearbyDevicesPermission(
-                        topOfQueueRequest.extras.getParcelable(
-                                WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE), true,
+                        (AttributionSource) topOfQueueRequest.attributionSource, true,
                         "wifi aware on ranging result");
             }
             if (!permissionGranted) {
@@ -1242,7 +1246,9 @@
         public RangingRequest request;
         public IRttCallback callback;
         public boolean isCalledFromPrivilegedContext;
-        public Bundle extras;
+        // This should be of Class AttributionSource, not is declared as Object for mainline
+        // backward compatibility.
+        public Object attributionSource;
 
         public int cmdId = 0; // uninitialized cmdId value
         public boolean dispatchedToNative = false;
diff --git a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
index 4c0c7ef..0539eac 100644
--- a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
+++ b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java
@@ -216,6 +216,7 @@
         }
         String packageName = attributionSource.getPackageName();
         int uid = attributionSource.getUid();
+        checkPackage(uid, packageName);
         // Apps with NETWORK_SETTINGS, NETWORK_SETUP_WIZARD, NETWORK_MANAGED_PROVISIONING,
         // NETWORK_STACK & MAINLINE_NETWORK_STACK, RADIO_SCAN_WITHOUT_LOCATION are granted a bypass.
         if (checkNetworkSettingsPermission(uid) || checkNetworkSetupWizardPermission(uid)
@@ -224,6 +225,7 @@
                 || checkScanWithoutLocationPermission(uid)) {
             return;
         }
+
         int permissionCheckResult = mPermissionManager.checkPermissionForDataDelivery(
                 Manifest.permission.NEARBY_WIFI_DEVICES, attributionSource, message);
         if (permissionCheckResult != PermissionManager.PERMISSION_GRANTED) {
diff --git a/service/java/com/android/server/wifi/util/XmlUtil.java b/service/java/com/android/server/wifi/util/XmlUtil.java
index 185bc86..7e92064 100644
--- a/service/java/com/android/server/wifi/util/XmlUtil.java
+++ b/service/java/com/android/server/wifi/util/XmlUtil.java
@@ -462,6 +462,9 @@
                 XmlUtil.writeNextValue(
                         out, XML_TAG_IS_ADDED_BY_AUTO_UPGRADE,
                         params.isAddedByAutoUpgrade());
+                XmlUtil.writeNextValue(
+                        out, XML_TAG_ALLOWED_SUITE_B_CIPHERS,
+                        params.getAllowedSuiteBCiphers().toByteArray());
                 XmlUtil.writeNextSectionEnd(out, XML_TAG_SECURITY_PARAMS);
             }
 
@@ -720,6 +723,16 @@
                         }
                         params.setIsAddedByAutoUpgrade((boolean) value);
                         break;
+                    case WifiConfigurationXmlUtil.XML_TAG_ALLOWED_SUITE_B_CIPHERS:
+                        if (null == params) {
+                            throw new XmlPullParserException("Missing security type.");
+                        }
+                        byte[] suiteBCiphers = (byte[]) value;
+                        BitSet suiteBCiphersBitSet = BitSet.valueOf(suiteBCiphers);
+                        params.enableSuiteBCiphers(
+                                suiteBCiphersBitSet.get(WifiConfiguration.SuiteBCipher.ECDHE_ECDSA),
+                                suiteBCiphersBitSet.get(WifiConfiguration.SuiteBCipher.ECDHE_RSA));
+                        break;
                 }
             }
             return params;
diff --git a/service/tests/wifitests/src/com/android/server/wifi/ActiveModeWardenTest.java b/service/tests/wifitests/src/com/android/server/wifi/ActiveModeWardenTest.java
index 5bba4f6..9c6ba72 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/ActiveModeWardenTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/ActiveModeWardenTest.java
@@ -798,6 +798,40 @@
                 any(), eq(TEST_WORKSOURCE), eq(ROLE_CLIENT_PRIMARY), anyBoolean());
     }
 
+    @Test
+    public void testPrimaryNotCreatedTwice() throws Exception {
+        enterClientModeActiveState();
+        verify(mWifiInjector).makeClientModeManager(
+                any(), eq(TEST_WORKSOURCE), eq(ROLE_CLIENT_PRIMARY), anyBoolean());
+
+        // toggling wifi on again should be no-op when primary is already available
+        when(mSettingsStore.isWifiToggleEnabled()).thenReturn(true);
+        mActiveModeWarden.wifiToggled(TEST_WORKSOURCE);
+        mLooper.dispatchAll();
+
+        verify(mWifiInjector).makeClientModeManager(
+                any(), eq(TEST_WORKSOURCE), eq(ROLE_CLIENT_PRIMARY), anyBoolean());
+
+        // Simulate the primary not fully started by making the role null and targetRole primary.
+        when(mClientModeManager.getRole()).thenReturn(null);
+        when(mClientModeManager.getTargetRole()).thenReturn(ROLE_CLIENT_PRIMARY);
+
+        // Verify that there is no primary, but there is a CMM with targetRole as primary.
+        List<ClientModeManager> currentCMMs = mActiveModeWarden.getClientModeManagers();
+        assertEquals(1, currentCMMs.size());
+        ConcreteClientModeManager currentCmm = (ConcreteClientModeManager) currentCMMs.get(0);
+        assertTrue(currentCmm.getRole() == null);
+        assertTrue(currentCmm.getTargetRole() == ROLE_CLIENT_PRIMARY);
+
+        // verify wifi toggling on should not create another primary CMM.
+        when(mSettingsStore.isWifiToggleEnabled()).thenReturn(true);
+        mActiveModeWarden.wifiToggled(TEST_WORKSOURCE);
+        mLooper.dispatchAll();
+
+        verify(mWifiInjector).makeClientModeManager(
+                any(), eq(TEST_WORKSOURCE), eq(ROLE_CLIENT_PRIMARY), anyBoolean());
+    }
+
     /**
      * Reentering EnabledState should be a NOP.
      */
diff --git a/service/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java b/service/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java
index 0684c33..165ab22 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/NetworkListStoreDataTest.java
@@ -101,12 +101,14 @@
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"false\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "<SecurityParams>\n"
                     + "<int name=\"SecurityType\" value=\"6\" />\n"
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"true\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "</SecurityParamsList>\n"
                     + "<boolean name=\"Trusted\" value=\"true\" />\n"
@@ -184,12 +186,14 @@
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"false\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "<SecurityParams>\n"
                     + "<int name=\"SecurityType\" value=\"9\" />\n"
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"true\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "</SecurityParamsList>\n"
                     + "<boolean name=\"Trusted\" value=\"true\" />\n"
@@ -295,6 +299,7 @@
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"false\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "</SecurityParamsList>\n"
                     + "<boolean name=\"Trusted\" value=\"true\" />\n"
@@ -372,12 +377,14 @@
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"false\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "<SecurityParams>\n"
                     + "<int name=\"SecurityType\" value=\"9\" />\n"
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"true\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "</SecurityParamsList>\n"
                     + "<boolean name=\"Trusted\" value=\"true\" />\n"
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiBackupRestoreTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiBackupRestoreTest.java
index e58b515..117fcf6 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiBackupRestoreTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiBackupRestoreTest.java
@@ -260,6 +260,7 @@
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"false\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "</SecurityParamsList>\n"
                     + "<int name=\"MeteredOverride\" value=\"1\" />\n"
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
index 08bc38f..f5eaf3a 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java
@@ -236,6 +236,8 @@
                 R.integer.config_wifiAllNonCarrierMergedWifiMaxDisableDurationMinutes,
                 ALL_NON_CARRIER_MERGED_WIFI_MAX_DISABLE_DURATION_MINUTES);
         mResources.setInteger(R.integer.config_wifiMaxNumWifiConfigurations, -1);
+        mResources.setInteger(
+                R.integer.config_wifiMaxNumWifiConfigurationsAddedByAllApps, 200);
         when(mContext.getResources()).thenReturn(mResources);
 
         // Setup UserManager profiles for the default user.
@@ -295,6 +297,7 @@
         when(mWifiPermissionsUtil.doesUidBelongToCurrentUserOrDeviceOwner(anyInt()))
                 .thenReturn(true);
         when(mWifiPermissionsUtil.isDeviceInDemoMode(any())).thenReturn(false);
+        when(mWifiPermissionsUtil.isSystem(any(), anyInt())).thenReturn(true);
         when(mWifiLastResortWatchdog.shouldIgnoreSsidUpdate()).thenReturn(false);
         when(mMacAddressUtil.calculatePersistentMac(any(), any())).thenReturn(TEST_RANDOMIZED_MAC);
         when(mWifiScoreCard.lookupNetwork(any())).thenReturn(mPerNetwork);
@@ -5760,7 +5763,8 @@
      */
     private NetworkUpdateResult verifyAddNetworkToWifiConfigManager(
             WifiConfiguration configuration) {
-        NetworkUpdateResult result = addNetworkToWifiConfigManager(configuration);
+        NetworkUpdateResult result = addNetworkToWifiConfigManager(configuration,
+                configuration.creatorUid);
         assertTrue(result.getNetworkId() != WifiConfiguration.INVALID_NETWORK_ID);
         assertTrue(result.isNewNetwork());
         assertTrue(result.hasIpChanged());
@@ -7127,7 +7131,8 @@
      */
     @Test
     public void testRemoveExcessNetworksOnAdd() {
-        mResources.setInteger(R.integer.config_wifiMaxNumWifiConfigurations, 9);
+        final int maxNumWifiConfigs = 8;
+        mResources.setInteger(R.integer.config_wifiMaxNumWifiConfigurations, maxNumWifiConfigs);
         List<WifiConfiguration> configsInDeletionOrder = new ArrayList<>();
         WifiConfiguration currentConfig = WifiConfigurationTestUtil.createPskNetwork();
         currentConfig.status = WifiConfiguration.Status.CURRENT;
@@ -7147,13 +7152,7 @@
         WifiConfiguration noAssociationConfig = WifiConfigurationTestUtil.createOpenNetwork();
         noAssociationConfig.numRebootsSinceLastUse = 1;
         noAssociationConfig.numAssociation = 0;
-        WifiConfiguration invalidKeyMgmtConfig = WifiConfigurationTestUtil.createEapNetwork();
-        invalidKeyMgmtConfig.allowedKeyManagement.clear(WifiConfiguration.KeyMgmt.IEEE8021X);
-        invalidKeyMgmtConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.WPA2_PSK);
-        noAssociationConfig.numRebootsSinceLastUse = 1;
-        noAssociationConfig.numAssociation = 0;
 
-        configsInDeletionOrder.add(invalidKeyMgmtConfig);
         configsInDeletionOrder.add(noAssociationConfig);
         configsInDeletionOrder.add(oneRebootOpenConfig);
         configsInDeletionOrder.add(oneRebootSaeConfig);
@@ -7163,12 +7162,18 @@
         configsInDeletionOrder.add(lessDeletionPriorityConfig);
         configsInDeletionOrder.add(currentConfig);
 
+        for (WifiConfiguration config : configsInDeletionOrder) {
+            verifyAddNetworkToWifiConfigManager(config);
+        }
+        assertEquals(mWifiConfigManager.getConfiguredNetworks().size(), maxNumWifiConfigs);
+
         // Add carrier configs to flush out the other configs, since they are deleted last.
         for (WifiConfiguration configToDelete : configsInDeletionOrder) {
             WifiConfiguration carrierConfig = WifiConfigurationTestUtil.createPskNetwork();
             carrierConfig.carrierId = 1;
             verifyAddNetworkToWifiConfigManager(carrierConfig);
 
+            assertEquals(mWifiConfigManager.getConfiguredNetworks().size(), maxNumWifiConfigs);
             for (WifiConfiguration savedConfig : mWifiConfigManager.getConfiguredNetworks()) {
                 if (savedConfig.networkId == configToDelete.networkId) {
                     fail("Config was not deleted: " + configToDelete);
@@ -7178,6 +7183,96 @@
     }
 
     /**
+     * Verifies that the limit on app-added networks is enforced when an app attempts to add
+     * a new network. Configs added by a system app should not be removed, even if they have a
+     * higher overall deletion priority.
+     */
+    @Test
+    public void testRemoveExcessAppAddedNetworksOnAdd() {
+        final int maxTotalConfigs = 6;
+        final int maxAppAddedConfigs = 4;
+        mResources.setInteger(R.integer.config_wifiMaxNumWifiConfigurations, maxTotalConfigs);
+        mResources.setInteger(R.integer.config_wifiMaxNumWifiConfigurationsAddedByAllApps,
+                maxAppAddedConfigs);
+
+        when(mWifiPermissionsUtil.isDeviceOwner(anyInt(), any())).thenReturn(false);
+        when(mWifiPermissionsUtil.isProfileOwner(anyInt(), any())).thenReturn(false);
+        when(mWifiPermissionsUtil.isSystem(any(), eq(TEST_CREATOR_UID)))
+                .thenReturn(true);
+        when(mWifiPermissionsUtil.isSystem(any(), eq(TEST_OTHER_USER_UID)))
+                .thenReturn(false);
+
+        WifiConfiguration currentConfig = WifiConfigurationTestUtil.createPskNetwork();
+        currentConfig.status = WifiConfiguration.Status.CURRENT;
+        WifiConfiguration lessDeletionPriorityConfig = WifiConfigurationTestUtil.createPskNetwork();
+        lessDeletionPriorityConfig.setDeletionPriority(1);
+        WifiConfiguration newlyAddedConfig = WifiConfigurationTestUtil.createPskNetwork();
+        newlyAddedConfig.lastUpdated = 1;
+        WifiConfiguration recentConfig = WifiConfigurationTestUtil.createPskNetwork();
+        recentConfig.lastConnected = 2;
+        WifiConfiguration notRecentConfig = WifiConfigurationTestUtil.createPskNetwork();
+        notRecentConfig.lastConnected = 1;
+        WifiConfiguration oneRebootSaeConfig = WifiConfigurationTestUtil.createSaeNetwork();
+        oneRebootSaeConfig.numRebootsSinceLastUse = 1;
+        WifiConfiguration oneRebootOpenConfig = WifiConfigurationTestUtil.createOpenNetwork();
+        oneRebootOpenConfig.numRebootsSinceLastUse = 1;
+        oneRebootOpenConfig.numAssociation = 1;
+        WifiConfiguration noAssociationConfig = WifiConfigurationTestUtil.createOpenNetwork();
+        noAssociationConfig.numRebootsSinceLastUse = 1;
+        noAssociationConfig.numAssociation = 0;
+
+        // System-added configs. Have high overall deletion priority.
+        verifyAddNetworkToWifiConfigManager(oneRebootOpenConfig);
+        verifyAddNetworkToWifiConfigManager(noAssociationConfig);
+
+        // App-added configs. Have low overall deletion priority.
+        List<WifiConfiguration> appAddedConfigsInDeletionOrder = new ArrayList<>();
+        appAddedConfigsInDeletionOrder.add(recentConfig);
+        appAddedConfigsInDeletionOrder.add(newlyAddedConfig);
+        appAddedConfigsInDeletionOrder.add(lessDeletionPriorityConfig);
+        appAddedConfigsInDeletionOrder.add(currentConfig);
+        for (int i = 0; i < appAddedConfigsInDeletionOrder.size(); i++) {
+            WifiConfiguration config = appAddedConfigsInDeletionOrder.get(i);
+            config.creatorUid = TEST_OTHER_USER_UID;
+        }
+
+        for (WifiConfiguration config : appAddedConfigsInDeletionOrder) {
+            verifyAddNetworkToWifiConfigManager(config);
+        }
+        assertEquals(mWifiConfigManager.getConfiguredNetworks().size(), maxTotalConfigs);
+
+        // Adding new app-added configs should only overwrite the existing app-added configs.
+        for (WifiConfiguration configToDelete : appAddedConfigsInDeletionOrder) {
+            WifiConfiguration carrierConfig = WifiConfigurationTestUtil.createPskNetwork();
+            carrierConfig.carrierId = 1;
+            carrierConfig.creatorUid = TEST_OTHER_USER_UID;
+            verifyAddNetworkToWifiConfigManager(carrierConfig);
+
+            assertEquals(mWifiConfigManager.getConfiguredNetworks().size(), maxTotalConfigs);
+            for (WifiConfiguration savedConfig : mWifiConfigManager.getConfiguredNetworks()) {
+                if (savedConfig.networkId == configToDelete.networkId) {
+                    fail("Config was not deleted: " + configToDelete);
+                }
+            }
+        }
+
+        // Check that the system-added configs are still stored.
+        for (WifiConfiguration systemAddedConfig :
+                Arrays.asList(oneRebootOpenConfig, noAssociationConfig)) {
+            boolean found = false;
+            for (WifiConfiguration storedConfig : mWifiConfigManager.getConfiguredNetworks()) {
+                if (systemAddedConfig.networkId == storedConfig.networkId) {
+                    found = true;
+                    break;
+                }
+            }
+            if (!found) {
+                fail("System-added config was deleted: " + systemAddedConfig);
+            }
+        }
+    }
+
+    /**
      * Verifies that adding a network fails if the amount of saved networks is maxed out and the
      * next network to be removed is the same as the added network.
      */
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java
index 9fe5b16..7e254ee 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiConfigStoreTest.java
@@ -111,12 +111,14 @@
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"false\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "<SecurityParams>\n"
                     + "<int name=\"SecurityType\" value=\"6\" />\n"
                     + "<boolean name=\"SaeIsH2eOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"SaeIsPkOnlyMode\" value=\"false\" />\n"
                     + "<boolean name=\"IsAddedByAutoUpgrade\" value=\"true\" />\n"
+                    + "<byte-array name=\"AllowedSuiteBCiphers\" num=\"0\"></byte-array>\n"
                     + "</SecurityParams>\n"
                     + "</SecurityParamsList>\n"
                     + "<boolean name=\"Trusted\" value=\"true\" />\n"
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
index 0905926..26dac3e 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkFactoryTest.java
@@ -472,6 +472,17 @@
         verify(mConnectivityManager).declareNetworkRequestUnfulfillable(eq(mNetworkRequest));
     }
 
+    @Test
+    public void testNetworkRequestFromGuestUserWithSpecifier() {
+        mockPackageImportance(TEST_PACKAGE_NAME_1, true, true);
+        when(mWifiPermissionsUtil.isGuestUser()).thenReturn(true);
+        attachDefaultWifiNetworkSpecifierAndAppInfo(TEST_UID_1, false);
+
+        assertFalse(mWifiNetworkFactory.acceptRequest(mNetworkRequest));
+        mLooper.dispatchAll();
+        verify(mConnectivityManager).declareNetworkRequestUnfulfillable(eq(mNetworkRequest));
+    }
+
     /**
      * Validates handling of acceptNetwork with a network specifier from a foreground
      * app.
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
index 1859b10..eeb3ad3 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
@@ -5274,6 +5274,12 @@
                 new ArrayList<WifiNetworkSuggestion>() {{
                     add(networkSuggestion);
                 }};
+
+        // Verify no crash with unmatched update
+        mNetworkListenerCaptor.getValue().onSecurityParamsUpdate(networkSuggestion
+                .wifiConfiguration, networkSuggestion.wifiConfiguration.getSecurityParamsList());
+        mNetworkListenerCaptor.getValue().onSecurityParamsUpdate(null, Collections.EMPTY_LIST);
+
         assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
                 mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
                         TEST_PACKAGE_1, TEST_FEATURE));
diff --git a/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
index 5159fb8..c0368df 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java
@@ -6436,17 +6436,24 @@
         when(mWifiConfigManager.addOrUpdateNetwork(any(),  anyInt(), any(), eq(false))).thenReturn(
                 new NetworkUpdateResult(0));
 
+        // Verify caller fails to add network as Guest user.
         when(mWifiPermissionsUtil.checkSystemAlertWindowPermission(
                 Process.myUid(), TEST_PACKAGE_NAME)).thenReturn(true);
-
+        when(mWifiPermissionsUtil.isGuestUser()).thenReturn(true);
         WifiConfiguration config = WifiConfigurationTestUtil.createOpenNetwork();
         mLooper.startAutoDispatch();
+        assertEquals(-1,
+                mWifiServiceImpl.addOrUpdateNetwork(config, TEST_PACKAGE_NAME, mAttribution));
+
+        // Verify caller successfully add network when not a Guest user.
+        when(mWifiPermissionsUtil.isGuestUser()).thenReturn(false);
         assertEquals(0,
                 mWifiServiceImpl.addOrUpdateNetwork(config, TEST_PACKAGE_NAME, mAttribution));
         mLooper.stopAutoDispatchAndIgnoreExceptions();
 
         verifyCheckChangePermission(TEST_PACKAGE_NAME);
-        verify(mWifiPermissionsUtil).checkSystemAlertWindowPermission(anyInt(), anyString());
+        verify(mWifiPermissionsUtil, times(2))
+                .checkSystemAlertWindowPermission(anyInt(), anyString());
         verify(mWifiConfigManager).addOrUpdateNetwork(any(),  anyInt(), any(), eq(false));
         verify(mWifiMetrics).incrementNumAddOrUpdateNetworkCalls();
     }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java
index b2e844b..b119537 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/p2p/WifiP2pServiceImplTest.java
@@ -370,7 +370,10 @@
         bundle.putString(WifiP2pManager.CALLING_PACKAGE, pkgName);
         bundle.putString(WifiP2pManager.CALLING_FEATURE_ID, featureId);
         bundle.putBinder(WifiP2pManager.CALLING_BINDER, binder);
-        msg.obj = bundle;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, bundle);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -386,7 +389,10 @@
         Bundle extras = new Bundle();
         extras.putParcelable(WifiP2pManager.EXTRA_PARAM_KEY_SERVICE_INFO, mTestWifiP2pServiceInfo);
         msg.what = WifiP2pManager.ADD_LOCAL_SERVICE;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -437,7 +443,10 @@
         extras.putInt(WifiP2pManager.EXTRA_PARAM_KEY_PEER_DISCOVERY_FREQ, frequencyMhz);
         msg.what = WifiP2pManager.DISCOVER_PEERS;
         msg.arg1 = type;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -466,7 +475,10 @@
         Message msg = Message.obtain();
         Bundle extras = new Bundle();
         msg.what = WifiP2pManager.DISCOVER_SERVICES;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -481,7 +493,10 @@
         Message msg = Message.obtain();
         Bundle extras = new Bundle();
         msg.what = WifiP2pManager.REQUEST_PEERS;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -504,7 +519,10 @@
         Message msg = Message.obtain();
         Bundle extras = new Bundle();
         msg.what = WifiP2pManager.REQUEST_GROUP_INFO;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -703,7 +721,10 @@
         Bundle extras = new Bundle();
         extras.putParcelable(WifiP2pManager.EXTRA_PARAM_KEY_CONFIG, config);
         msg.what = WifiP2pManager.CONNECT;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -740,7 +761,10 @@
         extras.putParcelable(WifiP2pManager.EXTRA_PARAM_KEY_CONFIG, config);
         msg.what = WifiP2pManager.CREATE_GROUP;
         msg.arg1 = netId;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -756,12 +780,13 @@
             ArrayList<ScanResult.InformationElement> ies) throws Exception {
         Message msg = Message.obtain();
         Bundle extras = new Bundle();
-        extras.putParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE,
-                mContext.getAttributionSource());
         extras.putParcelableArrayList(WifiP2pManager.EXTRA_PARAM_KEY_INFORMATION_ELEMENT_LIST,
                 ies);
         msg.what = WifiP2pManager.SET_VENDOR_ELEMENTS;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = mContext.getAttributionSource();
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -785,7 +810,10 @@
             extras.putBinder(WifiP2pManager.CALLING_BINDER, binder);
         }
         msg.what = WifiP2pManager.ADD_EXTERNAL_APPROVER;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -808,7 +836,10 @@
             extras.putBinder(WifiP2pManager.CALLING_BINDER, binder);
         }
         msg.what = WifiP2pManager.REMOVE_EXTERNAL_APPROVER;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
         mLooper.dispatchAll();
@@ -832,7 +863,10 @@
             extras.putBinder(WifiP2pManager.CALLING_BINDER, binder);
         }
         msg.what = WifiP2pManager.SET_CONNECTION_REQUEST_RESULT;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         msg.arg1 = result;
         msg.replyTo = replyMessenger;
         mP2pStateMachineMessenger.send(Message.obtain(msg));
@@ -895,7 +929,10 @@
         Message msg = Message.obtain();
         Bundle extras = new Bundle();
         msg.what = what;
-        msg.obj = extras;
+        if (SdkLevel.isAtLeastS()) {
+            msg.obj = new AttributionSource(1000, TEST_PACKAGE_NAME, null);
+        }
+        msg.getData().putBundle(WifiP2pManager.EXTRA_PARAM_KEY_BUNDLE, extras);
         if (replyMessenger != null) {
             msg.replyTo = replyMessenger;
         }
diff --git a/service/tests/wifitests/src/com/android/server/wifi/rtt/RttServiceImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/rtt/RttServiceImplTest.java
index 517f92c..68aeb5b 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/rtt/RttServiceImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/rtt/RttServiceImplTest.java
@@ -45,6 +45,7 @@
 import android.app.AlarmManager;
 import android.app.test.MockAnswerUtil;
 import android.app.test.TestAlarmManager;
+import android.content.AttributionSource;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
@@ -412,7 +413,8 @@
     @Test
     public void testRangingOnlyAwareAps() throws Exception {
         assumeTrue(SdkLevel.isAtLeastT());
-        mExtras.putParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE, null);
+        mExtras.putParcelable(WifiManager.EXTRA_PARAM_KEY_ATTRIBUTION_SOURCE, mock(
+                AttributionSource.class));
         when(mockPermissionUtil.checkNearbyDevicesPermission(any(), eq(true), any()))
                 .thenReturn(true);
         RangingRequest request = new RangingRequest.Builder()
diff --git a/service/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java b/service/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java
index 33bedd4..bca2948 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/util/WifiPermissionsUtilTest.java
@@ -1439,6 +1439,7 @@
         // disabled since uid1 does not have permissions to renounce permissions.
         AttributionSource attributionSource = mock(AttributionSource.class);
         when(attributionSource.getUid()).thenReturn(uid1);
+        when(attributionSource.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
         when(attributionSource.checkCallingUid()).thenReturn(true);
         when(attributionSource.getRenouncedPermissions()).thenReturn(Set.of(ACCESS_FINE_LOCATION));
 
@@ -1447,11 +1448,13 @@
                 mMockContext, mMockUserManager, mWifiInjector);
 
         assertFalse(codeUnderTest.checkNearbyDevicesPermission(attributionSource, true, ""));
+        verify(mMockAppOps).checkPackage(uid1, TEST_PACKAGE_NAME);
 
         // now attach AttributionSource2 with uid2 to the list of AttributionSource and then
         // verify the location check is now bypassed.
         AttributionSource attributionSource2 = mock(AttributionSource.class);
         when(attributionSource2.getUid()).thenReturn(uid2);
+        when(attributionSource2.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
         when(attributionSource2.getRenouncedPermissions()).thenReturn(Set.of(ACCESS_FINE_LOCATION));
         when(attributionSource.getNext()).thenReturn(attributionSource2);
         codeUnderTest.enforceNearbyDevicesPermission(attributionSource, true, "");
@@ -1465,8 +1468,12 @@
     @Test
     public void testEnforceNearbyDevicesPermission_LocationCheckDisavowPass() throws Exception {
         assumeTrue(SdkLevel.isAtLeastT());
+        // bypass checkPackage
+        mThrowSecurityException = false;
         AttributionSource attributionSource = mock(AttributionSource.class);
         when(attributionSource.checkCallingUid()).thenReturn(true);
+        when(attributionSource.getUid()).thenReturn(mUid);
+        when(attributionSource.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
         when(attributionSource.getRenouncedPermissions()).thenReturn(Collections.EMPTY_SET);
         // mock caller disavowing location
         mPackagePermissionInfo.requestedPermissions = new String[] {NEARBY_WIFI_DEVICES};
@@ -1482,6 +1489,7 @@
         WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper,
                 mMockContext, mMockUserManager, mWifiInjector);
         codeUnderTest.enforceNearbyDevicesPermission(attributionSource, true, "");
+        verify(mMockAppOps).checkPackage(mUid, TEST_PACKAGE_NAME);
 
         // It's important to verify that ACCESS_FINE_LOCATION never gets checked so the caller
         // does not get blamed for location access when they already disavowed location.
@@ -1498,10 +1506,14 @@
     public void testEnforceNearbyDevicesPermission_LocationCheckWithoutDisavowPass()
             throws Exception {
         assumeTrue(SdkLevel.isAtLeastT());
+        // bypass checkPackage
+        mThrowSecurityException = false;
         // Set location mode off and grant app location permission
         when(mLocationManager.isLocationEnabledForUser(any())).thenReturn(false);
         AttributionSource attributionSource = mock(AttributionSource.class);
+        when(attributionSource.getUid()).thenReturn(mUid);
         when(attributionSource.checkCallingUid()).thenReturn(true);
+        when(attributionSource.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
         when(attributionSource.getRenouncedPermissions()).thenReturn(Collections.EMPTY_SET);
         mPackagePermissionInfo.requestedPermissions = new String[0];
         when(mPermissionManager.checkPermissionForDataDelivery(eq(NEARBY_WIFI_DEVICES),
@@ -1515,6 +1527,7 @@
                 mMockContext, mMockUserManager, mWifiInjector);
         // Test should fail because location mode is off
         assertFalse(codeUnderTest.checkNearbyDevicesPermission(attributionSource, true, ""));
+        verify(mMockAppOps).checkPackage(mUid, TEST_PACKAGE_NAME);
 
         // Now enable location mode and the call should pass
         when(mLocationManager.isLocationEnabledForUser(any())).thenReturn(true);
@@ -1532,8 +1545,12 @@
     public void testEnforceNearbyDevicesPermission_BypassCheckWithPrivilegedPermission()
             throws Exception {
         assumeTrue(SdkLevel.isAtLeastT());
+        // bypass checkPackage
+        mThrowSecurityException = false;
         AttributionSource attributionSource = mock(AttributionSource.class);
+        when(attributionSource.getUid()).thenReturn(mUid);
         when(attributionSource.checkCallingUid()).thenReturn(true);
+        when(attributionSource.getPackageName()).thenReturn(TEST_PACKAGE_NAME);
         when(attributionSource.getUid()).thenReturn(mUid);
         // caller no nearby permission
         when(mPermissionManager.checkPermissionForDataDelivery(eq(NEARBY_WIFI_DEVICES),
@@ -1546,6 +1563,7 @@
         WifiPermissionsUtil codeUnderTest = new WifiPermissionsUtil(mMockPermissionsWrapper,
                 mMockContext, mMockUserManager, mWifiInjector);
         codeUnderTest.enforceNearbyDevicesPermission(attributionSource, true, "");
+        verify(mMockAppOps).checkPackage(mUid, TEST_PACKAGE_NAME);
     }
 
     private Answer<Integer> createPermissionAnswer() {