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

Commit 1b5e25d3 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski Committed by Android (Google) Code Review
Browse files

Merge "[CDM] Disable selective permission grant" into main

parents 275f7938 38337a33
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -214,8 +214,7 @@ public class AssociationRequestsProcessor {
        request.setPackageName(packageName);
        request.setUserId(userId);
        request.setSkipPrompt(mayAssociateWithoutPrompt(packageName, userId));
        request.setRequestedPerms(getRequestedPermsForProfile(userId, packageName,
                request.getDeviceProfile()));
        request.setRequestedPerms(getPermsForProfile(request.getDeviceProfile()));

        // 2b.2. Prepare extras and create an Intent.
        final Bundle extras = new Bundle();
@@ -523,6 +522,16 @@ public class AssociationRequestsProcessor {
        return PackageUtils.isPackageAllowlisted(mContext, mPackageManagerInternal, packageName);
    }

    private List<Integer> getPermsForProfile(String profile) {
        if (profile == null || !PROFILE_PERMISSION_SETS.containsKey(profile)) {
            return null;
        }
        return PROFILE_PERMISSION_SETS.get(profile);
    }

    /**
     * Get app requested permissions for the profile.
     */
    private ArrayList<Integer> getRequestedPermsForProfile(int userId, String packageName,
                                                           String profile) {
        if (profile == null || !PROFILE_PERMISSION_SETS.containsKey(profile)) {
+3 −5
Original line number Diff line number Diff line
@@ -27,7 +27,6 @@ import static android.companion.CompanionResources.PERMISSION_CONTACTS;
import static android.companion.CompanionResources.PERMISSION_MICROPHONE;
import static android.companion.CompanionResources.PERMISSION_NEARBY_DEVICES;
import static android.companion.CompanionResources.PERMISSION_NOTIFICATIONS;
import static android.companion.CompanionResources.PERMISSION_NOTIFICATION_LISTENER_ACCESS;
import static android.companion.CompanionResources.PERMISSION_PHONE;
import static android.companion.CompanionResources.PERMISSION_SMS;
import static android.companion.CompanionResources.PERMISSION_STORAGE;
@@ -57,15 +56,14 @@ public final class RolesUtils {

    private static final String TAG = "CDM_RolesUtils";

    // Profile to permission sets - sync with CompanionDeviceResources
    public static final Map<String, List<Integer>> PROFILE_PERMISSION_SETS = Map.of(
            DEVICE_PROFILE_COMPUTER, Arrays.asList(PERMISSION_NOTIFICATION_LISTENER_ACCESS,
            DEVICE_PROFILE_COMPUTER, Arrays.asList(
                    PERMISSION_NOTIFICATIONS, PERMISSION_STORAGE),
            DEVICE_PROFILE_WATCH, Arrays.asList(PERMISSION_NOTIFICATION_LISTENER_ACCESS,
            DEVICE_PROFILE_WATCH, Arrays.asList(
                    PERMISSION_NOTIFICATIONS, PERMISSION_PHONE, PERMISSION_CALL_LOGS,
                    PERMISSION_SMS, PERMISSION_CONTACTS, PERMISSION_CALENDAR,
                    PERMISSION_NEARBY_DEVICES, PERMISSION_CHANGE_MEDIA_OUTPUT),
            DEVICE_PROFILE_GLASSES, Arrays.asList(PERMISSION_NOTIFICATION_LISTENER_ACCESS,
            DEVICE_PROFILE_GLASSES, Arrays.asList(
                    PERMISSION_NOTIFICATIONS, PERMISSION_PHONE, PERMISSION_SMS, PERMISSION_CONTACTS,
                    PERMISSION_MICROPHONE, PERMISSION_NEARBY_DEVICES)
    );