Merge "Update IN emergency routing." into main
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index b6171fc..3dc9e08 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -181,6 +181,8 @@
 
     <!-- Needed because the DISPLAY_EMERGENCY_MESSAGE ConnectionEvent contains a PendingIntent to activate the satellite feature. -->
     <uses-permission android:name="com.google.android.apps.stargate.permission.SEND_EMERGENCY_INTENTS"/>
+    <!-- Needed to start demo session -->
+    <uses-permission android:name="com.google.android.apps.stargate.permission.SEND_NON_EMERGENCY_INTENTS"/>
 
     <application android:name="PhoneApp"
             android:persistent="true"
@@ -563,7 +565,7 @@
 
         <receiver
           android:name="com.android.phone.vvm.VvmSmsReceiver"
-            android:exported="false"
+            android:exported="true"
             androidprv:systemUserOnly="true">
             <intent-filter>
                 <action android:name="com.android.internal.provider.action.VOICEMAIL_SMS_RECEIVED"/>
@@ -572,7 +574,7 @@
 
         <receiver
             android:name="com.android.phone.vvm.VvmSimStateTracker"
-            android:exported="false"
+            android:exported="true"
             androidprv:systemUserOnly="true">
             <intent-filter>
                 <action android:name="android.intent.action.BOOT_COMPLETED"/>
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 24590bc..9ab8157 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -283,6 +283,16 @@
             android:textAllCaps="false"
             android:text="@string/satellite_enable_non_emergency_mode_string" />
 
+        <!-- Demo ESOS -->
+        <Button android:id="@+id/demo_esos_questionnaire"
+                android:textSize="14sp"
+                android:layout_marginTop="8dip"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textAllCaps="false"
+                android:text="@string/demo_esos_satellite_string"
+        />
+
         <!-- VoLTE provisioned -->
         <Switch android:id="@+id/volte_provisioned_switch"
                 android:textSize="14sp"
