Skip to content

Instantly share code, notes, and snippets.

@stevesoltys
Created October 11, 2018 04:12
Show Gist options
  • Select an option

  • Save stevesoltys/ee07f95b8ea57d9267da6e337c524fc7 to your computer and use it in GitHub Desktop.

Select an option

Save stevesoltys/ee07f95b8ea57d9267da6e337c524fc7 to your computer and use it in GitHub Desktop.
0001-copperhead-sensors-permission.patch
From 4258d64a3a6d8f72a9566ae982aa851a1adeff0c Mon Sep 17 00:00:00 2001
From: Steve Soltys <[email protected]>
Date: Thu, 11 Oct 2018 00:05:56 -0400
Subject: [PATCH] Add sensors permission
---
core/java/android/content/pm/PackageParser.java | 2 ++
core/res/AndroidManifest.xml | 14 ++++++++++++++
core/res/res/values/strings.xml | 12 ++++++++++++
.../server/pm/permission/PermissionManagerService.java | 2 +-
4 files changed, 29 insertions(+), 1 deletion(-)
diff --git a/core/java/android/content/pm/PackageParser.java b/core/java/android/content/pm/PackageParser.java
index 2da2cb4c928..531bbca8fc6 100644
--- a/core/java/android/content/pm/PackageParser.java
+++ b/core/java/android/content/pm/PackageParser.java
@@ -278,6 +278,8 @@ public class PackageParser {
*/
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 c31b3b4989c..5b6026db0c2 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1129,6 +1129,20 @@
android:description="@string/permdesc_useFingerprint"
android:protectionLevel="normal" />
+ <!-- @hide -->
+ <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" />
+
+ <!-- @hide -->
+ <permission android:name="android.permission.OTHER_SENSORS"
+ android:permissionGroup="android.permission-group.OTHER_SENSORS"
+ android:label="@string/permlab_otherSensors"
+ android:description="@string/permdesc_otherSensors"
+ android:protectionLevel="dangerous" />
+
<!-- Allows an app to use device supported biometric modalities.
<p>Protection level: normal
-->
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 15d1187afa0..00c644f470d 100644
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -747,6 +747,11 @@
<string name="permgrouprequest_sensors">Allow
&lt;b><xliff:g id="app_name" example="Gmail">%1$s</xliff:g>&lt;/b> to 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 for the capability of an accessibility service to retrieve window content. -->
<string name="capability_title_canRetrieveWindowContent">Retrieve window content</string>
<!-- Description for the capability of an accessibility service to retrieve window content. -->
@@ -1056,6 +1061,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/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
index 8cc0de8e322..9615e1f408f 100644
--- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
+++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java
@@ -1333,7 +1333,7 @@ public class PermissionManagerService {
}
public static boolean isAlwaysRuntimePermission(final String permission) {
- return Manifest.permission.INTERNET.equals(permission);
+ return Manifest.permission.INTERNET.equals(permission) || Manifest.permission.OTHER_SENSORS.equals(permission);
}
private void grantRequestedRuntimePermissionsForUser(PackageParser.Package pkg, int userId,
--
2.16.4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment