Fix satellite CTS failures on physical devices

Flag: TEST_ONLY
Bug: 405483847
Test: SatelliteManagerTestOnMockService
Change-Id: Id4f51807cfc61d278fe2a0fcf0e5ca2af6c26402
diff --git a/tests/tests/telephony/current/src/android/telephony/satellite/cts/MockSatelliteServiceManager.java b/tests/tests/telephony/current/src/android/telephony/satellite/cts/MockSatelliteServiceManager.java
index 0068387..40f51d9 100644
--- a/tests/tests/telephony/current/src/android/telephony/satellite/cts/MockSatelliteServiceManager.java
+++ b/tests/tests/telephony/current/src/android/telephony/satellite/cts/MockSatelliteServiceManager.java
@@ -111,6 +111,7 @@
             "cmd phone override-config-data-version";
     private static final String UPDATE_TELEPHONY_CONFIG_INTENT =
             "com.google.android.configupdater.TelephonyConfigUpdate.UPDATE_CONFIG";
+    private static final String SET_CTS_MODE_CMD = "cmd phone set-cts-mode";
     private static final String CONFIG_UPDATER_PACKAGE = "com.google.android.configupdater";
 
     private static final long TIMEOUT = 5000;
@@ -1622,6 +1623,24 @@
         }
     }
 
+    boolean setCtsMode(boolean ctsMode) {
+        StringBuilder command = new StringBuilder();
+        command.append(SET_CTS_MODE_CMD);
+        if (ctsMode) {
+            command.append(" -e");
+        }
+
+        try {
+            String result = TelephonyUtils.executeShellCommand(mInstrumentation,
+                    command.toString());
+            logd("setCtsMode(" + command.toString() + "): result = " + result);
+            return true;
+        } catch (Exception e) {
+            loge("setCtsMode: e=" + e);
+            return false;
+        }
+    }
+
     boolean setSupportDisableSatelliteWhileEnableInProgress(boolean reset, boolean supported) {
         StringBuilder command = new StringBuilder();
         command.append(SET_SUPPORT_DISABLE_SATELLITE_WHILE_ENABLE_IN_PROGRESS_CMD);
diff --git a/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java b/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java
index 72fff1d..a6e2746 100644
--- a/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java
+++ b/tests/tests/telephony/current/src/android/telephony/satellite/cts/SatelliteManagerTestOnMockService.java
@@ -270,6 +270,8 @@
         sNtnOnlySubId = getNtnOnlySubscriptionId();
         assumeTrue(sNtnOnlySubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID);
         setUpNtnOnlySubscription();
+        // Enable CTS mode to ignore the requests from SG-APK and real Pointing UI app.
+        assertTrue(sMockSatelliteServiceManager.setCtsMode(true));
 
         revokeSatellitePermission();
     }
@@ -332,6 +334,8 @@
         assertTrue(sMockSatelliteServiceManager
                 .setIsSatelliteCommunicationAllowedForCurrentLocationCache(
                         "cache_clear_and_not_allowed"));
+        // Disable CTS mode to accept the requests from SG-APK and real Pointing UI app.
+        assertTrue(sMockSatelliteServiceManager.setCtsMode(false));
         afterAllTestsBase();
         sMockSatelliteServiceManager = null;
         sCarrierConfigReceiver = null;