Clean up satellite provision APIS

1) report current status on callback registration
2) No need to have vendors implement provision related apis. We can remove these interfaces
3) store provision status in persistent memory in sim table

Bug: 348272056
Flag: com.android.internal.telephony.flags.carrier_roaming_nb_iot_ntn
Test: atest SatelliteControllerTest, SatelliteSOSMessageRecommenderTest,
SubscriptionDatabaseManagerTest, SubscriptionInfoInternalTest
Test: manual e2e test with several times of provision/deprovision then
check SIM DB

Change-Id: I45d013a6b8ea7273c4eb9b630770c0d11929d7ab
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 6dc2add..9e7cbeb 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -13758,17 +13758,22 @@
      * This API can be used by only CTS to update satellite vendor service package name.
      *
      * @param servicePackageName The package name of the satellite vendor service.
+     * @param provisioned Whether satellite should be provisioned or not.
+     *
      * @return {@code true} if the satellite vendor service is set successfully,
      * {@code false} otherwise.
      */
-    public boolean setSatelliteServicePackageName(String servicePackageName) {
-        Log.d(LOG_TAG, "setSatelliteServicePackageName - " + servicePackageName);
+    public boolean setSatelliteServicePackageName(String servicePackageName,
+            String provisioned) {
+        Log.d(LOG_TAG, "setSatelliteServicePackageName - " + servicePackageName
+                + ", provisioned=" + provisioned);
         TelephonyPermissions.enforceShellOnly(
                 Binder.getCallingUid(), "setSatelliteServicePackageName");
         TelephonyPermissions.enforceCallingOrSelfModifyPermissionOrCarrierPrivilege(mApp,
                 SubscriptionManager.INVALID_SUBSCRIPTION_ID,
                 "setSatelliteServicePackageName");
-        return mSatelliteController.setSatelliteServicePackageName(servicePackageName);
+        return mSatelliteController.setSatelliteServicePackageName(servicePackageName,
+                provisioned);
     }
 
     /**
diff --git a/src/com/android/phone/TelephonyShellCommand.java b/src/com/android/phone/TelephonyShellCommand.java
index 6969275..7a424cb 100644
--- a/src/com/android/phone/TelephonyShellCommand.java
+++ b/src/com/android/phone/TelephonyShellCommand.java
@@ -3203,6 +3203,7 @@
     private int handleSetSatelliteServicePackageNameCommand() {
         PrintWriter errPw = getErrPrintWriter();
         String serviceName = null;
+        String provisioned = null;
 
         String opt;
         while ((opt = getNextOption()) != null) {
@@ -3211,24 +3212,31 @@
                     serviceName = getNextArgRequired();
                     break;
                 }
+
+                case "-p": {
+                    provisioned = getNextArgRequired();
+                    break;
+                }
             }
         }
         Log.d(LOG_TAG, "handleSetSatelliteServicePackageNameCommand: serviceName="
-                + serviceName);
+                + serviceName + ", provisioned=" + provisioned);
 
         try {
-            boolean result = mInterface.setSatelliteServicePackageName(serviceName);
+            boolean result = mInterface.setSatelliteServicePackageName(serviceName, provisioned);
             if (VDBG) {
-                Log.v(LOG_TAG, "SetSatelliteServicePackageName " + serviceName
-                        + ", result = " + result);
+                Log.v(LOG_TAG,
+                        "SetSatelliteServicePackageName " + serviceName + ", provisioned="
+                                + provisioned + ", result = " + result);
             }
             getOutPrintWriter().println(result);
         } catch (RemoteException e) {
-            Log.w(LOG_TAG, "SetSatelliteServicePackageName: " + serviceName
-                    + ", error = " + e.getMessage());
+            Log.w(LOG_TAG, "SetSatelliteServicePackageName: " + serviceName + ", provisioned="
+                    + provisioned + ", error = " + e.getMessage());
             errPw.println("Exception: " + e.getMessage());
             return -1;
         }
+
         return 0;
     }