Remove Kernel Command Line Support for CDMA Config
Remove support for the kernel-command-line-based CDMA modem config flag. Devices must now use the system property, which is also set at OS compile time and is available before telephony. Since there's no drawback, and kernel command line flags are not the right place for this, good riddance. These APIs were marked @UnsupportedAppUsage; however, the API to read the command line had zero usage, and the API to retrieve the CDMA capability had a single app usage with a very small installed base, so presumably it's legacy hardware. Bug: 138225216 Test: compilation (no functional change) Change-Id: Iac7a23056553465e1d05299df7323daf89fbfd66
This commit is contained in:
@@ -110,8 +110,6 @@ import com.android.internal.telephony.RILConstants;
|
||||
import com.android.internal.telephony.SmsApplication;
|
||||
import com.android.telephony.Rlog;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.io.IOException;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.ArrayList;
|
||||
@@ -124,8 +122,6 @@ import java.util.Objects;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Provides access to information about the telephony services on
|
||||
@@ -2388,7 +2384,8 @@ public class TelephonyManager {
|
||||
return PhoneConstants.PHONE_TYPE_CDMA;
|
||||
|
||||
case RILConstants.NETWORK_MODE_LTE_ONLY:
|
||||
if (getLteOnCdmaModeStatic() == PhoneConstants.LTE_ON_CDMA_TRUE) {
|
||||
if (TelephonyProperties.lte_on_cdma_device().orElse(
|
||||
PhoneConstants.LTE_ON_CDMA_FALSE) == PhoneConstants.LTE_ON_CDMA_TRUE) {
|
||||
return PhoneConstants.PHONE_TYPE_CDMA;
|
||||
} else {
|
||||
return PhoneConstants.PHONE_TYPE_GSM;
|
||||
@@ -2398,35 +2395,6 @@ public class TelephonyManager {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The contents of the /proc/cmdline file
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
private static String getProcCmdLine()
|
||||
{
|
||||
String cmdline = "";
|
||||
FileInputStream is = null;
|
||||
try {
|
||||
is = new FileInputStream("/proc/cmdline");
|
||||
byte [] buffer = new byte[2048];
|
||||
int count = is.read(buffer);
|
||||
if (count > 0) {
|
||||
cmdline = new String(buffer, 0, count);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
Rlog.d(TAG, "No /proc/cmdline exception=" + e);
|
||||
} finally {
|
||||
if (is != null) {
|
||||
try {
|
||||
is.close();
|
||||
} catch (IOException e) {
|
||||
}
|
||||
}
|
||||
}
|
||||
Rlog.d(TAG, "/proc/cmdline=" + cmdline);
|
||||
return cmdline;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return The max value for the timeout passed in {@link #requestNumberVerification}.
|
||||
* @hide
|
||||
@@ -2436,56 +2404,6 @@ public class TelephonyManager {
|
||||
return MAX_NUMBER_VERIFICATION_TIMEOUT_MILLIS;
|
||||
}
|
||||
|
||||
/** Kernel command line */
|
||||
private static final String sKernelCmdLine = getProcCmdLine();
|
||||
|
||||
/** Pattern for selecting the product type from the kernel command line */
|
||||
private static final Pattern sProductTypePattern =
|
||||
Pattern.compile("\\sproduct_type\\s*=\\s*(\\w+)");
|
||||
|
||||
/** The ProductType used for LTE on CDMA devices */
|
||||
private static final String sLteOnCdmaProductType =
|
||||
TelephonyProperties.lte_on_cdma_product_type().orElse("");
|
||||
|
||||
/**
|
||||
* Return if the current radio is LTE on CDMA. This
|
||||
* is a tri-state return value as for a period of time
|
||||
* the mode may be unknown.
|
||||
*
|
||||
* @return {@link PhoneConstants#LTE_ON_CDMA_UNKNOWN}, {@link PhoneConstants#LTE_ON_CDMA_FALSE}
|
||||
* or {@link PhoneConstants#LTE_ON_CDMA_TRUE}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
@UnsupportedAppUsage
|
||||
public static int getLteOnCdmaModeStatic() {
|
||||
int retVal;
|
||||
int curVal;
|
||||
String productType = "";
|
||||
|
||||
curVal = TelephonyProperties.lte_on_cdma_device().orElse(
|
||||
PhoneConstants.LTE_ON_CDMA_UNKNOWN);
|
||||
retVal = curVal;
|
||||
if (retVal == PhoneConstants.LTE_ON_CDMA_UNKNOWN) {
|
||||
Matcher matcher = sProductTypePattern.matcher(sKernelCmdLine);
|
||||
if (matcher.find()) {
|
||||
productType = matcher.group(1);
|
||||
if (sLteOnCdmaProductType.equals(productType)) {
|
||||
retVal = PhoneConstants.LTE_ON_CDMA_TRUE;
|
||||
} else {
|
||||
retVal = PhoneConstants.LTE_ON_CDMA_FALSE;
|
||||
}
|
||||
} else {
|
||||
retVal = PhoneConstants.LTE_ON_CDMA_FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
Rlog.d(TAG, "getLteOnCdmaMode=" + retVal + " curVal=" + curVal +
|
||||
" product_type='" + productType +
|
||||
"' lteOnCdmaProductType='" + sLteOnCdmaProductType + "'");
|
||||
return retVal;
|
||||
}
|
||||
|
||||
//
|
||||
//
|
||||
// Current Network
|
||||
|
||||
Reference in New Issue
Block a user