From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Daniel Micay Date: Sat, 7 Oct 2017 22:54:42 +0300 Subject: [PATCH] add special runtime permission for other sensors Ported from 12: 9d5a62ed573bc3c7be8b19445b372fed13533d0e --- core/api/current.txt | 2 ++ core/res/AndroidManifest.xml | 12 ++++++++++++ core/res/res/values/strings.xml | 12 ++++++++++++ .../pm/permission/PermissionManagerServiceImpl.java | 2 +- .../server/pm/pkg/parsing/ParsingPackageUtils.java | 2 ++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/core/api/current.txt b/core/api/current.txt index 306a105bd169..7297e731af40 100644 --- a/core/api/current.txt +++ b/core/api/current.txt @@ -122,6 +122,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 OVERRIDE_WIFI_CONFIG = "android.permission.OVERRIDE_WIFI_CONFIG"; 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"; @@ -227,6 +228,7 @@ package android { field public static final String NEARBY_DEVICES = "android.permission-group.NEARBY_DEVICES"; field public static final String NETWORK = "android.permission-group.NETWORK"; field public static final String NOTIFICATIONS = "android.permission-group.NOTIFICATIONS"; + 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 READ_MEDIA_AURAL = "android.permission-group.READ_MEDIA_AURAL"; field public static final String READ_MEDIA_VISUAL = "android.permission-group.READ_MEDIA_VISUAL"; diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index 88d6863fe968..c4837e504f58 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -1763,6 +1763,18 @@ android:protectionLevel="dangerous|instant" /> + + + + diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml index 4c45fdc4de44..e0ca922bf686 100644 --- a/core/res/res/values/strings.xml +++ b/core/res/res/values/strings.xml @@ -934,6 +934,11 @@ show notifications + + Sensors + + access sensor data about orientation, movement, etc. + Network @@ -1269,6 +1274,13 @@ Allows the app to access body sensor data, such as heart rate, temperature, and blood oxygen percentage, while the app is in the background. + + 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/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java index 4918f3bf3e11..fedd0c3ceced 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java @@ -2524,7 +2524,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt } 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); } /** diff --git a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java index 810fa5f1e4b3..17ac255e60f6 100644 --- a/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java +++ b/services/core/java/com/android/server/pm/pkg/parsing/ParsingPackageUtils.java @@ -2221,6 +2221,8 @@ public class ParsingPackageUtils { pkg.setHasDomainUrls(hasDomainURLs(pkg)); + pkg.addUsesPermission(new ParsedUsesPermissionImpl(android.Manifest.permission.OTHER_SENSORS, 0)); + return input.success(pkg); }