143 lines
9.2 KiB
Diff
143 lines
9.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Micay <danielmicay@gmail.com>
|
|
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 504cb3732f49..e6d8b6cda74e 100644
|
|
--- a/core/res/AndroidManifest.xml
|
|
+++ b/core/res/AndroidManifest.xml
|
|
@@ -1392,6 +1392,18 @@
|
|
android:description="@string/permdesc_useBiometric"
|
|
android:protectionLevel="normal" />
|
|
|
|
+ <permission-group android:name="android.permission-group.OTHER_SENSORS"
|
|
+ android:icon="@drawable/perm_group_location"
|
|
+ android:label="@string/permgrouplab_otherSensors"
|
|
+ android:description="@string/permgroupdesc_otherSensors"
|
|
+ android:priority="1000" />
|
|
+
|
|
+ <permission android:name="android.permission.OTHER_SENSORS"
|
|
+ android:permissionGroup="android.permission-group.UNDEFINED"
|
|
+ android:label="@string/permlab_otherSensors"
|
|
+ android:description="@string/permdesc_otherSensors"
|
|
+ android:protectionLevel="dangerous" />
|
|
+
|
|
<!-- ====================================================================== -->
|
|
<!-- REMOVED PERMISSIONS -->
|
|
<!-- ====================================================================== -->
|
|
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 @@
|
|
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
|
|
<string name="permgroupdesc_sensors">access sensor data about your vital signs</string>
|
|
|
|
+ <!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
|
|
+ <string name="permgrouplab_otherSensors">Sensors</string>
|
|
+ <!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
|
|
+ <string name="permgroupdesc_otherSensors">access sensor data about orientation, movement, etc.</string>
|
|
+
|
|
<!-- Title of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
|
|
<string name="permgrouplab_network">Network</string>
|
|
<!-- Description of a category of application permissions, listed so the user can choose whether they want to allow the application to do this. -->
|
|
@@ -1118,6 +1123,13 @@
|
|
<string name="permdesc_bodySensors" product="default">Allows the app to access data from sensors
|
|
that monitor your physical condition, such as your heart rate.</string>
|
|
|
|
+ <!-- Title of the sensors permission, listed so the user can decide whether to allow the application to access sensor data. [CHAR LIMIT=80] -->
|
|
+ <string name="permlab_otherSensors">access sensors (like the compass)
|
|
+ </string>
|
|
+ <!-- Description of the sensors permission, listed so the user can decide whether to allow the application to access data from sensors. [CHAR LIMIT=NONE] -->
|
|
+ <string name="permdesc_otherSensors" product="default">Allows the app to access data from sensors
|
|
+ monitoring orientation, movement, vibration (including low frequency sound) and environmental data</string>
|
|
+
|
|
<!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
|
<string name="permlab_readCalendar">Read calendar events and details</string>
|
|
<!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
|
|
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);
|
|
}
|
|
|
|
/**
|