diff --git a/res/values-af/strings.xml b/res/values-af/strings.xml
index ab4d432..62d1768 100644
--- a/res/values-af/strings.xml
+++ b/res/values-af/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satellietmodus van skyndiensverskaffer (net ontfoutingsbou)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Toets regte satelliet-eSOS-modus (net ontfoutingsbou)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Toets nie-eSOS-modus vir regte satelliet (net ontfoutingsbou)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Toets demonstrasiesatelliet-eSOS-modus (net ontfoutingsbou)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Bekyk SIM-adresboek"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kyk na vaste skakelnommers"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Bekyk skakeldiensnommers"</string>
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 542906e..6d06af7 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (የስህተት ማረሚያ ግንባታ ብቻ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"የእውነተኛ ሳተላይት eSOS ሁነታን ይሞክሩ (የስህተት ማረሚያ ግንብ ብቻ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"የእውነተኛ ሳተላይት eSOS ያልሆነ ሁነታን ይሞክሩ (የስህተት ማረሚያ ግንብ ብቻ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"የቅንጭብ ማሳያ ሳተላይት eSOS ሁነታን ይሞክሩ (የስህተት ማረሚያ ግንብ ብቻ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"የሲም አድራሻ ደብተር አሳይ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"በቋሚነት የሚደወልባቸው ቁጥሮች"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"የአገልግሎት መደወያ ቁጥሮችን ተመልከት"</string>
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 7bcf5df..3711f6d 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"وضع القمر الصناعي التجريبي لمشغّل شبكة الجوّال (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"‏اختبار وضع القمر الصناعي الحقيقي لنظام eSOS (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"‏اختبار وضع القمر الصناعي الحقيقي غير تابع لنظام eSOS (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"اختبار وضع \"اتصالات الطوارئ بالقمر الصناعي\" التجريبي (إصدار مخصّص لتصحيح الأخطاء فقط)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏عرض دفتر عناوين SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"عرض أرقام الطلب الثابت"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"عرض أرقام طلب الخدمة"</string>
diff --git a/res/values-as/strings.xml b/res/values-as/strings.xml
index 8bd4124..3d4e9e5 100644
--- a/res/values-as/strings.xml
+++ b/res/values-as/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"নকল বাহক উপগ্ৰহ ম’ড (কেৱল ডিবাগ বিল্ড)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"বাস্তৱিক উপগ্ৰহৰ eSOS ম’ড পৰীক্ষা কৰক (কেৱল ডিবাগ বিল্ড)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"বাস্তৱিক উপগ্ৰহৰ অনা eSOS ম’ড পৰীক্ষা কৰক (কেৱল ডিবাগ বিল্ড)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"উপগ্ৰহৰ eSOS ম’ডৰ ডেম’ পৰীক্ষা কৰক (কেৱল ডিবাগ বিল্ড)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ছিম ঠিকনা সূচী চাওক"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ফিক্সড্ ডায়েলিং নম্বৰসমূহ চাওক"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সেৱা ডায়েলিং নম্বৰসমূহ চাওক"</string>
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index 2f116a0..98cba28 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Sınaq Daşıyıcı Peyk Rejimi (yalnız sazlama versiyası)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Real peyk eSOS rejimini sınaqdan keçirin (yalnız sazlama versiyası)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Real peyk qeyri-eSOS rejimini sınaqdan keçirin (yalnız sazlama versiyası)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo peyk eSOS rejimini sınaqdan keçirin (yalnız sazlama versiyası)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Ünvan Kitabçasına Baxın"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Yığım Nömrələrinə Baxın"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xidmət Yığım Nömrələrinə Baxın"</string>
diff --git a/res/values-b+sr+Latn/strings.xml b/res/values-b+sr+Latn/strings.xml
index 7b1f8f1..5847e27 100644
--- a/res/values-b+sr+Latn/strings.xml
+++ b/res/values-b+sr+Latn/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni režim mobilnog operatera za slanje preko satelita (samo verzija za otklanjanje grešaka)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testirajte stvarni satelitski eSOS režim (samo verzija sa otklonjenim greškama)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testirajte stvarni satelitski režim koji nije eSOS (samo verzija sa otklonjenim greškama)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testirajte demo verziju satelitskog eSOS režima (samo verzija sa otklonjenim greškama)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži adresar SIM-a"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index a3df58c..3e340b0 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Імітацыя рэжыму спадарожніка з SIM-картай ад аператара (толькі ў зборцы для адладкі)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Тэсціраванне рэальнага рэжыму спадарожнікавага падключэння eSOS (толькі ў зборцы для адладкі)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тэсціраванне рэальнага няэкстраннага (non-eSOS) рэжыму спадарожнікавага падключэння (толькі ў зборцы для адладкі)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тэсціраванне дэманстрацыйнага рэжыму спадарожнікавага падключэння eSOS (толькі ў зборцы для адладкі)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Праглядзець адрасную кнігу на SIM-карце"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прагляд фіксаваных нумароў"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Паглядзець сэрвісныя нумары"</string>
diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml
index 565f0c4..0b867c0 100644
--- a/res/values-bg/strings.xml
+++ b/res/values-bg/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Симулиран сателитен режим от оператора (само в компилацията за отстраняване на грешки)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Тестване на режим на истински сателитен eSOS (само в компилацията за отстраняване на грешки)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестване на режим на истинска сателитна неспешна комуникация (само в компилацията за отстраняване на грешки)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестване на режим на демонстрация на сателитен eSOS (само в компилацията за отстраняване на грешки)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Преглед на указателя на SIM картата"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Преглед на номера за фиксирано набиране"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Преглед на номера за набиране на услуги"</string>
diff --git a/res/values-bn/strings.xml b/res/values-bn/strings.xml
index 8c2f1e3..1dbc459 100644
--- a/res/values-bn/strings.xml
+++ b/res/values-bn/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"নকল পরিষেবা প্রদানকারী উপগ্রহ মোড (শুধুমাত্র ডিবাগ বিল্ড)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"রিয়েল স্যাটেলাইট eSOS মোড পরীক্ষা করুন (শুধুমাত্র ডিবাগ বিল্ড)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"রিয়েল স্যাটেলাইট নন-ইএসওএস মোড পরীক্ষা করুন (শুধুমাত্র ডিবাগ বিল্ড)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ডেমো স্যাটেলাইট eSOS মোড পরীক্ষা করুন (শুধুমাত্র ডিবাগ বিল্ড)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"সিম অ্যাড্রেস বুক দেখুন"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"স্থায়ী ডায়াল নম্বরগুলি দেখুন"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"সার্ভিস ডায়াল নম্বরগুলি দেখুন"</string>
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 258bc3e..53de99d 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni način rada operatera za slanje putem satelita (samo verzija za otklanjanje grešaka)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testiraj stvarni način rada satelitskog eSOS-a (samo verzija za otklanjanje grešaka)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testiraj stvarni način rada satelita koji nije eSOS (samo verzija za otklanjanje grešaka)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testiraj demo način rada satelitskog eSOS-a (samo verzija za otklanjanje grešaka)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži SIM adresar"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve fiksnog biranja"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve biranja usluga"</string>
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index fbca0e7..2caf08b 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mode de satèl·lit d\'un operador de telefonia mòbil simulat (només per a la compilació de depuració)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Provar el mode eSOS de satèl·lit real (només per a la compilació de depuració)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Prova el mode no eSOS de satèl·lit real (només per a la compilació de depuració)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Provar el mode de demostració d\'eSOS de satèl·lit (només per a la compilació de depuració)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Mostra la llibreta d\'adreces de la SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Mostra els números de marcatge fix"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Mostra els números de marcatge de serveis"</string>
diff --git a/res/values-cs/strings.xml b/res/values-cs/strings.xml
index 1ba26ab..f925eed 100644
--- a/res/values-cs/strings.xml
+++ b/res/values-cs/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulace satelitního režimu operátora (pouze ladicí sestavení)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Otestovat reálný režim nouzových zpráv přes satelit (pouze ladicí sestavení)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Otestovat reálný režim jiných než nouzových zpráv přes satelit (pouze ladicí sestavení)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Otestovat ukázkový režim nouzových zpráv přes satelit (pouze ladicí sestavení)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobrazit adresář SIM karty"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobrazit povolená telefonní čísla"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobrazit čísla volání služeb"</string>
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 8f22449..209c3b8 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Test af satellittilstand via mobilselskab (kun fejlretningsbuild)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test af virkelig eSOS-satellittilstand (kun fejlretningsbuild)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test af virkelig satellittilstand, der ikke er eSOS (kun fejlretningsbuild)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test af demo for eSOS-satellittilstand (kun fejlretningsbuild)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Vis adressebog på SIM-kortet"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis numre til begrænset opkald"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestens faste opkaldsnumre"</string>
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 48b244b..63b55b8 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Vom Mobilfunkanbieter simulierter Satellitenmodus (nur Debug-Build)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"eSOS-Modus mit echtem Satelliten testen (nur Debug-Build)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"non-eSOS-Modus mit echtem Satelliten testen (nur Debug-Build)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"eSOS-Modus mit Demo-Satelliten testen (nur Debug-Build)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-Adressbuch anzeigen"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Rufnummernbeschränkung ansehen"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicerufnummern anzeigen"</string>
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 21a6a3d..1bea937 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Εικονική λειτουργία δορυφόρου εταιρείας κινητής τηλεφωνίας (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Δοκιμή πραγματικής δορυφορικής λειτουργίας eSOS (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Δοκιμή πραγματικής δορυφορικής λειτουργίας εκτός eSOS (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Έλεγχος δοκιμαστικής δορυφορικής λειτουργίας eSOS (μόνο έκδοση εντοπισμού σφαλμάτων)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Προβολή βιβλίου διευθύνσεων κάρτας SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Προβολή προκαθορισμένων αριθμών κλήσης"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Προβολή αριθμών κλήσης υπηρεσίας"</string>
diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml
index 6781469..aa47712 100644
--- a/res/values-en-rAU/strings.xml
+++ b/res/values-en-rAU/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock operator satellite mode (debug build only)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (debug build only)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (debug build only)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (debug build only)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml
index 23e47f4..787865a 100644
--- a/res/values-en-rCA/strings.xml
+++ b/res/values-en-rCA/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (Debug Build only)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (Debug Build only)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (Debug Build only)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (Debug Build only)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM Address Book"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View Fixed Dialing Numbers"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View Service Dialing Numbers"</string>
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 6781469..aa47712 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock operator satellite mode (debug build only)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (debug build only)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (debug build only)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (debug build only)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml
index 6781469..aa47712 100644
--- a/res/values-en-rIN/strings.xml
+++ b/res/values-en-rIN/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock operator satellite mode (debug build only)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (debug build only)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (debug build only)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (debug build only)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"View SIM address book"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"View fixed dialling numbers"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"View service dialling numbers"</string>
diff --git a/res/values-en-rXC/strings.xml b/res/values-en-rXC/strings.xml
index 937a21b..e63ff72 100644
--- a/res/values-en-rXC/strings.xml
+++ b/res/values-en-rXC/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‎‏‎‎‎‏‏‏‏‏‏‏‎‎‎‎‏‏‎‏‎‏‎‏‏‎‎‎‎‎‏‏‏‏‎‏‏‏‏‎‎‎‎‎‏‏‎‎‏‎‏‏‏‎‎‎‏‎Mock Carrier Satellite Mode (Debug Build only)‎‏‎‎‏‎"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‎‎‏‎‎‏‏‏‏‎‏‎‏‎‏‎‎‎‎‏‎‏‏‎‎‏‏‏‎‎‎‎‏‏‏‏‎‎‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‎‎‎‏‎‎‎‏‎Test real satellite eSOS mode (Debug Build only)‎‏‎‎‏‎"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‏‏‏‏‏‏‎‎‏‏‏‏‏‎‎‏‎‏‎‏‏‏‏‎‎‏‎‏‎‏‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‎‏‏‏‎‏‏‏‎‎‏‎‏‏‎‏‏‎‎‎Test real satellite non-eSOS mode (Debug Build only)‎‏‎‎‏‎"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‏‎‎‎‏‏‎‏‎‎‏‏‎‏‏‎‏‎‎‏‏‏‏‏‎‏‎‎‏‏‏‎‎‏‏‎‏‏‎‏‎‏‎‎‏‏‎‏‎‎‏‎‎‏‏‎‎‎‏‎‎Test demo satellite eSOS mode (Debug Build only)‎‏‎‎‏‎"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‏‏‏‏‎‏‏‏‎‏‎‎‏‎‎‎‏‎‏‏‎‏‏‏‏‎‎‏‎‏‎‎‎‏‎‏‏‏‏‎‎‏‏‏‎‎‎‏‏‏‎‎‏‏‏‏‎‎‏‏‎‎View SIM Address Book‎‏‎‎‏‎"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‎‏‏‏‎‎‏‏‎‏‎‎‎‏‎‏‎‏‏‎‎‏‏‏‏‎‎‏‎‏‎‏‎‏‏‏‏‎‏‏‏‏‏‎‏‎‎‏‏‎‏‏‏‏‎‏‏‏‏‏‏‎‏‎View Fixed Dialing Numbers‎‏‎‎‏‎"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"‎‏‎‎‎‎‎‏‎‏‏‏‎‎‎‎‎‎‏‎‎‏‎‎‎‎‎‏‏‏‏‏‎‏‎‎‏‎‎‎‏‎‎‎‏‎‎‏‏‎‎‎‏‏‎‎‎‏‎‏‏‎‏‏‏‏‏‏‎‎‎‎‎‏‏‏‏‏‎‎‏‎‏‎‏‎‏‎‎‎‎‏‎‏‎‎View Service Dialing Numbers‎‏‎‎‏‎"</string>
diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml
index 0f9eb27..b16e00a 100644
--- a/res/values-es-rUS/strings.xml
+++ b/res/values-es-rUS/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Modo Satélite del operador de prueba (solo en la compilación de depuración)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Prueba el modo eSOS de satélite real (solo en la compilación de depuración)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Prueba el modo que no es eSOS por satélite real (solo en la compilación de depuración)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Prueba el modo de demostración de eSOS de satélite (solo en la compilación de depuración)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 6ae502c..02ffc3f 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulación del modo Satélite de operador (solo versión de depuración)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Probar el modo eSOS por satélite real (solo versión de depuración)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Probar el modo no eSOS por satélite real (solo versión de depuración)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Probar el modo eSOS por satélite de demostración (solo versión de depuración)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver libreta de direcciones de tarjeta SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fija"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servicio"</string>
diff --git a/res/values-et/strings.xml b/res/values-et/strings.xml
index cde1355..c40fc7c 100644
--- a/res/values-et/strings.xml
+++ b/res/values-et/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simuleeritud operaatori satelliidirežiim (ainult silumisjärgus)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Režiimi eSOS katsetamine reaalse satelliitsidesüsteemi puhul (ainult silumisjärk)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Režiimi mitte-eSOS katsetamine reaalse satelliitsidesüsteemi puhul (ainult silumisjärk)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Režiimi eSOS katsetamine demo satelliitsidesüsteemi puhul (ainult silumisjärk)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Kuva SIM-i aadressiraamat"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Kuva fikseeritud valimisnumbrid"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Kuva teenuse valimise numbrid"</string>
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index d89c331..1400f18 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulatu operadorearen satelite modua (arazketa-konpilazioa soilik)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Probatu satelite bidezko SOS larrialdien modua (arazketa-konpilazioa soilik)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Probatu satelite bidezko SOS larrialdien modua ez dena (arazketa-konpilazioa soilik)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Probatu satelite bidezko SOS larrialdien moduaren demo-bertsioa (arazketa-konpilazioa soilik)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ikusi SIMeko kontaktuak"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ikusi markatze finkoko zenbakiak"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ikusi zerbitzuaren markatze-zenbakiak"</string>
@@ -871,7 +872,7 @@
     <string name="radioInfo_data_disconnected" msgid="8085447971880814541">"Deskonektatuta"</string>
     <string name="radioInfo_data_connecting" msgid="925092271092152472">"Konektatzen"</string>
     <string name="radioInfo_data_connected" msgid="7637335645634239508">"Konektatuta"</string>
-    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Aldi baterako itxitakoak"</string>
+    <string name="radioInfo_data_suspended" msgid="8695262782642002785">"Aldi baterako etenda"</string>
     <string name="radioInfo_unknown" msgid="5401423738500672850">"Ezezaguna"</string>
     <string name="radioInfo_imei_primary" msgid="5948747378637224400">"Nagusia"</string>
     <string name="radioInfo_display_packets" msgid="6794302192441084157">"pkts"</string>
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index baeb97e..eee2cad 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"حالت ماهواره‌ای شرکت مخابراتی ساختگی (فقط ساخت اشکال‌زدایی)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"آزمایش کردن حالت واقعی درخواست کمک اضطراری ماهواره‌ای (فقط ساخت اشکال‌زدایی)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"آزمایش کردن حالت واقعی درخواست کمک غیراضطراری ماهواره‌ای (فقط ساخت اشکال‌زدایی)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"آزمایش کردن نسخه نمایشی درخواست کمک اضطراری ماهواره‌ای (فقط ساخت اشکال‌زدایی)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"مشاهده دفترچه نشانی سیم‌کارت"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"مشاهده شماره‌های شماره‌گیری ثابت"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"مشاهده شماره‌های شماره‌گیری سرویس"</string>
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
index e4fdf01..c7a42bf 100644
--- a/res/values-fi/strings.xml
+++ b/res/values-fi/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Operaattorin satelliittitilaesimerkki (vain virheenkorjauksen koontiversio)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testaa oikeaa Satellite eSOS ‑tilaa (vain virheenkorjauksen koontiversio)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testaa oikeaa Satellite non-eSOS ‑tilaa (vain virheenkorjauksen koontiversio)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testaa Satellite eSOS ‑demotilaa (vain virheenkorjauksen koontiversio)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Näytä SIM-kortin osoitekirja"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Näytä sallitut numerot"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Näytä sallitut palvelunumerot"</string>
diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml
index 7f92869..b41952a 100644
--- a/res/values-fr-rCA/strings.xml
+++ b/res/values-fr-rCA/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mode Satellite de l\'opérateur simulé (version de débogage uniquement)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Tester le mode eSOS par satellite réel (version de débogage uniquement)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Tester le mode non-eSOS par satellite réel (version de débogage uniquement)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Tester eSOS par satellite en mode Démo (version de débogage uniquement)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros d\'appel fixes"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index ed4b589..65539b6 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simuler le mode Satellite de l\'opérateur (version de débogage uniquement)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Tester le SOS par satellite en mode réel (version de débogage uniquement)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Tester le mode non-eSOS par satellite réel (version de débogage uniquement)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Tester eSOS par satellite en mode démo (version de débogage uniquement)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afficher le carnet d\'adresses de la carte SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afficher les numéros autorisés"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Afficher les numéros de service"</string>
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 605f596..4240da8 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simular o modo Satélite do operador (só compilación de depuración)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Probar o modo real eSOS por satélite (só compilación de depuración)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Probar o modo real non eSOS por satélite (só compilación de depuración)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Probar o modo de demostración de eSOS por satélite (só compilación de depuración)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver axenda de enderezos da SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de marcación fixa"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcación de servizo"</string>
diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml
index 7daef87..576f693 100644
--- a/res/values-gu/strings.xml
+++ b/res/values-gu/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"મૉક કૅરિઅર સૅટલાઇટ મોડ (માત્ર ડિબગ બિલ્ડ માટે)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"રિઅલ સૅટલાઇટ eSOS મોડનું પરિક્ષણ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"રિઅલ સૅટલાઇટ નૉન-eSOS મોડનું પરિક્ષણ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ડેમો સૅટલાઇટ eSOS મોડનું પરીક્ષણ કરો (માત્ર ડિબગ બિલ્ડ માટે)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"સિમમાં સરનામા પુસ્તિકા જુઓ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ફિક્સ્ડ ડાયલિંગ નંબર જુઓ"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"સર્વિસ ડાયલિંગ નંબર જુઓ"</string>
diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml
index fceb3ab..701a5e8 100644
--- a/res/values-hi/strings.xml
+++ b/res/values-hi/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"मोबाइल और इंटरनेट सेवा देने वाली कंपनी के सैटलाइट मोड की मॉक टेस्टिंग करें (सिर्फ़ डीबग के लिए बिल्ड)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"रीयल सैटलाइट इमरजेंसी एसओएस मोड को आज़माएं (सिर्फ़ डीबग के लिए बिल्ड)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"रीयल सैटलाइट नॉन इमरजेंसी एसओएस मोड को आज़माएं (सिर्फ़ डीबग के लिए बिल्ड)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"डेमो सैटलाइट इमरजेंसी एसओएस मोड को आज़माएं (सिर्फ़ डीबग के लिए बिल्ड)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम में संपर्कों के पते की सूची देखें"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"फ़िक्स्ड डायलिंग नंबर देखें"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवा के डायलिंग नंबर देखें"</string>
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index b232e94..4c6018f 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni način mobilnog operatera za slanje putem satelita (samo međuverzija programa za otklanjanje pogrešaka)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testiranje eSOS načina pravog satelita (samo međuverzija programa za otklanjanje pogrešaka)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testiranje načina pravog satelita bez eSOS-a (samo međuverzija programa za otklanjanje pogrešaka)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testiranje pokazne verzije eSOS načina satelita (samo međuverzija programa za otklanjanje pogrešaka)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik SIM-a"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži brojeve za fiksno biranje"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži brojeve za servisno biranje"</string>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index 679aa78..0d40686 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Szimulált szolgáltató – Műholdas mód (csak hibaelhárító build)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"A valódi műholdas eSOS mód tesztelése (csak hibaelhárító build)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"A valódi műholdas, nem eSOS mód tesztelése (csak hibaelhárító build)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"A műholdas eSOS demó mód tesztelése (csak hibaelhárító build)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-kártya telefonkönyvének megtekintése"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Fix hívószámok megtekintése"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Szolgáltatásszámok megtekintése"</string>
diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml
index df55938..e4796c6 100644
--- a/res/values-hy/strings.xml
+++ b/res/values-hy/strings.xml
@@ -561,7 +561,7 @@
     <string name="incall_error_wfc_only_no_wireless_network" msgid="5860742792811400109">"Զանգ կատարելու համար միացեք անլար ցանցին:"</string>
     <string name="incall_error_promote_wfc" msgid="9164896813931363415">"Զանգ կատարելու համար միացրեք «Զանգեր Wi-Fi ցանցի միջոցով» գործառույթը:"</string>
     <string name="incall_error_satellite_enabled" msgid="5247740814607087814">"Զանգ կատարելու համար նախ անջատեք արբանյակային կապը։"</string>
-    <string name="incall_error_carrier_roaming_satellite_mode" msgid="678603203562886361">"Դուք կարող եք ուղարկել և ստանալ հաղորդագրություններ՝ առանց բջջային կամ Wi-Fi կապի։"</string>
+    <string name="incall_error_carrier_roaming_satellite_mode" msgid="678603203562886361">"Դուք կարող եք հաղորդագրություններ ուղարկել և ստանալ առանց բջջային կամ Wi-Fi կապի։"</string>
     <string name="emergency_information_hint" msgid="9208897544917793012">"Անհետաձգելի բուժօգնության տվյալներ"</string>
     <string name="emergency_information_owner_hint" msgid="6256909888049185316">"Սեփականատեր"</string>
     <string name="emergency_information_confirm_hint" msgid="5109017615894918914">"Կրկին հպեք՝ տեղեկությունները դիտելու համար"</string>
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Օպերատորի արբանյակի ռեժիմի սիմուլյացիա (միայն վրիպազերծման կառուցում)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Փորձարկել իրական արբանյակային eSOS ռեժիմը (միայն վրիպազերծման կառուցման մեջ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Փորձարկել իրական արբանյակային ոչ eSOS ռեժիմը (միայն վրիպազերծման կառուցման մեջ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Փորձարկել արբանյակային eSOS ռեժիմը դեմո տարբերակով (միայն վրիպազերծման կառուցման մեջ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Դիտել SIM քարտի հասցեագիրքը"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Տեսնել ամրակցված հեռախոսահամարները"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Տեսնել ծառայությունների հեռախոսահամարները"</string>
diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml
index 4dcfe10..e10e576 100644
--- a/res/values-in/strings.xml
+++ b/res/values-in/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mode Satelit Operator Tiruan (khusus Build Debug)."</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Uji mode eSOS satelit asli (khusus Build Debug)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Uji mode non-eSOS satelit asli (khusus Build Debug)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Uji mode eSOS satelit demo (khusus Build Debug)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Panggilan Terbatas"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nomor Panggilan Layanan"</string>
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index ca79dab..80d183a 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Eftirlíking af gervihnattarstillingu símafyrirtækis (aðeins villuleitarsmíði)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Prófa eSOS-stillingu raunverulegs gervihnattar (eingöngu villuleitarsmíð)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Prófa af-eSOS-stillingu raunverulegs gervihnattar (eingöngu villuleitarsmíð)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Prófa prufuútgáfu af eSOS-stillingu gervihnattar (eingöngu villuleitarsmíð)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skoða símaskrá SIM-korts"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skoða læst númeraval"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Skoða þjónustunúmer"</string>
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 783d454..24fa3f5 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Modalità satellite operatore fittizio (solo build di debug)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testa la modalità eSOS con satellite reale (solo build di debug)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testa la modalità non-eSOS con satellite reale (solo build di debug)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Prova la demo della modalità eSOS con satellite (solo build di debug)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visualizza rubrica SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visualizza numeri consentiti"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visualizza numeri dell\'elenco dei numeri di servizio"</string>
diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml
index 86877f3..8beaca6 100644
--- a/res/values-iw/strings.xml
+++ b/res/values-iw/strings.xml
@@ -850,6 +850,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"‏מצב שמדמה תקשורת לוויינית דרך ספק הסלולר (גרסת build לניפוי באגים בלבד)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"‏מצב בדיקה שמדמה תקשורת לוויינית eSOS (גרסת build לניפוי באגים בלבד)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"‏מצב בדיקה שמדמה תקשורת לוויינית לא במצב eSOS (גרסת build לניפוי באגים בלבד)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"‏מצב בדיקה שמדמה תקשורת לוויינית eSOS (גרסת build לניפוי באגים בלבד)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏הצגת פנקס כתובות של SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"הצגת מספרי חיוג קבועים"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"מספרי חיוג לשירות"</string>
diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml
index 45dea92..4d7e6ef 100644
--- a/res/values-ja/strings.xml
+++ b/res/values-ja/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"携帯通信会社の疑似航空写真モード(デバッグビルドのみ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"実際に衛星経由の緊急 SOS モードをテストする(デバッグビルドのみ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"実際に衛星経由の非緊急 SOS モードをテストする(デバッグビルドのみ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"デモ用の衛星による緊急 SOS モードをテストする(デバッグビルドのみ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM のアドレス帳を表示"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"発信番号制限を表示"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"サービス電話番号を表示"</string>
diff --git a/res/values-ka/strings.xml b/res/values-ka/strings.xml
index fcefd85..84bef56 100644
--- a/res/values-ka/strings.xml
+++ b/res/values-ka/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"სიმულაციური ოპერატორის სატელიტის რეჟიმი (მხოლოდ გამართვის აგება)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"სატელიტური eSOS-ის რეალური რეჟიმის ტესტირება (მხოლოდ გამართვის მიზნით)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"სატელიტური eSOS-ის რეალური რეჟიმის ტესტირება (მხოლოდ გამართვის მიზნით)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"სატელიტური eSOS-ის დემო-ვერსიის ტესტირება (მხოლოდ გამართვის მიზნით)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM-ის მისამართების წიგნის ნახვა"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"დაშვებული ნომრების ნახვა"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"სერვისის დარეკილი ნომრების ნახვა"</string>
diff --git a/res/values-kk/strings.xml b/res/values-kk/strings.xml
index 696f4e1..80cf2db 100644
--- a/res/values-kk/strings.xml
+++ b/res/values-kk/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier жер серігі режимі (тек түзету құрамасы)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Шынайы жерсеріктегі құтқару қызметін шақыру режимін сынау (тек түзету құрамасы)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Шынайы жерсерікті құтқару қызметін шақыру режимінен басқа режимде сынау (тек түзету құрамасы)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Демо жерсеріктегі құтқару қызметін шақыру режимін сынау (тек түзету құрамасы)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM мекенжай кітапшасын көру"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Рұқсат нөмірлерді көру"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Қызметтік теру нөмірлерін көру"</string>
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b0cb037..e8754ae 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"មុខងារ​ផ្កាយរណប​ក្រុមហ៊ុន​សេវាទូរសព្ទ​សាកល្បង (កំណែបង្កើត​សម្រាប់​ជួសជុល​តែប៉ុណ្ណោះ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"មុខងារ​ធ្វើតេស្ត eSOS ផ្កាយរណប​ជាក់ស្ដែង (កំណែបង្កើត​សម្រាប់​ជួសជុល​តែប៉ុណ្ណោះ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"មុខងារ​ធ្វើតេស្ត​ដែល​មិនមែនជា eSOS ផ្កាយរណប​ជាក់ស្ដែង (កំណែបង្កើត​សម្រាប់​ជួសជុល​តែប៉ុណ្ណោះ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"មុខងារ​ធ្វើតេស្ត eSOS ផ្កាយរណប​សាកល្បង (កំណែបង្កើត​សម្រាប់​ជួសជុល​តែប៉ុណ្ណោះ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"មើលសៀវភៅអាសយដ្ឋានក្នុងស៊ីមកាត"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"មើល​លេខ​ហៅ​ថេរ"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"មើល​លេខ​ហៅ​សេវាកម្ម"</string>
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index e06bbdb..590c076 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier ಉಪಗ್ರಹ ಮೋಡ್ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"ನೈಜ ಸ್ಯಾಟಲೈಟ್ eSOS ಮೋಡ್ ಅನ್ನು ಪರೀಕ್ಷಿಸಿ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ರಿಯಲ್ ಸ್ಯಾಟಲೈಟ್ ನಾನ್-eSOS ಮೋಡ್ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ) ಅನ್ನು ಟೆಸ್ಟ್ ಮಾಡಿ"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ಸ್ಯಾಟಲೈಟ್‌ eSOS ಮೋಡ್‌ ಅನ್ನು ಟೆಸ್ಟ್‌ ಡೆಮೋ ನೀಡಿ (ಡೀಬಗ್ ಬಿಲ್ಡ್ ಮಾತ್ರ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ಸಿಮ್ ವಿಳಾಸ ಪುಸ್ತಕವನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ಸ್ಥಿರ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ಸೇವಾ ಡಯಲಿಂಗ್ ಸಂಖ್ಯೆಗಳನ್ನು ವೀಕ್ಷಿಸಿ"</string>
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 353c085..0f2d842 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"모의 이동통신사 위성 모드(디버그 빌드만 해당)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"실제 위성 eSOS 모드 테스트(디버그 빌드만 해당)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"실제 위성 비eSOS 모드 테스트(디버그 빌드만 해당)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"데모 위성 eSOS 모드 테스트(디버그 빌드만 해당)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM 주소록 보기"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"발신 허용 번호 보기"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"SDN(Service Dialing Numbers) 보기"</string>
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index f1ed6ec..7b95b1c 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Симуляцияланган байланыш операторунун спутниги (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Чыныгы спутник eSOS режимин сыноо (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"eSOS болбогон чыныгы спутник режимин сыноо (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Демо спутник eSOS режимин сыноо (Мүчүлүштүктөрдү оңдоо үчүн гана)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM картадагы дарек китепчесин көрүү"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Туруктуу терүү номерлерин көрүү"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Кызматтык терүү номерлерин көрүү"</string>
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
index af275cc..1aa16a7 100644
--- a/res/values-lo/strings.xml
+++ b/res/values-lo/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ຈຳລອງໂໝດດາວທຽມຂອງຜູ້ໃຫ້ບໍລິການ (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"ທົດສອບໂໝດ eSOS ດາວທຽມແທ້ (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ທົດສອບໂໝດດາວທຽມແທ້ທີ່ບໍ່ແມ່ນ eSOS (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ທົດສອບໂໝດ eSOS ຂອງດາວທຽມເດໂມ (ສຳລັບ Build ດີບັກເທົ່ານັ້ນ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ເບິ່ງສະໝຸດທີ່ຢູ່ໃນຊິມ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ເບິ່ງໝາຍເລກໂທອອກທີ່ກຳນົດ"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ເບິ່ງໝາຍເລກບໍລິການໂທອອກ"</string>
diff --git a/res/values-lt/strings.xml b/res/values-lt/strings.xml
index ebf0b54..52d7574 100644
--- a/res/values-lt/strings.xml
+++ b/res/values-lt/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Netikras operatoriaus satelito režimas (tik derinimo versija)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Išbandykite tikrą Pagalbos iškvietimo kritiniu atveju naudojant palydovinį ryšį režimą (tik derinimo versija)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Išbandykite tikrą Pagalbos iškvietimo ne kritiniu atveju naudojant palydovinį ryšį režimą (tik derinimo versija)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Išbandykite demonstracinę Pagalbos iškvietimo kritiniu atveju naudojant palydovinį ryšį versiją (tik derinimo versija)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Žiūrėti SIM kortelės adresų knygą"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Žiūrėti fiksuotojo rinkimo numerius"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Žiūrėti paslaugos renkamus numerius"</string>
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 2fe2838..2559bf2 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -848,7 +848,8 @@
     <string name="enforce_satellite_channel_string" msgid="295306734591329892">"LTE satelīta kanāla piespiedu izmantošana (tikai atkļūdošanas būvējums)"</string>
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mobilo sakaru operatora satelīta režīma imitēšana (tikai atkļūdošanas būvējums)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Izmēģināt īsta satelīta eSOS režīmu (tikai atkļūdošanas būvējumā)"</string>
-    <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Izmēģināt īsta satelīta eSOS režīmu (tikai atkļūdošanas būvējumā)"</string>
+    <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Izmēģināt īsta satelīta režīmu, kas nav eSOS režīms (tikai atkļūdošanas būvējumā)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Izmēģināt demonstrācijas satelīta eSOS režīmu (tikai atkļūdošanas būvējumā)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Skatīt SIM adrešu grāmatu"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Skatīt ierobežotā zvanu saraksta numurus"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Pakalpojuma iezvanes numuru skatīšana"</string>
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index 1443c5e..7798553 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Симулација на режим на сателит за оператор (само за верзиите за отстранување грешки)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Тестирајте го реалниот режим на eSOS (само во верзијата за отстранување грешки)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестирајте го реалниот режим што не е на eSOS (само во верзијата за отстранување грешки)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестирајте го демо-режимот на eSOS (само во верзијата за отстранување грешки)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи именик на SIM-картичката"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи броеви со ограничено бирање"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи броеви за бирање служби"</string>
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index c40a014..b7e392d 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock സേവനദാതാവ് ഉപഗ്രഹ മോഡ് (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"യഥാർത്ഥ സാറ്റലൈറ്റ് eSOS മോഡ് പരീക്ഷിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"യഥാർത്ഥ സാറ്റലൈറ്റ് eSOS ഇതര മോഡ് പരീക്ഷിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ഡെമോ സാറ്റലൈറ്റ് eSOS മോഡ് പരീക്ഷിക്കുക (ഡീബഗ് ബിൽഡ് മാത്രം)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"സിം വിലാസ പുസ്‌തകം കാണുക"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"സ്ഥിര ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"സർവീസ് ഡയലിംഗ് നമ്പറുകൾ കാണുക"</string>
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 550be96..1e583ed 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Оператор компанийн хуурамч хиймэл дагуулын горим (зөвхөн дебаг хийсэн хийц)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Жинхэнэ хиймэл дагуул eSOS горимыг турших (зөвхөн дебаг хийсэн хийц)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Жинхэнэ хиймэл дагуул eSOS бус горимыг турших (зөвхөн дебаг хийсэн хийц)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Демо хиймэл дагуул eSOS горимыг турших (зөвхөн дебаг хийсэн хийц)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM хаягийн лавлахыг харах"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Залгахаар тохируулсан дугаарыг харах"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Үйлчилгээний залгах дугаарыг харах"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index 61c42a7..8f69537 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"नमुना वाहकाचा उपग्रह मोड (फक्त डीबग बिल्ड)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"प्रत्यक्ष सॅटेलाइट eSOS मोडची चाचणी करा (फक्त डीबग बिल्ड)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"eSOS नसलेल्या वास्तविक सॅटेलाइट मोडची चाचणी करा (फक्त डीबग बिल्ड)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"डेमो सॅटेलाइट eSOS मोडची चाचणी करा (फक्त डीबग बिल्ड)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"सिम ॲड्रेस बुक पहा"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"निश्चित डायलिंग नंबर पहा"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सर्व्हिस डायलिंग नंबर पहा"</string>
diff --git a/res/values-ms/strings.xml b/res/values-ms/strings.xml
index d961557..da8b455 100644
--- a/res/values-ms/strings.xml
+++ b/res/values-ms/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Contoh Mod Satelit Pembawa (Binaan Penyahpepijatan sahaja)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Uji mod sSOS satelit sebenar (Binaan Penyahpepijatan sahaja)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Uji mod bukan eSOS satelit sebenar (Binaan Penyahpepijatan sahaja)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Uji mod eSOS satelit demo (Binaan Penyahpepijatan sahaja)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Lihat Buku Alamat SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Lihat Nombor Dailan Tetap"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Lihat Nombor Dailan Perkhidmatan"</string>
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index e0b1b0b..2d03099 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock Carrier Satellite Mode (အမှားရှာပြင်ခြင်း အတွက်သာ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"ဂြိုဟ်တုအစစ် eSOS မုဒ်ကို စမ်းသပ်ခြင်း (အမှားရှာပြင်ခြင်းအတွက်သာ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ဂြိုဟ်တုအစစ် eSOS မဟုတ်သော မုဒ်ကို စမ်းသပ်ခြင်း (အမှားရှာပြင်ခြင်းအတွက်သာ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"သရုပ်ပြ ဂြိုဟ်တု eSOS မုဒ်ကို စမ်းသပ်ခြင်း (အမှားရှာပြင်ခြင်းအတွက်သာ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ထဲရှိ လိပ်စာ စာအုပ်ကိုကြည့်ပါ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ခေါ်ဆိုရန် ကန့်သတ် နံပါတ်ကို ကြည့်မည်"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ခေါ်ဆိုသည့်ဝန်ဆောင်မှုနံပါတ်အားကြည့်မည်"</string>
diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml
index 8c92262..2e0d34a 100644
--- a/res/values-nb/strings.xml
+++ b/res/values-nb/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satelittmodus for fiktiv operatør (feilsøkingsversjon)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test ekte satellitt med eSOS-modus (kun for feilsøkingsversjoner)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test ekte satellitt med ikke-eSOS-modus (kun for feilsøkingsversjoner)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo av satellitt med eSOS-modus (kun for feilsøkingsversjoner)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Se adressebok for SIM-kort"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vis forhåndsbestemte numre"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vis tjenestenumre"</string>
diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml
index 2c6c4a0..8dc8d3c 100644
--- a/res/values-ne/strings.xml
+++ b/res/values-ne/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"सेवा प्रदायकको स्याटेलाइट मोडको परीक्षण गर्नुहोस् (डिबग बिल्ड मात्र)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"वास्तविक स्याटेलाइट eSOS मोड परीक्षण गर्नुहोस् (डिबग बिल्ड मात्र)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"वास्तविक स्याटेलाइट eSOS बाहेकका मोड (डिबग बिल्ड मात्र) परीक्षण गर्नुहोस्"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"डेमो स्याटेलाइट eSOS मोडको परीक्षण गर्नुहोस् (डिबग बिल्ड मात्र)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM को ठेगाना पुस्तिका हेर्नुहोस्"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"स्थिर डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"सेवामा डायल गर्ने नम्बरहरू हेर्नुहोस्"</string>
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index 32e7b8a..903992d 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satellietmodus voor testprovider (alleen in foutopsporingsbuild)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Echte e-SOS via satellietmodus testen (alleen in foutopsporingsbuild)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Echte niet-noodoproep via satellietmodus testen (alleen in foutopsporingsbuild)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo e-SOS via satellietmodus testen (alleen in foutopsporingsbuild)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Adresboek op simkaart bekijken"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Vaste nummers bekijken"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Servicenummers bekijken"</string>
diff --git a/res/values-or/strings.xml b/res/values-or/strings.xml
index 88e246d..d8c85fc 100644
--- a/res/values-or/strings.xml
+++ b/res/values-or/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ମକ କେରିଅର ସେଟେଲାଇଟ ମୋଡ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"ପ୍ରକୃତ ସେଟେଲାଇଟର eSOS ମୋଡ ପରୀକ୍ଷା କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ପ୍ରକୃତ ସେଟେଲାଇଟର ଅଣ-eSOS ମୋଡ ପରୀକ୍ଷା କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ଡେମୋ ସେଟେଲାଇଟର eSOS ମୋଡ ପରୀକ୍ଷା କରନ୍ତୁ (କେବଳ ଡିବଗ ବିଲ୍ଡ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ସିମ୍‌ରେ ଥିବା ଠିକଣା ପୁସ୍ତକ ଦେଖନ୍ତୁ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ସ୍ଥାୟୀ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକୁ ଦେଖନ୍ତୁ"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ସର୍ଭିସ୍ ଡାଏଲିଂ ନମ୍ୱରଗୁଡ଼ିକ ଦେଖନ୍ତୁ"</string>
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index 2daf441..c7716c5 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ਮੌਕ ਕੈਰੀਅਰ ਉਪਗ੍ਰਹਿ ਮੋਡ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"ਰੀਅਲ ਸੈਟੇਲਾਈਟ eSOS ਮੋਡ ਅਜ਼ਮਾਓ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ਰੀਅਲ ਸੈਟੇਲਾਈਟ ਗੈਰ-eSOS ਮੋਡ ਅਜ਼ਮਾਓ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ਡੈਮੋ ਸੈਟੇਲਾਈਟ eSOS ਮੋਡ ਅਜ਼ਮਾਓ (ਸਿਰਫ਼ ਡੀਬੱਗ ਬਿਲਡ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ਸਿਮ ਦੀ ਪਤਾ ਬੁੱਕ ਦੇਖੋ"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ਫਿਕਸਡ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ਸੇਵਾ ਡਾਇਲਿੰਗ ਨੰਬਰ ਦੇਖੋ"</string>
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 9be350d..6869859 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Symulowany tryb satelitarny operatora (tylko kompilacja do debugowania)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testowanie rzeczywistego trybu satelitarnego eSOS (tylko kompilacja do debugowania)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testowanie rzeczywistego trybu satelitarnego innego niż eSOS (tylko kompilacja do debugowania)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testowanie wersji demonstracyjnej trybu satelitarnego eSOS (tylko kompilacja do debugowania)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Wyświetl książkę adresową z karty SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Wyświetl ustalone numery"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Wyświetl numery usług"</string>
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 64f1228..54c04d3 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Modo satélite da operadora fictícia (apenas na versão de depuração)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testar modo eSOS de satélite real (apenas na versão de depuração)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Teste o modo não eSOS de satélite real (apenas na versão de depuração)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testar demonstração de modo eSOS de satélite (apenas na versão de depuração)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver livro de endereços do SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números autorizados"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de marcação de serviços"</string>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 2da29c0..91d1ffc 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulação de modo satélite da operadora (somente build de depuração)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testar o modo eSOS por satélite (somente build de depuração)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testar o modo sem emergência de satélite real (somente build de depuração)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testar a demonstração do modo eSOS por satélite (somente build de depuração)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Ver o catálogo de endereços do chip"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ver números de discagem fixa"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Ver números de discagem do serviço"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 39ed189..c6ed47a 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mod Satelit al operatorului de testare (numai versiune pentru remedierea erorilor)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testează modul eSOS prin satelit real (numai versiunea pentru remedierea erorilor)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testează modul non-eSOS prin satelit real (numai versiunea pentru remedierea erorilor)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testează modul demonstrativ eSOS prin satelit (numai versiunea pentru remedierea erorilor)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Afișează agenda de pe SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Afișează numerele pentru apeluri restricționate"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Vezi numere de apelare de serviciu"</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index af109ba..1ce3446 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Режим спутниковой связи симуляции оператора (только отладочная сборка)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Проверка спутникового режима eSOS (только отладочная сборка)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Проверка спутниковой связи в режиме, отличном от eSOS (только отладочная сборка)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Проверка демоверсии спутникового режима eSOS (только отладочная сборка)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Посмотреть адресную книгу на SIM-карте"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Список разрешенных номеров"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Посмотреть номера служебного набора"</string>
diff --git a/res/values-si/strings.xml b/res/values-si/strings.xml
index 0d55756..ce57f2e 100644
--- a/res/values-si/strings.xml
+++ b/res/values-si/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"ආදර්ශ වාහක චන්ද්‍රිකා ප්‍රකාරය (නිදොස් තැනීමට පමණි)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"සැබෑ චන්ද්‍රිකා eSOS ප්‍රකාරය පරීක්ෂා කරන්න (නිදොස් තැනීමට පමණි)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"සැබෑ චන්ද්‍රිකා eSOS නොවන ප්‍රකාරය පරීක්ෂා කරන්න (නිදොස් තැනීමට පමණි)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ආදර්ශන චන්ද්‍රිකා eSOS ප්‍රකාරය පරීක්ෂා කරන්න (නිදොස් තැනීමට පමණි)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM ලිපින පොත බලන්න"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ස්ථාවර ඇමතුම් අංක පෙන්වන්න"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"සේවා ඩයල් කිරීමේ අංක පෙන්වන්න"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index b8faaf3..cbeef7e 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulácia satelitného režimu operátora (iba ladiaca zostava)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testovať režim pomoci v tiesni cez skutočné satelity (iba ladiaca zostava)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testovať štandardný režim cez skutočné satelity (iba ladiaca zostava)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testovať režim pomoci v tiesni cez demo satelity (iba ladiaca zostava)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Zobraziť adresár SIM karty"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Zobraziť povolené čísla"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Zobraziť čísla volaní služieb"</string>
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index 790f05c..565d6ad 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Lažni satelitski način operaterja (samo gradnja za odpravljanje napak)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Preizkus pravega satelitskega načina eSOS (samo gradnja za odpravljanje napak)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Preizkus pravega satelitskega (nenujnega) načina eSOS (samo gradnja za odpravljanje napak)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Preizkus predstavitvenega satelitskega načina eSOS (samo gradnja za odpravljanje napak)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Prikaži imenik na kartici SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Prikaži številke za zaporo odhodnih klicev"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Prikaži številke za klicanje storitev"</string>
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 0b7f3c8..c8483d2 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulo modalitetin e satelitit të operatorit celular (vetëm versioni i korrigjimit)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testo modalitetin real të \"eSOS satelitor\" (vetëm versioni i korrigjimit)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testo modalitetin real satelitor jo për eSOS (vetëm versioni i korrigjimit)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testo modalitetin e demonstrimit të \"eSOS satelitor\" (vetëm versioni i korrigjimit)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Shiko librin e adresave të kartës SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Shiko numrat me telefonim të përzgjedhur"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Shiko numrat e telefonit të shërbimit"</string>
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 1d862d5..e297d29 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Лажни режим мобилног оператера за слање преко сателита (само верзија за отклањање грешака)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Тестирајте стварни сателитски eSOS режим (само верзија са отклоњеним грешкама)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестирајте стварни сателитски режим који није eSOS (само верзија са отклоњеним грешкама)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестирајте демо верзију сателитског eSOS режима (само верзија са отклоњеним грешкама)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Прикажи адресар SIM-а"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Прикажи бројеве за фиксно бирање"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Прикажи бројеве за сервисно бирање"</string>
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index 92ae1e8..3083085 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Simulering av operatörssatellitläge (version endast för felsökning)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Testa verkligt eSOS-satellitläge (endast felsökningsversion)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Testa verkligt icke-eSOS-satellitläge (endast felsökningsversion)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Testa demoläge för eSOS-satellit (endast felsökningsversion)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Visa SIM-adressbok"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Visa Fasta nummer"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Visa tjänstenummer"</string>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index 3f9e96a..a9f5b5e 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Hali ya Setilaiti ya Jaribio la Mtoa Huduma (Muundo wa Utatuzi pekee)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Kujaribu hali ya msaada halisi wa mtandaoni kupitia setilaiti (Muundo wa Utatuzi pekee)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Kujaribu hali ya non-eSOS kwenye setilaiti halisi (Muundo wa Utatuzi pekee)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Kujaribu hali ya eSOS kwenye setilaiti ya jaribio (Muundo wa Utatuzi pekee)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Angalia Kitabu cha Anwani katika SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ona Nambari za Simu Zilizobainishwa"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Angalia Nambari Zilizowekwa na Mtoa Huduma"</string>
diff --git a/res/values-ta/strings.xml b/res/values-ta/strings.xml
index 48b0796..94000ca 100644
--- a/res/values-ta/strings.xml
+++ b/res/values-ta/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mock மொபைல் நிறுவன சாட்டிலைட் பயன்முறை (பிழைதிருத்த பதிப்பு மட்டும்)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"அசல் சாட்டிலைட் eSOS பயன்முறை (பிழைதிருத்தப் பதிப்பு மட்டும்)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"அசல் சாட்டிலைட் eSOS அல்லாத பயன்முறையைப் பயன்படுத்திப் பாருங்கள் (பிழைதிருத்தப் பதிப்பு மட்டும்)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"டொமோ சாட்டிலைட் eSOS பயன்முறையைப் பரிசோதனை செய்தல் (பிழைதிருத்தப் பதிப்பு மட்டும்)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"சிம் முகவரிப் புத்தகத்தைக் காட்டு"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"நிலையான அழைப்பு எண்களைக் காட்டு"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"சேவை அழைப்பு எண்களைக் காட்டு"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 75ddcf4..e3f11c2 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"మాక్ క్యారియర్ శాటిలైట్ మోడ్ (డీబగ్ బిల్డ్ మోడ్‌లో మాత్రమే)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"రియల్ శాటిలైట్ eSOS మోడ్‌ను టెస్ట్ చేయండి (డీబగ్ బిల్డ్ మోడ్‌లో మాత్రమే)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"రియల్ శాటిలైట్ eSOS యేతర మోడ్‌ను టెస్ట్ చేయండి (డీబగ్ బిల్డ్ మోడ్‌లో మాత్రమే)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"డెమో శాటిలైట్ eSOS మోడ్‌ను టెస్ట్ చేయండి (డీబగ్ బిల్డ్ మోడ్‌లో మాత్రమే)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM అడ్రస్‌ పుస్తకాన్ని చూడండి"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ఫిక్స్‌డ్ డయలింగ్ నంబర్‌లను చూడండి"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"సర్వీస్ డయలింగ్ నంబర్‌లను చూడండి"</string>
diff --git a/res/values-th/strings.xml b/res/values-th/strings.xml
index c802e9b..856e46f 100644
--- a/res/values-th/strings.xml
+++ b/res/values-th/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"โหมดดาวเทียมของผู้ให้บริการจำลอง (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"ทดสอบโหมด eSOS ของดาวเทียมจริง (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"ทดสอบโหมด non-eSOS ของดาวเทียมจริง (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"ทดสอบโหมด eSOS ของดาวเทียมเดโม (บิลด์การแก้ไขข้อบกพร่องเท่านั้น)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"ดูสมุดที่อยู่ของซิม"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"ดูการจำกัดหมายเลขโทรออก"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"ดูหมายเลขรับบริการโทรออก"</string>
diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml
index f879b4e..5a71a7a 100644
--- a/res/values-tl/strings.xml
+++ b/res/values-tl/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Satellite Mode ng Mock Carrier (Debug Build lang)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Test real satellite eSOS mode (Build sa Pag-debug lang)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Test real satellite non-eSOS mode (Build sa Pag-debug lang)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Test demo satellite eSOS mode (Build sa Pag-debug lang)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Tingnan ang Address Book ng SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Tingnan ang Mga Fixed Dialing Number"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Tingnan ang Mga Service Dialing Number"</string>
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 5874a3d..a838e24 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Örnek operatör uydu modu (yalnızca hata ayıklama derlemesi)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Gerçek uydu eSOS modunu test et (yalnızca hata ayıklama derlemesi)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Gerçek uydu üzerinde eSOS olmayan modu test et (yalnızca hata ayıklama derlemesi)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo uydu üzerinde eSOS modunu test et (yalnızca hata ayıklama derlemesi)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM Adres Defterini Görüntüle"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Sabit Arama Numaralarını Görüntüle"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Hizmet Arama Numaralarını Görüntüle"</string>
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index f3e6136..9804b5a 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Режим супутника оператора Mock (лише складання для налагодження)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Тестувати реальний режим супутникового сигналу SOS (лише складання для налагодження)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Тестувати реальний режим супутникового сигналу, відмінного від SOS (лише складання для налагодження)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Тестування демоверсії супутникового сигналу SOS (складання лише для налагодження)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Переглянути адресну книгу SIM-карти"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Переглянути фіксовані номери"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Переглянути службові номери"</string>
diff --git a/res/values-ur/strings.xml b/res/values-ur/strings.xml
index 7a54626..e1ce502 100644
--- a/res/values-ur/strings.xml
+++ b/res/values-ur/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"موک کیریئر سیٹلائٹ موڈ (صرف ڈیبگ بلڈ)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"‏اصل سیٹلائٹ eSOS وضع کی جانچ کریں (صرف ڈیبگ بلڈ)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"‏اصل سیٹلائٹ غیر eSOS وضع کی جانچ کریں (صرف ڈیبگ بلڈ)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"‏ڈیمو سیٹلائٹ eSOS وضع کی جانچ کریں (صرف ڈیبگ بلڈ)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"‏SIM ایڈریس بک دیکھیں"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"فکسڈ ڈائلنگ نمبرز دیکھیں"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"سروس ڈائلنگ نمبرز دیکھیں"</string>
diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml
index 9784ba8..19e656f 100644
--- a/res/values-uz/strings.xml
+++ b/res/values-uz/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Soxta operator sputnik rejimi (faqat debag nashrida)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Haqiqiy sputnik eSOS rejimini sinash (faqat debag nashrida)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Haqiqiy sputnik non-eSOS rejimini sinash (faqat debag nashrida)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Demo sputnik eSOS rejimini sinash (faqat debag nashrida)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"SIM kartadagi abonentlar ro‘yxatini ochish"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Ruxsat etilgan raqamlar ro‘yxatini ochish"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xizmatlarni terish raqamlarini ochish"</string>
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 624b06f..1c20629 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Mô phỏng chế độ vệ tinh của nhà mạng (chỉ dành cho Bản gỡ lỗi)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Thử nghiệm chế độ eSOS thực tế qua vệ tinh (chỉ bản gỡ lỗi)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Thử nghiệm chế độ không khẩn cấp thực tế qua vệ tinh (chỉ dành cho bản gỡ lỗi)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Thử nghiệm chế độ eSOS minh hoạ qua vệ tinh (chỉ dành cho bản gỡ lỗi)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Xem sổ địa chỉ trên SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Xem số gọi định sẵn"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Xem số quay số dịch vụ"</string>
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 940be24..2e89307 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"模拟运营商卫星模式(仅限调试 build)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"测试真实的卫星 eSOS 模式(仅限调试 build)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"测试真实的卫星非 eSOS 模式(仅限调试 build)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"测试卫星 eSOS 演示模式(仅限调试 build)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通讯录"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定拨号号码"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服务拨号号码"</string>
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 2848f94..8bd9499 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"模擬流動網絡供應商衛星模式 (僅限偵錯版本)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"測試「緊急衛星連接」真實模式 (僅限偵錯版本)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"測試「非緊急衛星連接」真實模式 (僅限偵錯版本)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"測試「緊急衛星連接」試用模式 (僅限偵錯版本)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 卡通訊錄"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號"</string>
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 39b0b84..e979872 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"模擬電信業者衛星模式 (僅限偵錯版本)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"實際測試衛星緊急求救模式 (僅限偵錯版本)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"實際測試衛星非緊急求救模式 (僅限偵錯版本)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"測試衛星緊急求救展示模式 (僅限偵錯版本)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"查看 SIM 通訊錄"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"查看固定撥號"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"查看服務撥號號碼"</string>
diff --git a/res/values-zu/strings.xml b/res/values-zu/strings.xml
index 4b563fc..eda6421 100644
--- a/res/values-zu/strings.xml
+++ b/res/values-zu/strings.xml
@@ -849,6 +849,7 @@
     <string name="mock_carrier_roaming_satellite_string" msgid="4796300252858292593">"Imodi Yesethelayithi Yenkampani Yenethiwekhi ye-Mock (Susa Iphutha Esakhiweni kuphela)"</string>
     <string name="esos_satellite_string" msgid="7274794226125968657">"Hlola imodi yesathelayithi yangempela ye-eSOS (Ukwakhiwa Kokususa Iphutha kuphela)"</string>
     <string name="satellite_enable_non_emergency_mode_string" msgid="9005332650950637932">"Hlola imodi yesathelayithi yangempela ekungesiyo ye-eSOS (Ukwakhiwa Kokususa Iphutha kuphela)"</string>
+    <string name="demo_esos_satellite_string" msgid="2941811482168709730">"Hlola imodi yesathelayithi yedemo ye-eSOS (Ukwakhiwa Kokususa Iphutha kuphela)"</string>
     <string name="radioInfo_menu_viewADN" msgid="4533179730908559846">"Buka incwadi yekheli le-SIM"</string>
     <string name="radioInfo_menu_viewFDN" msgid="1847236480527032061">"Buka Izinombolo Zokudayela Okungaguquki"</string>
     <string name="radioInfo_menu_viewSDN" msgid="2613431584522392842">"Buka Izinombolo Zokudayela Isevisi"</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 305f7cb..f3bff1b 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2037,6 +2037,8 @@
     <string name="esos_satellite_string">Test real satellite eSOS mode (Debug Build only)</string>
     <!-- Title for enable real satellite non-emergency mode. -->
     <string name="satellite_enable_non_emergency_mode_string">Test real satellite non-eSOS mode (Debug Build only)</string>
+    <!-- Title for trigger demo satellite eSOS. -->
+    <string name="demo_esos_satellite_string">Test demo satellite eSOS mode (Debug Build only)</string>
 
     <!-- Phone Info screen. Menu item label.  Used for diagnostic info screens, precise translation isn't needed -->
     <string name="radioInfo_menu_viewADN">View SIM Address Book</string>
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 65dcb94..2cd0336 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -4354,8 +4354,9 @@
                 PackageManager.FEATURE_TELEPHONY_CALLING, "sendVisualVoicemailSmsForSubscriber");
 
         SmsController smsController = PhoneFactory.getSmsController();
-        smsController.sendVisualVoicemailSmsForSubscriber(callingPackage, callingAttributionTag,
-                subId, number, port, text, sentIntent);
+        smsController.sendVisualVoicemailSmsForSubscriber(callingPackage,
+                Binder.getCallingUserHandle().getIdentifier(), callingAttributionTag, subId, number,
+                port, text, sentIntent);
     }
 
     /**
@@ -9321,11 +9322,17 @@
      */
     @Override
     public void getCarrierRestrictionStatus(IIntegerConsumer callback, String packageName) {
-        enforceReadPermission("getCarrierRestrictionStatus");
-
+        String functionName = "getCarrierRestrictionStatus";
         enforceTelephonyFeatureWithException(packageName,
-                PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getCarrierRestrictionStatus");
-
+                PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, functionName);
+        try {
+            mApp.enforceCallingOrSelfPermission(
+                    android.Manifest.permission.READ_BASIC_PHONE_STATE,
+                    functionName);
+        } catch (SecurityException e) {
+            mApp.enforceCallingOrSelfPermission(permission.READ_PHONE_STATE,
+                    functionName);
+        }
         Set<Integer> carrierIds = validateCallerAndGetCarrierIds(packageName);
         if (carrierIds.contains(CarrierAllowListInfo.INVALID_CARRIER_ID)) {
             Rlog.e(LOG_TAG, "getCarrierRestrictionStatus: caller is not registered");
@@ -13965,9 +13972,9 @@
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID,
                 "setCachedLocationCountryCode");
-        return TelephonyCountryDetector.getInstance(getDefaultPhone().getContext()).setCountryCodes(
-                reset, currentNetworkCountryCodes, cachedNetworkCountryCodes, locationCountryCode,
-                locationCountryCodeTimestampNanos);
+        return TelephonyCountryDetector.getInstance(getDefaultPhone().getContext(), mFeatureFlags)
+                .setCountryCodes(reset, currentNetworkCountryCodes, cachedNetworkCountryCodes,
+                        locationCountryCode, locationCountryCodeTimestampNanos);
     }
 
     /**
@@ -14311,8 +14318,13 @@
     @SatelliteManager.SatelliteResult public int registerForCommunicationAllowedStateChanged(
             int subId, @NonNull ISatelliteCommunicationAllowedStateCallback callback) {
         enforceSatelliteCommunicationPermission("registerForCommunicationAllowedStateChanged");
-        return mSatelliteAccessController.registerForCommunicationAllowedStateChanged(
-                subId, callback);
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            return mSatelliteAccessController.registerForCommunicationAllowedStateChanged(
+                    subId, callback);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
     }
 
     /**
@@ -14330,7 +14342,13 @@
     public void unregisterForCommunicationAllowedStateChanged(
             int subId, @NonNull ISatelliteCommunicationAllowedStateCallback callback) {
         enforceSatelliteCommunicationPermission("unregisterForCommunicationAllowedStateChanged");
-        mSatelliteAccessController.unregisterForCommunicationAllowedStateChanged(subId, callback);
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            mSatelliteAccessController.unregisterForCommunicationAllowedStateChanged(subId,
+                    callback);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
     }
 
     /**
@@ -14346,7 +14364,12 @@
     public void requestSatelliteSessionStats(int subId, @NonNull ResultReceiver result) {
         enforceModifyPermission();
         enforcePackageUsageStatsPermission("requestSatelliteSessionStats");
-        mSatelliteController.requestSatelliteSessionStats(subId, result);
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            mSatelliteController.requestSatelliteSessionStats(subId, result);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
     }
 
     /**
@@ -14358,25 +14381,14 @@
      * @throws SecurityException if the caller doesn't have the required permission.
      */
     @Override
-    public void requestProvisionSubscriberIds(@NonNull ResultReceiver result) {
-        enforceSatelliteCommunicationPermission("requestProvisionSubscriberIds");
-        mSatelliteController.requestProvisionSubscriberIds(result);
-    }
-
-    /**
-     * Request to get provisioned status for given a satellite subscriber id.
-     *
-     * @param satelliteSubscriberId Satellite subscriber id requiring provisioned status check.
-     * @param result The result receiver, which returns the provisioned status of the token if the
-     * request is successful or an error code if the request failed.
-     *
-     * @throws SecurityException if the caller doesn't have the required permission.
-     */
-    @Override
-    public void requestIsProvisioned(@NonNull String satelliteSubscriberId,
-            @NonNull ResultReceiver result) {
-        enforceSatelliteCommunicationPermission("requestIsProvisioned");
-        mSatelliteController.requestIsProvisioned(satelliteSubscriberId, result);
+    public void requestSatelliteSubscriberProvisionStatus(@NonNull ResultReceiver result) {
+        enforceSatelliteCommunicationPermission("requestSatelliteSubscriberProvisionStatus");
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            mSatelliteController.requestSatelliteSubscriberProvisionStatus(result);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
     }
 
     /**
@@ -14391,6 +14403,11 @@
     public void provisionSatellite(@NonNull List<SatelliteSubscriberInfo> list,
             @NonNull ResultReceiver result) {
         enforceSatelliteCommunicationPermission("provisionSatellite");
-        mSatelliteController.provisionSatellite(list, result);
+        final long identity = Binder.clearCallingIdentity();
+        try {
+            mSatelliteController.provisionSatellite(list, result);
+        } finally {
+            Binder.restoreCallingIdentity(identity);
+        }
     }
 }
diff --git a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
index d6a9b37..1e3aa2f 100644
--- a/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
+++ b/src/com/android/phone/satellite/accesscontrol/SatelliteAccessController.java
@@ -85,7 +85,6 @@
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.StandardCopyOption;
-import java.time.Duration;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -130,10 +129,11 @@
     private static final boolean DEBUG = !"user".equals(Build.TYPE);
     private static final int MAX_CACHE_SIZE = 50;
 
-    private static final int CMD_IS_SATELLITE_COMMUNICATION_ALLOWED = 1;
+    protected static final int CMD_IS_SATELLITE_COMMUNICATION_ALLOWED = 1;
     protected static final int EVENT_WAIT_FOR_CURRENT_LOCATION_TIMEOUT = 2;
     protected static final int EVENT_KEEP_ON_DEVICE_ACCESS_CONTROLLER_RESOURCES_TIMEOUT = 3;
     protected static final int EVENT_CONFIG_DATA_UPDATED = 4;
+    protected static final int CMD_HANDLE_COUNTRY_CODE_CHANGED = 5;
 
     private static SatelliteAccessController sInstance;
 
@@ -224,6 +224,25 @@
     @Nullable
     private PersistentLogger mPersistentLogger = null;
 
+    private final Object mPossibleChangeInSatelliteAllowedRegionLock = new Object();
+    @GuardedBy("mPossibleChangeInSatelliteAllowedRegionLock")
+    private boolean mIsSatelliteAllowedRegionPossiblyChanged = false;
+    protected long mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos = 0;
+
+    protected int mRetryCountForValidatingPossibleChangeInAllowedRegion;
+    protected static final int
+            DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION = 10;
+    protected static final int
+            DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION = 3;
+    protected static final int DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES = 10;
+
+    private long mRetryIntervalToEvaluateUserInSatelliteAllowedRegion = 0;
+    private int mMaxRetryCountForValidatingPossibleChangeInAllowedRegion = 0;
+    private long mLocationQueryThrottleIntervalNanos = 0;
+
+    @NonNull
+    protected ResultReceiver mHandlerForSatelliteAllowedResult;
+
     /**
      * Map key: binder of the callback, value: callback to receive the satellite communication
      * allowed state changed events.
@@ -234,10 +253,11 @@
     @GuardedBy("mSatelliteCommunicationAllowStateLock")
     private boolean mCurrentSatelliteAllowedState = false;
 
-    private static final long ALLOWED_STATE_CACHE_VALID_DURATION_HOURS =
-            Duration.ofHours(4).toNanos();
+    protected static final long ALLOWED_STATE_CACHE_VALID_DURATION_NANOS =
+            TimeUnit.HOURS.toNanos(4);
+
     private boolean mLatestSatelliteCommunicationAllowed;
-    private long mLatestSatelliteCommunicationAllowedSetTime;
+    protected long mLatestSatelliteCommunicationAllowedSetTime;
 
     private long mLocationQueryStartTimeMillis;
     private long mOnDeviceLookupStartTimeMillis;
@@ -249,10 +269,13 @@
      * @param context                           The context associated with the
      *                                          {@link SatelliteAccessController} instance.
      * @param featureFlags                      The FeatureFlags that are supported.
-     * @param locationManager                   The LocationManager for querying current location of
+     * @param locationManager                   The LocationManager for querying current
+     *                                          location of
      *                                          the device.
-     * @param looper                            The Looper to run the SatelliteAccessController on.
-     * @param satelliteOnDeviceAccessController The on-device satellite access controller instance.
+     * @param looper                            The Looper to run the SatelliteAccessController
+     *                                          on.
+     * @param satelliteOnDeviceAccessController The on-device satellite access controller
+     *                                          instance.
      */
     @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
     protected SatelliteAccessController(@NonNull Context context,
@@ -269,7 +292,13 @@
         mLocationManager = locationManager;
         mTelecomManager = telecomManager;
         mSatelliteOnDeviceAccessController = satelliteOnDeviceAccessController;
-        mCountryDetector = TelephonyCountryDetector.getInstance(context);
+
+        mCountryDetector = TelephonyCountryDetector.getInstance(context, mFeatureFlags);
+        mCountryDetector.registerForCountryCodeChanged(this,
+                CMD_HANDLE_COUNTRY_CODE_CHANGED, null);
+        initializeHandlerForSatelliteAllowedResult();
+        setIsSatelliteAllowedRegionPossiblyChanged(false);
+
         mSatelliteController = SatelliteController.getInstance();
         mControllerMetricsStats = ControllerMetricsStats.getInstance();
         mAccessControllerMetricsStats = AccessControllerMetricsStats.getInstance();
@@ -391,6 +420,9 @@
                 AsyncResult ar = (AsyncResult) msg.obj;
                 updateSatelliteConfigData((Context) ar.userObj);
                 break;
+            case CMD_HANDLE_COUNTRY_CODE_CHANGED:
+                handleSatelliteAllowedRegionPossiblyChanged();
+                break;
             default:
                 plogw("SatelliteAccessControllerHandler: unexpected message code: " + msg.what);
                 break;
@@ -739,7 +771,8 @@
         mConfigUpdaterMetricsStats.reportConfigUpdateSuccess();
     }
 
-    private void loadOverlayConfigs(@NonNull Context context) {
+    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
+    protected void loadOverlayConfigs(@NonNull Context context) {
         mSatelliteCountryCodes = getSatelliteCountryCodesFromOverlayConfig(context);
         mIsSatelliteAllowAccessControl = getSatelliteAccessAllowFromOverlayConfig(context);
         String satelliteS2CellFileName = getSatelliteS2CellFileFromOverlayConfig(context);
@@ -752,6 +785,11 @@
         mLocationFreshDurationNanos = getSatelliteLocationFreshDurationFromOverlayConfig(context);
         mAccessControllerMetricsStats.setConfigDataSource(
                 SatelliteConstants.CONFIG_DATA_SOURCE_DEVICE_CONFIG);
+        mRetryIntervalToEvaluateUserInSatelliteAllowedRegion =
+                getDelayBeforeRetryValidatingPossibleChangeInSatelliteAllowedRegionMillis(context);
+        mMaxRetryCountForValidatingPossibleChangeInAllowedRegion =
+                getMaxRetryCountForValidatingPossibleChangeInAllowedRegion(context);
+        mLocationQueryThrottleIntervalNanos = getLocationQueryThrottleIntervalNanos(context);
     }
 
     private void loadConfigUpdaterConfigs() {
@@ -874,6 +912,30 @@
         }
     }
 
+    /**
+     * At country borders, a multi-SIM device might connect to multiple cellular base
+     * stations and thus might have multiple different MCCs.
+     * In such cases, framework is not sure whether the region should be disallowed or not,
+     * and thus the geofence data will be used to decide whether to allow satellite.
+     */
+    private boolean isRegionDisallowed(List<String> networkCountryIsoList) {
+        if (networkCountryIsoList.isEmpty()) {
+            plogd("isRegionDisallowed : true : it's not sure if empty is disallowed");
+            return false;
+        }
+
+        for (String countryCode : networkCountryIsoList) {
+            if (isSatelliteAccessAllowedForLocation(List.of(countryCode))) {
+                plogd("isRegionDisallowed : false : Country Code " + countryCode
+                        + " is in the list from the configuration");
+                return false;
+            }
+        }
+
+        plogd("isRegionDisallowed : true : " + networkCountryIsoList);
+        return true;
+    }
+
     private void handleIsSatelliteSupportedResult(int resultCode, Bundle resultData) {
         plogd("handleIsSatelliteSupportedResult: resultCode=" + resultCode);
         synchronized (mLock) {
@@ -888,7 +950,19 @@
                         sendSatelliteAllowResultToReceivers(resultCode, bundle, false);
                     } else {
                         plogd("Satellite is supported");
-                        checkSatelliteAccessRestrictionUsingGPS();
+                        List<String> networkCountryIsoList =
+                                mCountryDetector.getCurrentNetworkCountryIso();
+                        if (isRegionDisallowed(networkCountryIsoList)) {
+                            Bundle bundle = new Bundle();
+                            bundle.putBoolean(KEY_SATELLITE_COMMUNICATION_ALLOWED, false);
+                            mAccessControllerMetricsStats.setAccessControlType(
+                                    SatelliteConstants.ACCESS_CONTROL_TYPE_NETWORK_COUNTRY_CODE)
+                                    .setCountryCodes(networkCountryIsoList);
+                            sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle,
+                                    false);
+                        } else {
+                            checkSatelliteAccessRestrictionUsingGPS();
+                        }
                     }
                 } else {
                     ploge("KEY_SATELLITE_SUPPORTED does not exist.");
@@ -938,11 +1012,15 @@
             }
             mSatelliteAllowResultReceivers.clear();
         }
+        if (!shouldRetryValidatingPossibleChangeInAllowedRegion(resultCode)) {
+            setIsSatelliteAllowedRegionPossiblyChanged(false);
+        }
         reportMetrics(resultCode, allowed);
     }
 
     /**
-     * Telephony-internal logic to verify if satellite access is restricted at the current location.
+     * Telephony-internal logic to verify if satellite access is restricted at the current
+     * location.
      */
     private void checkSatelliteAccessRestrictionForCurrentLocation() {
         synchronized (mLock) {
@@ -972,6 +1050,89 @@
         }
     }
 
+    private boolean shouldRetryValidatingPossibleChangeInAllowedRegion(int resultCode) {
+        return (resultCode == SATELLITE_RESULT_LOCATION_NOT_AVAILABLE);
+    }
+
+    private void initializeHandlerForSatelliteAllowedResult() {
+        mHandlerForSatelliteAllowedResult = new ResultReceiver(null) {
+            @Override
+            protected void onReceiveResult(int resultCode, Bundle resultData) {
+                plogd("query satellite allowed for current "
+                        + "location, resultCode=" + resultCode + ", resultData=" + resultData);
+                synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+                    if (shouldRetryValidatingPossibleChangeInAllowedRegion(resultCode)
+                            && (mRetryCountForValidatingPossibleChangeInAllowedRegion
+                            < mMaxRetryCountForValidatingPossibleChangeInAllowedRegion)) {
+                        mRetryCountForValidatingPossibleChangeInAllowedRegion++;
+                        plogd("mRetryCountForValidatingPossibleChangeInAllowedRegion is "
+                                + mRetryCountForValidatingPossibleChangeInAllowedRegion);
+                        sendDelayedRequestAsync(CMD_IS_SATELLITE_COMMUNICATION_ALLOWED,
+                                new Pair<>(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+                                        mHandlerForSatelliteAllowedResult),
+                                mRetryIntervalToEvaluateUserInSatelliteAllowedRegion);
+                    } else {
+                        mRetryCountForValidatingPossibleChangeInAllowedRegion = 0;
+                        plogd("Stop retry validating the possible change in satellite allowed "
+                                + "region");
+                    }
+                }
+            }
+        };
+    }
+
+    private void handleSatelliteAllowedRegionPossiblyChanged() {
+        if (!mFeatureFlags.oemEnabledSatelliteFlag()) {
+            ploge("handleSatelliteAllowedRegionPossiblyChanged: "
+                    + "The feature flag oemEnabledSatelliteFlag() is not enabled");
+            return;
+        }
+        synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+            logd("handleSatelliteAllowedRegionPossiblyChanged");
+            setIsSatelliteAllowedRegionPossiblyChanged(true);
+            requestIsCommunicationAllowedForCurrentLocation(
+                    SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+                    mHandlerForSatelliteAllowedResult);
+        }
+    }
+
+    protected boolean allowLocationQueryForSatelliteAllowedCheck() {
+        synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+            if (!isCommunicationAllowedCacheValid()) {
+                logd("allowLocationQueryForSatelliteAllowedCheck: cache is not valid");
+                return true;
+            }
+
+            if (isSatelliteAllowedRegionPossiblyChanged() && !isLocationQueryThrottled()) {
+                logd("allowLocationQueryForSatelliteAllowedCheck: location query is not throttled");
+                return true;
+            }
+        }
+        logd("allowLocationQueryForSatelliteAllowedCheck: false");
+        return false;
+    }
+
+    private boolean isLocationQueryThrottled() {
+        if (mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos == 0) {
+            plogv("isLocationQueryThrottled: "
+                    + "mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos is 0, return "
+                    + "false");
+            return false;
+        }
+
+        long currentTime = getElapsedRealtimeNanos();
+        if (currentTime - mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos
+                > mLocationQueryThrottleIntervalNanos) {
+            plogv("isLocationQueryThrottled: currentTime - "
+                    + "mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos is "
+                    + "bigger than " + mLocationQueryThrottleIntervalNanos + " so return false");
+            return false;
+        }
+
+        plogd("isLocationQueryThrottled : true");
+        return true;
+    }
+
     /**
      * Telephony-internal logic to verify if satellite access is restricted from the location query.
      */
@@ -982,14 +1143,14 @@
         } else {
             if (mLocationManager.isLocationEnabled()) {
                 plogd("location query is allowed");
-                if (isCommunicationAllowedCacheValid()) {
+                if (allowLocationQueryForSatelliteAllowedCheck()) {
+                    executeLocationQuery();
+                } else {
                     Bundle bundle = new Bundle();
                     bundle.putBoolean(KEY_SATELLITE_COMMUNICATION_ALLOWED,
                             mLatestSatelliteCommunicationAllowed);
                     sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle,
                             mLatestSatelliteCommunicationAllowed);
-                } else {
-                    executeLocationQuery();
                 }
             } else {
                 plogv("location query is not allowed");
@@ -1006,9 +1167,9 @@
      */
     private boolean isCommunicationAllowedCacheValid() {
         if (mLatestSatelliteCommunicationAllowedSetTime > 0) {
-            long currentTime = SystemClock.elapsedRealtimeNanos();
+            long currentTime = getElapsedRealtimeNanos();
             if ((currentTime - mLatestSatelliteCommunicationAllowedSetTime)
-                    <= ALLOWED_STATE_CACHE_VALID_DURATION_HOURS) {
+                    <= ALLOWED_STATE_CACHE_VALID_DURATION_NANOS) {
                 logv("isCommunicationAllowedCacheValid: cache is valid");
                 return true;
             }
@@ -1018,7 +1179,15 @@
     }
 
     private void executeLocationQuery() {
-        plogv("executeLocationQuery");
+        plogd("executeLocationQuery");
+        synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+            if (isSatelliteAllowedRegionPossiblyChanged()) {
+                mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos =
+                        getElapsedRealtimeNanos();
+                plogd("mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos is set "
+                        + mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos);
+            }
+        }
         synchronized (mLock) {
             mFreshLastKnownLocation = getFreshLastKnownLocation();
             checkSatelliteAccessRestrictionUsingOnDeviceData();
@@ -1167,7 +1336,7 @@
                 sendSatelliteAllowResultToReceivers(SATELLITE_RESULT_SUCCESS, bundle,
                         satelliteAllowed);
                 mLatestSatelliteCommunicationAllowed = satelliteAllowed;
-                mLatestSatelliteCommunicationAllowedSetTime = SystemClock.elapsedRealtimeNanos();
+                mLatestSatelliteCommunicationAllowedSetTime = getElapsedRealtimeNanos();
                 persistLatestSatelliteCommunicationAllowedState();
             } catch (Exception ex) {
                 ploge("checkSatelliteAccessRestrictionForLocation: ex=" + ex);
@@ -1204,7 +1373,8 @@
         return true;
     }
 
-    private boolean isSatelliteAccessAllowedForLocation(
+    @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE)
+    protected boolean isSatelliteAccessAllowedForLocation(
             @NonNull List<String> networkCountryIsoList) {
         if (isSatelliteAllowAccessControl()) {
             // The current country is unidentified, we're uncertain and thus returning false
@@ -1267,6 +1437,9 @@
             long lastKnownLocationAge =
                     getElapsedRealtimeNanos() - lastKnownLocation.getElapsedRealtimeNanos();
             if (lastKnownLocationAge <= getLocationFreshDurationNanos()) {
+                plogd("getFreshLastKnownLocation: lat=" + Rlog.pii(TAG,
+                        lastKnownLocation.getLatitude())
+                        + ", long=" + Rlog.pii(TAG, lastKnownLocation.getLongitude()));
                 return lastKnownLocation;
             }
         }
@@ -1436,6 +1609,63 @@
     }
 
     @NonNull
+    private static long getDelayBeforeRetryValidatingPossibleChangeInSatelliteAllowedRegionMillis(
+            @NonNull Context context) {
+        Integer retryDuration = null;
+        try {
+            retryDuration = context.getResources().getInteger(com.android.internal.R.integer
+                    .config_satellite_delay_minutes_before_retry_validating_possible_change_in_allowed_region);
+        } catch (Resources.NotFoundException ex) {
+            loge("getDelayBeforeRetryValidatingPossibleChangeInSatelliteAllowedRegionMillis: got "
+                    + "ex=" + ex);
+        }
+        if (retryDuration == null) {
+            logd("Use default retry duration for possible change satellite allowed region ="
+                    + DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+            retryDuration =
+                    DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
+        }
+        return TimeUnit.MINUTES.toMillis(retryDuration);
+    }
+
+    @NonNull
+    private static int getMaxRetryCountForValidatingPossibleChangeInAllowedRegion(
+            @NonNull Context context) {
+        Integer maxRetrycount = null;
+        try {
+            maxRetrycount = context.getResources().getInteger(com.android.internal.R.integer
+                    .config_satellite_max_retry_count_for_validating_possible_change_in_allowed_region);
+        } catch (Resources.NotFoundException ex) {
+            loge("getMaxRetryCountForValidatingPossibleChangeInAllowedRegion: got ex= " + ex);
+        }
+        if (maxRetrycount == null) {
+            logd("Use default max retry count for possible change satellite allowed region ="
+                    + DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+            maxRetrycount =
+                    DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
+        }
+        return maxRetrycount;
+    }
+
+    @NonNull
+    private static long getLocationQueryThrottleIntervalNanos(@NonNull Context context) {
+        Integer throttleInterval = null;
+        try {
+            throttleInterval = context.getResources().getInteger(com.android.internal.R.integer
+                    .config_satellite_location_query_throttle_interval_minutes);
+        } catch (Resources.NotFoundException ex) {
+            loge("getLocationQueryThrottleIntervalNanos: got ex=" + ex);
+        }
+        if (throttleInterval == null) {
+            logd("Use default location query throttle interval ="
+                    + DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES);
+            throttleInterval =
+                    DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES;
+        }
+        return TimeUnit.MINUTES.toNanos(throttleInterval);
+    }
+
+    @NonNull
     private static String[] readStringArrayFromOverlayConfig(
             @NonNull Context context, @ArrayRes int id) {
         String[] strArray = null;
@@ -1525,6 +1755,17 @@
      * @param command  command to be executed on the main thread
      * @param argument additional parameters required to perform of the operation
      */
+    private void sendDelayedRequestAsync(int command, @NonNull Object argument, long dealyMillis) {
+        Message msg = this.obtainMessage(command, argument);
+        sendMessageDelayed(msg, dealyMillis);
+    }
+
+    /**
+     * Posts the specified command to be executed on the main thread and returns immediately.
+     *
+     * @param command  command to be executed on the main thread
+     * @param argument additional parameters required to perform of the operation
+     */
     private void sendRequestAsync(int command, @NonNull Object argument) {
         Message msg = this.obtainMessage(command, argument);
         msg.sendToTarget();
@@ -1550,11 +1791,6 @@
 
         mSatelliteCommunicationAllowedStateChangedListeners.put(callback.asBinder(), callback);
 
-        if (!mFeatureFlags.geofenceEnhancementForBetterUx()) {
-            plogd("The feature flag geofenceEnhancementForBetterUx is not enabled");
-            return SATELLITE_RESULT_SUCCESS;
-        }
-
         this.post(() -> {
             try {
                 synchronized (mSatelliteCommunicationAllowStateLock) {
@@ -1596,7 +1832,7 @@
      * This API can be used by only CTS to set the cache whether satellite communication is allowed.
      *
      * @param state a state indicates whether satellite access allowed state should be cached and
-     * the allowed state.
+     *              the allowed state.
      * @return {@code true} if the setting is successful, {@code false} otherwise.
      */
     public boolean setIsSatelliteCommunicationAllowedForCurrentLocationCache(String state) {
@@ -1616,7 +1852,7 @@
 
         synchronized (mSatelliteCommunicationAllowStateLock) {
             if ("cache_allowed".equalsIgnoreCase(state)) {
-                mLatestSatelliteCommunicationAllowedSetTime = SystemClock.elapsedRealtimeNanos();
+                mLatestSatelliteCommunicationAllowedSetTime = getElapsedRealtimeNanos();
                 mLatestSatelliteCommunicationAllowed = true;
                 mCurrentSatelliteAllowedState = true;
             } else if ("cache_clear_and_not_allowed".equalsIgnoreCase(state)) {
@@ -1673,6 +1909,19 @@
         mTotalCheckingStartTimeMillis = 0;
     }
 
+    protected boolean isSatelliteAllowedRegionPossiblyChanged() {
+        synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+            return mIsSatelliteAllowedRegionPossiblyChanged;
+        }
+    }
+
+    protected void setIsSatelliteAllowedRegionPossiblyChanged(boolean changed) {
+        synchronized (mPossibleChangeInSatelliteAllowedRegionLock) {
+            plogd("setIsSatelliteAllowedRegionPossiblyChanged : " + changed);
+            mIsSatelliteAllowedRegionPossiblyChanged = changed;
+        }
+    }
+
     private static void logd(@NonNull String log) {
         Rlog.d(TAG, log);
     }
diff --git a/src/com/android/phone/settings/RadioInfo.java b/src/com/android/phone/settings/RadioInfo.java
index 9d8f070..005c0fa 100644
--- a/src/com/android/phone/settings/RadioInfo.java
+++ b/src/com/android/phone/settings/RadioInfo.java
@@ -135,9 +135,6 @@
 
     private static final boolean IS_USER_BUILD = "user".equals(Build.TYPE);
 
-    private static final String ACTION_ESOS_TEST =
-            "com.google.android.apps.stargate.ACTION_ESOS_QUESTIONNAIRE";
-
     private static final String[] PREFERRED_NETWORK_LABELS = {
             "GSM/WCDMA preferred",
             "GSM only",
@@ -206,7 +203,7 @@
             ServiceState.RIL_RADIO_TECHNOLOGY_LTE_CA,
             ServiceState.RIL_RADIO_TECHNOLOGY_NR
     };
-    private static String[] sPhoneIndexLabels;
+    private static String[] sPhoneIndexLabels = new String[0];
 
     private static final int sCellInfoListRateDisabled = Integer.MAX_VALUE;
     private static final int sCellInfoListRateMax = 0;
@@ -317,6 +314,7 @@
     private Button mTriggerCarrierProvisioningButton;
     private Button mEsosButton;
     private Button mSatelliteEnableNonEmergencyModeButton;
+    private Button mEsosDemoButton;
     private Switch mImsVolteProvisionedSwitch;
     private Switch mImsVtProvisionedSwitch;
     private Switch mImsWfcProvisionedSwitch;
@@ -361,6 +359,9 @@
     private int mCellInfoRefreshRateIndex;
     private int mSelectedPhoneIndex;
 
+    private String mActionEsos;
+    private String mActionEsosDemo;
+
     private final NetworkRequest mDefaultNetworkRequest = new NetworkRequest.Builder()
             .addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR)
             .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
@@ -547,8 +548,10 @@
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
-        if (!android.os.Process.myUserHandle().isSystem()) {
-            Log.e(TAG, "Not run from system user, don't do anything.");
+        try {
+            PhoneFactory.getDefaultPhone();
+        } catch (Exception e) {
+            loge("Do nothing due to getDefaultPhone " + e);
             finish();
             return;
         }
@@ -566,6 +569,16 @@
 
         log("Started onCreate");
 
+        Resources r = getResources();
+        mActionEsos =
+            r.getString(
+                    com.android.internal.R.string
+                            .config_satellite_emergency_handover_intent_action);
+
+        mActionEsosDemo =
+            r.getString(
+                    com.android.internal.R.string.config_satellite_demo_mode_sos_intent_action);
+
         mQueuedWork = new ThreadPoolExecutor(1, 1, RUNNABLE_TIMEOUT_MS, TimeUnit.MICROSECONDS,
                 new LinkedBlockingDeque<Runnable>());
         mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
@@ -752,6 +765,7 @@
         }
 
         mEsosButton = (Button) findViewById(R.id.esos_questionnaire);
+        mEsosDemoButton  = (Button) findViewById(R.id.demo_esos_questionnaire);
         mSatelliteEnableNonEmergencyModeButton = (Button) findViewById(
                 R.id.satellite_enable_non_emergency_mode);
         CarrierConfigManager cm = mPhone.getContext().getSystemService(CarrierConfigManager.class);
@@ -761,14 +775,25 @@
             mSatelliteEnableNonEmergencyModeButton.setVisibility(View.GONE);
         }
         if (!TelephonyUtils.IS_DEBUGGABLE) {
-            mEsosButton.setVisibility(View.GONE);
+            if (!TextUtils.isEmpty(mActionEsos)) {
+                mEsosButton.setVisibility(View.GONE);
+            }
+            if (!TextUtils.isEmpty(mActionEsosDemo)) {
+                mEsosDemoButton.setVisibility(View.GONE);
+            }
             mSatelliteEnableNonEmergencyModeButton.setVisibility(View.GONE);
         } else {
             mEsosButton.setOnClickListener(v ->
                     mPhone.getContext().startActivity(
-                        new Intent(ACTION_ESOS_TEST)
+                        new Intent(mActionEsos)
                         .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK))
             );
+            mEsosDemoButton.setOnClickListener(v ->
+                    mPhone.getContext().startActivity(
+                            new Intent(mActionEsosDemo)
+                                    .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
+                                            | Intent.FLAG_ACTIVITY_CLEAR_TASK))
+            );
             mSatelliteEnableNonEmergencyModeButton.setOnClickListener(v ->
                     enableSatelliteNonEmergencyMode());
         }
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index da9cfdf..6897b08 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -477,11 +477,13 @@
                         isHandoverFromSupported);
             }
 
-            final boolean isTelephonyAudioDeviceSupported = mContext.getResources().getBoolean(
-                    R.bool.config_support_telephony_audio_device);
-            if (isTelephonyAudioDeviceSupported && !isEmergency
-                    && isCarrierUseCallRecordingTone()) {
-                extras.putBoolean(PhoneAccount.EXTRA_PLAY_CALL_RECORDING_TONE, true);
+            if (!com.android.server.telecom.flags.Flags.telecomResolveHiddenDependencies()) {
+                final boolean isTelephonyAudioDeviceSupported = mContext.getResources().getBoolean(
+                        R.bool.config_support_telephony_audio_device);
+                if (isTelephonyAudioDeviceSupported && !isEmergency
+                        && isCarrierUseCallRecordingTone()) {
+                    extras.putBoolean(PhoneAccount.EXTRA_PLAY_CALL_RECORDING_TONE, true);
+                }
             }
 
             extras.putBoolean(EXTRA_SUPPORTS_VIDEO_CALLING_FALLBACK,
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index 163fc26..412e44a 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1201,17 +1201,20 @@
             }
         }
 
+        boolean forNormalRoutingEmergencyCall = false;
         if (mDomainSelectionResolver.isDomainSelectionSupported()) {
-            // Normal routing emergency number shall be handled by normal call domain selector.
-            int routing = (isEmergencyNumber)
-                    ? getEmergencyCallRouting(phone, number, needToTurnOnRadio)
-                    : EmergencyNumber.EMERGENCY_CALL_ROUTING_UNKNOWN;
-            if (isEmergencyNumber && routing != EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL) {
-                final Connection resultConnection =
-                        placeEmergencyConnection(phone,
-                                request, numberToDial, isTestEmergencyNumber,
-                                handle, needToTurnOnRadio, routing);
-                if (resultConnection != null) return resultConnection;
+            if (isEmergencyNumber) {
+                // Normal routing emergency number shall be handled by normal call domain selector.
+                int routing = getEmergencyCallRouting(phone, number, needToTurnOnRadio);
+                if (routing != EmergencyNumber.EMERGENCY_CALL_ROUTING_NORMAL) {
+                    final Connection resultConnection =
+                            placeEmergencyConnection(phone,
+                                    request, numberToDial, isTestEmergencyNumber,
+                                    handle, needToTurnOnRadio, routing);
+                    if (resultConnection != null) return resultConnection;
+                }
+                forNormalRoutingEmergencyCall = true;
+                Log.d(this, "onCreateOutgoingConnection, forNormalRoutingEmergencyCall");
             }
         }
 
@@ -1300,7 +1303,7 @@
                     }
                 }
             }, isEmergencyNumber && !isTestEmergencyNumber, phone, isTestEmergencyNumber,
-                    timeoutToOnTimeoutCallback);
+                    timeoutToOnTimeoutCallback, forNormalRoutingEmergencyCall);
             // Return the still unconnected GsmConnection and wait for the Radios to boot before
             // connecting it to the underlying Phone.
             return resultConnection;
diff --git a/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java b/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java
index d368d46..3a69459 100644
--- a/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java
+++ b/src/com/android/services/telephony/domainselection/CrossSimRedialingController.java
@@ -227,6 +227,8 @@
 
         if (isThereOtherSlot()) {
             mSelector.notifyCrossStackTimerExpired();
+        } else if (!mPermanentRejectedSlots.isEmpty()) {
+            mSelector.maybeHangupOngoingDialing();
         }
     }
 
diff --git a/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java b/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java
index 3946d1a..0d373de 100644
--- a/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java
+++ b/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelector.java
@@ -925,8 +925,7 @@
                 requestScan(true);
                 return;
             }
-            // If NGRAN, request scan to trigger emergency registration.
-            if (mPsNetworkType == EUTRAN) {
+            if (mPsNetworkType != UNKNOWN) {
                 onWwanNetworkTypeSelected(mPsNetworkType);
             } else if (mCsNetworkType != UNKNOWN) {
                 checkAndSetTerminateAfterCsFailure(mLastRegResult);
@@ -1344,13 +1343,19 @@
 
         int accessNetwork = regResult.getAccessNetwork();
         List<Integer> ratList = getImsNetworkTypeConfiguration();
+        if (!inService && !ratList.contains(NGRAN) && !isSimReady()
+                && !TextUtils.isEmpty(regResult.getCountryIso())) {
+            ratList.add(NGRAN);
+            logi("getSelectablePsNetworkType ratList=" + ratList);
+        }
         if (ratList.contains(accessNetwork)) {
             if (mIsEmergencyBarred) {
                 logi("getSelectablePsNetworkType barred");
                 return UNKNOWN;
             }
             if (accessNetwork == NGRAN) {
-                return (regResult.getNwProvidedEmc() > 0 && regResult.isVopsSupported())
+                return (regResult.getNwProvidedEmc() > 0
+                        && (regResult.isVopsSupported() || !inService))
                         ? NGRAN : UNKNOWN;
             } else if (accessNetwork == EUTRAN) {
                 return (regResult.isEmcBearerSupported()
@@ -1845,6 +1850,18 @@
         terminateSelectionForCrossSimRedialing(isHangupOngoingDialing);
     }
 
+    /**
+     * If another slot has already permanently failed,
+     * and IMS REG is not completed in the current slot, hang up the ongoing call.
+     */
+    public void maybeHangupOngoingDialing() {
+        logi("maybeHangupOngoingDialing");
+
+        if (mDomainSelected && hangupOngoingDialing()) {
+            notifyCrossStackTimerExpired();
+        }
+    }
+
     private boolean hangupOngoingDialing() {
         return Flags.hangupEmergencyCallForCrossSimRedialing()
                 && (mCallSetupTimerOnCurrentRat > 0)
diff --git a/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java b/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
index 906aa28..37813e3 100644
--- a/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
+++ b/src/com/android/services/telephony/domainselection/NormalCallDomainSelector.java
@@ -263,6 +263,12 @@
     }
 
     private void notifyCsSelected() {
+        if (isOutOfService()) {
+            loge("Cannot place call in current ServiceState: " + mServiceState.getState());
+            notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
+            return;
+        }
+
         logd("notifyCsSelected");
         mSelectorState = SelectorState.INACTIVE;
         if (mWwanSelectorCallback == null) {
@@ -317,26 +323,14 @@
             logd("WPS call placed over PS");
             notifyPsSelected();
         } else {
-            if (isOutOfService()) {
-                loge("Cannot place call in current ServiceState: " + mServiceState.getState());
-                notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-            } else {
-                logd("WPS call placed over CS");
-                notifyCsSelected();
-            }
+            logd("WPS call placed over CS");
+            notifyCsSelected();
         }
     }
 
     private void handleReselectDomain(ImsReasonInfo imsReasonInfo) {
         mReselectDomain = false;
 
-        // Out of service
-        if (isOutOfService()) {
-            loge("Cannot place call in current ServiceState: " + mServiceState.getState());
-            notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-            return;
-        }
-
         // IMS -> CS
         if (imsReasonInfo != null) {
             logd("PsDisconnectCause:" + imsReasonInfo.getCode());
@@ -413,12 +407,7 @@
 
         if (!mImsStateTracker.isMmTelFeatureAvailable()) {
             logd("MmTelFeatureAvailable unavailable");
-            if (isOutOfService()) {
-                loge("Cannot place call in current ServiceState: " + mServiceState.getState());
-                notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-            } else {
-                notifyCsSelected();
-            }
+            notifyCsSelected();
             return;
         }
 
@@ -434,23 +423,13 @@
         // Check IMS registration state.
         if (!mImsStateTracker.isImsRegistered()) {
             logd("IMS is NOT registered");
-            if (isOutOfService()) {
-                loge("Cannot place call in current ServiceState: " + mServiceState.getState());
-                notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-            } else {
-                notifyCsSelected();
-            }
+            notifyCsSelected();
             return;
         }
 
         // Check TTY
         if (isTtyModeEnabled() && !isTtySupportedByIms()) {
-            if (isOutOfService()) {
-                loge("Cannot place call in current ServiceState: " + mServiceState.getState());
-                notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-            } else {
-                notifyCsSelected();
-            }
+            notifyCsSelected();
             return;
         }
 
@@ -479,12 +458,7 @@
         } else {
             logd("IMS is not voice capable");
             // Voice call CS fallback
-            if (isOutOfService()) {
-                loge("Cannot place call in current ServiceState: " + mServiceState.getState());
-                notifySelectionTerminated(DisconnectCause.OUT_OF_SERVICE);
-            } else {
-                notifyCsSelected();
-            }
+            notifyCsSelected();
         }
     }
 
diff --git a/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml b/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml
index b1b2ccf..9bb8d3f 100644
--- a/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml
+++ b/testapps/TestSatelliteApp/res/layout/activity_SatelliteControl.xml
@@ -126,17 +126,11 @@
             android:paddingRight="4dp"
             android:text="@string/getIsEmergency"/>
         <Button
-            android:id="@+id/requestProvisionSubscriberIds"
+            android:id="@+id/requestSatelliteSubscriberProvisionStatus"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:paddingRight="4dp"
-            android:text="@string/requestProvisionSubscriberIds"/>
-        <Button
-            android:id="@+id/requestIsProvisioned"
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:paddingRight="4dp"
-            android:text="@string/requestIsProvisioned"/>
+            android:text="@string/requestSatelliteSubscriberProvisionStatus"/>
         <Button
             android:id="@+id/provisionSatellite"
             android:layout_width="match_parent"
diff --git a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
index c51d574..728576a 100644
--- a/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
+++ b/testapps/TestSatelliteApp/res/values/donottranslate_strings.xml
@@ -93,8 +93,7 @@
     <string name="reportSatelliteNotSupportedFromModem">reportSatelliteNotSupportedFromModem</string>
     <string name="showCurrentSatelliteSupportedStated">showCurrentSatelliteSupportedStated</string>
 
-    <string name="requestProvisionSubscriberIds">requestProvisionSubscriberIds</string>
-    <string name="requestIsProvisioned">requestIsProvisioned</string>
+    <string name="requestSatelliteSubscriberProvisionStatus">requestSatelliteSubscriberProvisionStatus</string>
     <string name="provisionSatellite">provisionSatellite</string>
 
     <string name="Back">Back</string>
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
index 4843c5f..379fc74 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/SatelliteControl.java
@@ -26,6 +26,7 @@
 import android.telephony.satellite.SatelliteCapabilities;
 import android.telephony.satellite.SatelliteManager;
 import android.telephony.satellite.SatelliteSubscriberInfo;
+import android.telephony.satellite.SatelliteSubscriberProvisionStatus;
 import android.telephony.satellite.stub.SatelliteResult;
 import android.view.View;
 import android.view.View.OnClickListener;
@@ -47,7 +48,8 @@
 
     private SatelliteManager mSatelliteManager;
     private SubscriptionManager mSubscriptionManager;
-    private List<SatelliteSubscriberInfo> mSatelliteSubscriberInfoList = new ArrayList<>();
+    private List<SatelliteSubscriberProvisionStatus> mSatelliteSubscriberProvisionStatuses =
+            new ArrayList<>();
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -86,10 +88,8 @@
                 .setOnClickListener(this::isRequestIsSatelliteEnabledForCarrierApp);
         findViewById(R.id.getIsEmergency)
                 .setOnClickListener(this::getIsEmergencyApp);
-        findViewById(R.id.requestProvisionSubscriberIds)
-                .setOnClickListener(this::requestProvisionSubscriberIdsApp);
-        findViewById(R.id.requestIsProvisioned)
-                .setOnClickListener(this::requestIsProvisionedApp);
+        findViewById(R.id.requestSatelliteSubscriberProvisionStatus)
+                .setOnClickListener(this::requestSatelliteSubscriberProvisionStatusApp);
         findViewById(R.id.provisionSatellite)
                 .setOnClickListener(this::provisionSatelliteApp);
         findViewById(R.id.Back).setOnClickListener(new OnClickListener() {
@@ -393,67 +393,36 @@
                 .getIsEmergency());
     }
 
-    private void requestProvisionSubscriberIdsApp(View view) {
-        final AtomicReference<List<SatelliteSubscriberInfo>> list = new AtomicReference<>();
+    private void requestSatelliteSubscriberProvisionStatusApp(View view) {
+        final AtomicReference<List<SatelliteSubscriberProvisionStatus>> list =
+                new AtomicReference<>();
         final AtomicReference<Integer> errorCode = new AtomicReference<>();
-        OutcomeReceiver<List<SatelliteSubscriberInfo>, SatelliteManager.SatelliteException>
+        OutcomeReceiver<List<SatelliteSubscriberProvisionStatus>,
+                SatelliteManager.SatelliteException>
                 receiver =
                 new OutcomeReceiver<>() {
                     @Override
-                    public void onResult(List<SatelliteSubscriberInfo> result) {
-                        mSatelliteSubscriberInfoList = result;
+                    public void onResult(List<SatelliteSubscriberProvisionStatus> result) {
+                        mSatelliteSubscriberProvisionStatuses = result;
                         list.set(result);
                         TextView textView = findViewById(R.id.text_id);
-                        String text = "";
-                        for (SatelliteSubscriberInfo psi : result) {
+                        String text = "requestSatelliteSubscriberProvisionStatus: result=";
+                        for (SatelliteSubscriberProvisionStatus psi : result) {
                             text += "" + psi + " , ";
                         }
-                        textView.setText("requestProvisionSubscriberIds: result=" + text);
+                        textView.setText(text);
                     }
 
                     @Override
                     public void onError(SatelliteManager.SatelliteException exception) {
                         errorCode.set(exception.getErrorCode());
                         TextView textView = findViewById(R.id.text_id);
-                        textView.setText("Status for requestProvisionSubscriberIds error : "
-                                + SatelliteErrorUtils.mapError(errorCode.get()));
+                        textView.setText(
+                                "Status for requestSatelliteSubscriberProvisionStatus error : "
+                                        + SatelliteErrorUtils.mapError(errorCode.get()));
                     }
                 };
-        mSatelliteManager.requestProvisionSubscriberIds(Runnable::run, receiver);
-    }
-
-    private void requestIsProvisionedApp(View view) {
-        final AtomicReference<Boolean> enabled = new AtomicReference<>();
-        final AtomicReference<Integer> errorCode = new AtomicReference<>();
-        OutcomeReceiver<Boolean, SatelliteManager.SatelliteException> receiver =
-                new OutcomeReceiver<>() {
-                    @Override
-                    public void onResult(Boolean result) {
-                        enabled.set(result);
-                        TextView textView = findViewById(R.id.text_id);
-                        if (enabled.get()) {
-                            textView.setText("requestIsProvisioned is true");
-                        } else {
-                            textView.setText("Status for requestIsProvisioned result : "
-                                    + enabled.get());
-                        }
-                    }
-
-                    @Override
-                    public void onError(SatelliteManager.SatelliteException exception) {
-                        errorCode.set(exception.getErrorCode());
-                        TextView textView = findViewById(R.id.text_id);
-                        textView.setText("Status for requestIsProvisioned error : "
-                                + SatelliteErrorUtils.mapError(errorCode.get()));
-                    }
-                };
-        if (mSatelliteSubscriberInfoList == null || mSatelliteSubscriberInfoList.get(0) == null) {
-            TextView textView = findViewById(R.id.text_id);
-            textView.setText("No ProvisionSubscriberIdList");
-            return;
-        }
-        mSatelliteManager.requestIsProvisioned(
-                mSatelliteSubscriberInfoList.get(0).getSubscriberId(), Runnable::run, receiver);
+        mSatelliteManager.requestSatelliteSubscriberProvisionStatus(Runnable::run, receiver);
     }
 
     private void provisionSatelliteApp(View view) {
@@ -481,6 +450,10 @@
                                 + SatelliteErrorUtils.mapError(errorCode.get()));
                     }
                 };
-        mSatelliteManager.provisionSatellite(mSatelliteSubscriberInfoList, Runnable::run, receiver);
+        List<SatelliteSubscriberInfo> list = new ArrayList<>();
+        for (SatelliteSubscriberProvisionStatus status : mSatelliteSubscriberProvisionStatuses) {
+            list.add(status.getSatelliteSubscriberInfo());
+        }
+        mSatelliteManager.provisionSatellite(list, Runnable::run, receiver);
     }
 }
diff --git a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
index 54bb16d..9c75a84 100644
--- a/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
+++ b/testapps/TestSatelliteApp/src/com/android/phone/testapps/satellitetestapp/TestSatelliteService.java
@@ -33,6 +33,7 @@
 import android.telephony.satellite.stub.SatelliteCapabilities;
 import android.telephony.satellite.stub.SatelliteDatagram;
 import android.telephony.satellite.stub.SatelliteImplBase;
+import android.telephony.satellite.stub.SatelliteModemEnableRequestAttributes;
 import android.telephony.satellite.stub.SatelliteModemState;
 import android.telephony.satellite.stub.SatelliteResult;
 import android.telephony.satellite.stub.SatelliteService;
@@ -184,21 +185,25 @@
     }
 
     @Override
-    public void requestSatelliteEnabled(boolean enableSatellite, boolean enableDemoMode,
-            boolean isEmergency, @NonNull IIntegerConsumer errorCallback) {
-        logd("requestSatelliteEnabled: mErrorCode=" + mErrorCode + " enable = " + enableSatellite
-                + " isEmergency=" + isEmergency);
+    public void requestSatelliteEnabled(SatelliteModemEnableRequestAttributes enableAttributes,
+            @NonNull IIntegerConsumer errorCallback) {
+        logd("requestSatelliteEnabled: mErrorCode=" + mErrorCode
+                + ", isEnabled=" + enableAttributes.isEnabled
+                + ", isDemoMode=" + enableAttributes.isDemoMode
+                + ", isEmergency= " + enableAttributes.isEmergencyMode
+                + ", iccId=" + enableAttributes.satelliteSubscriptionInfo.iccId
+                + ", niddApn=" + enableAttributes.satelliteSubscriptionInfo.niddApn);
         if (mErrorCode != SatelliteResult.SATELLITE_RESULT_SUCCESS) {
             runWithExecutor(() -> errorCallback.accept(mErrorCode));
             return;
         }
 
-        if (enableSatellite) {
+        if (enableAttributes.isEnabled) {
             enableSatellite(errorCallback);
         } else {
             disableSatellite(errorCallback);
         }
-        mIsEmergnecy = isEmergency;
+        mIsEmergnecy = enableAttributes.isEmergencyMode;
     }
 
     private void enableSatellite(@NonNull IIntegerConsumer errorCallback) {
diff --git a/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java b/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
index 8eba53b..87c73ac 100644
--- a/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
+++ b/tests/src/com/android/phone/satellite/accesscontrol/SatelliteAccessControllerTest.java
@@ -22,8 +22,14 @@
 import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_REQUEST_NOT_SUPPORTED;
 import static android.telephony.satellite.SatelliteManager.SATELLITE_RESULT_SUCCESS;
 
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.ALLOWED_STATE_CACHE_VALID_DURATION_NANOS;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.CMD_HANDLE_COUNTRY_CODE_CHANGED;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.CMD_IS_SATELLITE_COMMUNICATION_ALLOWED;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.EVENT_CONFIG_DATA_UPDATED;
 import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.GOOGLE_US_SAN_SAT_S2_FILE_NAME;
+import static com.android.phone.satellite.accesscontrol.SatelliteAccessController.DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
@@ -34,10 +40,12 @@
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.anyLong;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.clearInvocations;
 import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -63,6 +71,7 @@
 import android.os.Message;
 import android.os.ResultReceiver;
 import android.telecom.TelecomManager;
+import android.telephony.SubscriptionManager;
 import android.telephony.satellite.SatelliteManager;
 import android.testing.TestableLooper;
 import android.util.Log;
@@ -106,11 +115,19 @@
 public class SatelliteAccessControllerTest {
     private static final String TAG = "SatelliteAccessControllerTest";
     private static final String[] TEST_SATELLITE_COUNTRY_CODES = {"US", "CA", "UK"};
+    private static final String[] TEST_SATELLITE_COUNTRY_CODES_EMPTY = {""};
+    private static final String TEST_SATELLITE_COUNTRY_CODE_US = "US";
+    private static final String TEST_SATELLITE_COUNTRY_CODE_KR = "KR";
+    private static final String TEST_SATELLITE_COUNTRY_CODE_JP = "JP";
+
     private static final String TEST_SATELLITE_S2_FILE = "sat_s2_file.dat";
     private static final boolean TEST_SATELLITE_ALLOW = true;
+    private static final boolean TEST_SATELLITE_NOT_ALLOW = false;
     private static final int TEST_LOCATION_FRESH_DURATION_SECONDS = 10;
     private static final long TEST_LOCATION_FRESH_DURATION_NANOS =
             TimeUnit.SECONDS.toNanos(TEST_LOCATION_FRESH_DURATION_SECONDS);
+    private static final long TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS =
+            TimeUnit.MINUTES.toNanos(10);  // DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES
     private static final long TIMEOUT = 500;
     private static final List<String> EMPTY_STRING_LIST = new ArrayList<>();
     private static final List<String> LOCATION_PROVIDERS =
@@ -170,6 +187,13 @@
     private ArgumentCaptor<Integer> mConfigUpdateIntCaptor;
     @Captor
     private ArgumentCaptor<Object> mConfigUpdateObjectCaptor;
+    @Captor
+    private ArgumentCaptor<Handler> mCountryDetectorHandlerCaptor;
+    @Captor
+    private ArgumentCaptor<Integer> mCountryDetectorIntCaptor;
+    @Captor
+    private ArgumentCaptor<Object> mCountryDetectorObjCaptor;
+
     private boolean mQueriedSatelliteAllowed = false;
     private int mQueriedSatelliteAllowedResultCode = SATELLITE_RESULT_SUCCESS;
     private Semaphore mSatelliteAllowedSemaphore = new Semaphore(0);
@@ -243,6 +267,17 @@
         when(mMockResources.getInteger(com.android.internal.R.integer
                 .config_oem_enabled_satellite_location_fresh_duration))
                 .thenReturn(TEST_LOCATION_FRESH_DURATION_SECONDS);
+        when(mMockResources.getInteger(com.android.internal.R.integer
+                .config_satellite_delay_minutes_before_retry_validating_possible_change_in_allowed_region))
+                .thenReturn(
+                        DEFAULT_DELAY_MINUTES_BEFORE_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+        when(mMockResources.getInteger(com.android.internal.R.integer
+                .config_satellite_max_retry_count_for_validating_possible_change_in_allowed_region))
+                .thenReturn(
+                        DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+        when(mMockResources.getInteger(com.android.internal.R.integer
+                .config_satellite_location_query_throttle_interval_minutes))
+                .thenReturn(DEFAULT_THROTTLE_INTERVAL_FOR_LOCATION_QUERY_MINUTES);
 
         when(mMockLocationManager.getProviders(true)).thenReturn(LOCATION_PROVIDERS);
         when(mMockLocationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER))
@@ -266,8 +301,12 @@
                 .putBoolean(anyString(), anyBoolean());
         doReturn(mMockSharedPreferencesEditor).when(mMockSharedPreferencesEditor)
                 .putStringSet(anyString(), any());
+        doReturn(mMockSharedPreferencesEditor).when(mMockSharedPreferencesEditor)
+                .putLong(anyString(), anyLong());
+        doNothing().when(mMockSharedPreferencesEditor).apply();
 
         when(mMockFeatureFlags.satellitePersistentLogging()).thenReturn(true);
+        when(mMockFeatureFlags.geofenceEnhancementForBetterUx()).thenReturn(true);
 
         mSatelliteAccessControllerUT = new TestSatelliteAccessController(mMockContext,
                 mMockFeatureFlags, mLooper, mMockLocationManager, mMockTelecomManager,
@@ -299,6 +338,269 @@
     }
 
     @Test
+    public void testIsSatelliteAccessAllowedForLocation() {
+        when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+
+        // Test disallowList case
+        when(mMockResources.getBoolean(
+                com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+                .thenReturn(TEST_SATELLITE_NOT_ALLOW);
+
+        // configuration is EMPTY then we return true with any network country code.
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        assertTrue(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+        assertTrue(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_JP)));
+
+        // configuration is ["US", "CA", "UK"]
+        // - if network country code is ["US"] or ["US","KR"] or [EMPTY] return false;
+        // - if network country code is ["KR"] return true;
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(List.of()));
+        assertFalse(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+        assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(
+                        List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_KR)));
+        assertTrue(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_KR)));
+
+        // Test allowList case
+        when(mMockResources.getBoolean(
+                com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+                .thenReturn(TEST_SATELLITE_ALLOW);
+
+        // configuration is [EMPTY] then return false in case of any network country code
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        assertFalse(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+        assertFalse(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_JP)));
+
+        // configuration is ["US", "CA", "UK"]
+        // - if network country code is [EMPTY] or ["US","KR"] or [KR] return false;
+        // - if network country code is ["US"] return true;
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(List.of()));
+        assertFalse(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_KR)));
+        assertFalse(mSatelliteAccessControllerUT.isSatelliteAccessAllowedForLocation(
+                List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_KR)));
+        assertTrue(mSatelliteAccessControllerUT
+                .isSatelliteAccessAllowedForLocation(List.of(TEST_SATELLITE_COUNTRY_CODE_US)));
+    }
+
+    @Test
+    public void testIsRegionDisallowed() throws Exception {
+        // setup to make the return value of mQueriedSatelliteAllowed 'true'
+        when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+        when(mMockContext.getResources()).thenReturn(mMockResources);
+        when(mMockResources.getBoolean(
+                com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+                .thenReturn(TEST_SATELLITE_ALLOW);
+        setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
+        setUpResponseForRequestIsSatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS);
+        doReturn(true).when(mMockLocationManager).isLocationEnabled();
+        when(mMockSatelliteOnDeviceAccessController.isSatCommunicationAllowedAtLocation(
+                any(SatelliteOnDeviceAccessController.LocationToken.class))).thenReturn(true);
+        replaceInstance(SatelliteAccessController.class, "mCachedAccessRestrictionMap",
+                mSatelliteAccessControllerUT, mMockCachedAccessRestrictionMap);
+        doReturn(true).when(mMockCachedAccessRestrictionMap).containsKey(any());
+        doReturn(true).when(mMockCachedAccessRestrictionMap).get(any());
+
+        // get allowed country codes EMPTY from resources
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+
+        // allow case that network country codes [US] with [EMPTY] configuration
+        // location will not be compared and mQueriedSatelliteAllowed will be set false
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+        assertFalse(mQueriedSatelliteAllowed);
+
+        // allow case that network country codes [EMPTY] with [EMPTY] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(List.of());
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // get allowed country codes [US, CA, UK] from resources
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+
+        // allow case that network country codes [US, CA, UK] with [US, CA, UK] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODES));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // allow case that network country codes [US] with [US, CA, UK] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // allow case that network country codes [US, KR] with [US, CA, UK] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(
+                List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_KR));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // allow case that network country codes [US] with [EMPTY] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(List.of());
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // allow case that network country codes [KR, JP] with [US, CA, UK] configuration
+        // location will not be compared and mQueriedSatelliteAllowed will be set false
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(
+                List.of(TEST_SATELLITE_COUNTRY_CODE_KR, TEST_SATELLITE_COUNTRY_CODE_JP));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+        assertFalse(mQueriedSatelliteAllowed);
+
+        // allow case that network country codes [KR] with [US, CA, UK] configuration
+        // location will not be compared and mQueriedSatelliteAllowed will be set false
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_KR));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+        assertFalse(mQueriedSatelliteAllowed);
+
+
+        // set disallowed list case
+        when(mMockResources.getBoolean(
+                com.android.internal.R.bool.config_oem_enabled_satellite_access_allow))
+                .thenReturn(TEST_SATELLITE_NOT_ALLOW);
+        // get disallowed country codes list [EMPTY] from resources
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES_EMPTY);
+
+        // disallow case that network country codes [US] with [EMPTY] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // get disallowed country codes list ["US", "CA", "UK"] from resources
+        when(mMockResources.getStringArray(
+                com.android.internal.R.array.config_oem_enabled_satellite_country_codes))
+                .thenReturn(TEST_SATELLITE_COUNTRY_CODES);
+
+        // disallow case that network country codes [EMPTY] with [US, CA, UK] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODES_EMPTY));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // disallow case that network country codes [US, JP] with [US, CA, UK] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(
+                List.of(TEST_SATELLITE_COUNTRY_CODE_US, TEST_SATELLITE_COUNTRY_CODE_JP));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // disallow case that network country codes [JP] with [US, CA, UK] configuration
+        // location will be compared and mQueriedSatelliteAllowed will be set true
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_JP));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(1)).containsKey(any());
+        assertTrue(mQueriedSatelliteAllowed);
+
+        // disallow case that network country codes [US] with [US, CA, UK] configuration
+        // location will not be compared and mQueriedSatelliteAllowed will be set false
+        clearInvocations(mMockCachedAccessRestrictionMap);
+        when(mMockCountryDetector.getCurrentNetworkCountryIso())
+                .thenReturn(List.of(TEST_SATELLITE_COUNTRY_CODE_US));
+        mSatelliteAccessControllerUT.loadOverlayConfigs(mMockContext);
+        mSatelliteAccessControllerUT.requestIsCommunicationAllowedForCurrentLocation(
+                SUB_ID, mSatelliteAllowedReceiver);
+        mTestableLooper.processAllMessages();
+        verify(mMockCachedAccessRestrictionMap, times(0)).containsKey(any());
+        assertFalse(mQueriedSatelliteAllowed);
+    }
+
+    @Test
     public void testRequestIsSatelliteCommunicationAllowedForCurrentLocation() throws Exception {
         // OEM-enabled satellite is not supported
         when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(false);
@@ -376,6 +678,8 @@
         when(mMockCountryDetector.getCurrentNetworkCountryIso()).thenReturn(EMPTY_STRING_LIST);
         when(mMockTelecomManager.isInEmergencyCall()).thenReturn(false);
         when(mMockPhone.isInEcm()).thenReturn(true);
+        when(mMockPhone.getContext()).thenReturn(mMockContext);
+        when(mMockPhone2.getContext()).thenReturn(mMockContext);
         mSatelliteAccessControllerUT.elapsedRealtimeNanos = TEST_LOCATION_FRESH_DURATION_NANOS + 1;
         when(mMockLocation0.getElapsedRealtimeNanos()).thenReturn(0L);
         when(mMockLocation1.getElapsedRealtimeNanos()).thenReturn(0L);
@@ -457,6 +761,136 @@
     }
 
     @Test
+    public void testAllowLocationQueryForSatelliteAllowedCheck() {
+        mSatelliteAccessControllerUT.mLatestSatelliteCommunicationAllowedSetTime = 1;
+
+        mSatelliteAccessControllerUT.setIsSatelliteAllowedRegionPossiblyChanged(false);
+        // cash is invalid
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+                ALLOWED_STATE_CACHE_VALID_DURATION_NANOS + 10;
+        assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+        // cash is valid
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+                ALLOWED_STATE_CACHE_VALID_DURATION_NANOS - 10;
+        assertFalse(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+        mSatelliteAccessControllerUT.setIsSatelliteAllowedRegionPossiblyChanged(true);
+        // cash is invalid
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+                ALLOWED_STATE_CACHE_VALID_DURATION_NANOS + 10;
+        assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+        // cash is valid and throttled
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+                ALLOWED_STATE_CACHE_VALID_DURATION_NANOS - 10;
+
+        // cash is valid and never queried before
+        mSatelliteAccessControllerUT.mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos = 0;
+        assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+        // cash is valid and throttled
+        mSatelliteAccessControllerUT.mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos =
+                mSatelliteAccessControllerUT.elapsedRealtimeNanos
+                - TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS + 100;
+        assertFalse(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+
+        // cash is valid and not throttled
+        mSatelliteAccessControllerUT.mLastLocationQueryForPossibleChangeInAllowedRegionTimeNanos =
+                mSatelliteAccessControllerUT.elapsedRealtimeNanos
+                - TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS - 100;
+        assertTrue(mSatelliteAccessControllerUT.allowLocationQueryForSatelliteAllowedCheck());
+    }
+
+    @Test
+    public void testValidatePossibleChangeInSatelliteAllowedRegion() throws Exception {
+        // OEM-enabled satellite is supported
+        when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+
+        verify(mMockCountryDetector).registerForCountryCodeChanged(
+                mCountryDetectorHandlerCaptor.capture(), mCountryDetectorIntCaptor.capture(),
+                mCountryDetectorObjCaptor.capture());
+
+        assertSame(mCountryDetectorHandlerCaptor.getValue(), mSatelliteAccessControllerUT);
+        assertSame(mCountryDetectorIntCaptor.getValue(), CMD_HANDLE_COUNTRY_CODE_CHANGED);
+        assertNull(mCountryDetectorObjCaptor.getValue());
+
+        // Normal case that invokes
+        // mMockSatelliteOnDeviceAccessController.isSatCommunicationAllowedAtLocation
+        clearInvocations(mMockSatelliteOnDeviceAccessController);
+        setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
+        setUpResponseForRequestIsSatelliteProvisioned(true, SATELLITE_RESULT_SUCCESS);
+        doReturn(true).when(mMockLocationManager).isLocationEnabled();
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos = TEST_LOCATION_FRESH_DURATION_NANOS;
+        sendCommandValidateCountryCodeChangeEvent(mMockContext);
+        verify(mMockSatelliteOnDeviceAccessController,
+                times(1)).isSatCommunicationAllowedAtLocation(
+                any(SatelliteOnDeviceAccessController.LocationToken.class));
+
+        // Case that isCommunicationAllowedCacheValid is true
+        clearInvocations(mMockSatelliteOnDeviceAccessController);
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos = TEST_LOCATION_FRESH_DURATION_NANOS + 1;
+        sendCommandValidateCountryCodeChangeEvent(mMockContext);
+        verify(mMockSatelliteOnDeviceAccessController, never()).isSatCommunicationAllowedAtLocation(
+                any(SatelliteOnDeviceAccessController.LocationToken.class));
+
+        // Case that mLatestCacheEnforcedValidateTimeNanos is over
+        // ALLOWED_STATE_CACHE_VALIDATE_INTERVAL_NANOS (1hours)
+        clearInvocations(mMockSatelliteOnDeviceAccessController);
+        mSatelliteAccessControllerUT.elapsedRealtimeNanos =
+                mSatelliteAccessControllerUT.elapsedRealtimeNanos
+                        + TEST_LOCATION_QUERY_THROTTLE_INTERVAL_NANOS + 1;
+        when(mMockLocation0.getElapsedRealtimeNanos())
+                .thenReturn(mSatelliteAccessControllerUT.elapsedRealtimeNanos + 1L);
+        when(mMockLocation1.getElapsedRealtimeNanos())
+                .thenReturn(mSatelliteAccessControllerUT.elapsedRealtimeNanos + 1L);
+        when(mMockLocation0.getLatitude()).thenReturn(2.0);
+        when(mMockLocation0.getLongitude()).thenReturn(2.0);
+        when(mMockLocation1.getLatitude()).thenReturn(3.0);
+        when(mMockLocation1.getLongitude()).thenReturn(3.0);
+        when(mMockSatelliteOnDeviceAccessController.isSatCommunicationAllowedAtLocation(
+                any(SatelliteOnDeviceAccessController.LocationToken.class))).thenReturn(false);
+        sendCommandValidateCountryCodeChangeEvent(mMockContext);
+        verify(mMockSatelliteOnDeviceAccessController,
+                times(1)).isSatCommunicationAllowedAtLocation(
+                any(SatelliteOnDeviceAccessController.LocationToken.class));
+    }
+
+    @Test
+    public void testRetryValidatePossibleChangeInSatelliteAllowedRegion() throws Exception {
+        when(mMockFeatureFlags.oemEnabledSatelliteFlag()).thenReturn(true);
+
+        verify(mMockCountryDetector).registerForCountryCodeChanged(
+                mCountryDetectorHandlerCaptor.capture(), mCountryDetectorIntCaptor.capture(),
+                mCountryDetectorObjCaptor.capture());
+
+        assertSame(mCountryDetectorHandlerCaptor.getValue(), mSatelliteAccessControllerUT);
+        assertSame(mCountryDetectorIntCaptor.getValue(), CMD_HANDLE_COUNTRY_CODE_CHANGED);
+        assertNull(mCountryDetectorObjCaptor.getValue());
+
+        assertTrue(mSatelliteAccessControllerUT
+                .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 0);
+
+        setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_LOCATION_NOT_AVAILABLE);
+        sendCommandValidateCountryCodeChangeEvent(mMockContext);
+
+        assertTrue(mSatelliteAccessControllerUT
+                .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 1);
+
+        mSatelliteAccessControllerUT.setRetryCountPossibleChangeInSatelliteAllowedRegion(
+                DEFAULT_MAX_RETRY_COUNT_FOR_VALIDATING_POSSIBLE_CHANGE_IN_ALLOWED_REGION);
+        sendSatelliteCommunicationAllowedEvent();
+        assertTrue(mSatelliteAccessControllerUT
+                .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 0);
+
+        mSatelliteAccessControllerUT.setRetryCountPossibleChangeInSatelliteAllowedRegion(2);
+        setUpResponseForRequestIsSatelliteSupported(true, SATELLITE_RESULT_SUCCESS);
+        sendSatelliteCommunicationAllowedEvent();
+        assertTrue(mSatelliteAccessControllerUT
+                .getRetryCountPossibleChangeInSatelliteAllowedRegion() == 0);
+    }
+
+    @Test
     public void testUpdateSatelliteConfigData() throws Exception {
         verify(mMockSatelliteController).registerForConfigUpdateChanged(
                 mConfigUpdateHandlerCaptor.capture(), mConfigUpdateIntCaptor.capture(),
@@ -528,6 +962,18 @@
         verify(mMockCachedAccessRestrictionMap, times(1)).clear();
     }
 
+    private void sendSatelliteCommunicationAllowedEvent() {
+        Pair<Integer, ResultReceiver> requestPair =
+                new Pair<>(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID,
+                        mSatelliteAccessControllerUT.getResultReceiverCurrentLocation());
+        Message msg = mSatelliteAccessControllerUT.obtainMessage(
+                CMD_IS_SATELLITE_COMMUNICATION_ALLOWED);
+        msg.obj = requestPair;
+        msg.sendToTarget();
+        mTestableLooper.processAllMessages();
+    }
+
+
     private void sendConfigUpdateChangedEvent(Context context) {
         Message msg = mSatelliteAccessControllerUT.obtainMessage(EVENT_CONFIG_DATA_UPDATED);
         msg.obj = new AsyncResult(context, SATELLITE_RESULT_SUCCESS, null);
@@ -535,6 +981,13 @@
         mTestableLooper.processAllMessages();
     }
 
+    private void sendCommandValidateCountryCodeChangeEvent(Context context) {
+        Message msg = mSatelliteAccessControllerUT.obtainMessage(CMD_HANDLE_COUNTRY_CODE_CHANGED);
+        msg.obj = new AsyncResult(context, SATELLITE_RESULT_SUCCESS, null);
+        msg.sendToTarget();
+        mTestableLooper.processAllMessages();
+    }
+
     private void clearAllInvocations() {
         clearInvocations(mMockSatelliteController);
         clearInvocations(mMockSatelliteOnDeviceAccessController);
@@ -678,5 +1131,17 @@
         public boolean isWaitForCurrentLocationTimerStarted() {
             return hasMessages(EVENT_WAIT_FOR_CURRENT_LOCATION_TIMEOUT);
         }
+
+        public int getRetryCountPossibleChangeInSatelliteAllowedRegion() {
+            return mRetryCountForValidatingPossibleChangeInAllowedRegion;
+        }
+
+        public void setRetryCountPossibleChangeInSatelliteAllowedRegion(int retryCount) {
+            mRetryCountForValidatingPossibleChangeInAllowedRegion = retryCount;
+        }
+
+        public ResultReceiver getResultReceiverCurrentLocation() {
+            return mHandlerForSatelliteAllowedResult;
+        }
     }
 }
diff --git a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
index 97c3d44..6242710 100644
--- a/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
+++ b/tests/src/com/android/services/telephony/TelephonyConnectionServiceTest.java
@@ -1306,7 +1306,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(0));
+                eq(testPhone), eq(false), eq(0), eq(false));
 
         assertFalse(callback.getValue()
                 .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false));
@@ -1334,7 +1334,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(0));
+                eq(testPhone), eq(false), eq(0), eq(false));
 
         assertFalse(callback.getValue()
                 .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false));
@@ -1446,7 +1446,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(0));
+                eq(testPhone), eq(false), eq(0), eq(false));
 
         assertFalse(callback.getValue()
                 .isOkToCall(testPhone, ServiceState.STATE_OUT_OF_SERVICE, false));
