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

Commit cebb38cf authored by Jing Ji's avatar Jing Ji Committed by Android (Google) Code Review
Browse files

Merge "Remove the health connect related permissions from the FGS type "health""

parents 729031d7 a7533278
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -12503,7 +12503,7 @@ package android.content.pm {
    field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE}, anyOf={android.Manifest.permission.BLUETOOTH_CONNECT, android.Manifest.permission.CHANGE_NETWORK_STATE, android.Manifest.permission.CHANGE_WIFI_STATE, android.Manifest.permission.CHANGE_WIFI_MULTICAST_STATE, android.Manifest.permission.NFC, android.Manifest.permission.TRANSMIT_IR}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE = 16; // 0x10
    field @Deprecated @RequiresPermission(value=android.Manifest.permission.FOREGROUND_SERVICE_DATA_SYNC, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_DATA_SYNC = 1; // 0x1
    field @RequiresPermission(android.Manifest.permission.FOREGROUND_SERVICE_FILE_MANAGEMENT) public static final int FOREGROUND_SERVICE_TYPE_FILE_MANAGEMENT = 4096; // 0x1000
    field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_HEALTH}, anyOf={android.Manifest.permission.ACTIVITY_RECOGNITION, android.Manifest.permission.BODY_SENSORS, android.Manifest.permission.HIGH_SAMPLING_RATE_SENSORS}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_HEALTH = 256; // 0x100
    field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_HEALTH}, anyOf={android.Manifest.permission.ACTIVITY_RECOGNITION, android.Manifest.permission.BODY_SENSORS, android.Manifest.permission.HIGH_SAMPLING_RATE_SENSORS}) public static final int FOREGROUND_SERVICE_TYPE_HEALTH = 256; // 0x100
    field @RequiresPermission(allOf={android.Manifest.permission.FOREGROUND_SERVICE_LOCATION}, anyOf={android.Manifest.permission.ACCESS_COARSE_LOCATION, android.Manifest.permission.ACCESS_FINE_LOCATION}, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_LOCATION = 8; // 0x8
    field public static final int FOREGROUND_SERVICE_TYPE_MANIFEST = -1; // 0xffffffff
    field @RequiresPermission(value=android.Manifest.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK, conditional=true) public static final int FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK = 2; // 0x2
+0 −41
Original line number Diff line number Diff line
@@ -56,7 +56,6 @@ import android.content.pm.ServiceInfo.ForegroundServiceType;
import android.hardware.usb.UsbAccessory;
import android.hardware.usb.UsbDevice;
import android.hardware.usb.UsbManager;
import android.healthconnect.HealthConnectManager;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.permission.PermissionCheckerManager;
@@ -73,7 +72,6 @@ import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Optional;
import java.util.Set;

/**
 * This class enforces the policies around the foreground service types.
@@ -994,45 +992,6 @@ public abstract class ForegroundServiceTypePolicy {
        }
    }

    static class HealthConnectPermission extends RegularPermission {
        private @Nullable String[] mPermissionNames;

        HealthConnectPermission() {
            super("Health Connect");
        }

        @Override
        @SuppressLint("AndroidFrameworkRequiresPermission")
        @PackageManager.PermissionResult
        public int checkPermission(@NonNull Context context, int callerUid, int callerPid,
                String packageName, boolean allowWhileInUse) {
            final String[] perms = getPermissions(context);
            for (String perm : perms) {
                if (checkPermission(context, perm, callerUid, callerPid,
                        packageName, allowWhileInUse) == PERMISSION_GRANTED) {
                    return PERMISSION_GRANTED;
                }
            }
            return PERMISSION_DENIED;
        }

        @Override
        void addToList(@NonNull Context context, @NonNull ArrayList<String> list) {
            final String[] perms = getPermissions(context);
            for (String perm : perms) {
                list.add(perm);
            }
        }

        private @NonNull String[] getPermissions(@NonNull Context context) {
            if (mPermissionNames != null) {
                return mPermissionNames;
            }
            final Set<String> healthPerms = HealthConnectManager.getHealthPermissions(context);
            return mPermissionNames = healthPerms.toArray(new String[healthPerms.size()]);
        }
    }

    /**
     * The default policy for the foreground service types.
     *
+2 −5
Original line number Diff line number Diff line
@@ -308,9 +308,7 @@ public class ServiceInfo extends ComponentInfo
     * permissions:
     * {@link android.Manifest.permission#ACTIVITY_RECOGNITION},
     * {@link android.Manifest.permission#BODY_SENSORS},
     * {@link android.Manifest.permission#HIGH_SAMPLING_RATE_SENSORS},
     * or one of the {@code "android.permission.health.*"} permissions defined in the
     * {@link android.healthconnect.HealthPermissions}.
     * {@link android.Manifest.permission#HIGH_SAMPLING_RATE_SENSORS}.
     */
    @RequiresPermission(
            allOf = {
@@ -320,8 +318,7 @@ public class ServiceInfo extends ComponentInfo
                Manifest.permission.ACTIVITY_RECOGNITION,
                Manifest.permission.BODY_SENSORS,
                Manifest.permission.HIGH_SAMPLING_RATE_SENSORS,
            },
            conditional = true
            }
    )
    public static final int FOREGROUND_SERVICE_TYPE_HEALTH = 1 << 8;

