Fix permission on TM#isDataEnabled

-Allow isDataEnabled() to be read with READ_PHONE_STATE
 This method just forwarded to another method in the public
 API that only requires READ_PHONE_STATE, so it's just a bug.

-Fix a bug where TM#getDataEnabled ws ignoring the subId parameter.

Bug: 148500541
Test: compilation
Change-Id: I30b125b50d261175a44183369e5f318d7ad37be9
This commit is contained in:
Nathan Harold
2020-12-17 10:04:07 -08:00
parent bdb4677dc4
commit f7dc3f6788
2 changed files with 5 additions and 4 deletions

View File

@@ -41761,7 +41761,7 @@ package android.telephony {
method @Deprecated public String iccTransmitApduLogicalChannel(int, int, int, int, int, int, String);
method public boolean isConcurrentVoiceAndDataSupported();
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE, "android.permission.READ_PRIVILEGED_PHONE_STATE"}) public boolean isDataConnectionAllowed();
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE}) public boolean isDataEnabled();
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.MODIFY_PHONE_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabled();
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataEnabledForReason(int);
method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_NETWORK_STATE, android.Manifest.permission.READ_PHONE_STATE}) public boolean isDataRoamingEnabled();
method public boolean isEmergencyNumber(@NonNull String);

View File

@@ -9338,9 +9338,10 @@ public class TelephonyManager {
* @return true if mobile data is enabled.
*/
@RequiresPermission(anyOf = {android.Manifest.permission.ACCESS_NETWORK_STATE,
android.Manifest.permission.MODIFY_PHONE_STATE})
android.Manifest.permission.MODIFY_PHONE_STATE,
android.Manifest.permission.READ_PHONE_STATE})
public boolean isDataEnabled() {
return getDataEnabled(getSubId(SubscriptionManager.getDefaultDataSubscriptionId()));
return isDataEnabledForReason(DATA_ENABLED_REASON_USER);
}
/**
@@ -9585,7 +9586,7 @@ public class TelephonyManager {
@SystemApi
public boolean getDataEnabled(int subId) {
try {
return isDataEnabledForReason(DATA_ENABLED_REASON_USER);
return isDataEnabledForReason(subId, DATA_ENABLED_REASON_USER);
} catch (RuntimeException e) {
Log.e(TAG, "Error calling isDataEnabledForReason e:" + e);
}