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

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

Relax TM.isModemEnabledForSlot with READ_BASIC_PHONE_STATE permission

This change relaxes the permission for API
TelephonyManager.isModemEnabledForSlot, allowing apps with
READ_BASIC_PHONE_STATE to check if modem is enabled for a SIM slot.

Whether modem is enabled for a SIM slot is basic information that
doesn't always need READ_PHONE_STATE or carrier privileges. The relaxed
permission makes the API more useful without leaking sensitive info.

Bug: 401006757
Test: atest CtsTelephony2TestCases CtsTelephonyTestCases
Flag: com.android.internal.telephony.flags.macro_based_opportunistic_networks
Change-Id: Ic163889fcf149e926a85ffba88b7d83069ac532d
parent 8d32ac18
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -47597,7 +47597,7 @@ package android.telephony {
    method public boolean isEmergencyNumber(@NonNull String);
    method public boolean isEmergencyNumber(@NonNull String);
    method public boolean isHearingAidCompatibilitySupported();
    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_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 @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, "android.permission.READ_PRIVILEGED_PHONE_STATE"}) public boolean isModemEnabledForSlot(int);
    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 @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 public boolean isNetworkRoaming();
    method @RequiresPermission(android.Manifest.permission.READ_BASIC_PHONE_STATE) public boolean isPremiumCapabilityAvailableForPurchase(int);
    method @RequiresPermission(android.Manifest.permission.READ_BASIC_PHONE_STATE) public boolean isPremiumCapabilityAvailableForPurchase(int);
+3 −0
Original line number Original line Diff line number Diff line
@@ -16074,6 +16074,7 @@ public class TelephonyManager {
     * Indicates whether or not there is a modem stack enabled for the given SIM slot.
     * Indicates whether or not there is a modem stack enabled for the given SIM slot.
     *
     *
     * <p>Requires Permission:
     * <p>Requires Permission:
     * {@link android.Manifest.permission#READ_BASIC_PHONE_STATE READ_BASIC_PHONE_STATE},
     * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE},
     * {@link android.Manifest.permission#READ_PHONE_STATE READ_PHONE_STATE},
     * READ_PRIVILEGED_PHONE_STATE or that the calling app has carrier privileges (see
     * READ_PRIVILEGED_PHONE_STATE or that the calling app has carrier privileges (see
     * {@link #hasCarrierPrivileges()}).
     * {@link #hasCarrierPrivileges()}).
@@ -16083,8 +16084,10 @@ public class TelephonyManager {
     * @throws UnsupportedOperationException If the device does not have
     * @throws UnsupportedOperationException If the device does not have
     *          {@link PackageManager#FEATURE_TELEPHONY}.
     *          {@link PackageManager#FEATURE_TELEPHONY}.
     */
     */
    @FlaggedApi(Flags.FLAG_MACRO_BASED_OPPORTUNISTIC_NETWORKS)
    @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
    @SuppressAutoDoc // Blocked by b/72967236 - no support for carrier privileges
    @RequiresPermission(anyOf = {android.Manifest.permission.READ_PHONE_STATE,
    @RequiresPermission(anyOf = {android.Manifest.permission.READ_PHONE_STATE,
            android.Manifest.permission.READ_BASIC_PHONE_STATE,
            android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE})
            android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE})
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY)
    @RequiresFeature(PackageManager.FEATURE_TELEPHONY)
    public boolean isModemEnabledForSlot(int slotIndex) {
    public boolean isModemEnabledForSlot(int slotIndex) {