diff options
| author | 2015-09-28 18:51:48 +0000 | |
|---|---|---|
| committer | 2015-09-28 18:51:48 +0000 | |
| commit | b487ffeef7e9e6cc2fae08c2ef7ac078cf626bd3 (patch) | |
| tree | b7f1f393dc80df65b2b0532b78ef2f2a1f611a9d | |
| parent | 7642d568877335f3dd824f16864b9bf036c205ef (diff) | |
| parent | 39a8c353a8f723e5e67bc846f8fa96d580c4abbb (diff) | |
Merge "Allow signature apps to modify notification policies."
3 files changed, 13 insertions, 2 deletions
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml index df5e35968af7..148e7c109601 100644 --- a/core/res/AndroidManifest.xml +++ b/core/res/AndroidManifest.xml @@ -2530,6 +2530,12 @@ android:label="@string/permlab_access_notification_policy" android:protectionLevel="normal" /> + <!-- Allows modification of do not disturb rules and policies. Only allowed for system + processes. + @hide --> + <permission android:name="android.permission.MANAGE_NOTIFICATIONS" + android:protectionLevel="signature" /> + <!-- Allows access to keyguard secure storage. Only allowed for system processes. @hide --> <permission android:name="android.permission.ACCESS_KEYGUARD_SECURE_STORAGE" diff --git a/services/core/java/com/android/server/notification/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java index 14a2cbc0e591..c895ae1fb724 100644 --- a/services/core/java/com/android/server/notification/NotificationManagerService.java +++ b/services/core/java/com/android/server/notification/NotificationManagerService.java @@ -1642,6 +1642,10 @@ public class NotificationManagerService extends SystemService { } private void enforcePolicyAccess(String pkg, String method) { + if (PackageManager.PERMISSION_GRANTED == getContext().checkCallingPermission( + android.Manifest.permission.MANAGE_NOTIFICATION_RULES)) { + return; + } if (!checkPolicyAccess(pkg)) { Slog.w(TAG, "Notification policy access denied calling " + method); throw new SecurityException("Notification policy access denied"); diff --git a/services/core/java/com/android/server/notification/ZenModeHelper.java b/services/core/java/com/android/server/notification/ZenModeHelper.java index cbe61c3da5af..9131e5eecbf5 100644 --- a/services/core/java/com/android/server/notification/ZenModeHelper.java +++ b/services/core/java/com/android/server/notification/ZenModeHelper.java @@ -248,8 +248,9 @@ public class ZenModeHelper { } pw.printf("allow(calls=%s,callsFrom=%s,repeatCallers=%s,messages=%s,messagesFrom=%s," + "events=%s,reminders=%s)\n", - config.allowCalls, config.allowCallsFrom, config.allowRepeatCallers, - config.allowMessages, config.allowMessagesFrom, + config.allowCalls, ZenModeConfig.sourceToString(config.allowCallsFrom), + config.allowRepeatCallers, config.allowMessages, + ZenModeConfig.sourceToString(config.allowMessagesFrom), config.allowEvents, config.allowReminders); pw.print(prefix); pw.print(" manualRule="); pw.println(config.manualRule); if (config.automaticRules.isEmpty()) return; |