2015年1月15日木曜日

AndroidのV4.4(KitKat)でSELinuxをPermissiveモードに変更する。

自分が使っている限りではあまり影響に気づいていませんでしたが、KitKatではSELinuxに正式に対応(それまではインストールされていましたが、Permissiveモードで動作)したためメーカがビルドする際に作成したSELinuxのルールによりアクセス制限が掛けられる(Enforcingという)ようです。
これに気づいたきっかけとしては、先日書いたColorflyのタブレットでのroot権限でのフラッシュメモリアクセス制限の理由を調べていたためです。

SELinuxの詳細はまだ掴みきれていませんが、これを以前のバージョンのようにPermissive(ルールファイルは読込し解析を行うが、違反を発見した場合はログ出力のみでアクセス制限はしない)モードで動作させるために一番手っ取り早い方法としてはSELinux Mode Changerを紹介します。

このアプリ、当然ながらroot権限でなければ動作しません。

インストール後にアプリを起動すると、画面中央に「Enforcing」と「Permissive」の2つのボタンがあり、どちらかがグレーアウトされているかと思います(グレーアウトしている方が現在適用されているルール)。
グレーアウトしていない、操作可能なボタンを押すだけで切り替え可能です。
これだけで本当に切り替え可能かどうか、確認するためにadb shellにて端末に潜り、/system/bin/getenforce  を実行して戻り値を確認したところ、Permissiveに変更した状態では確かに「Permissive」と表示されています。

なお、このアプリは端末再起動時に自動的に起動し、端末の設定を変更するようです。

Enforcingでメーカが出荷した端末に対し、勝手にPermissiveにしてセキュリティ対策を弱める行為はくれぐれも自己責任でお願いします(ただし、Enforcingの場合はかなり端末のリソースを消費するらしいので、Permissiveにしたほうが電池持ちなどが良くなる可能性はある)。

0 件のコメント:

コメントを投稿