1

Galaxy Nexus(JellyBean) と Nexus 5(KitKat) の 2 台の電話を使用しています。に存在するスクリプトを実行しようとしています

/data/folder/scripts/run.sh

Process.Builder を使用してコマンドをビルドします。このコマンドは、取得することによって構築されます

Environment.getDataDirectory().toString() + "/folder/scripts/run.sh"

これを Galaxy Nexus で実行しても問題はありませんが、Nexus 5 で実行すると、process.start() を実行すると例外が発生します。私が得る出力には以下が含まれます:

exec() の実行中にエラーが発生しました。コマンド: [/data/folder/scripts/run.sh, "param"]. 作業ディレクトリ: null 環境: [ADNROID_ROOT=/system ...]

私のスクリプトのディレクトリ構造は、両方のファイルで同じです。

編集:

そのため、アプリケーションをロードするとすぐに logcat を見ていましたが、問題を特定したと思います。

マニフェスト ファイルが見つからないというエラーが表示されます。警告: java.io.FileNotFoundException /data/folder/Manifest: EACCESS のオープンに失敗しました (許可が拒否されました)。

これは、JellyBean を実行している Galaxy Nexus には当てはまりません。KitKat のセキュリティ上の問題はありますか?

4

1 に答える 1

1

この問題は、root アクセス権がないことが原因でした。SuperSu がアプリケーションに許可を与えたときに修正されました。

于 2014-04-29T19:29:58.607 に答える