4.4APIs(http://developer.android.com/intl/ja/about/versions/android-4.4.html#Permissions)に記載があります。Permissionの説明として3種類の追加されたパーミッションと先日の記事「KitkatのREAD_EXTERNAL_STORAGEと外部記憶領域」で記載した、READ_EXTERNAL_STRAGEとWRITE_EXTERNAL_STRAGEに関する事項が説明されていますが、追加だけで変更になった物、削除になった物の記載もありません。密接に関連するGoogleのアプリのパーミッションに関しては記載されておりません。なったパーミッションを説明したいと思います。Level19)で追加されたパーミッションは53個となります。用する事は出来ません。使用できない物を除外すると8個になります。OSとして追加されたパーミッションは、赤外線に関するTRANSMIT_IRとショートカット関連の2つを合わせた3つとなります。5Signature系では、ACCESS_KEYGUARD_SECURE_STORAGEとかCONTROL_KEYGUARDなどのキーガード関連、MANAGE_CA_CERTIFICATESなどのセキュリティ関連機能の変更が見えたり、新機能関連のパーミッションが追加されていて、パーミッションだけを見ても結構変更箇所がわかって面白いのですが、時間がどれだけあっても足りませんので、一般アプリが使用可能な物のみ解説したいと思います。一般的なアプリが使用できるパーミッションここでは、プレインストールアプリのようなアプリではない、GooglePlay等で配布可能なアプリが利用宣言できる8つのパーミッションを紹介します。ユーザー操作なしでホーム画面にショートカットを追加することをアプリに許可します。ユーザー操作なしでショートカットを削除することをアプリに許可します。SHORTCUTこのパーミッションを見て、あれ?昔からなかったっけ?と思われた方も多いと思います。INSTALL_SHORTCUTパーミッションは昔から存在していました。通常パーミッションは「com.android.permission.XXX」なのですが、このパーミッションはランチャーアプリの物なので「com.android.launcher.permission.XXXX」形式で少し異なります。FrameworkのManifestファイルに変更になりました。Framework内で宣言されるように変更されパーミッション追加扱いとなり、AndroidSDKドキュメントにも記載されました。(只、このパーミッションの開始がSince19となったので色々ややこしいです)。このSHORTCUT系パーミッションですがProtectionLevelは、4.1まではnormalでしたが、4.2からdangerousに変更になっています。前述したLancher3のパーミッションは以下となります。(公式パーミッションではありません)com.android.launcher3.permission.INSTALL_SHORTCUTcom.android.launcher3.permission.UNINSTALL_SHORTCUTアンドロイド端末メーカー毎にランチャーが違ったりしますし、このあたり大変なのは今まで通りで特に何も変わらないでしょう。携帯電話の赤外線送信機能の使用をアプリに許可します。4.4(APILevel19)から赤外線通信機能が追加されました。これに伴って新しいAPIとこのパーミッションが新規に追加になりました。ドライブへのアップロードやドライブからのダウンロードの進行状況を追跡するための権限です。メールの添付ファイルの読み取りをこのアプリに許可します。attachments.メール関連のパッケージがcom.google.android.emailになったことにより以下の昔のメール関連パッケージ「com.android.email」関連のパーミッションが削除されました。com.android.email.permission.ACCESS_PROVIDER(signature)このアプリケーションにメールデータベース(送受信したメッセージ、ユーザー名、パスワードを含む)へのアクセスを許可します。com.android.email.permission.READ_ATTACHMENT(dangerous)メールの添付ファイルの読み取りをこのアプリケーションに許可します。ユーザー操作なしでショートカットを追加することをアプリに許可します。intervention.Launcher3のショートカットパーミッションです。ユーザー操作なしでショートカットを削除することをアプリに許可します。intervention.Launcher3のショートカットパーミッションです。ホームの設定とショートカットの読み取りをアプリに許可します。Home.Launcher3のショートカットパーミッションです。Nowのデータへのリモートアクセスが可能です。Now.削除されたパーミッション昔はなんとなく用意されているパーミッションが存在していたので、使われていないパーミッションが時々削除されていましたが、最近は削除される事はあまりありません。機能自体がなくなったり、機能の仕様変更が加わったりすることで削除される事はあります。AndroidOS4.4では、8個のパーミッションが削除されましたが、androidパッケージの物はありません。7個はsignature系なので開発に影響はあまりないでしょう。DRMコンテンツにアクセスします。DRMコンテンツをインストールします。DRM保護されているコンテンツのインストールをアプリに許可します。このアプリケーションにメールデータベース(送受信したメッセージ、ユーザー名、パスワードを含む)へのアクセスを許可します。メールの添付ファイルの読み取りをこのアプリケーションに許可します。signatureメール関連は、メールのパッケージ名が変更になったことによる整理及び削除となります。OSのバージョンアップによって変わります。響はないのですが、時々signature系への変更があります。この場合一般アプリでは<uses-permission>で利用宣言する事が出来なくなり、アプリケーションが新OSでは動作しない問題がでます。4.3から4.4へのプロテクションレベルの変更では一つのみ変更がありました。現在の電池消費量の低レベルデータを読み取ることをアプリに許可します。このアプリが、使用しているアプリの詳細情報を確認できるようになります。signatureOrSystemとなり実質使えなくなりました。PowerManagerクラスのパーミッションは、android.permission.DEVICE_POWERだし、BatteryManager系はブロードキャストを受け取るタイプでパーミッションいりません。3.0頃、設定画面でアプリケーション毎のバッテリー情報が見れるようになりました。この画面で取得するような情報を取得するときにandroid.permission.BATTERY_STATSが必要になります。実際にBatteryStatsServiceあたりをごにょごにょするには、リフレクションを使ったりしてかなりめんどくさいので使っている人は殆どいないと思ってます。サンプルアプリケーション」(http://spf.fmworld.net/oss/appkit/fbatterystatusutil/sample.html)でBATTERY_STATSで使用している例を見つけました。バッテリー関連でガリガリやっている方は要注意です。まとめ<uses-permission>での利用宣言を中心に見ていきましたが、ブロードキャストレシーバ等で、ブロードキャストの送信元がシステムかどうかを判断するときに、signature系のパーミッションをAndroidManifest.xmlに記載されたコンポーネントのpermissionに記載する事もあります。従ってsignature系のパーミッションは全て無視して理解しなくても良いわけではありません。(でも大体ドキュメント見ればわかりますが...)この辺りのパーミッションの変更点に関しては次回記載したいと思っております。前回の記事で、画像がなく文字ばかりで読みにくかったので、反省して、ずんだ風味KitKatの画像をいれてみました!だけど、削除されたパミッションの部分のテーブルの右側が切れてしまってます。Tokyoで登壇してきました。Securityのスライドをアップしました。2018に当選しましたので行ってきます。AutoFillに潜む危険性の講演資料をアップしました。ファンディングは90%達成リスクファインダー株式会社はじめました。Tokyoで登壇してきました。Securityのスライドをアップしました。2018に当選しましたので行ってきます。AutoFillに潜む危険性の講演資料をアップしました。