Merge "Protect SID and NID in ServiceState with coarse location permission" am: 7013bca07a

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1978547

Change-Id: I59b6531d71bdb5995f3402a1ea69d021a6a6d4d4
This commit is contained in:
Rambo Wang
2022-02-14 20:23:01 +00:00
committed by Automerger Merge Worker
2 changed files with 62 additions and 5 deletions

View File

@@ -41133,16 +41133,16 @@ package android.telephony {
ctor @Deprecated public ServiceState(android.os.Parcel); ctor @Deprecated public ServiceState(android.os.Parcel);
method protected void copyFrom(android.telephony.ServiceState); method protected void copyFrom(android.telephony.ServiceState);
method public int describeContents(); method public int describeContents();
method public int getCdmaNetworkId(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}) public int getCdmaNetworkId();
method public int getCdmaSystemId(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}) public int getCdmaSystemId();
method public int[] getCellBandwidths(); method public int[] getCellBandwidths();
method public int getChannelNumber(); method public int getChannelNumber();
method public int getDuplexMode(); method public int getDuplexMode();
method public boolean getIsManualSelection(); method public boolean getIsManualSelection();
method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoList(); method @NonNull public java.util.List<android.telephony.NetworkRegistrationInfo> getNetworkRegistrationInfoList();
method public String getOperatorAlphaLong(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}) public String getOperatorAlphaLong();
method public String getOperatorAlphaShort(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}) public String getOperatorAlphaShort();
method public String getOperatorNumeric(); method @RequiresPermission(anyOf={android.Manifest.permission.ACCESS_FINE_LOCATION, android.Manifest.permission.ACCESS_COARSE_LOCATION}) public String getOperatorNumeric();
method public boolean getRoaming(); method public boolean getRoaming();
method public int getState(); method public int getState();
method public boolean isSearching(); method public boolean isSearching();

View File

