From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sat, 7 Oct 2017 15:54:42 -0400 Subject: [PATCH] add special runtime permission for other sensors This covers sensors not included in the existing runtime permission for body sensors. Ported from 10: 9ec9f7f521323552fa658b46862c8408f1a7b41b Changes from 10: - Needed to run `m api-stubs-docs-non-updatable-update-current-api` to fix the "You have tried to change the API from what has been previously approved" errors. --- api/current.txt | 2 ++ core/java/android/content/pm/PackageParser.java | 2 ++ core/res/AndroidManifest.xml | 12 ++++++++++++ core/res/res/values/strings.xml | 12 ++++++++++++ non-updatable-api/current.txt | 2 ++ .../pm/permission/PermissionManagerService.java | 2 +- 6 files changed, 31 insertions(+), 1 deletion(-) diff --git a/api/current.txt b/api/current.txt index 728c0e95ca6d..4ab72254811f 100644 --- a/api/current.txt +++ b/api/current.txt @@ -106,6 +106,7 @@ package android { field public static final String NFC = "android.permission.NFC"; field public static final String NFC_PREFERRED_PAYMENT_INFO = "android.permission.NFC_PREFERRED_PAYMENT_INFO"; field public static final String NFC_TRANSACTION_EVENT = "android.permission.NFC_TRANSACTION_EVENT"; + field public static final String OTHER_SENSORS = "android.permission.OTHER_SENSORS"; field public static final String PACKAGE_USAGE_STATS = "android.permission.PACKAGE_USAGE_STATS"; field @Deprecated public static final String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY"; field @Deprecated public static final String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS"; @@ -185,6 +186,7 @@ package android { field public static final String LOCATION = "android.permission-group.LOCATION"; field public static final String MICROPHONE = "android.permission-group.MICROPHONE"; field public static final String NETWORK = "android.permission-group.NETWORK"; + field public static final String OTHER_SENSORS = "android.permission-group.OTHER_SENSORS"; field public static final String PHONE = "android.permission-group.PHONE"; field public static final String SENSORS = "android.permission-group.SENSORS"; field public static final String SMS = "android.permission-group.SMS"; diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java index 57f8a713ec13..c63fea6e3e0e 100644 --- a/core/java/android/content/pm/PackageParser.java +++ b/core/java/android/content/pm/PackageParser.java @@ -280,6 +280,8 @@ public class PackageParser { @UnsupportedAppUsage public static final PackageParser.NewPermissionInfo NEW_PERMISSIONS[] = new PackageParser.NewPermissionInfo[] { + new PackageParser.NewPermissionInfo(android.Manifest.permission.OTHER_SENSORS, + android.os.Build.VERSION_CODES.CUR_DEVELOPMENT + 1, 0), new PackageParser.NewPermissionInfo(android.Manifest.permission.WRITE_EXTERNAL_STORAGE, android.os.Build.VERSION_CODES.DONUT, 0), new PackageParser.NewPermissionInfo(android.Manifest.permission.READ_PHONE_STATE, diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index ab7c75c937a6..6ba699e6d9ac 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1392,6 +1392,18 @@ android:description="@string/permdesc_useBiometric" android:protectionLevel="normal" /> + + + + diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 7f114cf9b6b4..7eaa99ab324f 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -804,6 +804,11 @@ access sensor data about your vital signs + + Sensors + + access sensor data about orientation, movement, etc. + Network @@ -1118,6 +1123,13 @@ Allows the app to access data from sensors that monitor your physical condition, such as your heart rate. + + access sensors (like the compass) + + + Allows the app to access data from sensors + monitoring orientation, movement, vibration (including low frequency sound) and environmental data + Read calendar events and details diff --git a/non-updatable-api/current.txt b/non-updatable-api/current.txt index 189544f98594..9badc8c4d9c0 100644 --- a/non-updatable-api/current.txt +++ b/non-updatable-api/current.txt @@ -106,6 +106,7 @@ package android { field public static final String NFC = "android.permission.NFC"; field public static final String NFC_PREFERRED_PAYMENT_INFO = "android.permission.NFC_PREFERRED_PAYMENT_INFO"; field public static final String NFC_TRANSACTION_EVENT = "android.permission.NFC_TRANSACTION_EVENT"; + field public static final String OTHER_SENSORS = "android.permission.OTHER_SENSORS"; field public static final String PACKAGE_USAGE_STATS = "android.permission.PACKAGE_USAGE_STATS"; field @Deprecated public static final String PERSISTENT_ACTIVITY = "android.permission.PERSISTENT_ACTIVITY"; field @Deprecated public static final String PROCESS_OUTGOING_CALLS = "android.permission.PROCESS_OUTGOING_CALLS"; @@ -185,6 +186,7 @@ package android { field public static final String LOCATION = "android.permission-group.LOCATION"; field public static final String MICROPHONE = "android.permission-group.MICROPHONE"; field public static final String NETWORK = "android.permission-group.NETWORK"; + field public static final String OTHER_SENSORS = "android.permission-group.OTHER_SENSORS"; field public static final String PHONE = "android.permission-group.PHONE"; field public static final String SENSORS = "android.permission-group.SENSORS"; field public static final String SMS = "android.permission-group.SMS"; diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 92de1b844efa..499e5b199554 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -2649,7 +2649,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { } public static boolean isSpecialRuntimePermission(final String permission) { - return Manifest.permission.INTERNET.equals(permission); + return Manifest.permission.INTERNET.equals(permission) || Manifest.permission.OTHER_SENSORS.equals(permission); } /**