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 のセキュリティ上の問題はありますか?