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

Commit 539e8dff authored by Ling Ma's avatar Ling Ma
Browse files

Gate isForAllProfiles with permission

When caller calls getActiveSubscriptionInfoList or getActiveSubscriptionInfoCount with isForAllProfiles param, the server will throw exception unless the caller has one of INTERACT_ACROSS_USERS, INTERACT_ACROSS_USERS_FULL, INTERACT_ACROSS_PROFILES permissions.

Fix: 318484172
Test: voice call + data browsing
Change-Id: I07ba66b718d1e78deb04ceb999abac86f5b7fa28
parent de0a2c47
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -45343,7 +45343,7 @@ package android.telephony {
    method public void addOnSubscriptionsChangedListener(@NonNull java.util.concurrent.Executor, @NonNull android.telephony.SubscriptionManager.OnSubscriptionsChangedListener);
    method @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public void addSubscriptionsIntoGroup(@NonNull java.util.List<java.lang.Integer>, @NonNull android.os.ParcelUuid);
    method public boolean canManageSubscription(android.telephony.SubscriptionInfo);
    method @FlaggedApi("com.android.internal.telephony.flags.enforce_subscription_user_filter") @NonNull public android.telephony.SubscriptionManager createForAllUserProfiles();
    method @FlaggedApi("com.android.internal.telephony.flags.enforce_subscription_user_filter") @NonNull @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_PROFILES) public android.telephony.SubscriptionManager createForAllUserProfiles();
    method @NonNull @RequiresPermission(android.Manifest.permission.MODIFY_PHONE_STATE) public android.os.ParcelUuid createSubscriptionGroup(@NonNull java.util.List<java.lang.Integer>);
    method @Deprecated public static android.telephony.SubscriptionManager from(android.content.Context);
    method public java.util.List<android.telephony.SubscriptionInfo> getAccessibleSubscriptionInfoList();
+4 −5
Original line number Diff line number Diff line
@@ -1953,7 +1953,6 @@ public class SubscriptionManager {
     *          {@link PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}.
     */
    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
    // @RequiresPermission(TODO(b/308809058))
    public List<SubscriptionInfo> getActiveSubscriptionInfoList() {
        List<SubscriptionInfo> activeList = null;

@@ -2010,6 +2009,9 @@ public class SubscriptionManager {
     * Create a new subscription manager instance that can see all subscriptions across
     * user profiles.
     *
     * The permission check for accessing all subscriptions will be enforced upon calling the
     * individual APIs linked below.
     *
     * @return a SubscriptionManager that can see all subscriptions regardless its user profile
     * association.
     *
@@ -2018,9 +2020,7 @@ public class SubscriptionManager {
     * @see UserHandle
     */
    @FlaggedApi(Flags.FLAG_ENFORCE_SUBSCRIPTION_USER_FILTER)
    // @RequiresPermission(TODO(b/308809058))
    // The permission check for accessing all subscriptions will be enforced upon calling the
    // individual APIs linked above.
    @RequiresPermission(android.Manifest.permission.INTERACT_ACROSS_PROFILES)
    @NonNull public SubscriptionManager createForAllUserProfiles() {
        return new SubscriptionManager(mContext, true/*isForAllUserProfiles*/);
    }
@@ -2215,7 +2215,6 @@ public class SubscriptionManager {
     *          {@link PackageManager#FEATURE_TELEPHONY_SUBSCRIPTION}.
     */
    @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE)
    // @RequiresPermission(TODO(b/308809058))
    public int getActiveSubscriptionInfoCount() {
        int result = 0;