@@ -19,6 +19,7 @@ package android.telephony;
import android.annotation.IntDef; import android.annotation.IntDef;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.SystemApi; import android.annotation.SystemApi;
import android.annotation.TestApi; import android.annotation.TestApi;
import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage;
@@ -767,6 +768,10 @@ public class ServiceState implements Parcelable {
* *
* @return long name of operator, null if unregistered or unknown * @return long name of operator, null if unregistered or unknown
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
public String getOperatorAlphaLong() { public String getOperatorAlphaLong() {
return mOperatorAlphaLong; return mOperatorAlphaLong;
} }
@@ -782,6 +787,10 @@ public class ServiceState implements Parcelable {
* @return long name of operator * @return long name of operator
* @hide * @hide
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q, @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
publicAlternatives = "Use {@link #getOperatorAlphaLong} instead.") publicAlternatives = "Use {@link #getOperatorAlphaLong} instead.")
public String getVoiceOperatorAlphaLong() { public String getVoiceOperatorAlphaLong() {
@@ -800,6 +809,10 @@ public class ServiceState implements Parcelable {
* *
* @return short name of operator, null if unregistered or unknown * @return short name of operator, null if unregistered or unknown
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
public String getOperatorAlphaShort() { public String getOperatorAlphaShort() {
return mOperatorAlphaShort; return mOperatorAlphaShort;
} }
@@ -815,6 +828,10 @@ public class ServiceState implements Parcelable {
* @return short name of operator, null if unregistered or unknown * @return short name of operator, null if unregistered or unknown
* @hide * @hide
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q, @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
publicAlternatives = "Use {@link #getOperatorAlphaShort} instead.") publicAlternatives = "Use {@link #getOperatorAlphaShort} instead.")
public String getVoiceOperatorAlphaShort() { public String getVoiceOperatorAlphaShort() {
@@ -832,6 +849,10 @@ public class ServiceState implements Parcelable {
* @return short name of operator, null if unregistered or unknown * @return short name of operator, null if unregistered or unknown
* @hide * @hide
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q, @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
publicAlternatives = "Use {@link #getOperatorAlphaShort} instead.") publicAlternatives = "Use {@link #getOperatorAlphaShort} instead.")
public String getDataOperatorAlphaShort() { public String getDataOperatorAlphaShort() {
@@ -853,6 +874,10 @@ public class ServiceState implements Parcelable {
* @return name of operator, null if unregistered or unknown * @return name of operator, null if unregistered or unknown
* @hide * @hide
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
public String getOperatorAlpha() { public String getOperatorAlpha() {
if (TextUtils.isEmpty(mOperatorAlphaLong)) { if (TextUtils.isEmpty(mOperatorAlphaLong)) {
return mOperatorAlphaShort; return mOperatorAlphaShort;
@@ -878,6 +903,10 @@ public class ServiceState implements Parcelable {
* The country code can be decoded using * The country code can be decoded using
* {@link com.android.internal.telephony.MccTable#countryCodeForMcc(int)}. * {@link com.android.internal.telephony.MccTable#countryCodeForMcc(int)}.
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
public String getOperatorNumeric() { public String getOperatorNumeric() {
return mOperatorNumeric; return mOperatorNumeric;
} }
@@ -893,6 +922,10 @@ public class ServiceState implements Parcelable {
* @return numeric format of operator, null if unregistered or unknown * @return numeric format of operator, null if unregistered or unknown
* @hide * @hide
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P) @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.P)
public String getVoiceOperatorNumeric() { public String getVoiceOperatorNumeric() {
return mOperatorNumeric; return mOperatorNumeric;
@@ -909,6 +942,10 @@ public class ServiceState implements Parcelable {
* @return numeric format of operator, null if unregistered or unknown * @return numeric format of operator, null if unregistered or unknown
* @hide * @hide
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
@UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q, @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.Q,
publicAlternatives = "Use {@link #getOperatorNumeric} instead.") publicAlternatives = "Use {@link #getOperatorNumeric} instead.")
public String getDataOperatorNumeric() { public String getDataOperatorNumeric() {
@@ -1758,8 +1795,17 @@ public class ServiceState implements Parcelable {
/** /**
* Get the CDMA NID (Network Identification Number), a number uniquely identifying a network * Get the CDMA NID (Network Identification Number), a number uniquely identifying a network
* within a wireless system. (Defined in 3GPP2 C.S0023 3.4.8) * within a wireless system. (Defined in 3GPP2 C.S0023 3.4.8)
*
* <p>Require at least {@link android.Manifest.permission#ACCESS_FINE_LOCATION} or
* {@link android.Manifest.permission#ACCESS_COARSE_LOCATION}. Otherwise return
* {@link #UNKNOWN_ID}.
*
* @return The CDMA NID or {@link #UNKNOWN_ID} if not available. * @return The CDMA NID or {@link #UNKNOWN_ID} if not available.
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
public int getCdmaNetworkId() { public int getCdmaNetworkId() {
return this.mNetworkId; return this.mNetworkId;
} }
@@ -1767,8 +1813,17 @@ public class ServiceState implements Parcelable {
/** /**
* Get the CDMA SID (System Identification Number), a number uniquely identifying a wireless * Get the CDMA SID (System Identification Number), a number uniquely identifying a wireless
* system. (Defined in 3GPP2 C.S0023 3.4.8) * system. (Defined in 3GPP2 C.S0023 3.4.8)
*
* <p>Require at least {@link android.Manifest.permission#ACCESS_FINE_LOCATION} or
* {@link android.Manifest.permission#ACCESS_COARSE_LOCATION}. Otherwise return
* {@link #UNKNOWN_ID}.
*
* @return The CDMA SID or {@link #UNKNOWN_ID} if not available. * @return The CDMA SID or {@link #UNKNOWN_ID} if not available.
*/ */
@RequiresPermission(anyOf = {
android.Manifest.permission.ACCESS_FINE_LOCATION,
android.Manifest.permission.ACCESS_COARSE_LOCATION
})
public int getCdmaSystemId() { public int getCdmaSystemId() {
return this.mSystemId; return this.mSystemId;
} }
@@ -2069,6 +2124,8 @@ public class ServiceState implements Parcelable {
state.mOperatorAlphaLong = null; state.mOperatorAlphaLong = null;
state.mOperatorAlphaShort = null; state.mOperatorAlphaShort = null;
state.mOperatorNumeric = null; state.mOperatorNumeric = null;
state.mSystemId = UNKNOWN_ID;
state.mNetworkId = UNKNOWN_ID;
return state; return state;
} }