2017-09-01 83 views
1

私はrootアクセスとデバッグを提供する 'userdebug'設定でソースからコンパイルされたAOSPをカスタムデバイス上で実行しています。adbルートが動作するRuntime.GetRuntime()。Exec( "su");

アンドロイドデバイスブリッジを使用してデバイスに接続できます。

adb root 
adb shell 
device_name:/ # su 

これらのコマンドはすべて正常に動作し、スーパーユーザーとして変更できます。

にjava.io.IOException:プログラム「SU」を実行できません:私が午前 問題は、私は受け付けており、エラーがあるアプリ

Java.Lang.Process suProcess = Runtime.GetRuntime().Exec("su"); 

から同じ「SU」コマンドを実行していますエラー= 13、許可が拒否されました

adb root/shell suコマンドとアプリケーション内で実行されるコマンドに違いはありますか?

答えて

1

linux DACとSE-Androidの両方が、アプリケーションのプロセスが 'su'実行可能ファイルにアクセスできないように見えます。

システムが強制モードで動作しているかどうかを確認します。これは、SE-Androidが有効であることを意味します。これは確かにそうであるならば、あなたは一時的に実行することによって、それを無効にすることができます

adb root 

adb shell setenfoerce 0 

これは、SE-のAndroidを無効にしますと「SU」を実行するから、アプリのプロセスをブロックしません。

さらに、あなたのアプリはルートとして「su」を起動するのに必要なDAC権限を持っていない可能性があります。次のコマンドを実行できます。

adb shell ps 

デバイス上で実行中のすべてのプロセスの一覧については、アプリを見つけて(パッケージ名を検索して)、そのグループとUIDを確認します。おそらくどちらも根本にはならないでしょう。

カスタムのuserdebugイメージを作成することは、標準のAndroidデバイスをルーツ付けすることには似ていません。デバッグバージョンは、デバイスの内部へのアクセスを可能にするためのもので、実際の機能を持つデバイスを、デフォルトのセキュリティメカニズムをすべて有効にしてシミュレートします。

関連する問題