SuperUser アプリケーションと su バイナリを (AOSP メソッドで) ROM に含めようとしています。私はandroid-6.0.1_r79 (Marshmallow)
ベース AOSP コードとして使用しています。
[ [同様の質問が以前に回答されましたが、以前の議論はすべて Android KitKat より前のものであり、現在の AOSP/スーパーユーザーの問題は解決されません。] ]
ここの指示に従い、いくつかの問題が発生した後、Google の助けを借りてビルドを成功させることができました。ここにリストされている su リポジトリを使用しています。
いくつかのログを追加することで、存在する su バイナリがwvengen/su.c/system/xbin
からのものであることを確認できました。ただし、ROM にはスーパーユーザー アプリケーションは存在しませんでした。
私が直面している 2 番目の問題は/system/xbin/su
、adb シェルにのみアクセスでき、他のアプリにはアクセスできないことです。デフォルトでは、su バイナリには次の権限があります。
root@generic:/system/xbin # ls -l | grep su
-rwsr-x--- root shell 488692 2017-04-16 16:20 su
私はそれを次のように変更しました:
root@generic:/system/xbin # chmod +rx su
root@generic:/system/xbin # chmod +s su
root@generic:/system/xbin # ls -l | grep su
-rwsr-sr-x root shell 488692 2017-04-16 16:20 su
ただし、他のアプリケーションは su アクセスできません
root@generic:/system/xbin # run-as com.test
root@generic:/system/xbin $ ls -l | grep su
lstat './su' failed: Permission denied
一方、他のすべてのバイナリは com.test の下で実行可能です (例: /system/xbin/sqlite3)。
また、 fs_config.cの su パーミッションを変更しようとしましたが、うまくいきませんでした。
ですから、私にいくつかの指針を提供してください:
- Superuser.apk が ROM にない理由を理解する
- su バイナリを他のアプリケーションで利用できるようにする方法