
Google Android エミュレータにはexecheap
権限が必要です。それ以外の場合、SElinuxが強制モードにあるときにセグフォルトが発生します。 Androidエミュレータに慣れていない方のために、このエミュレータはqemuの分岐バージョンを使用します。
2つの簡単な解決策は
setenforce 0
setsebool -P allow_execheap 1
明らかに、これはセキュリティの観点から理想的なものから離れています。また、エミュレータがexecheapを必要としないようにパッチを取得するのに時間がかかることを願っています。
しかし、私の監査ログでは、問題のプロセスは実際にはqemu-system-x86_64-headless
「オリジナル」プロセスではなくバンドルバイナリであることを確認しました。したがって、ラベルが異なります。
semanage fcontext --list | grep qemu-kvm
/usr/bin/qemu-kvm regular file system_u:object_r:qemu_exec_t:s0
ls -laZ /root/android_sdk/emulator/qemu/linux-x86_64
-rwxr-xr-x. 1 root root unconfined_u:object_r:user_home_t:s0 31174856 Aug 1 16:32 qemu-system-x86_64-headless
他の報告では、execheap
GPUドライバに問題があると指摘しています。私が実行しているコンピュータにはGPUやiGPUはありません。使用されるVulkanデバイスはSwiftshaderです。
残念ながら、私は初めてSElinuxに触れました。
- シミュレータ用のカスタムポリシーを作成する必要がありますか?どのように?上記のポリシーでどのように実行しますか?
- 実行ファイルにタグを付けるだけで十分ですか?どうすればいいですか?
- execheapをグローバルに有効にするか、SElinuxを許可モードに設定せずにどのように機能させることができますか?