Fix crashes with partial telephony stack during Telecom CTS
Bug: 367724913
Bug: 331855229
Flag: EXEMPT bugfix
Test: ABTD
Change-Id: I34e6af697d1e9bd13f0bbf88bea4d13fac845d94
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index ea3dbab..53ef07e 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2994,8 +2994,11 @@
public boolean needMobileRadioShutdown() {
enforceReadPrivilegedPermission("needMobileRadioShutdown");
- enforceTelephonyFeatureWithException(getCurrentPackageName(),
- PackageManager.FEATURE_TELEPHONY_RADIO_ACCESS, "needMobileRadioShutdown");
+ if (!mApp.getResources().getBoolean(
+ com.android.internal.R.bool.config_force_phone_globals_creation)) {
+ enforceTelephonyFeatureWithException(getCurrentPackageName(),
+ PackageManager.FEATURE_TELEPHONY_RADIO_ACCESS, "needMobileRadioShutdown");
+ }
/*
* If any of the Radios are available, it will need to be
@@ -7631,8 +7634,12 @@
public int getCarrierPrivilegeStatusForUid(int subId, int uid) {
enforceReadPrivilegedPermission("getCarrierPrivilegeStatusForUid");
- enforceTelephonyFeatureWithException(getCurrentPackageName(),
- PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getCarrierPrivilegeStatusForUid");
+ if (!mApp.getResources().getBoolean(
+ com.android.internal.R.bool.config_force_phone_globals_creation)) {
+ enforceTelephonyFeatureWithException(getCurrentPackageName(),
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION,
+ "getCarrierPrivilegeStatusForUid");
+ }
return getCarrierPrivilegeStatusForUidWithPermission(subId, uid);
}
@@ -7917,8 +7924,11 @@
return null;
}
- enforceTelephonyFeatureWithException(callingPackage,
- PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getLine1NumberForDisplay");
+ if (!mApp.getResources().getBoolean(
+ com.android.internal.R.bool.config_force_phone_globals_creation)) {
+ enforceTelephonyFeatureWithException(callingPackage,
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getLine1NumberForDisplay");
+ }
final long identity = Binder.clearCallingIdentity();
try {
@@ -10400,8 +10410,11 @@
mApp, defaultPhone.getSubId(), "isEmergencyNumber(Potential)");
}
- enforceTelephonyFeatureWithException(getCurrentPackageName(),
- PackageManager.FEATURE_TELEPHONY_CALLING, "isEmergencyNumber");
+ if (!mApp.getResources().getBoolean(
+ com.android.internal.R.bool.config_force_phone_globals_creation)) {
+ enforceTelephonyFeatureWithException(getCurrentPackageName(),
+ PackageManager.FEATURE_TELEPHONY_CALLING, "isEmergencyNumber");
+ }
final long identity = Binder.clearCallingIdentity();
try {