2

この行をコードに追加している間

Process process = Runtime.getRuntime().exec("su -c");

また

Process process = Runtime.getRuntime().exec("su");

「su」コマンドを実行しようとすると、

process.exitValue() は失敗を意味する 1 を返します。

これは私の 1 つの Android デバイスで発生しますが、他のルート化された Android デバイスはこのコマンドで完全に動作します。(process.exitValue() は 0 を返します)

エラーの追跡方法や修正方法を教えてもらえますか?

2 つのデバイスがほぼ同じ状態であるにもかかわらず、このエラーに混乱しています。

事前にご返信いただきありがとうございます。


こんにちは、みんな、

この問題についてご相談いただきありがとうございます。あなたの返信は、古い su を削除して新しい su を配置したという手掛かりを示唆しています。幸いなことに、戻り値は 0 になりました。これは正しいことを意味していると思います。ただし、.exec("su -c") と .exec("su") の違いを知っている人はいますか? 違いがわかる方教えてください。

4

3 に答える 3

1

このコマンド(スーパー ユーザーsuを意味する) は、ルート化された電話でのみ有効です。そのため、ルート化された電話はそれを認識し、期待どおりに動作します. したがって、他のデバイスをルート化するか、ルート化されていない電話にこのアイデアをドロップしてください:)

于 2012-04-24T08:57:56.900 に答える
1

問題のある電話にスーパーユーザーがいないと思いますか?または、少なくともスーパーユーザーに関する何かが間違っている可能性があります (バージョン、バイナリ...)

suルートアクセスを許可するかどうかに関係なく、スーパーユーザーを呼び出します。

Superuser の最新バージョンでは、多くの問題が発生するようです。

それを削除して、他のバージョンをインストールしてみてください:

http://goo.im/superuser

別の注意: root アクセスを取得したり、root としてコマンドを実行したりしようとしている場合は、exec("su"). stericson 自身によるライブラリであるRootToolsを見てみましょう ;)

http://code.google.com/p/roottools/

于 2012-04-24T09:03:05.457 に答える
0

これがフレーズを検索して得た唯一の結果であるため、これに出くわした他の人のために更新を投稿すると思いました.

Cyanogenmodをインストールするための指示に従っていました。この問題は、デバイスのマス ストレージ モードを無効にすることで解決しました (他のオプションのいずれかに変更します)。

于 2013-09-28T16:19:14.117 に答える