summaryrefslogtreecommitdiffstats
path: root/services/java/com/android
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2010-06-04 16:21:12 -0400
committerJoe Onorato <joeo@android.com>2010-06-09 14:33:23 -0700
commit8bc6c5141974dbc36a6fe416853f558921be9f24 (patch)
treec9e511a5d065abb8f6d0c9f4965ef2d63965c7a5 /services/java/com/android
parent005847b03b2ebe3eb1a974a8a04ad51bca6636cd (diff)
downloadframeworks_base-8bc6c5141974dbc36a6fe416853f558921be9f24.zip
frameworks_base-8bc6c5141974dbc36a6fe416853f558921be9f24.tar.gz
frameworks_base-8bc6c5141974dbc36a6fe416853f558921be9f24.tar.bz2
Require the STATUS_BAR_SERVICE permission for something to be the status bar.
Change-Id: I57b2d296e0d0cef0d256ae6697fffc47188d14df
Diffstat (limited to 'services/java/com/android')
-rw-r--r--services/java/com/android/server/status/StatusBarManagerService.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/services/java/com/android/server/status/StatusBarManagerService.java b/services/java/com/android/server/status/StatusBarManagerService.java
index 925a6eb..198e363 100644
--- a/services/java/com/android/server/status/StatusBarManagerService.java
+++ b/services/java/com/android/server/status/StatusBarManagerService.java
@@ -249,12 +249,19 @@ public class StatusBarManagerService extends IStatusBarService.Stub
"StatusBarManagerService");
}
+ private void enforceStatusBarService() {
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.STATUS_BAR_SERVICE,
+ "StatusBarManagerService");
+ }
+
// ================================================================================
// Callbacks from the status bar service.
// ================================================================================
public void registerStatusBar(IStatusBar bar, StatusBarIconList iconList,
List<IBinder> notificationKeys, List<StatusBarNotification> notifications) {
+ enforceStatusBarService();
+
Slog.i(TAG, "registerStatusBar bar=" + bar);
mBar = bar;
synchronized (mIcons) {
@@ -273,20 +280,27 @@ public class StatusBarManagerService extends IStatusBarService.Stub
* the status bar is visible or not.
*/
public void visibilityChanged(boolean visible) {
+ enforceStatusBarService();
+
//Slog.d(TAG, "visibilityChanged visible=" + visible);
}
public void onNotificationClick(String pkg, String tag, int id) {
+ enforceStatusBarService();
+
mNotificationCallbacks.onNotificationClick(pkg, tag, id);
}
public void onNotificationError(String pkg, String tag, int id, String message) {
- Slog.d(TAG, "onNotificationError message=" + message);
+ enforceStatusBarService();
+
// WARNING: this will call back into us to do the remove. Don't hold any locks.
mNotificationCallbacks.onNotificationError(pkg, tag, id, message);
}
public void onClearAllNotifications() {
+ enforceStatusBarService();
+
mNotificationCallbacks.onClearAll();
}