SELinux(Security Enhanced Linux)モードをPermissiveまたは(0)on Android 4.4.4(および可能な場合は上記)に設定します。次のコマンドを使用します:setenforce 0
、setenforce permissive
およびsetenforce Permissive
ルートの下(私のデバイスはルート化されています)。ただし、getenforce
の出力は常にEnforcing
です。今、私はこの問題に疲れています。
誰も私に解決策を与えることができますか?前もって感謝します。
どうやら Googleは、多くのStockカーネルからCONFIG_SECURITY_SELINUX_DEVELOP
カーネルフラグを削除しました。したがって、William(下記)が言及した標準的なトリックはおそらく機能しません。これらのデバイスの例は、AOS 4.4.4を実行するSamsung Note 4(SM-N910F)です。
上記のリンクの状態:
CONFIG_SECURITY_SELINUX_DEVELOP akaglobal permissive modeは、ボードのデバイス固有のポリシーを最初に開発するときに役立ちます(BOARD_KERNEL_CMDLINEに「androidboot.selinux = permissive」を追加します)。また、一時的なsetenforce 0 in-userdebugまたは-engビルド。これは開発者に役立ちます。
ブートローダーがロックされている場合、カーネルのコマンドラインを変更できません
「また、androidboot.selinux=
オプションを処理するためのinitプログラムのコードは-userdebug
および-eng
ビルドでのみコンパイルされるため、ブートローダーのロックを除き、androidboot.selinux=permissive
は使用できません。 -user
ビルドで。」
ビルドの種類を確認する方法は次のとおりです。
$ getprop ro.build.type
user
デバイスがどのようにルート化されたか、および何Android ROM実行するかによって、それを無効にする方法が決まります。最初に試すことは:
adb Shell su 0 setenforce 0
これは次と同じではありません:
adb Shell setenforce 0
Suで実行すると、シェル(setenforceを実行できない)からsuドメイン(setenforceを呼び出すことができる)にドメインが移行します。たとえば、次を実行します。
$ adb Shell id -Z
context=u:r:Shell:s0
に比べ:
$ adb Shell su 0 id -Z
context=u:r:su:s0
これは、次の3つの理由で失敗する場合があります。
問題2を修正するには、次のようにします(adbがrootであると仮定):
adb remount
adb Shell chcon /system/xbin/su u:object_r:su_exec:s0
これは失敗する可能性があり、おそらく問題3を示します。問題3を修正するには、suポリシーファイルを含むboot.imgを再コンパイルする必要があります。 AOSPをコンパイルする場合は、デバイスのuserdebugまたはengバリアントを昼食してください。
別のアプローチは、init.cから機能を削除することであり、問題3と同様に、boot.imgの再コンパイルが必要です。 system/core/init/init.c(または.cpp)に移動し、security_setenforce()へのすべての呼び出しを削除します。
さらに、XDAにはこのプロセスを自動化して簡単にするアプリケーションがありますが、アプリケーションの品質について話すことはできません。 http://www.xda-developers.com/easily-change-your -Android-selinux-mode /
根ざしている必要があります!これがKitKatで動作するかどうかはわかりませんが(必要なはずです)、Nexus 6でこれを使用します。ターミナルまたはADBシェルで次を実行します。
su
mount -o remount,rw /system
mkdir /system/su.d
echo "#!/system/bin/sh" > /system/su.d/permissive.sh
echo "echo 0 > /sys/fs/selinux/enforce" >> /system/su.d/permissive.sh
chmod 755 /system/su.d/permissive.sh
これにより、再起動後に確認してください:
su
/system/bin/getenforce