@@ -1546,7 +1546,7 @@
                 PHONE_ACCOUNT_HANDLE_1, connectionRequest);
 
         verify(mRadioOnHelper).triggerRadioOnAndListen(any(), eq(false),
-                eq(testPhone0), eq(false), eq(0));
+                eq(testPhone0), eq(false), eq(0), eq(false));
     }
 
     /**
@@ -1580,7 +1580,7 @@
                 PHONE_ACCOUNT_HANDLE_1, connectionRequest);
 
         verify(mRadioOnHelper).triggerRadioOnAndListen(any(), eq(false),
-                eq(testPhone0), eq(false), eq(0));
+                eq(testPhone0), eq(false), eq(0), eq(false));
     }
 
     /**
@@ -1613,7 +1613,7 @@
                 PHONE_ACCOUNT_HANDLE_1, connectionRequest);
 
         verify(mRadioOnHelper, times(0)).triggerRadioOnAndListen(any(),
-                eq(true), eq(testPhone0), eq(false), eq(0));
+                eq(true), eq(testPhone0), eq(false), eq(0), eq(false));
     }
 
     /**
@@ -2761,7 +2761,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
 
         ServiceState ss = new ServiceState();
         ss.setState(ServiceState.STATE_OUT_OF_SERVICE);
@@ -2800,7 +2800,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
 
         ServiceState ss = new ServiceState();
         ss.setState(ServiceState.STATE_OUT_OF_SERVICE);
@@ -2825,7 +2825,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
 
         ServiceState ss = new ServiceState();
         ss.setState(ServiceState.STATE_IN_SERVICE);
@@ -2861,7 +2861,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
 
         ServiceState ss = new ServiceState();
         ss.setState(ServiceState.STATE_IN_SERVICE);
@@ -2898,7 +2898,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
 
         ServiceState ss = new ServiceState();
         ss.setState(ServiceState.STATE_IN_SERVICE);
@@ -2935,7 +2935,7 @@
         ArgumentCaptor<RadioOnStateListener.Callback> callback =
                 ArgumentCaptor.forClass(RadioOnStateListener.Callback.class);
         verify(mRadioOnHelper).triggerRadioOnAndListen(callback.capture(), eq(true),
-                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS));
+                eq(testPhone), eq(false), eq(TIMEOUT_TO_DYNAMIC_ROUTING_MS), eq(true));
 
         mConnection.setDisconnected(null);
 
diff --git a/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java b/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java
index 90446af..8a83ab0 100644
--- a/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java
+++ b/tests/src/com/android/services/telephony/domainselection/EmergencyCallDomainSelectorTest.java
@@ -3612,7 +3612,108 @@
 
         EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
                 REGISTRATION_STATE_UNKNOWN,
-                0, false, true, 0, 0, "", "");
+                0, false, true, 1, 0, "", "", "us");
+        SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+        mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+        processAllMessages();
+
+        bindImsServiceUnregistered();
+
+        verifyScanPsPreferred();
+    }
+
+    @Test
+    public void testNrSaOnlyLimitedServiceNgranEmc() throws Exception {
+        PersistableBundle bundle = getDefaultPersistableBundle();
+        bundle.putIntArray(KEY_EMERGENCY_OVER_IMS_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY,
+                new int[] { NGRAN, EUTRAN });
+        when(mCarrierConfigManager.getConfigForSubId(anyInt(), anyVararg())).thenReturn(bundle);
+
+        createSelector(SLOT_0_SUB_ID);
+        unsolBarringInfoChanged(false);
+
+        EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+                REGISTRATION_STATE_UNKNOWN,
+                0, false, false, 1, 0, "", "", "us");
+        SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+        mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+        processAllMessages();
+
+        bindImsServiceUnregistered();
+
+        verifyPsDialed();
+    }
+
+    @Test
+    public void testNrSaOnlyLimitedServiceNgranNoEmc() throws Exception {
+        PersistableBundle bundle = getDefaultPersistableBundle();
+        bundle.putIntArray(KEY_EMERGENCY_OVER_IMS_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY,
+                new int[] { NGRAN, EUTRAN });
+        when(mCarrierConfigManager.getConfigForSubId(anyInt(), anyVararg())).thenReturn(bundle);
+
+        createSelector(SLOT_0_SUB_ID);
+        unsolBarringInfoChanged(false);
+
+        EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+                REGISTRATION_STATE_UNKNOWN,
+                0, false, false, 0, 0, "", "", "us");
+        SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+        mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+        processAllMessages();
+
+        bindImsServiceUnregistered();
+
+        verifyScanPreferred(DomainSelectionService.SCAN_TYPE_NO_PREFERENCE, NGRAN);
+    }
+
+    @Test
+    public void testDefaultLimitedServiceNgranEmcWhenSimNotReady() throws Exception {
+        createSelector(SLOT_0_SUB_ID);
+        unsolBarringInfoChanged(false);
+        doReturn(TelephonyManager.SIM_STATE_PIN_REQUIRED)
+                .when(mTelephonyManager).getSimState(anyInt());
+
+        EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+                REGISTRATION_STATE_UNKNOWN,
+                0, false, false, 1, 0, "", "", "us");
+        SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+        mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+        processAllMessages();
+
+        bindImsServiceUnregistered();
+
+        verifyPsDialed();
+    }
+
+    @Test
+    public void testDefaultLimitedServiceNgranNoEmcWhenSimNotReady() throws Exception {
+        createSelector(SLOT_0_SUB_ID);
+        unsolBarringInfoChanged(false);
+        doReturn(TelephonyManager.SIM_STATE_PIN_REQUIRED)
+            .when(mTelephonyManager).getSimState(anyInt());
+
+        EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+                REGISTRATION_STATE_UNKNOWN,
+                0, false, false, 0, 0, "", "", "us");
+        SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
+        mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
+        processAllMessages();
+
+        bindImsServiceUnregistered();
+
+        verifyScanPsPreferred();
+    }
+
+    @Test
+    public void testNrSaOnlyLimitedServiceNgranEmcNoCountryIsoWhenSimNotReady() throws Exception {
+        createSelector(SLOT_0_SUB_ID);
+        unsolBarringInfoChanged(false);
+        doReturn(TelephonyManager.SIM_STATE_PIN_REQUIRED)
+                .when(mTelephonyManager).getSimState(anyInt());
+
+        EmergencyRegistrationResult regResult = getEmergencyRegResult(NGRAN,
+                REGISTRATION_STATE_UNKNOWN,
+                0, false, false, 1, 0, "", "", "");
         SelectionAttributes attr = getSelectionAttributes(SLOT_0, SLOT_0_SUB_ID, regResult);
         mDomainSelector.selectDomain(attr, mTransportSelectorCallback);
         processAllMessages();