From ff831c8e8dff31c14b418cce9cfd238f46f5152f Mon Sep 17 00:00:00 2001 From: David Su Date: Mon, 28 Sep 2020 19:55:29 -0700 Subject: WifiConfigManager: protect CONFIGURED_NETWORKS_CHANGED_ACTION with permissions Guard with ACCESS_WIFI_STATE & ACCESS_FINE_LOCATION permissions. Bug: 158874479 Bug: 159373687 Test: presubmit unit tests Test: Verify Settings still works correctly. Change-Id: I88d93006ff379105e13e1b339ec51757a56ac863 Merged-In: I657063f68701d57cfeb3765dfbab25ba50ef7b97 --- service/java/com/android/server/wifi/WifiConfigManager.java | 8 +++++++- .../src/com/android/server/wifi/WifiConfigManagerTest.java | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 7dc938b34..c06e80239 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -657,7 +657,13 @@ public class WifiConfigManager { maskPasswordsInWifiConfiguration(broadcastNetwork); intent.putExtra(WifiManager.EXTRA_WIFI_CONFIGURATION, broadcastNetwork); intent.putExtra(WifiManager.EXTRA_CHANGE_REASON, reason); - mContext.sendBroadcastAsUser(intent, UserHandle.ALL); + mContext.sendBroadcastAsUserMultiplePermissions( + intent, + UserHandle.ALL, + new String[]{ + android.Manifest.permission.ACCESS_WIFI_STATE, + android.Manifest.permission.ACCESS_FINE_LOCATION, + }); } /** diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java index a4bc61aa1..ca1b4a07c 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java @@ -3844,8 +3844,8 @@ public class WifiConfigManagerTest { private int verifyNetworkInBroadcastAndReturnReason(WifiConfiguration configuration) { ArgumentCaptor intentCaptor = ArgumentCaptor.forClass(Intent.class); ArgumentCaptor userHandleCaptor = ArgumentCaptor.forClass(UserHandle.class); - mContextConfigStoreMockOrder.verify(mContext) - .sendBroadcastAsUser(intentCaptor.capture(), userHandleCaptor.capture()); + mContextConfigStoreMockOrder.verify(mContext).sendBroadcastAsUserMultiplePermissions( + intentCaptor.capture(), userHandleCaptor.capture(), any()); assertEquals(userHandleCaptor.getValue(), UserHandle.ALL); Intent intent = intentCaptor.getValue(); -- cgit v1.2.3 From fc22437eb328c481e9cf067f32bc22d3cac42987 Mon Sep 17 00:00:00 2001 From: David Su Date: Mon, 28 Sep 2020 19:55:29 -0700 Subject: WifiConfigManager: protect CONFIGURED_NETWORKS_CHANGED_ACTION with permissions Guard with ACCESS_WIFI_STATE & ACCESS_FINE_LOCATION permissions. Bug: 158874479 Bug: 159373687 Test: presubmit unit tests Test: Verify Settings still works correctly. Change-Id: I88d93006ff379105e13e1b339ec51757a56ac863 Merged-In: I88d93006ff379105e13e1b339ec51757a56ac863 Merged-In: I657063f68701d57cfeb3765dfbab25ba50ef7b97 --- service/java/com/android/server/wifi/WifiConfigManager.java | 8 +++++++- .../src/com/android/server/wifi/WifiConfigManagerTest.java | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 02f8302f9..bac395343 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -627,7 +627,13 @@ public class WifiConfigManager { maskPasswordsInWifiConfiguration(broadcastNetwork); intent.putExtra(WifiManager.EXTRA_WIFI_CONFIGURATION, broadcastNetwork); intent.putExtra(WifiManager.EXTRA_CHANGE_REASON, reason); - mContext.sendBroadcastAsUser(intent, UserHandle.ALL); + mContext.sendBroadcastAsUserMultiplePermissions( + intent, + UserHandle.ALL, + new String[]{ + android.Manifest.permission.ACCESS_WIFI_STATE, + android.Manifest.permission.ACCESS_FINE_LOCATION, + }); } /** diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java index 0fa660081..c99a1496a 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java @@ -3641,8 +3641,8 @@ public class WifiConfigManagerTest { private int verifyNetworkInBroadcastAndReturnReason(WifiConfiguration configuration) { ArgumentCaptor intentCaptor = ArgumentCaptor.forClass(Intent.class); ArgumentCaptor userHandleCaptor = ArgumentCaptor.forClass(UserHandle.class); - mContextConfigStoreMockOrder.verify(mContext) - .sendBroadcastAsUser(intentCaptor.capture(), userHandleCaptor.capture()); + mContextConfigStoreMockOrder.verify(mContext).sendBroadcastAsUserMultiplePermissions( + intentCaptor.capture(), userHandleCaptor.capture(), any()); assertEquals(userHandleCaptor.getValue(), UserHandle.ALL); Intent intent = intentCaptor.getValue(); -- cgit v1.2.3 From cdfc342de4a85b63b39c7aa94ad3150ab949e7be Mon Sep 17 00:00:00 2001 From: David Su Date: Mon, 28 Sep 2020 19:55:29 -0700 Subject: WifiConfigManager: protect CONFIGURED_NETWORKS_CHANGED_ACTION with permissions Guard with ACCESS_WIFI_STATE & ACCESS_FINE_LOCATION permissions. Bug: 158874479 Bug: 159373687 Test: presubmit unit tests Test: Verify Settings still works correctly. Change-Id: I88d93006ff379105e13e1b339ec51757a56ac863 Merged-In: I88d93006ff379105e13e1b339ec51757a56ac863 Merged-In: I657063f68701d57cfeb3765dfbab25ba50ef7b97 --- service/java/com/android/server/wifi/WifiConfigManager.java | 8 +++++++- .../src/com/android/server/wifi/WifiConfigManagerTest.java | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 25a5a20ad..fa2a56092 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -625,7 +625,13 @@ public class WifiConfigManager { maskPasswordsInWifiConfiguration(broadcastNetwork); intent.putExtra(WifiManager.EXTRA_WIFI_CONFIGURATION, broadcastNetwork); intent.putExtra(WifiManager.EXTRA_CHANGE_REASON, reason); - mContext.sendBroadcastAsUser(intent, UserHandle.ALL); + mContext.sendBroadcastAsUserMultiplePermissions( + intent, + UserHandle.ALL, + new String[]{ + android.Manifest.permission.ACCESS_WIFI_STATE, + android.Manifest.permission.ACCESS_FINE_LOCATION, + }); } /** diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java index 9fa67a000..ea6ea117f 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java @@ -3511,8 +3511,8 @@ public class WifiConfigManagerTest { private int verifyNetworkInBroadcastAndReturnReason(WifiConfiguration configuration) { ArgumentCaptor intentCaptor = ArgumentCaptor.forClass(Intent.class); ArgumentCaptor userHandleCaptor = ArgumentCaptor.forClass(UserHandle.class); - mContextConfigStoreMockOrder.verify(mContext) - .sendBroadcastAsUser(intentCaptor.capture(), userHandleCaptor.capture()); + mContextConfigStoreMockOrder.verify(mContext).sendBroadcastAsUserMultiplePermissions( + intentCaptor.capture(), userHandleCaptor.capture(), any()); assertEquals(userHandleCaptor.getValue(), UserHandle.ALL); Intent intent = intentCaptor.getValue(); -- cgit v1.2.3 From b2bf62bfc1faabe171e73fa4b3e631bed2f115ef Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sat, 31 Oct 2020 06:16:05 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I9fb2d57ed6528e875a667b47b77421e0bd6d3401 --- libs/WifiTrackerLib/res/values-ar/strings.xml | 2 +- libs/WifiTrackerLib/res/values-be/strings.xml | 2 +- libs/WifiTrackerLib/res/values-bs/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-fa/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-fa/strings.xml | 2 +- libs/WifiTrackerLib/res/values-gu/strings.xml | 2 +- libs/WifiTrackerLib/res/values-hy/strings.xml | 4 ++-- libs/WifiTrackerLib/res/values-ky/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-mr/strings.xml | 2 +- 9 files changed, 10 insertions(+), 10 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-ar/strings.xml b/libs/WifiTrackerLib/res/values-ar/strings.xml index ef0f10748..ccb2dfa96 100644 --- a/libs/WifiTrackerLib/res/values-ar/strings.xml +++ b/libs/WifiTrackerLib/res/values-ar/strings.xml @@ -23,7 +23,7 @@ "لا يتوفّر اتصال بالإنترنت" "مشكلة في المصادقة" "يُرجى التحقق من كلمة المرور وإعادة المحاولة" - "‏تعذّرت تهيئة عنوان IP" + "‏تعذّر إعداد عنوان IP" "غير مفعّلة" "نقطة الوصول ممتلئة مؤقتًا" "غير متصلة" diff --git a/libs/WifiTrackerLib/res/values-be/strings.xml b/libs/WifiTrackerLib/res/values-be/strings.xml index de0459999..a38102705 100644 --- a/libs/WifiTrackerLib/res/values-be/strings.xml +++ b/libs/WifiTrackerLib/res/values-be/strings.xml @@ -36,7 +36,7 @@ "Аўтаматычна падключана праз пастаўшчыка паслугі ацэнкі сеткі" "Абмежаваныя магчымасці падключэння" "Не ўдалося атрымаць доступ да прыватнага DNS-сервера" - "Не падключана да інтэрнэту" + "Няма падключэння да інтэрнэту" "Няма" "Тэрмін скончыўся" "Націсніце, каб зарэгістравацца" diff --git a/libs/WifiTrackerLib/res/values-bs/arrays.xml b/libs/WifiTrackerLib/res/values-bs/arrays.xml index 727f5d75a..9428a3763 100644 --- a/libs/WifiTrackerLib/res/values-bs/arrays.xml +++ b/libs/WifiTrackerLib/res/values-bs/arrays.xml @@ -27,7 +27,7 @@ "Autentifikacija…" "Dobivanje IP adrese…" "Povezano" - "Suspendirano" + "Obustavljeno" "Prekidanje veze…" "Veza je prekinuta" "Neuspješno" diff --git a/libs/WifiTrackerLib/res/values-fa/arrays.xml b/libs/WifiTrackerLib/res/values-fa/arrays.xml index af40e8f4c..51ef4b84b 100644 --- a/libs/WifiTrackerLib/res/values-fa/arrays.xml +++ b/libs/WifiTrackerLib/res/values-fa/arrays.xml @@ -24,7 +24,7 @@ "درحال اسکن کردن…" "درحال اتصال…" - "درحال احراز هویت…" + "درحال اصالت‌سنجی…" "‏درحال دریافت نشانی IP…" "متصل" "معلق" diff --git a/libs/WifiTrackerLib/res/values-fa/strings.xml b/libs/WifiTrackerLib/res/values-fa/strings.xml index 70f79b695..dff0ebe00 100644 --- a/libs/WifiTrackerLib/res/values-fa/strings.xml +++ b/libs/WifiTrackerLib/res/values-fa/strings.xml @@ -21,7 +21,7 @@ "ذخیره‌شده توسط %1$s" "اتصال به‌طور خودکار انجام نمی‌شود" "بدون دسترسی به اینترنت" - "مشکل احراز هویت" + "مشکل اصالت‌سنجی" "گذرواژه را بررسی و دوباره امتحان کنید" "‏پیکربندی IP انجام نشد" "غیرفعال شد" diff --git a/libs/WifiTrackerLib/res/values-gu/strings.xml b/libs/WifiTrackerLib/res/values-gu/strings.xml index e387dd397..181360418 100644 --- a/libs/WifiTrackerLib/res/values-gu/strings.xml +++ b/libs/WifiTrackerLib/res/values-gu/strings.xml @@ -33,7 +33,7 @@ "%1$s દ્વારા કનેક્ટ થયેલ" "%1$s મારફતે ઉપલબ્ધ" "%1$s મારફતે ઑટોમૅટિક રીતે કનેક્ટ કર્યું છે" - "નેટવર્ક રેટિંગ પ્રદાતા દ્વારા આપમેળે કનેક્ટ થયું" + "નેટવર્ક રેટિંગ પ્રદાતા દ્વારા ઑટોમૅટિક રીતે કનેક્ટ થયું" "મર્યાદિત કનેક્શન" "ખાનગી DNS સર્વર ઍક્સેસ કરી શકાતા નથી" "કોઈ ઇન્ટરનેટ નથી" diff --git a/libs/WifiTrackerLib/res/values-hy/strings.xml b/libs/WifiTrackerLib/res/values-hy/strings.xml index 0d3def261..34c1fbdf3 100644 --- a/libs/WifiTrackerLib/res/values-hy/strings.xml +++ b/libs/WifiTrackerLib/res/values-hy/strings.xml @@ -33,7 +33,7 @@ "Միացված է %1$s-ի միջոցով" "Հասանելի է հետևյալ հավելվածի միջոցով՝ %1$s" "Ավտոմատ միացված է %1$s-ի միջոցով" - "Ավտոմատ կերպով միացել է ցանցի վարկանիշի ծառայության մատակարարի միջոցով" + "Ավտոմատ միացել է ցանցերի վարկանիշի մատակարարի միջոցով" "Սահմանափակ կապ" "Մասնավոր DNS սերվերն անհասանելի է" "Կապ չկա" @@ -49,7 +49,7 @@ "Այս ցանցը ստանում է եզակի ID, որի օգնությամբ հնարավոր է հետագծել սարքի տեղադրությունը։ ""Իմանալ ավելին" "Շատ դանդաղ" "Դանդաղ" - "Հաստատել" + "Լավ" "Միջին" "Արագ" "Շատ արագ" diff --git a/libs/WifiTrackerLib/res/values-ky/arrays.xml b/libs/WifiTrackerLib/res/values-ky/arrays.xml index 8bcf77784..00ab8f678 100644 --- a/libs/WifiTrackerLib/res/values-ky/arrays.xml +++ b/libs/WifiTrackerLib/res/values-ky/arrays.xml @@ -26,7 +26,7 @@ "Туташууда…" "Аныктыгы текшерилүүдө…" "IP дареги алынууда…" - "Туташты" + "Туташып турат" "Убактылуу токтотулду" "Ажыратылууда…" "Ажыратылды" diff --git a/libs/WifiTrackerLib/res/values-mr/strings.xml b/libs/WifiTrackerLib/res/values-mr/strings.xml index fc7811f18..718d484d3 100644 --- a/libs/WifiTrackerLib/res/values-mr/strings.xml +++ b/libs/WifiTrackerLib/res/values-mr/strings.xml @@ -23,7 +23,7 @@ "इंटरनेट अ‍ॅक्सेस नाही" "ऑथेंटिकेशन समस्या" "पासवर्ड तपासा आणि पुन्‍हा प्रयत्‍न करा" - "IP कॉन्फिगरेशन अयशस्वी" + "IP कॉंफिगरेशन अयशस्वी" "अक्षम" "अ‍ॅक्सेस पॉइंट तात्पुरते भरलेले" "डिस्कनेक्ट केले" -- cgit v1.2.3 From fdf9112df82c373c9abbeabd2d1e2a55aabf98f3 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 23 Nov 2020 16:18:26 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I582bc7d4831319ec348457e5f37d61046c7359f1 --- libs/WifiTrackerLib/res/values-bs/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-fa/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-fa/strings.xml | 2 +- libs/WifiTrackerLib/res/values-gu/strings.xml | 2 +- libs/WifiTrackerLib/res/values-ky/arrays.xml | 2 +- libs/WifiTrackerLib/res/values-mk/strings.xml | 2 +- libs/WifiTrackerLib/res/values-mr/strings.xml | 2 +- libs/WifiTrackerLib/res/values-uz/strings.xml | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-bs/arrays.xml b/libs/WifiTrackerLib/res/values-bs/arrays.xml index 727f5d75a..9428a3763 100644 --- a/libs/WifiTrackerLib/res/values-bs/arrays.xml +++ b/libs/WifiTrackerLib/res/values-bs/arrays.xml @@ -27,7 +27,7 @@ "Autentifikacija…" "Dobivanje IP adrese…" "Povezano" - "Suspendirano" + "Obustavljeno" "Prekidanje veze…" "Veza je prekinuta" "Neuspješno" diff --git a/libs/WifiTrackerLib/res/values-fa/arrays.xml b/libs/WifiTrackerLib/res/values-fa/arrays.xml index af40e8f4c..51ef4b84b 100644 --- a/libs/WifiTrackerLib/res/values-fa/arrays.xml +++ b/libs/WifiTrackerLib/res/values-fa/arrays.xml @@ -24,7 +24,7 @@ "درحال اسکن کردن…" "درحال اتصال…" - "درحال احراز هویت…" + "درحال اصالت‌سنجی…" "‏درحال دریافت نشانی IP…" "متصل" "معلق" diff --git a/libs/WifiTrackerLib/res/values-fa/strings.xml b/libs/WifiTrackerLib/res/values-fa/strings.xml index ff2df3ec7..4c0dfee44 100644 --- a/libs/WifiTrackerLib/res/values-fa/strings.xml +++ b/libs/WifiTrackerLib/res/values-fa/strings.xml @@ -21,7 +21,7 @@ "ذخیره‌شده توسط %1$s" "اتصال به‌طور خودکار انجام نمی‌شود" "بدون دسترسی به اینترنت" - "مشکل احراز هویت" + "مشکل اصالت‌سنجی" "گذرواژه را بررسی و دوباره امتحان کنید" "‏پیکربندی IP انجام نشد" "غیرفعال شد" diff --git a/libs/WifiTrackerLib/res/values-gu/strings.xml b/libs/WifiTrackerLib/res/values-gu/strings.xml index f7592c3bd..91ab28936 100644 --- a/libs/WifiTrackerLib/res/values-gu/strings.xml +++ b/libs/WifiTrackerLib/res/values-gu/strings.xml @@ -33,7 +33,7 @@ "%1$s દ્વારા કનેક્ટ થયેલ" "%1$s મારફતે ઉપલબ્ધ" "%1$s મારફતે ઑટોમૅટિક રીતે કનેક્ટ કર્યું છે" - "નેટવર્ક રેટિંગ પ્રદાતા દ્વારા આપમેળે કનેક્ટ થયું" + "નેટવર્ક રેટિંગ પ્રદાતા દ્વારા ઑટોમૅટિક રીતે કનેક્ટ થયું" "મર્યાદિત કનેક્શન" "ખાનગી DNS સર્વર ઍક્સેસ કરી શકાતા નથી" "કોઈ ઇન્ટરનેટ નથી" diff --git a/libs/WifiTrackerLib/res/values-ky/arrays.xml b/libs/WifiTrackerLib/res/values-ky/arrays.xml index 8bcf77784..00ab8f678 100644 --- a/libs/WifiTrackerLib/res/values-ky/arrays.xml +++ b/libs/WifiTrackerLib/res/values-ky/arrays.xml @@ -26,7 +26,7 @@ "Туташууда…" "Аныктыгы текшерилүүдө…" "IP дареги алынууда…" - "Туташты" + "Туташып турат" "Убактылуу токтотулду" "Ажыратылууда…" "Ажыратылды" diff --git a/libs/WifiTrackerLib/res/values-mk/strings.xml b/libs/WifiTrackerLib/res/values-mk/strings.xml index 457b9471e..93d47f910 100644 --- a/libs/WifiTrackerLib/res/values-mk/strings.xml +++ b/libs/WifiTrackerLib/res/values-mk/strings.xml @@ -45,7 +45,7 @@ "Се отвора %1$s" "Не може да се поврзе" "Се завршува регистрацијата…" - "Не можеше да се заврши регистрацијата. Допрете за да се обидете повторно." + "Не може да се заврши регистрацијата. Допрете за да се обидете повторно." "Регистрацијата е завршена. Се поврзува…" "Мрежава прима ID на SIM-картичка што може да се користи за следење на локацијата на уредот. ""Дознајте повеќе" "Многу бавна" diff --git a/libs/WifiTrackerLib/res/values-mr/strings.xml b/libs/WifiTrackerLib/res/values-mr/strings.xml index a0583d723..963956f51 100644 --- a/libs/WifiTrackerLib/res/values-mr/strings.xml +++ b/libs/WifiTrackerLib/res/values-mr/strings.xml @@ -23,7 +23,7 @@ "इंटरनेट अ‍ॅक्सेस नाही" "ऑथेंटिकेशन समस्या" "पासवर्ड तपासा आणि पुन्‍हा प्रयत्‍न करा" - "IP कॉन्फिगरेशन अयशस्वी" + "IP कॉंफिगरेशन अयशस्वी" "अक्षम" "अ‍ॅक्सेस पॉइंट तात्पुरते भरलेले" "डिस्कनेक्ट केले" diff --git a/libs/WifiTrackerLib/res/values-uz/strings.xml b/libs/WifiTrackerLib/res/values-uz/strings.xml index 81634a4df..f19791ea1 100644 --- a/libs/WifiTrackerLib/res/values-uz/strings.xml +++ b/libs/WifiTrackerLib/res/values-uz/strings.xml @@ -27,7 +27,7 @@ "Yoqilmagan" "Internet kirish nuqtasi vaqtinchalik to‘lgan" "Ulanmagan" - "Saqlandi" + "Saqlangan" "Trafik hisoblanadigan tarmoq" "Trafik hisobi yuritilmaydigan tarmoq" "%1$s orqali ulandi" -- cgit v1.2.3 From 3d90caa2e3562d2c7bbce14edb2d6c35c434105c Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Mon, 23 Nov 2020 17:17:38 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ie18159042025df726d562d391494aaa20a418e58 --- service/res/values-b+sr+Latn/strings.xml | 18 +++++++++--------- service/res/values-fa/strings.xml | 14 +++++++------- service/res/values-gu/strings.xml | 4 ++-- service/res/values-mcc310-mnc004-b+sr+Latn/strings.xml | 14 +++++++------- service/res/values-mcc310-mnc004-sr/strings.xml | 14 +++++++------- service/res/values-mcc311-mnc480-b+sr+Latn/strings.xml | 14 +++++++------- service/res/values-mcc311-mnc480-sr/strings.xml | 14 +++++++------- service/res/values-mk/strings.xml | 4 ++-- service/res/values-sr/strings.xml | 18 +++++++++--------- 9 files changed, 57 insertions(+), 57 deletions(-) diff --git a/service/res/values-b+sr+Latn/strings.xml b/service/res/values-b+sr+Latn/strings.xml index 61fec3cfd..1ac443425 100644 --- a/service/res/values-b+sr+Latn/strings.xml +++ b/service/res/values-b+sr+Latn/strings.xml @@ -16,9 +16,9 @@ - "Sistemski Wi-Fi resursi" + "Sistemski WiFi resursi" "Povežite se sa otvorenom Wi‑Fi mrežom" - "Povezuje se sa Wi-Fi mrežom..." + "Povezuje se sa WiFi mrežom..." "Povezali ste se sa Wi‑Fi mrežom" "Povezivanje sa Wi‑Fi mrežom nije uspelo" "Dodirnite da biste videli sve mreže" @@ -31,7 +31,7 @@ "Mreže koje predlaže %s. Uređaj će se možda povezati automatski." "Dozvoli" "Ne, hvala" - "Želite da se povežete na Wi-Fi mrežu %s?" + "Želite da se povežete na WiFi mrežu %s?" "Ove mreže dobijaju ID SIM kartice koji može da se koristi za praćenje lokacije uređaja" "Poveži" "Ne povezuj" @@ -44,10 +44,10 @@ "Ne uključuj ponovo" "Wi‑Fi je automatski uključen" "U blizini ste sačuvane mreže: %1$s" - "Nije moguće povezati sa Wi-Fi mrežom" + "Nije moguće povezati sa WiFi mrežom" " ima lošu internet vezu." "Želite li da dozvolite povezivanje?" - "Aplikacija %1$s želi da se poveže na Wi-Fi mrežu %2$s" + "Aplikacija %1$s želi da se poveže na WiFi mrežu %2$s" "Aplikacija" "Prihvati" "Odbij" @@ -58,9 +58,9 @@ "Kome:" "Unesite potrebni PIN:" "PIN:" - "Tablet će privremeno prekinuti vezu sa Wi-Fi-jem dok je povezan sa uređajem %1$s" - "Android TV uređaj će privremeno prekinuti vezu sa Wi-Fi mrežom dok je povezan sa uređajem %1$s" - "Telefon će privremeno prekinuti vezu sa Wi-Fi-jem dok je povezan sa uređajem %1$s" + "Tablet će privremeno prekinuti vezu sa WiFi-em dok je povezan sa uređajem %1$s" + "Android TV uređaj će privremeno prekinuti vezu sa WiFi mrežom dok je povezan sa uređajem %1$s" + "Telefon će privremeno prekinuti vezu sa WiFi-em dok je povezan sa uređajem %1$s" "Potvrdi" "Povezivanje na mrežu %1$s nije uspelo" "Dodirnite da biste promenili podešavanja privatnosti i probali ponovo" @@ -79,6 +79,6 @@ "%1$s: EAP greška pri potvrdi identiteta 32766" "Hotspot je isključen" "Nijedan uređaj nije povezan. Dodirnite da biste izmenili." - "Wi-Fi veza je prekinuta" + "WiFi veza je prekinuta" "Da biste se povezali na mrežu %1$s, umetnite %2$s SIM karticu" diff --git a/service/res/values-fa/strings.xml b/service/res/values-fa/strings.xml index 64ee006f4..739b5c4ff 100644 --- a/service/res/values-fa/strings.xml +++ b/service/res/values-fa/strings.xml @@ -70,13 +70,13 @@ "تنظیم به‌روزرسانی شد. دوباره متصل شوید." "تنظیم حریم‌خصوصی تغییر نکرد" "شبکه‌ای پیدا نشد" - "‏%1$s : خطای ۳۲۷۶۰ احراز هویت EAP" - "‏%1$s : خطای ۳۲۷۶۱ احراز هویت EAP" - "‏%1$s : خطای ۳۲۷۶۲ احراز هویت EAP" - "‏%1$s : خطای ۳۲۷۶۳ احراز هویت EAP" - "‏%1$s : خطای ۳۲۷۶۴ احراز هویت EAP" - "‏%1$s : خطای ۳۲۷۶۵ احراز هویت EAP" - "‏%1$s : خطای ۳۲۷۶۶ احراز هویت EAP" + "‏%1$s : خطای ۳۲۷۶۰ اصالت‌سنجی EAP" + "‏%1$s : خطای ۳۲۷۶۱ اصالت‌سنجی EAP" + "‏%1$s : خطای ۳۲۷۶۲ اصالت‌سنجی EAP" + "‏%1$s : خطای ۳۲۷۶۳ اصالت‌سنجی EAP" + "‏%1$s : خطای ۳۲۷۶۴ اصالت‌سنجی EAP" + "‏%1$s : خطای ۳۲۷۶۵ اصالت‌سنجی EAP" + "‏%1$s : خطای ۳۲۷۶۶ اصالت‌سنجی EAP" "نقطه اتصال خاموش شد" "هیچ دستگاهی متصل نیست. برای اصلاح ضربه بزنید." "‏Wi-Fi قطع شد." diff --git a/service/res/values-gu/strings.xml b/service/res/values-gu/strings.xml index 4a5899b7f..facd8427a 100644 --- a/service/res/values-gu/strings.xml +++ b/service/res/values-gu/strings.xml @@ -39,10 +39,10 @@ "જો તમે કનેક્ટ કરો છો, તો %s વાઇ-ફાઇ નેટવર્ક, તમારા SIM સાથે સંકળાયેલા અજોડ IDને ઍક્સેસ અથવા શેર કરી શકે છે. આમ કરવાથી તમારા ડિવાઇસનું સ્થાન ટ્રૅક કરવાની મંજૂરી આપવામાં આવી શકે છે." "કનેક્ટ કરો" "કનેક્ટ કરશો નહીં" - "વાઇ-ફાઇ આપમેળે ચાલુ થઈ જશે" + "વાઇ-ફાઇ ઑટોમૅટિક રીતે ચાલુ થઈ જશે" "જ્યારે તમે એક ઉચ્ચ ક્વૉલિટીવાળા સાચવેલ નેટવર્કની નજીક હોવ" "પાછું ચાલુ કરશો નહીં" - "વાઇ-ફાઇ આપમેળે ચાલુ થયું" + "વાઇ-ફાઇ ઑટોમૅટિક રીતે ચાલુ થયું" "તમે એક સાચવેલ નેટવર્કની નજીકમાં છો: %1$s" "વાઇ-ફાઇ સાથે કનેક્ટ કરી શકાયું નથી" " આમનું ઇન્ટરનેટ કનેક્શન નબળું છે." diff --git a/service/res/values-mcc310-mnc004-b+sr+Latn/strings.xml b/service/res/values-mcc310-mnc004-b+sr+Latn/strings.xml index 4f7ce68d7..5ab12b1f7 100644 --- a/service/res/values-mcc310-mnc004-b+sr+Latn/strings.xml +++ b/service/res/values-mcc310-mnc004-b+sr+Latn/strings.xml @@ -16,11 +16,11 @@ - "%1$s : Ne možete da se povežete na Verizon Wi-Fi Access van oblasti koju Verizon pokriva." - "%1$s : Niste pretplaćeni na Verizon Wi-Fi Access. Pozovite nas na 800 922 0204." - "%1$s : Došlo je do problema u vezi sa Verizon Wi-Fi Access nalogom. Pozovite nas na 800 922 0204." - "%1$s : Već ste povezani na Verizon Wi-Fi Access." - "%1$s : Postoji problem pri povezivanju na Verizon Wi-Fi Access. Pozovite nas na 800 922 0204." - "%1$s : Došlo je do problema u vezi sa Verizon Wi-Fi Access nalogom. Pozovite nas na 800 922 0204." - "%1$s : Verizon Wi-Fi Access nije dostupan sa vaše lokacije. Probajte ponovo kasnije ili probajte sa neke druge lokacije." + "%1$s : Ne možete da se povežete na Verizon WiFi Access van oblasti koju Verizon pokriva." + "%1$s : Niste pretplaćeni na Verizon WiFi Access. Pozovite nas na 800 922 0204." + "%1$s : Došlo je do problema u vezi sa Verizon WiFi Access nalogom. Pozovite nas na 800 922 0204." + "%1$s : Već ste povezani na Verizon WiFi Access." + "%1$s : Postoji problem pri povezivanju na Verizon WiFi Access. Pozovite nas na 800 922 0204." + "%1$s : Došlo je do problema u vezi sa Verizon WiFi Access nalogom. Pozovite nas na 800 922 0204." + "%1$s : Verizon WiFi Access nije dostupan sa vaše lokacije. Probajte ponovo kasnije ili probajte sa neke druge lokacije." diff --git a/service/res/values-mcc310-mnc004-sr/strings.xml b/service/res/values-mcc310-mnc004-sr/strings.xml index 7acf5bf48..176e51bb0 100644 --- a/service/res/values-mcc310-mnc004-sr/strings.xml +++ b/service/res/values-mcc310-mnc004-sr/strings.xml @@ -16,11 +16,11 @@ - "%1$s : Не можете да се повежете на Verizon Wi-Fi Access ван области коју Verizon покрива." - "%1$s : Нисте претплаћени на Verizon Wi-Fi Access. Позовите нас на 800 922 0204." - "%1$s : Дошло је до проблема у вези са Verizon Wi-Fi Access налогом. Позовите нас на 800 922 0204." - "%1$s : Већ сте повезани на Verizon Wi-Fi Access." - "%1$s : Постоји проблем при повезивању на Verizon Wi-Fi Access. Позовите нас на 800 922 0204." - "%1$s : Дошло је до проблема у вези са Verizon Wi-Fi Access налогом. Позовите нас на 800 922 0204." - "%1$s : Verizon Wi-Fi Access није доступан са ваше локације. Пробајте поново касније или пробајте са неке друге локације." + "%1$s : Не можете да се повежете на Verizon WiFi Access ван области коју Verizon покрива." + "%1$s : Нисте претплаћени на Verizon WiFi Access. Позовите нас на 800 922 0204." + "%1$s : Дошло је до проблема у вези са Verizon WiFi Access налогом. Позовите нас на 800 922 0204." + "%1$s : Већ сте повезани на Verizon WiFi Access." + "%1$s : Постоји проблем при повезивању на Verizon WiFi Access. Позовите нас на 800 922 0204." + "%1$s : Дошло је до проблема у вези са Verizon WiFi Access налогом. Позовите нас на 800 922 0204." + "%1$s : Verizon WiFi Access није доступан са ваше локације. Пробајте поново касније или пробајте са неке друге локације." diff --git a/service/res/values-mcc311-mnc480-b+sr+Latn/strings.xml b/service/res/values-mcc311-mnc480-b+sr+Latn/strings.xml index df22976c1..712334ed5 100644 --- a/service/res/values-mcc311-mnc480-b+sr+Latn/strings.xml +++ b/service/res/values-mcc311-mnc480-b+sr+Latn/strings.xml @@ -16,11 +16,11 @@ - "%1$s : Ne možete da se povežete na Verizon Wi-Fi Access van oblasti koju Verizon pokriva." - "%1$s : Niste pretplaćeni na Verizon Wi-Fi Access. Pozovite nas na 800 922 0204." - "%1$s : Došlo je do problema u vezi sa Verizon Wi-Fi Access nalogom. Pozovite nas na 800 922 0204." - "%1$s : Već ste povezani na Verizon Wi-Fi Access." - "%1$s : Postoji problem pri povezivanju na Verizon Wi-Fi Access. Pozovite nas na 800 922 0204." - "%1$s : Došlo je do problema u vezi sa Verizon Wi-Fi Access nalogom. Pozovite nas na 800 922 0204." - "%1$s : Verizon Wi-Fi Access nije dostupan sa vaše lokacije. Probajte ponovo kasnije ili probajte sa neke druge lokacije." + "%1$s : Ne možete da se povežete na Verizon WiFi Access van oblasti koju Verizon pokriva." + "%1$s : Niste pretplaćeni na Verizon WiFi Access. Pozovite nas na 800 922 0204." + "%1$s : Došlo je do problema u vezi sa Verizon WiFi Access nalogom. Pozovite nas na 800 922 0204." + "%1$s : Već ste povezani na Verizon WiFi Access." + "%1$s : Postoji problem pri povezivanju na Verizon WiFi Access. Pozovite nas na 800 922 0204." + "%1$s : Došlo je do problema u vezi sa Verizon WiFi Access nalogom. Pozovite nas na 800 922 0204." + "%1$s : Verizon WiFi Access nije dostupan sa vaše lokacije. Probajte ponovo kasnije ili probajte sa neke druge lokacije." diff --git a/service/res/values-mcc311-mnc480-sr/strings.xml b/service/res/values-mcc311-mnc480-sr/strings.xml index 49c8d474d..05b637a8a 100644 --- a/service/res/values-mcc311-mnc480-sr/strings.xml +++ b/service/res/values-mcc311-mnc480-sr/strings.xml @@ -16,11 +16,11 @@ - "%1$s : Не можете да се повежете на Verizon Wi-Fi Access ван области коју Verizon покрива." - "%1$s : Нисте претплаћени на Verizon Wi-Fi Access. Позовите нас на 800 922 0204." - "%1$s : Дошло је до проблема у вези са Verizon Wi-Fi Access налогом. Позовите нас на 800 922 0204." - "%1$s : Већ сте повезани на Verizon Wi-Fi Access." - "%1$s : Постоји проблем при повезивању на Verizon Wi-Fi Access. Позовите нас на 800 922 0204." - "%1$s : Дошло је до проблема у вези са Verizon Wi-Fi Access налогом. Позовите нас на 800 922 0204." - "%1$s : Verizon Wi-Fi Access није доступан са ваше локације. Пробајте поново касније или пробајте са неке друге локације." + "%1$s : Не можете да се повежете на Verizon WiFi Access ван области коју Verizon покрива." + "%1$s : Нисте претплаћени на Verizon WiFi Access. Позовите нас на 800 922 0204." + "%1$s : Дошло је до проблема у вези са Verizon WiFi Access налогом. Позовите нас на 800 922 0204." + "%1$s : Већ сте повезани на Verizon WiFi Access." + "%1$s : Постоји проблем при повезивању на Verizon WiFi Access. Позовите нас на 800 922 0204." + "%1$s : Дошло је до проблема у вези са Verizon WiFi Access налогом. Позовите нас на 800 922 0204." + "%1$s : Verizon WiFi Access није доступан са ваше локације. Пробајте поново касније или пробајте са неке друге локације." diff --git a/service/res/values-mk/strings.xml b/service/res/values-mk/strings.xml index ddf36bb1f..836a82303 100644 --- a/service/res/values-mk/strings.xml +++ b/service/res/values-mk/strings.xml @@ -20,7 +20,7 @@ "Поврзете се на отворена Wi‑Fi-мрежа" "Поврзување со Wi-Fi мрежа" "Се поврзавте на Wi‑Fi-мрежа" - "Не можеше да се поврзе на Wi‑Fi-мрежа" + "Не може да се поврзе на Wi‑Fi-мрежа" "Допрете за да ги видите сите мрежи" "Поврзете се" "Сите мрежи" @@ -44,7 +44,7 @@ "Не вклучувај повторно" "Wi‑Fi се вклучи автоматски" "Близу сте до зачувана мрежа: %1$s" - "Не можеше да се поврзе со Wi-Fi" + "Не може да се поврзе на Wi-Fi" " има слаба интернет-врска." "Дозволете поврзување?" "Апликацијата %1$s сака да се поврзе со Wifi-мрежата %2$s" diff --git a/service/res/values-sr/strings.xml b/service/res/values-sr/strings.xml index fb4009383..240720e6c 100644 --- a/service/res/values-sr/strings.xml +++ b/service/res/values-sr/strings.xml @@ -16,9 +16,9 @@ - "Системски Wi-Fi ресурси" + "Системски WiFi ресурси" "Повежите се са отвореном Wi‑Fi мрежом" - "Повезује се са Wi-Fi мрежом..." + "Повезује се са WiFi мрежом..." "Повезали сте се са Wi‑Fi мрежом" "Повезивање са Wi‑Fi мрежом није успело" "Додирните да бисте видели све мреже" @@ -31,7 +31,7 @@ "Мреже које предлаже %s. Уређај ће се можда повезати аутоматски." "Дозволи" "Не, хвала" - "Желите да се повежете на Wi-Fi мрежу %s?" + "Желите да се повежете на WiFi мрежу %s?" "Ове мреже добијају ИД SIM картице који може да се користи за праћење локације уређаја" "Повежи" "Не повезуј" @@ -44,10 +44,10 @@ "Не укључуј поново" "Wi‑Fi је аутоматски укључен" "У близини сте сачуване мреже: %1$s" - "Није могуће повезати са Wi-Fi мрежом" + "Није могуће повезати са WiFi мрежом" " има лошу интернет везу." "Желите ли да дозволите повезивање?" - "Апликација %1$s жели да се повеже на Wi-Fi мрежу %2$s" + "Апликација %1$s жели да се повеже на WiFi мрежу %2$s" "Апликација" "Прихвати" "Одбиј" @@ -58,9 +58,9 @@ "Коме:" "Унесите потребни PIN:" "PIN:" - "Таблет ће привремено прекинути везу са Wi-Fi-јем док је повезан са уређајем %1$s" - "Android TV уређај ће привремено прекинути везу са Wi-Fi мрежом док је повезан са уређајем %1$s" - "Телефон ће привремено прекинути везу са Wi-Fi-јем док је повезан са уређајем %1$s" + "Таблет ће привремено прекинути везу са WiFi-ем док је повезан са уређајем %1$s" + "Android TV уређај ће привремено прекинути везу са WiFi мрежом док је повезан са уређајем %1$s" + "Телефон ће привремено прекинути везу са WiFi-ем док је повезан са уређајем %1$s" "Потврди" "Повезивање на мрежу %1$s није успело" "Додирните да бисте променили подешавања приватности и пробали поново" @@ -79,6 +79,6 @@ "%1$s: EAP грешка при потврди идентитета 32766" "Хотспот је искључен" "Ниједан уређај није повезан. Додирните да бисте изменили." - "Wi-Fi веза је прекинута" + "WiFi веза је прекинута" "Да бисте се повезали на мрежу %1$s, уметните %2$s SIM картицу" -- cgit v1.2.3 From f66c83ebd45a367c609ed7c7443113faa667504e Mon Sep 17 00:00:00 2001 From: Roshan Pius Date: Tue, 17 Nov 2020 13:22:19 -0800 Subject: ConnectToNetworkNotification: Disallow connect from lock screen Avoids malicious usage of the notification to add a saved wifi network without unlocking the device. Bug: 172584372 Test: Manual: ONA notification not shown in the lockscreen. Visible when the device is unlocked. Change-Id: I760cd4303b846a214737edc49254f6327e05d357 Merged-In: I760cd4303b846a214737edc49254f6327e05d357 (cherry picked from commit ec2ba25598cec3403460ee6d5f6b74399fbca598) --- .../com/android/server/wifi/ConnectToNetworkNotificationBuilder.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/service/java/com/android/server/wifi/ConnectToNetworkNotificationBuilder.java b/service/java/com/android/server/wifi/ConnectToNetworkNotificationBuilder.java index 4f7b4e820..053314dc7 100644 --- a/service/java/com/android/server/wifi/ConnectToNetworkNotificationBuilder.java +++ b/service/java/com/android/server/wifi/ConnectToNetworkNotificationBuilder.java @@ -16,6 +16,8 @@ package com.android.server.wifi; +import static android.app.Notification.VISIBILITY_SECRET; + import android.app.Notification; import android.app.PendingIntent; import android.content.Intent; @@ -95,6 +97,7 @@ public class ConnectToNetworkNotificationBuilder { .setContentIntent(getPrivateBroadcast(ACTION_PICK_WIFI_NETWORK, notifierTag)) .addAction(connectAction) .addAction(allNetworksAction) + .setVisibility(VISIBILITY_SECRET) .build(); } -- cgit v1.2.3 From 23685b8604571ec623e539f4f9c66db65c9dde81 Mon Sep 17 00:00:00 2001 From: Nate Jiang Date: Thu, 3 Dec 2020 14:31:30 -0800 Subject: [Suggestion] Check foreground user for API call Also, squashes the follow up commit to create a single CL for backporting: ======= PasspointManager: Don't allow bg user to modify passpoint profiles Also, add safety net logging for this bug. ======= Bug: 174749461 Test: atest com.android.server.wifi Change-Id: Ifc79ffeb04a7be99a9c60d9414b72e88275c0514 Merged-In: Ifc79ffeb04a7be99a9c60d9414b72e88275c0514 (cherry picked from commit e799efba85cbe52044a067869af71d9c15b573bb) --- .../com/android/server/wifi/WifiConfigManager.java | 45 ++++---------- .../java/com/android/server/wifi/WifiInjector.java | 2 +- .../server/wifi/WifiNetworkSuggestionsManager.java | 29 ++++++++- .../com/android/server/wifi/WifiServiceImpl.java | 13 ++-- .../server/wifi/hotspot2/PasspointManager.java | 14 ++++- .../server/wifi/util/WifiPermissionsUtil.java | 29 +++++++++ .../android/server/wifi/WifiConfigManagerTest.java | 17 +++++- .../wifi/WifiNetworkSuggestionsManagerTest.java | 71 +++++++++++++++++----- .../android/server/wifi/WifiServiceImplTest.java | 10 +-- .../server/wifi/hotspot2/PasspointManagerTest.java | 55 ++++++++++++++++- 10 files changed, 217 insertions(+), 68 deletions(-) diff --git a/service/java/com/android/server/wifi/WifiConfigManager.java b/service/java/com/android/server/wifi/WifiConfigManager.java index 83cabf756..8fc91cb09 100644 --- a/service/java/com/android/server/wifi/WifiConfigManager.java +++ b/service/java/com/android/server/wifi/WifiConfigManager.java @@ -912,32 +912,6 @@ public class WifiConfigManager { && mWifiPermissionsUtil.checkNetworkSettingsPermission(uid); } - /** - * Check if the given UID belongs to the current foreground user. This is - * used to prevent apps running in background users from modifying network - * configurations. - *

- * UIDs belonging to system internals (such as SystemUI) are always allowed, - * since they always run as {@link UserHandle#USER_SYSTEM}. - * - * @param uid uid of the app. - * @return true if the given UID belongs to the current foreground user, - * otherwise false. - */ - private boolean doesUidBelongToCurrentUser(int uid) { - if (uid == android.os.Process.SYSTEM_UID - // UIDs with the NETWORK_SETTINGS permission are always allowed since they are - // acting on behalf of the user. - || mWifiPermissionsUtil.checkNetworkSettingsPermission(uid)) { - return true; - } else { - UserHandle currentUser = UserHandle.of(mCurrentUserId); - UserHandle callingUser = UserHandle.getUserHandleForUid(uid); - return currentUser.equals(callingUser) - || mUserManager.isSameProfileGroup(currentUser, callingUser); - } - } - /** * Copy over public elements from an external WifiConfiguration object to the internal * configuration object if element has been set in the provided external WifiConfiguration. @@ -1333,7 +1307,7 @@ public class WifiConfigManager { */ public NetworkUpdateResult addOrUpdateNetwork(WifiConfiguration config, int uid, @Nullable String packageName) { - if (!doesUidBelongToCurrentUser(uid)) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { Log.e(TAG, "UID " + uid + " not visible to the current user"); return new NetworkUpdateResult(WifiConfiguration.INVALID_NETWORK_ID); } @@ -1439,7 +1413,7 @@ public class WifiConfigManager { * @return true if successful, false otherwise. */ public boolean removeNetwork(int networkId, int uid, String packageName) { - if (!doesUidBelongToCurrentUser(uid)) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { Log.e(TAG, "UID " + uid + " not visible to the current user"); return false; } @@ -1848,7 +1822,7 @@ public class WifiConfigManager { if (mVerboseLoggingEnabled) { Log.v(TAG, "Enabling network " + networkId + " (disableOthers " + disableOthers + ")"); } - if (!doesUidBelongToCurrentUser(uid)) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { Log.e(TAG, "UID " + uid + " not visible to the current user"); return false; } @@ -1886,7 +1860,7 @@ public class WifiConfigManager { if (mVerboseLoggingEnabled) { Log.v(TAG, "Disabling network " + networkId); } - if (!doesUidBelongToCurrentUser(uid)) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { Log.e(TAG, "UID " + uid + " not visible to the current user"); return false; } @@ -1954,7 +1928,7 @@ public class WifiConfigManager { if (mVerboseLoggingEnabled) { Log.v(TAG, "Update network last connect UID for " + networkId); } - if (!doesUidBelongToCurrentUser(uid)) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { Log.e(TAG, "UID " + uid + " not visible to the current user"); return false; } @@ -2926,7 +2900,8 @@ public class WifiConfigManager { Set removedNetworkIds = new HashSet<>(); // Remove any private networks of the old user before switching the userId. for (WifiConfiguration config : getConfiguredNetworks()) { - if ((!config.shared && doesUidBelongToCurrentUser(config.creatorUid)) + if ((!config.shared && !mWifiPermissionsUtil + .doesUidBelongToCurrentUser(config.creatorUid)) || config.ephemeral) { removedNetworkIds.add(config.networkId); localLog("clearInternalUserData: removed config." @@ -3153,7 +3128,8 @@ public class WifiConfigManager { // Migrate the legacy Passpoint configurations owned by the current user to // {@link PasspointManager}. - if (config.isLegacyPasspointConfig && doesUidBelongToCurrentUser(config.creatorUid)) { + if (config.isLegacyPasspointConfig && !mWifiPermissionsUtil + .doesUidBelongToCurrentUser(config.creatorUid)) { legacyPasspointNetId.add(config.networkId); // Migrate the legacy Passpoint configuration and add it to PasspointManager. if (!PasspointManager.addLegacyPasspointConfig(config)) { @@ -3173,7 +3149,8 @@ public class WifiConfigManager { // because all networks were previously stored in a central file. We cannot // write these private networks to the user specific store until the corresponding // user logs in. - if (config.shared || !doesUidBelongToCurrentUser(config.creatorUid)) { + if (config.shared || !mWifiPermissionsUtil + .doesUidBelongToCurrentUser(config.creatorUid)) { sharedConfigurations.add(config); } else { userConfigurations.add(config); diff --git a/service/java/com/android/server/wifi/WifiInjector.java b/service/java/com/android/server/wifi/WifiInjector.java index 993debba5..48f1b3f2e 100644 --- a/service/java/com/android/server/wifi/WifiInjector.java +++ b/service/java/com/android/server/wifi/WifiInjector.java @@ -305,7 +305,7 @@ public class WifiInjector { mPasspointManager = new PasspointManager(mContext, this, wifiHandler, mWifiNative, mWifiKeyStore, mClock, new PasspointObjectFactory(), mWifiConfigManager, mWifiConfigStore, mWifiMetrics, mWifiCarrierInfoManager, - mMacAddressUtil); + mMacAddressUtil, mWifiPermissionsUtil); PasspointNetworkNominateHelper nominateHelper = new PasspointNetworkNominateHelper(mPasspointManager, mWifiConfigManager, mConnectivityLocalLog); diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java index 464ced0ad..2632835e6 100644 --- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java +++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java @@ -390,6 +390,7 @@ public class WifiNetworkSuggestionsManager { private boolean mIsLastUserApprovalUiDialog = false; private boolean mUserDataLoaded = false; + /** * Listener for app-ops changes for active suggestor apps. */ @@ -833,6 +834,10 @@ public class WifiNetworkSuggestionsManager { public @WifiManager.NetworkSuggestionsStatusCode int add( List networkSuggestions, int uid, String packageName, @Nullable String featureId) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL; + } if (!mUserDataLoaded) { Log.e(TAG, "Add Network suggestion before boot complete is not allowed."); return WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL; @@ -1108,6 +1113,10 @@ public class WifiNetworkSuggestionsManager { */ public @WifiManager.NetworkSuggestionsStatusCode int remove( List networkSuggestions, int uid, String packageName) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL; + } if (!mUserDataLoaded) { Log.e(TAG, "Remove Network suggestion before boot complete is not allowed."); return WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL; @@ -1166,8 +1175,12 @@ public class WifiNetworkSuggestionsManager { * Get all network suggestion for target App * @return List of WifiNetworkSuggestions */ - public @NonNull List get(@NonNull String packageName) { + public @NonNull List get(@NonNull String packageName, int uid) { List networkSuggestionList = new ArrayList<>(); + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return networkSuggestionList; + } if (!mUserDataLoaded) { Log.e(TAG, "Get Network suggestion before boot complete is not allowed."); return networkSuggestionList; @@ -1923,11 +1936,16 @@ public class WifiNetworkSuggestionsManager { * @param binder IBinder instance to allow cleanup if the app dies. * @param listener ISuggestionNetworkCallback instance to add. * @param listenerIdentifier identifier of the listener, should be hash code of listener. + * @param uid uid of the app. * @return true if succeed otherwise false. */ public boolean registerSuggestionConnectionStatusListener(@NonNull IBinder binder, @NonNull ISuggestionConnectionStatusListener listener, - int listenerIdentifier, String packageName) { + int listenerIdentifier, String packageName, int uid) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return false; + } ExternalCallbackTracker listenersTracker = mSuggestionStatusListenerPerApp.get(packageName); if (listenersTracker == null) { @@ -1942,9 +1960,14 @@ public class WifiNetworkSuggestionsManager { /** * Unregister a listener on network connection failure. * @param listenerIdentifier identifier of the listener, should be hash code of listener. + * @param uid uid of the app. */ public void unregisterSuggestionConnectionStatusListener(int listenerIdentifier, - String packageName) { + String packageName, int uid) { + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return; + } ExternalCallbackTracker listenersTracker = mSuggestionStatusListenerPerApp.get(packageName); if (listenersTracker == null || listenersTracker.remove(listenerIdentifier) == null) { diff --git a/service/java/com/android/server/wifi/WifiServiceImpl.java b/service/java/com/android/server/wifi/WifiServiceImpl.java index 5019f54e8..3b4f39796 100644 --- a/service/java/com/android/server/wifi/WifiServiceImpl.java +++ b/service/java/com/android/server/wifi/WifiServiceImpl.java @@ -3893,13 +3893,15 @@ public class WifiServiceImpl extends BaseWifiService { * @return a list of network suggestions suggested by this app */ public List getNetworkSuggestions(String callingPackageName) { - mAppOps.checkPackage(Binder.getCallingUid(), callingPackageName); + int callingUid = Binder.getCallingUid(); + mAppOps.checkPackage(callingUid, callingPackageName); enforceAccessPermission(); if (mVerboseLoggingEnabled) { mLog.info("getNetworkSuggestionList uid=%").c(Binder.getCallingUid()).flush(); } return mWifiThreadRunner.call(() -> - mWifiNetworkSuggestionsManager.get(callingPackageName), Collections.emptyList()); + mWifiNetworkSuggestionsManager.get(callingPackageName, callingUid), + Collections.emptyList()); } /** @@ -4227,7 +4229,7 @@ public class WifiServiceImpl extends BaseWifiService { mWifiThreadRunner.post(() -> mWifiNetworkSuggestionsManager .registerSuggestionConnectionStatusListener(binder, listener, - listenerIdentifier, packageName)); + listenerIdentifier, packageName, uid)); } /** @@ -4237,14 +4239,15 @@ public class WifiServiceImpl extends BaseWifiService { public void unregisterSuggestionConnectionStatusListener( int listenerIdentifier, String packageName) { enforceAccessPermission(); + int uid = Binder.getCallingUid(); if (mVerboseLoggingEnabled) { mLog.info("unregisterSuggestionConnectionStatusListener uid=%") - .c(Binder.getCallingUid()).flush(); + .c(uid).flush(); } mWifiThreadRunner.post(() -> mWifiNetworkSuggestionsManager .unregisterSuggestionConnectionStatusListener(listenerIdentifier, - packageName)); + packageName, uid)); } @Override diff --git a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java index 9cb4254c0..d398759ab 100644 --- a/service/java/com/android/server/wifi/hotspot2/PasspointManager.java +++ b/service/java/com/android/server/wifi/hotspot2/PasspointManager.java @@ -57,6 +57,7 @@ import com.android.server.wifi.hotspot2.anqp.HSOsuProvidersElement; import com.android.server.wifi.hotspot2.anqp.OsuProviderInfo; import com.android.server.wifi.proto.nano.WifiMetricsProto.UserActionEvent; import com.android.server.wifi.util.InformationElementUtil; +import com.android.server.wifi.util.WifiPermissionsUtil; import java.io.IOException; import java.io.PrintWriter; @@ -122,6 +123,7 @@ public class PasspointManager { private final AppOpsManager mAppOps; private final WifiCarrierInfoManager mWifiCarrierInfoManager; private final MacAddressUtil mMacAddressUtil; + private final WifiPermissionsUtil mWifiPermissionsUtil; /** * Map of package name of an app to the app ops changed listener for the app. @@ -309,7 +311,8 @@ public class PasspointManager { WifiConfigStore wifiConfigStore, WifiMetrics wifiMetrics, WifiCarrierInfoManager wifiCarrierInfoManager, - MacAddressUtil macAddressUtil) { + MacAddressUtil macAddressUtil, + WifiPermissionsUtil wifiPermissionsUtil) { mPasspointEventHandler = objectFactory.makePasspointEventHandler(wifiNative, new CallbackHandler(context)); mWifiInjector = wifiInjector; @@ -332,6 +335,7 @@ public class PasspointManager { mAppOps = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); sPasspointManager = this; mMacAddressUtil = macAddressUtil; + mWifiPermissionsUtil = wifiPermissionsUtil; } /** @@ -412,6 +416,10 @@ public class PasspointManager { Log.e(TAG, "Set isTrusted to false on a non suggestion passpoint is not allowed"); return false; } + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(uid)) { + Log.e(TAG, "UID " + uid + " not visible to the current user"); + return false; + } mWifiCarrierInfoManager.tryUpdateCarrierIdForPasspoint(config); // Create a provider and install the necessary certificates and keys. @@ -505,6 +513,10 @@ public class PasspointManager { + provider.getCreatorUid()); return false; } + if (!mWifiPermissionsUtil.doesUidBelongToCurrentUser(callingUid)) { + Log.e(TAG, "UID " + callingUid + " not visible to the current user"); + return false; + } provider.uninstallCertsAndKeys(); String packageName = provider.getPackageName(); // Remove any configs corresponding to the profile in WifiConfigManager. diff --git a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java index 63197ea6d..ebe7ea481 100644 --- a/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java +++ b/service/java/com/android/server/wifi/util/WifiPermissionsUtil.java @@ -30,6 +30,7 @@ import android.os.Build; import android.os.UserHandle; import android.os.UserManager; import android.provider.Settings; +import android.util.EventLog; import android.util.Log; import com.android.internal.annotations.GuardedBy; @@ -589,4 +590,32 @@ public class WifiPermissionsUtil { if (devicePolicyManager == null) return false; return devicePolicyManager.isProfileOwnerApp(packageName); } + + /** + * Check if the given UID belongs to the current foreground user. This is + * used to prevent apps running in background users from modifying network + * configurations. + *

+ * UIDs belonging to system internals (such as SystemUI) are always allowed, + * since they always run as {@link UserHandle#USER_SYSTEM}. + * + * @param uid uid of the app. + * @return true if the given UID belongs to the current foreground user, + * otherwise false. + */ + public boolean doesUidBelongToCurrentUser(int uid) { + if (uid == android.os.Process.SYSTEM_UID + // UIDs with the NETWORK_SETTINGS permission are always allowed since they are + // acting on behalf of the user. + || checkNetworkSettingsPermission(uid)) { + return true; + } + boolean isCurrentProfile = isCurrentProfile(uid); + if (!isCurrentProfile) { + // Fix for b/174749461 + EventLog.writeEvent(0x534e4554, "174749461", -1, + "Non foreground user trying to modify wifi configuration"); + } + return isCurrentProfile; + } } diff --git a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java index 28fdade18..34567e969 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiConfigManagerTest.java @@ -222,6 +222,7 @@ public class WifiConfigManagerTest extends WifiBaseTest { .thenReturn(false); when(mWifiInjector.getMacAddressUtil()).thenReturn(mMacAddressUtil); when(mWifiInjector.getWifiMetrics()).thenReturn(mWifiMetrics); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(anyInt())).thenReturn(true); when(mMacAddressUtil.calculatePersistentMac(any(), any())).thenReturn(TEST_RANDOMIZED_MAC); when(mWifiScoreCard.lookupNetwork(any())).thenReturn(mPerNetwork); @@ -2913,6 +2914,8 @@ public class WifiConfigManagerTest extends WifiBaseTest { setupStoreDataForUserRead(user2Networks, new HashMap<>()); // Now switch the user to user 2 and ensure that user 1's private network has been removed. when(mUserManager.isUserUnlockingOrUnlocked(UserHandle.of(user2))).thenReturn(true); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(user1Network.creatorUid)) + .thenReturn(false); Set removedNetworks = mWifiConfigManager.handleUserSwitch(user2); verify(mWifiConfigStore).switchUserStoresAndRead(any(List.class)); assertTrue((removedNetworks.size() == 1) && (removedNetworks.contains(user1NetworkId))); @@ -3053,7 +3056,7 @@ public class WifiConfigManagerTest extends WifiBaseTest { public void testHandleUserSwitchPushesOtherPrivateNetworksToSharedStore() throws Exception { int user1 = TEST_DEFAULT_USER; int user2 = TEST_DEFAULT_USER + 1; - setupUserProfiles(user2); + setupUserProfiles(user1); int appId = 674; @@ -3091,6 +3094,8 @@ public class WifiConfigManagerTest extends WifiBaseTest { } }; setupStoreDataForUserRead(userNetworks, new HashMap<>()); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(user2Network.creatorUid)) + .thenReturn(false); mWifiConfigManager.handleUserUnlock(user1); verify(mWifiConfigStore).switchUserStoresAndRead(any(List.class)); // Capture the written data for the user 1 and ensure that it corresponds to what was @@ -3105,6 +3110,10 @@ public class WifiConfigManagerTest extends WifiBaseTest { // Now switch the user to user2 and ensure that user 2's private network has been moved to // the user store. when(mUserManager.isUserUnlockingOrUnlocked(UserHandle.of(user2))).thenReturn(true); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(user1Network.creatorUid)) + .thenReturn(true).thenReturn(false); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(user2Network.creatorUid)) + .thenReturn(false).thenReturn(true); mWifiConfigManager.handleUserSwitch(user2); // Set the expected network list before comparing. user1Network should be in shared data. // Note: In the real world, user1Network will no longer be visible now because it should @@ -3169,6 +3178,8 @@ public class WifiConfigManagerTest extends WifiBaseTest { // Unlock the owner of the legacy Passpoint configuration, verify it is removed from // the configured networks (migrated to PasspointManager). setupStoreDataForUserRead(new ArrayList(), new HashMap<>()); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(passpointConfig.creatorUid)) + .thenReturn(false); mWifiConfigManager.handleUserUnlock(user1); verify(mWifiConfigStore).switchUserStoresAndRead(any(List.class)); Pair, List> writtenNetworkList = @@ -3296,7 +3307,8 @@ public class WifiConfigManagerTest extends WifiBaseTest { // Ensure that we have 2 networks in the database before the stop. assertEquals(2, mWifiConfigManager.getConfiguredNetworks().size()); - + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(user1Network.creatorUid)) + .thenReturn(false); mWifiConfigManager.handleUserStop(user1); // Ensure that we only have 1 shared network in the database after the stop. @@ -3498,6 +3510,7 @@ public class WifiConfigManagerTest extends WifiBaseTest { int creatorUid = UserHandle.getUid(user2, 674); when(mWifiPermissionsUtil.checkNetworkSettingsPermission(creatorUid)).thenReturn(false); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(creatorUid)).thenReturn(false); // Create a network for user2 try adding it. This should be rejected. final WifiConfiguration user2Network = WifiConfigurationTestUtil.createPskNetwork(); diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java index 38a0026df..fd27dcc06 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java @@ -66,6 +66,7 @@ import android.net.wifi.hotspot2.pps.HomeSp; import android.os.Handler; import android.os.IBinder; import android.os.UserHandle; +import android.os.UserManager; import android.os.test.TestLooper; import android.telephony.TelephonyManager; import android.test.suitebuilder.annotation.SmallTest; @@ -150,6 +151,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { private @Mock Notification.Builder mNotificationBuilder; private @Mock Notification mNotification; private @Mock LruConnectionTracker mLruConnectionTracker; + private @Mock UserManager mUserManager; private TestLooper mLooper; private ArgumentCaptor mAppOpChangedListenerCaptor = ArgumentCaptor.forClass(AppOpsManager.OnOpChangedListener.class); @@ -216,6 +218,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { when(mActivityManager.isLowRamDevice()).thenReturn(false); when(mActivityManager.getPackageImportance(any())).thenReturn( IMPORTANCE_FOREGROUND_SERVICE); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(anyInt())).thenReturn(true); // setup resource strings for notification. when(mResources.getString(eq(R.string.wifi_suggestion_title), anyString())) @@ -560,7 +563,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { TEST_PACKAGE_1, TEST_FEATURE)); assertEquals(WifiConfiguration.METERED_OVERRIDE_METERED, mWifiNetworkSuggestionsManager - .get(TEST_PACKAGE_1).get(0).wifiConfiguration.meteredOverride); + .get(TEST_PACKAGE_1, TEST_UID_1).get(0).wifiConfiguration.meteredOverride); // Verify we did not update config in WCM. verify(mWifiConfigManager, never()).addOrUpdateNetwork(any(), anyInt(), any()); } @@ -607,7 +610,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { TEST_PACKAGE_1, TEST_FEATURE)); assertEquals(WifiConfiguration.METERED_OVERRIDE_METERED, mWifiNetworkSuggestionsManager - .get(TEST_PACKAGE_1).get(0).wifiConfiguration.meteredOverride); + .get(TEST_PACKAGE_1, TEST_UID_1).get(0).wifiConfiguration.meteredOverride); verify(mWifiMetrics, never()).incrementNetworkSuggestionApiUsageNumOfAppInType(anyInt()); // Verify we did update config in WCM. ArgumentCaptor configCaptor = @@ -1066,7 +1069,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { public void testOnNetworkConnectionSuccessWithOneMatch() throws Exception { assertTrue(mWifiNetworkSuggestionsManager .registerSuggestionConnectionStatusListener(mBinder, mListener, - NETWORK_CALLBACK_ID, TEST_PACKAGE_1)); + NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion( WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, true, true); List networkSuggestionList = @@ -1103,7 +1106,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { public void testOnNetworkConnectionSuccessWithOneMatchFromCarrierPrivilegedApp() { assertTrue(mWifiNetworkSuggestionsManager .registerSuggestionConnectionStatusListener(mBinder, mListener, - NETWORK_CALLBACK_ID, TEST_PACKAGE_1)); + NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); when(mWifiCarrierInfoManager.getCarrierIdForPackageWithCarrierPrivileges(TEST_PACKAGE_1)) .thenReturn(TEST_CARRIER_ID); WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion( @@ -1138,6 +1141,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { mWifiNetworkSuggestionsManager.remove(networkSuggestionList, TEST_UID_1, TEST_PACKAGE_1)); verify(mWifiConfigManager).removeSuggestionConfiguredNetwork(anyString()); + mInorder.verify(mWifiPermissionsUtil).doesUidBelongToCurrentUser(eq(TEST_UID_1)); // Verify no more broadcast were sent out. mInorder.verifyNoMoreInteractions(); @@ -1152,7 +1156,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { public void testOnSavedOpenNetworkConnectionSuccessWithMultipleMatch() throws Exception { assertTrue(mWifiNetworkSuggestionsManager .registerSuggestionConnectionStatusListener(mBinder, mListener, - NETWORK_CALLBACK_ID, TEST_PACKAGE_1)); + NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); when(mWifiPermissionsUtil.checkNetworkCarrierProvisioningPermission(TEST_UID_1)) .thenReturn(true); WifiConfiguration config = WifiConfigurationTestUtil.createOpenNetwork(); @@ -1199,7 +1203,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { ArgumentCaptor.forClass(IBinder.DeathRecipient.class); assertTrue(mWifiNetworkSuggestionsManager .registerSuggestionConnectionStatusListener(mBinder, mListener, - NETWORK_CALLBACK_ID, TEST_PACKAGE_1)); + NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); verify(mBinder).linkToDeath(drCaptor.capture(), anyInt()); WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion( WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, true, true); @@ -1249,7 +1253,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { public void testOnNetworkConnectionFailureWithOneMatch() throws Exception { assertTrue(mWifiNetworkSuggestionsManager .registerSuggestionConnectionStatusListener(mBinder, mListener, - NETWORK_CALLBACK_ID, TEST_PACKAGE_1)); + NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion( WifiConfigurationTestUtil.createOpenNetwork(), null, true, false, true, true); List networkSuggestionList = @@ -2467,7 +2471,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { public void testGetNetworkSuggestions() { // test App never suggested. List storedNetworkSuggestionListPerApp = - mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1); + mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1); assertEquals(storedNetworkSuggestionListPerApp.size(), 0); // App add network suggestions then get stored suggestions. @@ -2489,7 +2493,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { TEST_PACKAGE_1, TEST_FEATURE)); mWifiNetworkSuggestionsManager.setHasUserApprovedForApp(true, TEST_PACKAGE_1); storedNetworkSuggestionListPerApp = - mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1); + mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1); assertEquals(new HashSet<>(networkSuggestionList), new HashSet<>(storedNetworkSuggestionListPerApp)); @@ -2498,7 +2502,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { mWifiNetworkSuggestionsManager.remove(new ArrayList<>(), TEST_UID_1, TEST_PACKAGE_1)); storedNetworkSuggestionListPerApp = - mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1); + mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1); assertEquals(storedNetworkSuggestionListPerApp.size(), 0); } @@ -3222,7 +3226,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { .add(networkSuggestionList, TEST_UID_1, TEST_PACKAGE_1, TEST_FEATURE); assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_ADD_NOT_ALLOWED, status); verify(mNotificationManger, never()).notify(anyInt(), any()); - assertEquals(0, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1).size()); + assertEquals(0, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1).size()); verify(mWifiMetrics, never()).incrementNetworkSuggestionApiUsageNumOfAppInType(anyInt()); } @@ -3246,7 +3250,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { .add(networkSuggestionList, TEST_UID_1, TEST_PACKAGE_1, TEST_FEATURE); assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS, status); verify(mNotificationManger, never()).notify(anyInt(), any()); - assertEquals(1, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1).size()); + assertEquals(1, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1).size()); verify(mWifiMetrics).incrementNetworkSuggestionApiUsageNumOfAppInType( WifiNetworkSuggestionsManager.APP_TYPE_CARRIER_PRIVILEGED); } @@ -3271,7 +3275,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { .add(networkSuggestionList, TEST_UID_1, TEST_PACKAGE_1, TEST_FEATURE); assertEquals(status, WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS); verify(mNotificationManger, never()).notify(anyInt(), any()); - assertEquals(1, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1).size()); + assertEquals(1, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1).size()); } /** @@ -3333,7 +3337,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { when(mWifiCarrierInfoManager.getCarrierIdForPackageWithCarrierPrivileges(TEST_PACKAGE_1)) .thenReturn(TelephonyManager.UNKNOWN_CARRIER_ID); mWifiNetworkSuggestionsManager.resetCarrierPrivilegedApps(); - assertEquals(0, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1).size()); + assertEquals(0, mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1).size()); verify(mWifiConfigManager, times(2)).saveToStore(true); status = mWifiNetworkSuggestionsManager .add(networkSuggestionList, TEST_UID_1, TEST_PACKAGE_1, TEST_FEATURE); @@ -4033,7 +4037,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { public void testUnregisterSuggestionConnectionStatusListenerNeverRegistered() { int listenerIdentifier = 1234; mWifiNetworkSuggestionsManager.unregisterSuggestionConnectionStatusListener( - listenerIdentifier, TEST_PACKAGE_1); + listenerIdentifier, TEST_PACKAGE_1, TEST_UID_1); } /** @@ -4083,6 +4087,43 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest { mWifiNetworkSuggestionsManager.getAllApprovedNetworkSuggestions()); } + /** + * Verify when calling API from background user will fail. + */ + @Test + public void testCallingFromBackgroundUserWillFailed() { + WifiConfiguration wifiConfiguration = WifiConfigurationTestUtil.createOpenNetwork(); + WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion( + wifiConfiguration, null, false, false, true, true); + + assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS, + mWifiNetworkSuggestionsManager.add(Arrays.asList(networkSuggestion), TEST_UID_1, + TEST_PACKAGE_1, TEST_FEATURE)); + // When switch the user to background + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(TEST_UID_1)).thenReturn(false); + assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL, + mWifiNetworkSuggestionsManager.add(Arrays.asList(networkSuggestion), TEST_UID_1, + TEST_PACKAGE_1, TEST_FEATURE)); + assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_ERROR_INTERNAL, + mWifiNetworkSuggestionsManager.remove(Arrays.asList(networkSuggestion), TEST_UID_1, + TEST_PACKAGE_1)); + assertTrue(mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1).isEmpty()); + assertFalse(mWifiNetworkSuggestionsManager.registerSuggestionConnectionStatusListener( + mBinder, mListener, NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); + + // When switch the user back to foreground + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(TEST_UID_1)).thenReturn(true); + assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS, + mWifiNetworkSuggestionsManager.add(Arrays.asList(networkSuggestion), TEST_UID_1, + TEST_PACKAGE_1, TEST_FEATURE)); + assertFalse(mWifiNetworkSuggestionsManager.get(TEST_PACKAGE_1, TEST_UID_1).isEmpty()); + assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS, + mWifiNetworkSuggestionsManager.remove(Arrays.asList(networkSuggestion), TEST_UID_1, + TEST_PACKAGE_1)); + assertTrue(mWifiNetworkSuggestionsManager.registerSuggestionConnectionStatusListener( + mBinder, mListener, NETWORK_CALLBACK_ID, TEST_PACKAGE_1, TEST_UID_1)); + } + /** * Helper function for creating a test configuration with user credential. * diff --git a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java index 22561a159..c1ddd6321 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiServiceImplTest.java @@ -4592,12 +4592,12 @@ public class WifiServiceImplTest extends WifiBaseTest { @Test public void testGetNetworkSuggestions() { List testList = new ArrayList<>(); - when(mWifiNetworkSuggestionsManager.get(anyString())).thenReturn(testList); + when(mWifiNetworkSuggestionsManager.get(anyString(), anyInt())).thenReturn(testList); mLooper.startAutoDispatch(); assertEquals(testList, mWifiServiceImpl.getNetworkSuggestions(TEST_PACKAGE_NAME)); mLooper.stopAutoDispatchAndIgnoreExceptions(); - verify(mWifiNetworkSuggestionsManager).get(eq(TEST_PACKAGE_NAME)); + verify(mWifiNetworkSuggestionsManager).get(eq(TEST_PACKAGE_NAME), anyInt()); } /** @@ -4612,7 +4612,7 @@ public class WifiServiceImplTest extends WifiBaseTest { assertTrue(mWifiServiceImpl.getNetworkSuggestions(TEST_PACKAGE_NAME).isEmpty()); mLooper.stopAutoDispatchAndIgnoreExceptions(); - verify(mWifiNetworkSuggestionsManager, never()).get(eq(TEST_PACKAGE_NAME)); + verify(mWifiNetworkSuggestionsManager, never()).get(eq(TEST_PACKAGE_NAME), anyInt()); } /** @@ -5394,12 +5394,12 @@ public class WifiServiceImplTest extends WifiBaseTest { mLooper.dispatchAll(); verify(mWifiNetworkSuggestionsManager).registerSuggestionConnectionStatusListener( eq(mAppBinder), eq(mSuggestionConnectionStatusListener), eq(NETWORK_CALLBACK_ID), - eq(TEST_PACKAGE_NAME)); + eq(TEST_PACKAGE_NAME), anyInt()); mWifiServiceImpl.unregisterSuggestionConnectionStatusListener(NETWORK_CALLBACK_ID, TEST_PACKAGE_NAME); mLooper.dispatchAll(); verify(mWifiNetworkSuggestionsManager).unregisterSuggestionConnectionStatusListener( - eq(NETWORK_CALLBACK_ID), eq(TEST_PACKAGE_NAME)); + eq(NETWORK_CALLBACK_ID), eq(TEST_PACKAGE_NAME), anyInt()); } diff --git a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java index 9caf85f4e..cb459728a 100644 --- a/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/hotspot2/PasspointManagerTest.java @@ -102,6 +102,7 @@ import com.android.server.wifi.hotspot2.anqp.OsuProviderInfo; import com.android.server.wifi.proto.nano.WifiMetricsProto.UserActionEvent; import com.android.server.wifi.util.InformationElementUtil; import com.android.server.wifi.util.InformationElementUtil.RoamingConsortium; +import com.android.server.wifi.util.WifiPermissionsUtil; import org.junit.Before; import org.junit.Test; @@ -192,6 +193,7 @@ public class PasspointManagerTest extends WifiBaseTest { @Mock SubscriptionManager mSubscriptionManager; @Mock WifiNetworkSuggestionsManager mWifiNetworkSuggestionsManager; @Mock MacAddressUtil mMacAddressUtil; + @Mock WifiPermissionsUtil mWifiPermissionsUtil; Handler mHandler; TestLooper mLooper; @@ -220,6 +222,7 @@ public class PasspointManagerTest extends WifiBaseTest { when(mWifiInjector.getClientModeImpl()).thenReturn(mClientModeImpl); when(mWifiInjector.getWifiNetworkSuggestionsManager()) .thenReturn(mWifiNetworkSuggestionsManager); + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(anyInt())).thenReturn(true); mWifiCarrierInfoManager = new WifiCarrierInfoManager(mTelephonyManager, mSubscriptionManager, mWifiInjector, mock(FrameworkFacade.class), mock(WifiContext.class), mWifiConfigStore, mock(Handler.class), mWifiMetrics); @@ -227,7 +230,8 @@ public class PasspointManagerTest extends WifiBaseTest { mHandler = new Handler(mLooper.getLooper()); mManager = new PasspointManager(mContext, mWifiInjector, mHandler, mWifiNative, mWifiKeyStore, mClock, mObjectFactory, mWifiConfigManager, - mWifiConfigStore, mWifiMetrics, mWifiCarrierInfoManager, mMacAddressUtil); + mWifiConfigStore, mWifiMetrics, mWifiCarrierInfoManager, mMacAddressUtil, + mWifiPermissionsUtil); ArgumentCaptor callbacks = ArgumentCaptor.forClass(PasspointEventHandler.Callbacks.class); verify(mObjectFactory).makePasspointEventHandler(any(WifiNative.class), @@ -523,6 +527,29 @@ public class PasspointManagerTest extends WifiBaseTest { verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess(); } + /** + * Verify that adding a provider from a background user will fail. + * + * @throws Exception + */ + @Test + public void addProviderWithBackgroundUser() throws Exception { + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(anyInt())).thenReturn(false); + + PasspointConfiguration config = createTestConfigWithUserCredential(TEST_FQDN, + TEST_FRIENDLY_NAME); + PasspointProvider provider = createMockProvider(config); + when(provider.getPackageName()).thenReturn(TEST_PACKAGE); + when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore), + eq(mWifiCarrierInfoManager), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE), + eq(false))).thenReturn(provider); + assertFalse(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, + TEST_PACKAGE, false, true)); + + verify(mWifiMetrics).incrementNumPasspointProviderInstallation(); + verify(mWifiMetrics, never()).incrementNumPasspointProviderInstallSuccess(); + } + /** * Verify that adding a user saved provider with a valid configuration and user credential will * succeed. @@ -753,7 +780,8 @@ public class PasspointManagerTest extends WifiBaseTest { .thenReturn(true); PasspointManager ut = new PasspointManager(mContext, mWifiInjector, mHandler, mWifiNative, mWifiKeyStore, mClock, spyFactory, mWifiConfigManager, - mWifiConfigStore, mWifiMetrics, mWifiCarrierInfoManager, mMacAddressUtil); + mWifiConfigStore, mWifiMetrics, mWifiCarrierInfoManager, mMacAddressUtil, + mWifiPermissionsUtil); assertTrue(ut.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, true, true)); @@ -1931,6 +1959,29 @@ public class PasspointManagerTest extends WifiBaseTest { assertFalse(mManager.getProviderConfigs(TEST_CREATOR_UID, false).isEmpty()); } + /** + * Verify that removing a provider from a background user will fail. + * + * @throws Exception + */ + @Test + public void removeProviderWithBackgroundUser() throws Exception { + PasspointConfiguration config = createTestConfigWithUserCredential(TEST_FQDN, + TEST_FRIENDLY_NAME); + PasspointProvider provider = createMockProvider(config); + when(mObjectFactory.makePasspointProvider(eq(config), eq(mWifiKeyStore), + eq(mWifiCarrierInfoManager), anyLong(), eq(TEST_CREATOR_UID), eq(TEST_PACKAGE), + eq(false))).thenReturn(provider); + assertTrue(mManager.addOrUpdateProvider(config, TEST_CREATOR_UID, TEST_PACKAGE, + false, true)); + verifyInstalledConfig(config); + verify(mWifiMetrics).incrementNumPasspointProviderInstallation(); + verify(mWifiMetrics).incrementNumPasspointProviderInstallSuccess(); + + when(mWifiPermissionsUtil.doesUidBelongToCurrentUser(anyInt())).thenReturn(false); + assertFalse(mManager.removeProvider(TEST_CREATOR_UID, false, null, TEST_FQDN)); + } + /** * Verify that adding a suggestion provider with a valid configuration and user credential will * succeed. -- cgit v1.2.3 From 02ecb050de19e644a800bc0c16e6dd742964b061 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Thu, 17 Dec 2020 23:59:56 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I68ea22bf2a7cb7aa987e8c82183a0917d36e225b --- libs/WifiTrackerLib/res/values-fa/strings.xml | 2 +- libs/WifiTrackerLib/res/values-mn/strings.xml | 2 +- libs/WifiTrackerLib/res/values-my/strings.xml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-fa/strings.xml b/libs/WifiTrackerLib/res/values-fa/strings.xml index 4c0dfee44..64a913612 100644 --- a/libs/WifiTrackerLib/res/values-fa/strings.xml +++ b/libs/WifiTrackerLib/res/values-fa/strings.xml @@ -20,7 +20,7 @@ "اتصال خودکار خاموش است" "ذخیره‌شده توسط %1$s" "اتصال به‌طور خودکار انجام نمی‌شود" - "بدون دسترسی به اینترنت" + "دسترسی به اینترنت ندارد" "مشکل اصالت‌سنجی" "گذرواژه را بررسی و دوباره امتحان کنید" "‏پیکربندی IP انجام نشد" diff --git a/libs/WifiTrackerLib/res/values-mn/strings.xml b/libs/WifiTrackerLib/res/values-mn/strings.xml index fbbf8b2d2..9e9b247e6 100644 --- a/libs/WifiTrackerLib/res/values-mn/strings.xml +++ b/libs/WifiTrackerLib/res/values-mn/strings.xml @@ -21,7 +21,7 @@ "%1$s хадгалсан" "Автоматаар холбогдохгүй" "Интернэт хандалт байхгүй байна" - "Нотолгооны асуудал" + "Баталгаажуулалтын асуудал" "Нууц үгийг шалгаад дахин оролдоно уу" "IP тохируулга амжилтгүй боллоо" "Идэвхгүйжүүлсэн" diff --git a/libs/WifiTrackerLib/res/values-my/strings.xml b/libs/WifiTrackerLib/res/values-my/strings.xml index 2e6dea6a7..524fbb612 100644 --- a/libs/WifiTrackerLib/res/values-my/strings.xml +++ b/libs/WifiTrackerLib/res/values-my/strings.xml @@ -21,7 +21,7 @@ "%1$s က သိမ်းဆည်းခဲ့သည်" "အလိုအလျောက် ချိတ်ဆက်မည်မဟုတ်ပါ" "အင်တာနက် ချိတ်ဆက်မှု မရှိပါ" - "အထောက်အထားစိစစ်ခြင်း ပြဿနာ" + "အထောက်အထားစိစစ်မှု ပြဿနာ" "စကားဝှက်ကို စစ်ဆေးပြီး ထပ်လုပ်ကြည့်ပါ" "IP စီစဉ်သတ်မှတ်ခြင်း မအောင်မြင်ပါ" "ပိတ်ထားသည်" -- cgit v1.2.3 From a0ee5a39d9c5d362b4283866e762c501ebf6a4a6 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Fri, 18 Dec 2020 01:04:52 +0000 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Id59079e9b5a69a9369ec075d17fd766aa0f2b76f --- service/res/values-b+sr+Latn/strings.xml | 2 +- service/res/values-sr/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/service/res/values-b+sr+Latn/strings.xml b/service/res/values-b+sr+Latn/strings.xml index 1ac443425..634f9a743 100644 --- a/service/res/values-b+sr+Latn/strings.xml +++ b/service/res/values-b+sr+Latn/strings.xml @@ -80,5 +80,5 @@ "Hotspot je isključen" "Nijedan uređaj nije povezan. Dodirnite da biste izmenili." "WiFi veza je prekinuta" - "Da biste se povezali na mrežu %1$s, umetnite %2$s SIM karticu" + "Da biste se povezali na mrežu %1$s, stavite %2$s SIM karticu" diff --git a/service/res/values-sr/strings.xml b/service/res/values-sr/strings.xml index 240720e6c..74bf98238 100644 --- a/service/res/values-sr/strings.xml +++ b/service/res/values-sr/strings.xml @@ -80,5 +80,5 @@ "Хотспот је искључен" "Ниједан уређај није повезан. Додирните да бисте изменили." "WiFi веза је прекинута" - "Да бисте се повезали на мрежу %1$s, уметните %2$s SIM картицу" + "Да бисте се повезали на мрежу %1$s, ставите %2$s SIM картицу" -- cgit v1.2.3 From acda13b5cf6d5edb34bfc78aef2e6536ec1d125b Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sun, 3 Jan 2021 01:54:28 -0800 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: Ibecf0baeeb10a785e3f989767b9b3b757ab9c3c0 --- libs/WifiTrackerLib/res/values-th/strings.xml | 2 +- libs/WifiTrackerLib/res/values-ur/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libs/WifiTrackerLib/res/values-th/strings.xml b/libs/WifiTrackerLib/res/values-th/strings.xml index bded04361..8303fe178 100644 --- a/libs/WifiTrackerLib/res/values-th/strings.xml +++ b/libs/WifiTrackerLib/res/values-th/strings.xml @@ -28,7 +28,7 @@ "จุดเข้าใช้งานเต็มชั่วคราว" "ยกเลิกการเชื่อมต่อแล้ว" "บันทึกแล้ว" - "มีการวัดปริมาณอินเทอร์เน็ต" + "มีการจำกัดปริมาณอินเทอร์เน็ต" "ไม่มีการวัดปริมาณอินเทอร์เน็ต" "เชื่อมต่อแล้วผ่าน %1$s" "ใช้งานได้ผ่านทาง %1$s" diff --git a/libs/WifiTrackerLib/res/values-ur/strings.xml b/libs/WifiTrackerLib/res/values-ur/strings.xml index 6fc5bf546..2bc36a53b 100644 --- a/libs/WifiTrackerLib/res/values-ur/strings.xml +++ b/libs/WifiTrackerLib/res/values-ur/strings.xml @@ -22,7 +22,7 @@ "خودکار طور پر منسلک نہیں ہو گا" "انٹرنیٹ تک کوئی رسائی نہیں" "توثیق کا مسئلہ" - "پاسورڈ چیک کر کے دوبارہ کوشش کریں" + "پاس ورڈ چیک کر کے دوبارہ کوشش کریں" "‏IP کنفیگریشن کی ناکامی" "غیر فعال" "رسائی پوائنٹ عارضی طور پر فُل ہے" -- cgit v1.2.3 From 79612683a00839cf7aefa399e1f10b3c7dd78a7e Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Sun, 3 Jan 2021 03:50:25 -0800 Subject: Import translations. DO NOT MERGE ANYWHERE Auto-generated-cl: translation import Change-Id: I39f52c98885244d9154f188722ddf2d53f06b3f7 --- service/res/values-en-rXC/strings.xml | 84 ---------------------- service/res/values-iw/strings.xml | 2 +- .../res/values-mcc310-mnc004-en-rXC/strings.xml | 26 ------- .../res/values-mcc311-mnc480-en-rXC/strings.xml | 26 ------- 4 files changed, 1 insertion(+), 137 deletions(-) delete mode 100644 service/res/values-en-rXC/strings.xml delete mode 100644 service/res/values-mcc310-mnc004-en-rXC/strings.xml delete mode 100644 service/res/values-mcc311-mnc480-en-rXC/strings.xml diff --git a/service/res/values-en-rXC/strings.xml b/service/res/values-en-rXC/strings.xml deleted file mode 100644 index 6cefae1ae..000000000 --- a/service/res/values-en-rXC/strings.xml +++ /dev/null @@ -1,84 +0,0 @@ - - - - - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‎‏‏‏‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‏‎‏‎‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‎System Wi-Fi Resources‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‎‎‎‎‎‏‎‏‏‎‎‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‏‏‏‎‏‏‎Connect to open Wi‑Fi network‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‏‏‏‎‎‏‎‏‎‏‎‎‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‎‎‎‎‏‎‎‏‎‏‏‎‎‎‏‏‏‏‏‏‎‎‏‎‏‎‎Connecting to Wi‑Fi network‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‎‏‏‎‎‏‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‏‏‎‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‎‎Connected to Wi‑Fi network‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎‎‎‏‎‏‎‏‎‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‎‎‏‏‎‎‏‎Could not connect to Wi‑Fi network‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‎‏‎‏‎‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‏‎‎‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‎‎‎‎‎‏‏‎‎‎‎‎Tap to see all networks‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‎‎‎‎‎‎‎‏‎‎‏‎‏‏‏‏‎‎‏‏‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‎‏‎‎‏‏‏‏‎‎Connect‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‏‎‎‎‏‎‎‏‏‎‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎All networks‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‏‏‎‎‏‏‏‏‎‎‏‎Network status‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‎‎‎‎‏‎‏‏‎‎‎‎‏‎‎‎‏‏‏‏‎‏‎‏‏‏‎‎‏‎‏‎‎‏‎‏‎‏‎Network alerts‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‎‎‏‎‏‎‏‏‎‎‏‎‏‏‎‎‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‏‎‎‏‎‏‏‏‎‏‏‎Network available‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‎‎‎‏‎‎‏‏‏‏‎‏‎‏‏‎‎‏‏‎‎‏‎‎‏‎‏‏‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‏‏‎‎‎‎‎‏‏‏‎Allow suggested Wi‑Fi networks?‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‎‎‎‎‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎ suggested networks. Device may connect automatically.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‎‏‏‎‎‏‏‏‏‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‎‏‎‏‎‏‏‎‏‏‎‎‎‏‎‎‎‏‏‏‎‎‎‎‎‏‎‏‏‏‎‏‏‎Allow‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‏‎‎‏‏‏‎‏‎‎‏‏‏‏‎‎‎‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‏‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‎No thanks‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‏‎‎‏‎‏‎‏‏‎‎‎‎‏‏‎‏‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‎‏‏‏‎‏‏‏‎‎‎‏‎‏‎‏‏‎‎Connect to ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎ Wi‑Fi?‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‏‏‎‎‎‎‏‏‎‏‎‎‎‎‎‎‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‏‏‏‎‏‏‏‎‎‏‎‎‎‎‎These networks receive a SIM ID that can be used to track device location‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‎‎‎‏‏‏‎‏‎‎‎‏‎‎‏‎‏‏‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‎‎‏‏‎‏‏‎Connect‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‎‏‎‏‏‎‏‏‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‎Don\'t connect‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‏‏‎‎‎‎‎‏‏‎‎‎‎‏‏‎‎‏‏‎‎‏‏‎‏‎‎‎‎‏‏‏‎‏‏‏‏‎‎‎‏‎‎‎Confirm connection?‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‏‏‏‎‎‎‏‏‏‎‎‎‏‎‎‎‎‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‏‏‎‎‏‏‎‏‎‏‏‏‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎If you connect, ‎‏‎‎‏‏‎%s‎‏‎‎‏‏‏‎ Wi‑Fi networks may access or share a unique ID associated with your SIM. This may allow your device\'s location to be tracked.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‏‏‎‏‎‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‏‏‏‎‏‏‎‎‎‎‎‎‎Connect‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‏‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‏‏‎‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‏‏‎‎Don\'t connect‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‏‎‎‏‏‏‏‎‏‎‏‎‎‎‎‎‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‏‎‎‏‎‎‎‎‎Wi‑Fi will turn on automatically‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‎‏‎‎‏‏‎‏‏‎‏‏‎‎‏‏‎‏‎‎‏‏‏‎‏‎‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‎When you\'re near a high quality saved network‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‎‏‎‏‎‎‏‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‎‏‏‏‎‎‎‏‎‎‏‎‏‏‎‎‎‎‏‎‏‎‎‏‎‏‏‏‏‏‎‏‏‎‎Don\'t turn back on‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‎‎‎‎‎‏‏‏‏‎‎‏‏‏‎‏‏‏‏‎‎‎‏‏‏‏‎‎‏‏‎‎‎‏‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎Wi‑Fi turned on automatically‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‎‎‏‎‏‏‎‏‎‎‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‎‎‎‏‏‏‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‎‏‎‎‏‎‎You\'re near a saved network: ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‎‎‏‏‎‎‎‏‏‎‏‎‎‏‎‎‏‏‎‏‎‏‏‏‎‎‏‏‏‎‏‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‎‏‎‏‏‏‏‎‎Couldn\'t connect to Wi-Fi‎‏‎‎‏‎" - " ‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‎‎‏‏‎‎‎‎‎‎‎‏‏‏‎‏‎‏‏‏‏‏‎‏‎‎‎‏‏‏‏‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‎‏‏‎‎‎‎ has a poor internet connection.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‎‏‎‎‎‏‎‏‏‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‏‏‏‎‏‏‎‏‏‏‏‎‏‎‏‏‏‏‏‎‎‎‏‏‏‏‏‎‎‏‎‎‎Allow connection?‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‏‏‎‎‎‏‏‎‎‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‏‏‎‎‏‎‏‏‎‎‏‎‏‏‎‏‎‎‎Application %1$s would like to connect to Wifi Network %2$s‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‎‏‏‎‏‎‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‎‏‏‎‎‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‎‏‏‏‎‏‏‎An application‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‎‏‎‏‏‎‏‏‎‎‎‏‎‏‎‏‏‏‏‏‎‎‎‎‎‎‏‏‏‏‎‏‏‎‎‎‏‏‎‏‎Accept‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‎‏‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‏‏‏‎‏‎‏‏‎‏‏‏‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‎‎‏‏‏‏‎‎‎‎Decline‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‎‎‎‎‎‎‎‎‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‏‏‏‎‎‏‏‏‎‎‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‎‏‎‏‎‎‎OK‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‏‏‎‎‎‎‏‏‎‎‎‏‏‏‏‏‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‎‏‎‏‎‎‏‎‎‎‎‎‎‏‏‎‏‏‎‏‎‏‏‏‎‎Invitation sent‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‎‏‏‎‏‎‏‎‏‏‎‏‎‎‏‏‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎‎‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‏‎‏‎‎‏‎‎‏‎Invitation to connect‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‏‏‎‎‎‏‎‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‏‏‏‏‏‎‎‎‎‎‏‏‏‎From:‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‎‎‎‏‏‏‏‏‏‎‏‎‎‏‏‎‎‎‏‎‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‏‎‎‏‎‎‎‎‏‏‏‎‏‏‏‎‎‎‎‏‎‎To:‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‏‏‎‏‎‎‏‎‎‏‎‏‏‏‎‏‎‎‏‎‎‎‎‏‎‎‎‏‏‏‎‎‏‎‎‏‏‎‎‏‎‎‎‎‎‎‏‎‏‏‏‏‎‏‎‎‎‎‎‎Type the required PIN:‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‎‏‎‏‏‏‎‏‏‏‏‏‎‏‎‏‏‎‎‎‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎PIN:‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‎‎‎‏‎‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‎‎‏‎‎‏‏‏‏‎‎‎‏‎‏‏‏‏‎‏‎‎The tablet will temporarily disconnect from Wi-Fi while it\'s connected to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‏‎‏‎‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‎‏‏‎‎‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‎‎‎‏‏‎‏‎‏‎Your Android TV device will temporarily disconnect from Wi-Fi while it\'s connected to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‏‎‏‏‏‎‎‏‏‎‎‏‏‎‏‎‏‎‎‏‏‎‎‏‎‎‎‏‎‎‎‎‎‏‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‎‎‏‏‏‏‏‎‎The phone will temporarily disconnect from Wi-Fi while it\'s connected to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‏‏‎‏‎‏‎‎‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‏‎‎‏‎‎‎‏‎‎‎‎‏‎‏‎‎‎‎‎‎‎‏‏‏‎‎‏‏‎‎OK‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‏‎‎‎‎‎‎‏‎‏‎‏‏‎‎Can\'t connect to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‎‏‏‎‎‏‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‏‎‏‏‎‏‎‎‏‏‎‏‏‎‏‏‎‏‏‏‏‎Tap to change privacy settings and retry‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‏‏‏‏‏‎‏‏‏‎‎‎‎‏‏‏‎‎‎‎‏‎‎‏‎‎‎‎‏‎‎‏‎‎‏‏‏‏‎‎‎‏‏‏‎‎‏‏‎‎‎‏‏‎‏‎‎‎‎Change privacy setting?‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‎‎‏‏‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‏‏‎‏‏‏‎‏‎‏‎‏‎‎‏‎‏‎To connect, ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ needs to use your device MAC address, a unique identifier. Currently, your privacy setting for this network uses a randomized identifier. ‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎‎‏‎‎‏‏‎\n‎‏‎‎‏‏‏‎This change may allow your device\'s location to be tracked by nearby devices.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‏‎‏‏‏‏‏‏‎‏‏‏‏‎‎‎‏‎‏‏‎‎‎‎‎‎‎‏‏‎‎‏‎‏‏‎‏‎‎‎‏‎‏‏‏‎‏‏‎‎‏‏‎‏‎‏‏‎Change setting‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‏‎‏‎‎‏‎‎‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‎‎‏‏‎‏‏‎‏‏‏‎‎‎‎‏‎‏‎‎‎Setting updated. Try connecting again.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‎‏‏‎‏‎‏‏‎‎‏‎‏‎‏‎‎‎‏‎‏‎‎‏‏‎‏‏‎‏‎‏‏‎‏‎‏‏‏‎‎‎‎‏‏‎Can\'t change privacy setting‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‎‎‎‎‏‎‏‎‎‏‎‎‏‎‏‎‎‏‏‎‏‎‎‏‏‏‎‎‏‏‏‎‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‏‏‏‎‎‎‎‏‏‎‏‏‏‎Network not found‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‏‏‏‏‎‎‎‎‏‏‎‎‏‎‏‎‏‎‎‏‎‏‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32760‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‎‎‏‎‏‎‎‏‏‎‏‎‎‎‏‏‏‏‎‏‏‎‎‎‏‎‎‏‏‏‏‎‏‏‏‏‏‎‎‏‎‎‎‎‏‏‎‎‏‎‎‏‏‎‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32761‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‎‎‎‏‏‎‎‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‎‎‏‏‏‏‎‎‎‏‎‏‏‎‎‏‎‎‏‎‏‏‏‏‎‏‏‏‏‏‎‎‎‎‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32762‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‎‏‎‎‏‎‎‏‏‏‎‎‎‎‎‏‏‏‎‏‎‏‏‏‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‏‏‏‏‏‎‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32763‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‎‎‏‎‏‎‏‏‏‏‎‏‎‎‎‎‏‎‏‏‏‎‎‏‏‏‎‎‎‎‎‎‎‎‏‎‎‎‏‏‎‏‎‏‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32764‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‎‎‎‏‎‎‎‎‎‎‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32765‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‏‏‏‏‏‎‏‏‏‎‎‎‎‎‎‎‏‎‏‎‏‎‎‎‏‏‏‏‎‎‎‎‎‎‏‏‏‎‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‏‏‎‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : EAP authentication error 32766‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‎‏‏‏‎‏‎‎‏‏‎‎‏‏‎‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‏‏‏‎‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‎‏‎‏‏‎‏‏‎Hotspot turned off‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‎‎‏‏‏‎‏‎‎‎‏‏‏‏‎‏‏‏‏‎‏‏‏‎‎‎‏‏‎‏‎‎‏‎‎‎‎‎‎‎‎‎‎‎‎‎‏‏‏‏‏‏‎‎‎‏‎‎‏‎‏‎No devices connected. Tap to modify.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‏‎‎‎‎‎‎‏‏‏‎‏‏‎‎‏‎‎‏‎‏‏‏‎‎‏‎‎‏‎‎‎‏‎‏‎‏‎‎‎‎‏‎‎‏‎‎‎‏‎‏‏‏‎‏‏‎‎‎‎Wi‑Fi disconnected‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‎‏‎‎‎‏‏‏‎‏‎‎‏‎‎‎‎‏‎‏‏‏‎‎‏‎‏‏‎‎‎‎‎‏‎‎‎‏‎‏‏‏‎‎‏‎‎‎‎‎‏‎‎‏‏‏‏‎‏‏‎To connect to ‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎, insert a ‎‏‎‎‏‏‎%2$s‎‏‎‎‏‏‏‎ SIM‎‏‎‎‏‎" - diff --git a/service/res/values-iw/strings.xml b/service/res/values-iw/strings.xml index d7ceddd9c..ad8fc46d9 100644 --- a/service/res/values-iw/strings.xml +++ b/service/res/values-iw/strings.xml @@ -77,7 +77,7 @@ "‏%1$s : שגיאה 32764 באימות EAP" "‏%1$s : שגיאה 32765 באימות EAP" "‏%1$s : שגיאה 32766 באימות EAP" - "נקודה לשיתוף אינטרנט נכבתה" + "‏נקודת האינטרנט (hotspot) נכבתה" "אין מכשירים מחוברים. יש להקיש כדי לשנות." "‏Wi-Fi מנותק" "‏יש להכניס SIM של %2$s כדי להתחבר אל %1$s" diff --git a/service/res/values-mcc310-mnc004-en-rXC/strings.xml b/service/res/values-mcc310-mnc004-en-rXC/strings.xml deleted file mode 100644 index cf47a174e..000000000 --- a/service/res/values-mcc310-mnc004-en-rXC/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‎‎‎‏‏‎‏‎‏‏‏‏‎‏‎‏‎‎‏‏‏‎‏‎‏‏‏‏‎‏‎‏‎‎‎‏‏‏‏‎‎‏‏‎‏‎‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : You can’t connect to Verizon Wi-Fi Access from outside the Verizon coverage area.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‎‎‏‎‎‎‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‎‏‎‎‏‏‎‎‏‏‏‎‏‎‎‎‎‎‏‏‎‎‎‎‏‎‏‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : You are not subscribed to Verizon Wi-Fi Access. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‎‏‏‎‏‎‎‎‎‎‏‏‎‏‎‎‏‎‎‏‎‎‏‎‎‏‏‏‏‎‎‏‎‏‎‏‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‏‏‏‎‏‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : There is a problem with your Verizon Wi-Fi Access account. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‎‏‎‏‏‏‎‏‎‏‏‎‎‏‎‎‎‏‏‎‏‎‎‎‏‎‏‏‎‎‎‎‎‎‏‏‏‎‎‎‏‏‏‎‎‎‎‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : You are already connected to Verizon Wi-Fi Access.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‏‏‎‎‏‏‎‎‎‎‏‎‏‏‏‏‏‎‎‎‏‏‎‏‎‎‏‏‏‎‏‎‏‏‎‎‎‎‏‎‏‏‏‏‏‏‏‎‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : There is a problem connecting you to Verizon Wi-Fi Access. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‏‏‏‎‎‏‎‏‏‎‎‏‏‏‎‏‎‎‎‏‏‎‎‎‎‏‎‏‎‏‎‎‏‎‎‎‏‎‏‏‎‎‏‏‎‎‎‎‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : There is a problem with your Verizon Wi-Fi Access account. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‎‎‎‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‏‏‎‎‎‎‎‎‎‎‏‎‎‎‏‎‏‏‎‏‏‎‎‏‏‏‎‏‏‎‎‏‏‏‏‎‏‏‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : Verizon Wi-Fi Access is not available from your location. Try again later or try from a different location.‎‏‎‎‏‎" - diff --git a/service/res/values-mcc311-mnc480-en-rXC/strings.xml b/service/res/values-mcc311-mnc480-en-rXC/strings.xml deleted file mode 100644 index 78f49226c..000000000 --- a/service/res/values-mcc311-mnc480-en-rXC/strings.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‏‏‏‏‏‎‎‏‏‏‎‎‎‏‎‏‎‎‏‏‎‎‏‎‏‏‏‎‏‏‎‏‎‏‎‎‏‏‎‎‎‏‏‏‏‎‎‏‎‎‏‎‏‏‏‎‎‎‏‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : You can’t connect to Verizon Wi-Fi Access from outside the Verizon coverage area.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‎‎‎‎‏‎‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‏‏‎‏‎‎‏‎‏‎‏‏‎‎‎‎‎‏‎‏‎‎‏‎‏‎‏‏‏‎‎‎‎‏‏‎‏‏‏‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : You are not subscribed to Verizon Wi-Fi Access. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‎‏‏‎‏‎‏‏‏‏‏‏‏‏‎‏‎‎‎‎‏‏‎‎‏‏‏‎‏‏‏‏‎‏‏‎‏‏‎‎‏‎‏‏‎‎‎‎‏‎‎‏‏‎‏‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : There is a problem with your Verizon Wi-Fi Access account. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‎‏‎‏‏‏‏‎‎‏‏‎‎‏‎‎‎‎‎‏‏‎‏‎‎‏‎‏‏‎‏‏‏‏‎‏‎‎‎‏‎‎‎‏‎‎‎‏‎‏‏‏‎‏‎‎‏‎‏‏‎‏‏‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : You are already connected to Verizon Wi-Fi Access.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‏‏‎‎‏‎‎‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‎‏‏‏‏‎‏‎‎‎‏‏‏‎‏‏‎‎‎‎‏‏‏‎‎‎‏‏‏‎‏‎‏‎‎‏‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : There is a problem connecting you to Verizon Wi-Fi Access. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‏‏‏‏‏‎‎‎‏‎‎‎‏‏‎‏‏‏‏‎‏‎‎‎‎‏‎‎‎‏‎‏‎‎‏‎‏‏‎‏‎‎‏‏‎‎‎‎‏‏‏‎‏‏‏‎‎‏‎‎‏‏‏‎‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : There is a problem with your Verizon Wi-Fi Access account. Please call us at 800-922-0204.‎‏‎‎‏‎" - "‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‏‏‏‏‏‎‎‏‏‎‏‎‏‎‏‏‎‏‎‏‏‎‏‏‏‏‎‎‎‏‏‎‏‏‏‏‎‏‎‏‎‏‏‎‎‏‏‎‎‎‏‎‏‏‎‏‏‏‎‎‏‏‎‏‎‏‎‎‎‏‎‎‏‏‎%1$s‎‏‎‎‏‏‏‎ : Verizon Wi-Fi Access is not available from your location. Try again later or try from a different location.‎‏‎‎‏‎" - -- cgit v1.2.3