diff options
author | Joe Onorato <joeo@android.com> | 2010-06-04 16:21:12 -0400 |
---|---|---|
committer | Joe Onorato <joeo@android.com> | 2010-06-09 14:33:23 -0700 |
commit | 8bc6c5141974dbc36a6fe416853f558921be9f24 (patch) | |
tree | c9e511a5d065abb8f6d0c9f4965ef2d63965c7a5 /services/java/com/android | |
parent | 005847b03b2ebe3eb1a974a8a04ad51bca6636cd (diff) | |
download | frameworks_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.java | 16 |
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(); } |