Android 4.3で追加されたパーミッション
Android 4.3がリリースされて、しばらく時間がたってしまいましたが、Android4.3で2つのパーミッションが追加されました。
Android Developer SiteのAndroid 4.3APIsの最後の方にちょろっとだけ記載があります。
BIND_NOTIFICATION_LISTENER_SERVICEと、SEND_RESPOND_VIA_MESSAGEの2つが追加されたわけですが、ぶっちゃけこれらのパーミッションは、普通のアプリケーションを使用する人は気にしなくてもいいと思います。
BIND_NOTIFICATION_LISTENER_SERVICEが、4.3で新規に追加された、NotificationListenerService の機能を使う時に使うパーミッションで、SEND_RESPOND_VIA_MESSAGEが4.3で仕様変更(解放された)電話着信のQuick response機能を使う時に使用するものです。
また、両方ともsignature系パーミッションですので、一般アプリがuses-permissionで指定して使うものではありません。まぁ、実際にこれらの機能を実装するときに、サンプルコード等にあたると思いますので、その時に調べればいいレベルだと思います。
とはいえ、脆弱性検知ツールTao RiskFinder等作っていますから、解説します。
BIND_NOTIFICATION_LISTENER_SERVICE
Android4.3で追加された、NotificationListenerServiceを使用するときに利用するパーミッション。
android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
signature
指定なし
bind to a notification listener service
通知リスナーサービスにバインド
Allows the holder to bind to the top-level interface of a notification listener service. Should never be needed for normal apps.
通知リスナーサービスのトップレベルインターフェースにバインドすることを所有者に許可します。通常のアプリでは不要です。
NotificationListenerServiceは、Android 4.3 (API Level18)で新たに追加されたサービスです。
Notificationバー表示領域(通知バー)をごにょごにょいじるようなアプリは、アクセシビリティサービスを利用してという、裏ワザ的なやり方とかしかなかったのですが、素直に障れるようになりました。
注意事項としては、Notificationバーを障りたいアプリが、uses-permissionを使ってBIND_NOTIFICATION_LISTENER_SERVICEを記載するわけではありません。
このBIND_NOTIFICATION_LISTENER_SERVICEは、signatureパーミッションなので一般のアプリがuses-permissionに記載しても意味がありません。
下記のように、BIND_NOTIFICATION_LISTENER_SERVICEパーミッションを持っているアプリからのみ、自分が作成したサービスを呼び出すように作成することで、悪意を持ったアプリから呼び出されるのを禁止するときに使用します。
<service android:name=".NotificationListener"android:label="@string/service_name"android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"><intent-filter><action android:name="android.service.notification.NotificationListenerService" /></intent-filter></service>
残念なのは、uses-permissionで指定する物ではないので、このアプリはNotificationバーいじる!って事がユーザに通知されないことです。日本ではNotiicationバーに広告とかを表示するのは良くない事と認識されているだけにちょっと残念です。
SEND_RESPOND_VIA_MESSAGE
Android OS4.0で追加された、「Quick response」の機能変更に際して作成されたパーミッション
android.permission.SEND_RESPOND_VIA_MESSAGE
signature|system
android.permission-group.MESSAGES
send respond-via-message events
メッセージ応答イベントの送信
Allows the app to send requests to other messaging apps to handle respond-via-message events for incoming
着信時にメッセージ応答イベントを処理するよう他のSMSアプリにリクエストを送信することをアプリに許可します。
クイックレスポンス機能は、電話がかかってきた時に、端末のロックを解除せずにテクストメッセージで着信に応答できる機能です。今までこの機能はシステムアプリでしか使用できませんでしたが、4.3で一般のアプリでも使用できるようになりました。
この機能を一般アプリで実装するときに、このパーミッションを使用します。
注意事項としては、クイックレスポンスを実装するアプリが、uses-permissionを使ってSEND_RESPOND_VIA_MESSAGEを記載するわけではありません。
このSEND_RESPOND_VIA_MESSAGEは、signature|systemパーミッションなので一般のアプリがuses-permissionに記載しても意味がありません。
下記のように、SEND_RESPOND_VIA_MESSAGEパーミッションを持っているアプリからのみ、自分が作成したサービスを呼び出すように作成することで、悪意を持ったアプリから呼び出されるのを禁止するときに使用します。
<service android:name=".ui.NoConfirmationSendService"android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"android:exported="true" ><intent-filter><action android:name="android.intent.action.RESPOND_VIA_MESSAGE" /><category android:name="android.intent.category.DEFAULT" /><data android:scheme="sms" /><data android:scheme="smsto" /></intent-filter></service>
コメント
コメントを投稿