Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d32ac18 authored by rambowang's avatar rambowang Committed by Rambo Wang
Browse files

Relax TM.isMultiSimSupported with READ_BASIC_PHONE_STATE permission

This change relaxes permission for the API
TelephonyManager.isMultiSimSupport, allowing apps with
READ_BASIC_PHONE_STATE to check if the device support multiple SIMs.

Whether a device support multiple SIMs is a basic public information
that doesn't always need READ_PHONE_STATE or carrier privileges. The
relaxed permission makes the API more useful without leaking any
sensitive info.

Bug: 401006757
Test: atest CtsTelephony2TestCases CtsTelephonyTestCases
Flag: com.android.internal.telephony.flags.macro_based_opportunistic_networks
Change-Id: Ia79260db109769c491dc6022597bc6b64b5fb969
parent 9a5460ee
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -47598,7 +47598,7 @@ package android.telephony {
    method public boolean isHearingAidCompatibilitySupported();
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PRECISE_PHONE_STATE, "android.permission.READ_PRIVILEGED_PHONE_STATE"}) public boolean isManualNetworkSelectionAllowed();
    method @RequiresPermission(anyOf={android.Manifest.permission.READ_PHONE_STATE, "android.permission.READ_PRIVILEGED_PHONE_STATE"}) public boolean isModemEnabledForSlot(int);
    method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public int isMultiSimSupported();
    method @FlaggedApi("com.android.internal.telephony.flags.macro_based_opportunistic_networks") @RequiresPermission(anyOf={android.Manifest.permission.READ_PHONE_STATE, android.Manifest.permission.READ_BASIC_PHONE_STATE}) public int isMultiSimSupported();
    method public boolean isNetworkRoaming();
    method @RequiresPermission(android.Manifest.permission.READ_BASIC_PHONE_STATE) public boolean isPremiumCapabilityAvailableForPurchase(int);
    method public boolean isRadioInterfaceCapabilitySupported(@NonNull String);
+5 −2
Original line number Diff line number Diff line
@@ -16199,7 +16199,8 @@ public class TelephonyManager {
     * Returns if the usage of multiple SIM cards at the same time to register on the network
     * (e.g. Dual Standby or Dual Active) is supported by the device and by the carrier.
     *
     * <p>Requires Permission: {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE}
     * <p>Requires Permission:{@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE},
     * {@link android.Manifest.permission#READ_BASIC_PHONE_STATE READ_BASIC_PHONE_STATE}
     * or that the calling app has carrier privileges (see {@link #hasCarrierPrivileges}).
     *
     * @return {@link #MULTISIM_ALLOWED} if the device supports multiple SIMs.
@@ -16210,8 +16211,10 @@ public class TelephonyManager {
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}.
     */
    @FlaggedApi(Flags.FLAG_MACRO_BASED_OPPORTUNISTIC_NETWORKS)
    @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
    @RequiresPermission(anyOf = {android.Manifest.permission.READ_PHONE_STATE,
            Manifest.permission.READ_BASIC_PHONE_STATE})
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION)
    @IsMultiSimSupportedResult
    public int isMultiSimSupported() {