Merge "VPN: fix crash on missing CCM" into main
diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
index 5905b7d..e1bb8a1 100644
--- a/services/core/java/com/android/server/connectivity/Vpn.java
+++ b/services/core/java/com/android/server/connectivity/Vpn.java
@@ -344,7 +344,11 @@
private final AppOpsManager mAppOpsManager;
private final ConnectivityDiagnosticsManager mConnectivityDiagnosticsManager;
private final TelephonyManager mTelephonyManager;
+
+ // null if FEATURE_TELEPHONY_SUBSCRIPTION is not declared
+ @Nullable
private final CarrierConfigManager mCarrierConfigManager;
+
private final SubscriptionManager mSubscriptionManager;
// The context is for specific user which is created from mUserId
@@ -2837,8 +2841,10 @@
createUserAndRestrictedProfilesRanges(mUserId,
mConfig.allowedApplications, mConfig.disallowedApplications));
- mCarrierConfigManager.registerCarrierConfigChangeListener(mExecutor,
- mCarrierConfigChangeListener);
+ if (mCarrierConfigManager != null) {
+ mCarrierConfigManager.registerCarrierConfigChangeListener(mExecutor,
+ mCarrierConfigChangeListener);
+ }
}
@Override
@@ -3343,6 +3349,10 @@
*/
@Nullable
private CarrierConfigInfo getCarrierConfigForUnderlyingNetwork() {
+ if (mCarrierConfigManager == null) {
+ return null;
+ }
+
final int subId = getCellSubIdForNetworkCapabilities(mUnderlyingNetworkCapabilities);
if (subId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
Log.d(TAG, "Underlying network is not a cellular network");
@@ -3962,8 +3972,10 @@
resetIkeState();
- mCarrierConfigManager.unregisterCarrierConfigChangeListener(
- mCarrierConfigChangeListener);
+ if (mCarrierConfigManager != null) {
+ mCarrierConfigManager.unregisterCarrierConfigChangeListener(
+ mCarrierConfigChangeListener);
+ }
mConnectivityManager.unregisterNetworkCallback(mNetworkCallback);
mExecutor.shutdown();