+0 −74
Original line number Diff line number Diff line
@@ -783,80 +783,6 @@
    <!-- Permission required for CTS test - CtsHardwareTestCases -->
    <uses-permission android:name="android.permission.REMAP_MODIFIER_KEYS" />

    <!-- Permissions required for CTS test - CtsAppFgsTestCases -->
    <uses-permission android:name="android.permission.health.READ_ACTIVE_CALORIES_BURNED" />
    <uses-permission android:name="android.permission.health.READ_BASAL_BODY_TEMPERATURE" />
    <uses-permission android:name="android.permission.health.READ_BASAL_METABOLIC_RATE" />
    <uses-permission android:name="android.permission.health.READ_BLOOD_GLUCOSE" />
    <uses-permission android:name="android.permission.health.READ_BLOOD_PRESSURE" />
    <uses-permission android:name="android.permission.health.READ_BODY_FAT" />
    <uses-permission android:name="android.permission.health.READ_BODY_TEMPERATURE" />
    <uses-permission android:name="android.permission.health.READ_BODY_WATER_MASS" />
    <uses-permission android:name="android.permission.health.READ_BONE_MASS" />
    <uses-permission android:name="android.permission.health.READ_CERVICAL_MUCUS" />
    <uses-permission android:name="android.permission.health.READ_DISTANCE" />
    <uses-permission android:name="android.permission.health.READ_ELEVATION_GAINED" />
    <uses-permission android:name="android.permission.health.READ_EXERCISE" />
    <uses-permission android:name="android.permission.health.READ_FLOORS_CLIMBED" />
    <uses-permission android:name="android.permission.health.READ_HEART_RATE" />
    <uses-permission android:name="android.permission.health.READ_HEART_RATE_VARIABILITY" />
    <uses-permission android:name="android.permission.health.READ_HEIGHT" />
    <uses-permission android:name="android.permission.health.READ_HIP_CIRCUMFERENCE" />
    <uses-permission android:name="android.permission.health.READ_HYDRATION" />
    <uses-permission android:name="android.permission.health.READ_LEAN_BODY_MASS" />
    <uses-permission android:name="android.permission.health.READ_MENSTRUATION" />
    <uses-permission android:name="android.permission.health.READ_NUTRITION" />
    <uses-permission android:name="android.permission.health.READ_OVULATION_TEST" />
    <uses-permission android:name="android.permission.health.READ_OXYGEN_SATURATION" />
    <uses-permission android:name="android.permission.health.READ_POWER" />
    <uses-permission android:name="android.permission.health.READ_RESPIRATORY_RATE" />
    <uses-permission android:name="android.permission.health.READ_RESTING_HEART_RATE" />
    <uses-permission android:name="android.permission.health.READ_SEXUAL_ACTIVITY" />
    <uses-permission android:name="android.permission.health.READ_SLEEP" />
    <uses-permission android:name="android.permission.health.READ_SPEED" />
    <uses-permission android:name="android.permission.health.READ_STEPS" />
    <uses-permission android:name="android.permission.health.READ_TOTAL_CALORIES_BURNED" />
    <uses-permission android:name="android.permission.health.READ_VO2_MAX" />
    <uses-permission android:name="android.permission.health.READ_WAIST_CIRCUMFERENCE" />
    <uses-permission android:name="android.permission.health.READ_WEIGHT" />
    <uses-permission android:name="android.permission.health.READ_WHEELCHAIR_PUSHES" />
    <uses-permission android:name="android.permission.health.WRITE_ACTIVE_CALORIES_BURNED" />
    <uses-permission android:name="android.permission.health.WRITE_BASAL_BODY_TEMPERATURE" />
    <uses-permission android:name="android.permission.health.WRITE_BASAL_METABOLIC_RATE" />
    <uses-permission android:name="android.permission.health.WRITE_BLOOD_GLUCOSE" />
    <uses-permission android:name="android.permission.health.WRITE_BLOOD_PRESSURE" />
    <uses-permission android:name="android.permission.health.WRITE_BODY_FAT" />
    <uses-permission android:name="android.permission.health.WRITE_BODY_TEMPERATURE" />
    <uses-permission android:name="android.permission.health.WRITE_BODY_WATER_MASS" />
    <uses-permission android:name="android.permission.health.WRITE_BONE_MASS" />
    <uses-permission android:name="android.permission.health.WRITE_CERVICAL_MUCUS" />
    <uses-permission android:name="android.permission.health.WRITE_DISTANCE" />
    <uses-permission android:name="android.permission.health.WRITE_ELEVATION_GAINED" />
    <uses-permission android:name="android.permission.health.WRITE_EXERCISE" />
    <uses-permission android:name="android.permission.health.WRITE_FLOORS_CLIMBED" />
    <uses-permission android:name="android.permission.health.WRITE_HEART_RATE" />
    <uses-permission android:name="android.permission.health.WRITE_HEART_RATE_VARIABILITY" />
    <uses-permission android:name="android.permission.health.WRITE_HEIGHT" />
    <uses-permission android:name="android.permission.health.WRITE_HIP_CIRCUMFERENCE" />
    <uses-permission android:name="android.permission.health.WRITE_HYDRATION" />
    <uses-permission android:name="android.permission.health.WRITE_LEAN_BODY_MASS" />
    <uses-permission android:name="android.permission.health.WRITE_MENSTRUATION" />
    <uses-permission android:name="android.permission.health.WRITE_NUTRITION" />
    <uses-permission android:name="android.permission.health.WRITE_OVULATION_TEST" />
    <uses-permission android:name="android.permission.health.WRITE_OXYGEN_SATURATION" />
    <uses-permission android:name="android.permission.health.WRITE_POWER" />
    <uses-permission android:name="android.permission.health.WRITE_RESPIRATORY_RATE" />
    <uses-permission android:name="android.permission.health.WRITE_RESTING_HEART_RATE" />
    <uses-permission android:name="android.permission.health.WRITE_SEXUAL_ACTIVITY" />
    <uses-permission android:name="android.permission.health.WRITE_SLEEP" />
    <uses-permission android:name="android.permission.health.WRITE_SPEED" />
    <uses-permission android:name="android.permission.health.WRITE_STEPS" />
    <uses-permission android:name="android.permission.health.WRITE_TOTAL_CALORIES_BURNED" />
    <uses-permission android:name="android.permission.health.WRITE_VO2_MAX" />
    <uses-permission android:name="android.permission.health.WRITE_WAIST_CIRCUMFERENCE" />
    <uses-permission android:name="android.permission.health.WRITE_WEIGHT" />
    <uses-permission android:name="android.permission.health.WRITE_WHEELCHAIR_PUSHES" />

    <!-- Permission required for CTS test - ApplicationExemptionsTests -->
    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS" />